| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 135939
|
| |
|
|
| |
llvm-svn: 135930
|
| |
|
|
| |
llvm-svn: 135607
|
| |
|
|
|
|
|
|
|
| |
to MCRegisterInfo. Also initialize the mapping at construction time.
This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
towards fixing the layering violation.
llvm-svn: 135424
|
| |
|
|
|
|
| |
registeration and creation code into XXXMCDesc libraries.
llvm-svn: 135184
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and MCSubtargetInfo.
- Added methods to update subtarget features (used when targets automatically
detect subtarget features or switch modes).
- Teach X86Subtarget to update MCSubtargetInfo features bits since the
MCSubtargetInfo layer can be shared with other modules.
- These fixes .code 16 / .code 32 support since mode switch is updated in
MCSubtargetInfo so MC code emitter can do the right thing.
llvm-svn: 134884
|
| |
|
|
|
|
|
|
| |
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.
llvm-svn: 134021
|
| |
|
|
|
|
|
|
| |
Fixes PR9934.
We really need to start tblgening the relocation info :-(
llvm-svn: 131669
|
| |
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
| |
|
|
| |
llvm-svn: 128826
|
| |
|
|
|
|
|
|
| |
Define most shift masks incrementally to reduce the redundant
hard-coding. Introduce new shift for the VEX flags to replace the
magic constant 32 in various places.
llvm-svn: 128822
|
| |
|
|
|
|
| |
Patch by Jai Menon.
llvm-svn: 126165
|
| |
|
|
| |
llvm-svn: 122005
|
| |
|
|
|
|
|
| |
the MCCodeEmitter, which seems like a better organization.
- Also, cleaned up some magic constants while in the area.
llvm-svn: 121953
|
| |
|
|
|
|
| |
and at least the 4 byte one will be needed to implement the .cfi_* directives.
llvm-svn: 120240
|
| |
|
|
| |
llvm-svn: 120006
|
| |
|
|
|
|
| |
Switch the ARM backend to use 'let' instead of 'set' with this change.
llvm-svn: 119120
|
| |
|
|
|
|
| |
we check for _GLOBAL_OFFSET_TABLE_.
llvm-svn: 117241
|
| |
|
|
| |
llvm-svn: 116932
|
| |
|
|
|
|
|
|
|
|
|
| |
The reg-reg copies were no longer being generated since copyPhysReg copies
physical registers only.
The loads and stores are not necessary - The TC constraint is imposed by the
TAILJMP and TCRETURN instructions, there should be no need for constrained loads
and stores.
llvm-svn: 116314
|
| |
|
|
|
|
|
|
|
|
|
| |
else in X86), and add support for pavgusb. This is apparently the
only instruction (other than movsx) that is preventing ffmpeg from building
with clang.
If someone else is interested in banging out the rest of the 3DNow!
instructions, it should be quite easy now.
llvm-svn: 115466
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch in
movq $foo, foo(%rip)
foo:
.long foo
We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the
second one.
llvm-svn: 115134
|
| |
|
|
|
|
| |
lib/Target/X86/X86MCCodeEmitter.cpp: 190: error: suggest parentheses around '&&' within '||'
llvm-svn: 115064
|
| |
|
|
|
|
| |
order as cctools for diffability.
llvm-svn: 115022
|
| |
|
|
|
|
| |
are defined to emit the 0x67 prefix byte. rdar://8482675
llvm-svn: 115021
|
| |
|
|
|
|
| |
What a weird instruction.
llvm-svn: 114190
|
| |
|
|
| |
llvm-svn: 112128
|
| |
|
|
|
|
| |
call and jumps.
llvm-svn: 111496
|
| |
|
|
| |
llvm-svn: 111102
|
| |
|
|
| |
llvm-svn: 111082
|
| |
|
|
| |
llvm-svn: 109002
|
| |
|
|
|
|
| |
support it
llvm-svn: 108983
|
| |
|
|
|
|
| |
Add the x86 VEX_L form to handle special cases where VEX_L must be set.
llvm-svn: 108274
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
notes:
- The instructions are being added with dummy placeholder patterns using some 256
specifiers, this is not meant to work now, but since there are some multiclasses
generic enough to accept them, when we go for codegen, the stuff will be already
there.
- Add VEX encoding bits to support YMM
- Add MOVUPS and MOVAPS in the first round
- Use "Y" as suffix for those Instructions: MOVUPSYrr, ...
- All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX
file.
llvm-svn: 107996
|
| |
|
|
|
|
| |
fields to use.
llvm-svn: 107952
|
| |
|
|
| |
llvm-svn: 107942
|
| |
|
|
| |
llvm-svn: 107939
|
| |
|
|
| |
llvm-svn: 107937
|
| |
|
|
|
|
|
|
|
|
|
| |
like all other instructions, even though a segment is not
allowed. This resolves a bunch of gross hacks in the
encoder and makes LEA more consistent with the rest of the
instruction set.
No functionality change.
llvm-svn: 107934
|
| |
|
|
|
|
| |
X86 memory operand.
llvm-svn: 107925
|
| |
|
|
|
|
|
|
|
|
|
|
| |
in memory operands at the same type as hard coded segments.
This fixes problems where we'd emit the segment override after
the REX prefix on instructions like:
mov %gs:(%rdi), %rax
This fixes rdar://8127102. I have several cleanup patches coming
next.
llvm-svn: 107917
|
| |
|
|
| |
llvm-svn: 107826
|
| |
|
|
|
|
|
| |
in the integrated assembler. Still some discussion to be
done.
llvm-svn: 107825
|
| |
|
|
| |
llvm-svn: 107717
|
| |
|
|
|
|
| |
Update VEX encoding to support those new instructions
llvm-svn: 107715
|
| |
|
|
| |
llvm-svn: 107599
|
| |
|
|
|
|
|
| |
- Fix VEX prefix to be emitted with 3 bytes whenever VEX_5M
represents a REX equivalent two byte leading opcode
llvm-svn: 107523
|
| |
|
|
|
|
|
|
| |
- Add encode bits for VEX_W
- All 128-bit SSE 1 & SSE2 instructions that are described
in the .td file now have a AVX encoded form already working.
llvm-svn: 107365
|
| |
|
|
|
|
| |
- Add VEX encoding bits to x86 MRM0r-MRM7r
llvm-svn: 107238
|
| |
|
|
|
|
| |
Add VEX encoding bits for MRMXm x86 form
llvm-svn: 107204
|