OSDN Git Service

[ARM64] SXTW/UXTW are only valid aliases for 32-bit operations.
authorBradley Smith <bradley.smith@arm.com>
Wed, 9 Apr 2014 14:44:22 +0000 (14:44 +0000)
committerBradley Smith <bradley.smith@arm.com>
Wed, 9 Apr 2014 14:44:22 +0000 (14:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205890 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM64/InstPrinter/ARM64InstPrinter.cpp
test/MC/Disassembler/ARM64/canonical-form.txt

index f702522..749cb52 100644 (file)
@@ -96,7 +96,9 @@ void ARM64InstPrinter::printInst(const MCInst *MI, raw_ostream &O,
         AsmMnemonic = IsSigned ? "sxth" : "uxth";
         break;
       case 31:
-        AsmMnemonic = IsSigned ? "sxtw" : "uxtw";
+        // *xtw is only valid for 64-bit operations.
+        if (Opcode == ARM64::SBFMXri || Opcode == ARM64::UBFMXri)
+          AsmMnemonic = IsSigned ? "sxtw" : "uxtw";
         break;
       }
 
index 80c032d..09467a3 100644 (file)
@@ -15,3 +15,7 @@
 0x1f 0x00 0x00 0x11
 
 # CHECK: mov wsp, w0
+
+0x00 0x7c 0x00 0x13
+
+# CHECK: asr   w0, w0, #0