diff options
| author | Bob Wilson <bob.wilson@apple.com> | 2010-07-02 17:23:44 +0000 |
|---|---|---|
| committer | Bob Wilson <bob.wilson@apple.com> | 2010-07-02 17:23:44 +0000 |
| commit | 771d04b9694df21f131a9239e252d4d82cce3d2b (patch) | |
| tree | da2273b7381dbe3a859943fc8f90a6541a2e655f /llvm/lib | |
| parent | 05dac7d154670bfbb336f0c24ba58a6f29496683 (diff) | |
| download | bcm5719-llvm-771d04b9694df21f131a9239e252d4d82cce3d2b.tar.gz bcm5719-llvm-771d04b9694df21f131a9239e252d4d82cce3d2b.zip | |
Fix incorrect asm-printing of some NEON immediates. Fix weak testcase so
that it checks the immediate values, not just the instructions opcodes.
Radar 8110263.
llvm-svn: 107487
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp index e1246153114..df87e70ece7 100644 --- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp @@ -1044,8 +1044,8 @@ void ARMAsmPrinter::printNEONModImmOperand(const MachineInstr *MI, int OpNum, Val = Imm8 << (8 * ByteNum); } else if ((OpCmode & 0xe) == 0xc) { // 32-bit vector elements, one byte with low bits set - unsigned ByteNum = (OpCmode & 0x1); - Val = (Imm8 << (8 * ByteNum)) | (0xffff >> (8 * (1 - ByteNum))); + unsigned ByteNum = 1 + (OpCmode & 0x1); + Val = (Imm8 << (8 * ByteNum)) | (0xffff >> (8 * (2 - ByteNum))); } else if (OpCmode == 0x1e) { // 64-bit vector elements for (unsigned ByteNum = 0; ByteNum < 8; ++ByteNum) { diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp index b59852ebfcb..b4abb658112 100644 --- a/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp @@ -799,8 +799,8 @@ void ARMInstPrinter::printNEONModImmOperand(const MCInst *MI, unsigned OpNum, Val = Imm8 << (8 * ByteNum); } else if ((OpCmode & 0xe) == 0xc) { // 32-bit vector elements, one byte with low bits set - unsigned ByteNum = (OpCmode & 0x1); - Val = (Imm8 << (8 * ByteNum)) | (0xffff >> (8 * (1 - ByteNum))); + unsigned ByteNum = 1 + (OpCmode & 0x1); + Val = (Imm8 << (8 * ByteNum)) | (0xffff >> (8 * (2 - ByteNum))); } else if (OpCmode == 0x1e) { // 64-bit vector elements for (unsigned ByteNum = 0; ByteNum < 8; ++ByteNum) { |

