| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
been MC-ized for assembly printing. MSP430 is mostly so, but still has the
asm printer and lowering code in the printer subdir for the moment.
llvm-svn: 115360
|
|
|
|
|
|
| |
to an empty PrintSpecial()
llvm-svn: 115128
|
|
|
|
|
|
| |
(Kill the dead non-MC asm printer for the ARM target.)
llvm-svn: 115127
|
|
|
|
| |
llvm-svn: 114676
|
|
|
|
| |
llvm-svn: 114563
|
|
|
|
|
|
| |
the rest of it is next up.
llvm-svn: 114500
|
|
|
|
|
|
| |
with one in the generic printing code is an error.
llvm-svn: 114242
|
|
|
|
|
|
| |
and shift instructions on ARM. Update the tests to match.
llvm-svn: 114230
|
|
|
|
| |
llvm-svn: 114215
|
|
|
|
| |
llvm-svn: 114212
|
|
|
|
|
|
| |
(PICLDRB, et. al.) and PICSTR*
llvm-svn: 114098
|
|
|
|
|
|
| |
used for anything.
llvm-svn: 114067
|
|
|
|
|
|
| |
unnecessary dtor for MCOperand.
llvm-svn: 114064
|
|
|
|
| |
llvm-svn: 114030
|
|
|
|
| |
llvm-svn: 114009
|
|
|
|
|
|
|
|
|
|
|
| |
VFP instructions use it for loading some constants, so implement that
handling.
Not thrilled with adding a member to MCOperand, but not sure there's much of
a better option that's not pretty fragile (like putting a double in the
union instead and just assuming that's good enough). Suggestions welcome...
llvm-svn: 113996
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"The register specified for a dregpair is the corresponding Q register, so to
get the pair, we need to look up the sub-regs based on the qreg. Create a
lookup function since we don't have access to TargetRegisterInfo here to
be able to use getSubReg(ARM::dsub_[01])."
Additionaly, fix the NEON VLD1* and VST1* instruction patterns not to use
the dregpair modifier for the 2xdreg versions. Explicitly specifying the two
registers as operands is more correct and more consistent with the other
instruction patterns. This enables further cleanup of special case code in the
disassembler as a nice side-effect.
llvm-svn: 113903
|
|
|
|
|
|
| |
change.
llvm-svn: 113878
|
|
|
|
| |
llvm-svn: 113877
|
|
|
|
|
|
|
|
| |
get the pair, we need to look up the sub-regs based on the qreg. Create a
lookup function since we don't have access to TargetRegisterInfo here to
be able to use getSubReg(ARM::dsub_[01]).
llvm-svn: 113875
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r113632
Conflicts:
cmake/modules/AddLLVM.cmake
llvm-svn: 113819
|
|
|
|
| |
llvm-svn: 113632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 110292
|
|
|
|
| |
llvm-svn: 108787
|
|
|
|
|
|
|
|
| |
out of the AsmPrinter directory into libarm. Now the
ARM InstPrinters depend jsut on the MC stuff, not on vmcore
or codegen.
llvm-svn: 108783
|
|
|
|
|
|
| |
-enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.
llvm-svn: 108465
|
|
|
|
|
|
|
| |
instructions use different values (e.g., 2-byte or 4-byte alignment).
Also fix ARMInstPrinter to print these alignments as bits instead of bytes.
llvm-svn: 108386
|
|
|
|
|
|
| |
avoid replicated code.
llvm-svn: 108227
|
|
|
|
| |
llvm-svn: 108130
|
|
|
|
|
|
| |
consistency with other instructions that have lists of register operands.
llvm-svn: 107944
|
|
|
|
| |
llvm-svn: 107701
|
|
|
|
|
|
|
| |
that it checks the immediate values, not just the instructions opcodes.
Radar 8110263.
llvm-svn: 107487
|
|
|
|
|
|
|
|
|
|
|
| |
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: 104899
|
|
|
|
| |
llvm-svn: 104891
|
|
|
|
|
|
|
| |
should fall through to the 'H' case, but instead 'Q' was falling through to 'R'
so that it would do the wrong thing for a big-endian ARM target.
llvm-svn: 104883
|
|
|
|
| |
llvm-svn: 104573
|
|
|
|
|
|
| |
from ARMRegisterInfo.h
llvm-svn: 104508
|
|
|
|
| |
llvm-svn: 103576
|
|
|
|
|
|
|
| |
to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is
the opposite, for future use by dragonegg.
llvm-svn: 103495
|
|
|
|
| |
llvm-svn: 102373
|
|
|
|
| |
llvm-svn: 101640
|
|
|
|
|
|
|
|
|
|
| |
case. Also, the 0xFF hex literal involved in the shift for ESize64 should be
suffixed "ul" to preserve the shift result.
Implemented printHex*ImmOperand() by copying from ARMAsmPrinter.cpp and added a
test case for DisassembleN1RegModImmFrm()/printHex64ImmOperand().
llvm-svn: 101557
|
|
|
|
|
|
|
|
| |
printAddrMode2OffsetOperand(),
this patch removes the assert() from printAddrMode3OffsetOperand() and adds a test case.
llvm-svn: 101529
|
|
|
|
|
|
|
|
|
| |
considered legal instructions.
Refs: A8.6.51 LDC, LDC2 (immediate) -- page A8-107, A8.6.58 LDR (immediate, ARM)
-- page A8-121, and A8.6.194 STR (immediate, ARM) -- page A8-395.
llvm-svn: 101524
|
|
|
|
| |
llvm-svn: 101334
|