| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 117741
|
|
|
|
|
|
| |
encoder functions.
llvm-svn: 117738
|
|
|
|
|
|
|
|
| |
the LDR instructions have. This makes the literal/register forms of the
instructions explicit and allows us to assign scheduling itineraries
appropriately. rdar://8477752
llvm-svn: 117505
|
|
|
|
|
|
|
|
| |
encoding
for specifying fractional bits for fixed point conversions.
llvm-svn: 117501
|
|
|
|
| |
llvm-svn: 117483
|
|
|
|
| |
llvm-svn: 117478
|
|
|
|
|
|
|
| |
operands in the TableGen'erated bits, so we don't need to do the additional
magic explicitly.
llvm-svn: 117461
|
|
|
|
|
|
|
|
| |
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: 117176
|
|
|
|
| |
llvm-svn: 117072
|
|
|
|
|
|
| |
registers.
llvm-svn: 116961
|
|
|
|
|
|
| |
ARMCodeEmitter::emitMiscInstruction!
llvm-svn: 116644
|
|
|
|
| |
llvm-svn: 116588
|
|
|
|
|
|
| |
pseudonym.
llvm-svn: 116512
|
|
|
|
| |
llvm-svn: 116466
|
|
|
|
|
|
|
| |
- Add missing patterns for some multiply add/subtract instructions.
- Add encodings for VMRS and VMSR.
llvm-svn: 116464
|
|
|
|
| |
llvm-svn: 116421
|
|
|
|
|
|
|
| |
and move to a custom operand encoder. Remove the last of the special handling
stuff from ARMMCCodeEmitter::EncodeInstruction.
llvm-svn: 116377
|
|
|
|
|
|
|
| |
explicit handling of the instructions referencing it from the MC code
emitter.
llvm-svn: 116367
|
|
|
|
|
|
|
| |
instruction should set the processor status flags or not. Remove the now
unnecessary special handling for the bit from the MCCodeEmitter.
llvm-svn: 116360
|
|
|
|
|
|
| |
''const'ify getMachineOpValue() and associated helpers.'
llvm-svn: 116067
|
|
|
|
| |
llvm-svn: 116064
|
|
|
|
| |
llvm-svn: 116059
|
|
|
|
| |
llvm-svn: 116018
|
|
|
|
|
|
|
|
|
| |
functions in ARMBaseInfo.h so it can be used in the MC library as well.
For anything bigger than this, we may want a means to have a small support
library for shared helper functions like this. Cross that bridge when we
come to it.
llvm-svn: 114016
|
|
|
|
|
|
| |
if the register is a member of the SPR register class directly instead.
llvm-svn: 114012
|
|
|
|
| |
llvm-svn: 113073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all the other LDM/STM instructions. This fixes asm printer crashes when
compiling with -O0. I've changed one of the NEON tests (vst3.ll) to run
with -O0 to check this in the future.
Prior to this change VLDM/VSTM used addressing mode #5, but not really.
The offset field was used to hold a count of the number of registers being
loaded or stored, and the AM5 opcode field was expanded to specify the IA
or DB mode, instead of the standard ADD/SUB specifier. Much of the backend
was not aware of these special cases. The crashes occured when rewriting
a frameindex caused the AM5 offset field to be changed so that it did not
have a valid submode. I don't know exactly what changed to expose this now.
Maybe we've never done much with -O0 and NEON. Regardless, there's no longer
any reason to keep a count of the VLDM/VSTM registers, so we can use
addressing mode #4 and clean things up in a lot of places.
llvm-svn: 112322
|
|
|
|
|
|
|
| |
printing "lsl #0". This fixes the remaining parts of pr7792. Make
corresponding changes for encoding/decoding these instructions.
llvm-svn: 111251
|
|
|
|
|
|
| |
instruction opcode. This also fixes part of PR7792.
llvm-svn: 110875
|
|
|
|
|
|
|
|
|
| |
(I discovered 2 more copies of the ARM instruction format list, bringing the
total to 4!! Two of them were already out of sync. I haven't yet gotten into
the disassembler enough to know the best way to fix this, but something needs
to be done.) Add support for encoding these instructions.
llvm-svn: 110754
|
|
|
|
| |
llvm-svn: 110460
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
|
|
| |
call. Fixes PR7608
llvm-svn: 109125
|
|
|
|
|
|
| |
thus is a much more meaningful name.
llvm-svn: 108563
|
|
|
|
| |
llvm-svn: 107201
|
|
|
|
|
|
|
| |
The encoding is the same as VMOV (from scalar to core register) except that
the operands are in different places.
llvm-svn: 107167
|
|
|
|
|
|
| |
the same as ARM except that the condition code field is always set to ARMCC::AL.
llvm-svn: 107107
|
|
|
|
|
|
| |
of the Subtarget.
llvm-svn: 107086
|
|
|
|
| |
llvm-svn: 107070
|
|
|
|
| |
llvm-svn: 107068
|
|
|
|
| |
llvm-svn: 106938
|
|
|
|
|
|
| |
emitNEON2RegInstruction's handling of 2-address operands.
llvm-svn: 106900
|
|
|
|
| |
llvm-svn: 106891
|
|
|
|
| |
llvm-svn: 106542
|
|
|
|
|
|
|
|
|
|
|
| |
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: 105350
|
|
|
|
| |
llvm-svn: 104670
|
|
|
|
|
|
| |
Fixing http://llvm.org/bugs/show_bug.cgi?id=7225.
llvm-svn: 104667
|