| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
parts. Represent the operation mode as an optional operand instead.
rdar://8614429
llvm-svn: 118137
|
|
|
|
|
|
| |
CodeGenInstruction into its own helper class. No functionality change.
llvm-svn: 117893
|
|
|
|
|
|
|
| |
complex load / store addressing mode) when they have higher cost and
when they have more than one use.
llvm-svn: 117509
|
|
|
|
|
|
|
|
| |
encoding
for specifying fractional bits for fixed point conversions.
llvm-svn: 117501
|
|
|
|
|
|
|
|
| |
explicit about the operands. Split out the different variants into separate
instructions. This gives us the ability to, among other things, assign
different scheduling itineraries to the variants. rdar://8477752.
llvm-svn: 117409
|
|
|
|
| |
llvm-svn: 116588
|
|
|
|
|
|
|
| |
and handle the operand explicitly. Flesh out encoding information. Add an
explicit disassembler testcase for the instruction.
llvm-svn: 116432
|
|
|
|
| |
llvm-svn: 116421
|
|
|
|
| |
llvm-svn: 116282
|
|
|
|
| |
llvm-svn: 115664
|
|
|
|
| |
llvm-svn: 113422
|
|
|
|
| |
llvm-svn: 112707
|
|
|
|
|
|
| |
instructions besides saturate instructions. No functional changes.
llvm-svn: 111168
|
|
|
|
|
|
|
| |
the memory barrier variants (other than 'SY' full system domain read and write)
are treated as one instruction with option operand.
llvm-svn: 110951
|
|
|
|
|
|
| |
instruction opcode. This also fixes part of PR7792.
llvm-svn: 110875
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
have 4 bits per register in the operand encoding), but have undefined
behavior when the operand value is 13 or 15 (SP and PC, respectively).
The trivial coalescer in linear scan sometimes will merge a copy from
SP into a subsequent instruction which uses the copy, and if that
instruction cannot legally reference SP, we get bad code such as:
mls r0,r9,r0,sp
instead of:
mov r2, sp
mls r0, r9, r0, r2
This patch adds a new register class for use by Thumb2 that excludes
the problematic registers (SP and PC) and is used instead of GPR
for those operands which cannot legally reference PC or SP. The
trivial coalescer explicitly requires that the register class
of the destination for the COPY instruction contain the source
register for the COPY to be considered for coalescing. This prevents
errant instructions like that above.
PR7499
llvm-svn: 109842
|
|
|
|
| |
llvm-svn: 108893
|
|
|
|
| |
llvm-svn: 108769
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
in the integrated assembler. Still some discussion to be
done.
llvm-svn: 107825
|
|
|
|
| |
llvm-svn: 106671
|
|
|
|
|
|
|
|
| |
call must not be callee-saved; following x86, add a new
regclass to represent this. Also fixes a couple of bugs.
Still disabled by default; Thumb doesn't work yet.
llvm-svn: 106053
|
|
|
|
|
|
|
|
|
|
|
| |
the machine instruction representation of the immediate value to be encoded
into an integer with similar fields as the actual VMOV instruction. This makes
things easier for the disassembler, since it can just stuff the bits into the
immediate operand, but harder for the asm printer since it has to decode the
value to be printed. Testcase for the encoding will follow later when MC has
more support for ARM.
llvm-svn: 105836
|
|
|
|
| |
llvm-svn: 103760
|
|
|
|
|
|
|
|
|
| |
and %rcr_, leaving just %cr_ which is what people expect.
Updated the disassembler to support this unified register set.
Added a testcase to verify that the registers continue to be
decoded correctly.
llvm-svn: 103196
|
|
|
|
|
|
| |
coalescer bug that's fixed by 103170.
llvm-svn: 103172
|
|
|
|
|
|
| |
memory operands rather than immediate operands.
llvm-svn: 102217
|
|
|
|
|
|
| |
It was unused anyways.
llvm-svn: 101241
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
code. It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.
Also removed hacky #define-controlled initialization
of targets in edis. If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.
llvm-svn: 101179
|
|
|
|
| |
llvm-svn: 100754
|
|
|
|
|
|
|
|
|
|
|
| |
I also added a rule to the ARM target's Makefile to
build the ARM-specific instruction information table
for the enhanced disassembler.
I will add the test harness for all this stuff in
a separate commit.
llvm-svn: 100735
|
|
|
|
|
|
|
| |
to a vector that CGT stores instead of synthesizing it on every
call.
llvm-svn: 98910
|
|
|
|
| |
llvm-svn: 98468
|
|
|
|
|
|
|
| |
backend to not use exceptions at all except in cases
of actual error.
llvm-svn: 95762
|
|
|
|
|
|
|
| |
Disassembler to take advantage of the refactored
AsmWriterInst.h. Note removed parser code.
llvm-svn: 95760
|
|
|
|
|
|
|
|
| |
implementation. Also changed the constructor
so that it does not require a Record, making it
usable by the EDEmitter.
llvm-svn: 95715
|
|
|
|
|
|
|
| |
disassembly information have a better comment (and
better guard macros).
llvm-svn: 94781
|
|
enhanced disassembler, and the necessary makefile
rules to build the table for X86.
llvm-svn: 94764
|