| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
movi+orr or movw+movt depending on the subtarget.
llvm-svn: 118938
|
| |
|
|
| |
llvm-svn: 118924
|
| |
|
|
| |
llvm-svn: 118854
|
| |
|
|
| |
llvm-svn: 118843
|
| |
|
|
|
|
|
|
| |
the new PostEncoderMethod infrastructure.
More tests to come.
llvm-svn: 118819
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 118801
|
| |
|
|
| |
llvm-svn: 118794
|
| |
|
|
| |
llvm-svn: 118757
|
| |
|
|
| |
llvm-svn: 118736
|
| |
|
|
| |
llvm-svn: 118513
|
| |
|
|
|
|
|
|
|
|
|
|
| |
vldr.64 d1, [r0, #-32]
The problem was with how the addressing mode 5 encodes the offsets. This change
makes sure that the way offsets are handled in addressing mode 5 is consistent
throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue"
method into an "Imm12" and "addressing mode 5" version. But not to worry! The
majority of the duplicated code has been unified.
llvm-svn: 118144
|
| |
|
|
|
|
|
|
| |
with immediates up to 16-bits in size. The same logic is applied to other LDR
encodings, e.g. VLDR, but which use a different immediate bit width (8-bits in
VLDR's case). Removing the "12" allows it to be more generic.
llvm-svn: 118094
|
| |
|
|
| |
llvm-svn: 118093
|
| |
|
|
| |
llvm-svn: 117997
|
| |
|
|
| |
llvm-svn: 117984
|
| |
|
|
| |
llvm-svn: 117753
|
| |
|
|
| |
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
|