[llvm] r205890 - [ARM64] SXTW/UXTW are only valid aliases for 32-bit operations.

Bradley Smith bradley.smith at arm.com
Wed Apr 9 07:44:22 PDT 2014


Author: brasmi01
Date: Wed Apr  9 09:44:22 2014
New Revision: 205890

URL: http://llvm.org/viewvc/llvm-project?rev=205890&view=rev
Log:
[ARM64] SXTW/UXTW are only valid aliases for 32-bit operations.

Modified:
    llvm/trunk/lib/Target/ARM64/InstPrinter/ARM64InstPrinter.cpp
    llvm/trunk/test/MC/Disassembler/ARM64/canonical-form.txt

Modified: llvm/trunk/lib/Target/ARM64/InstPrinter/ARM64InstPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM64/InstPrinter/ARM64InstPrinter.cpp?rev=205890&r1=205889&r2=205890&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM64/InstPrinter/ARM64InstPrinter.cpp (original)
+++ llvm/trunk/lib/Target/ARM64/InstPrinter/ARM64InstPrinter.cpp Wed Apr  9 09:44:22 2014
@@ -96,7 +96,9 @@ void ARM64InstPrinter::printInst(const M
         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;
       }
 

Modified: llvm/trunk/test/MC/Disassembler/ARM64/canonical-form.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/ARM64/canonical-form.txt?rev=205890&r1=205889&r2=205890&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/ARM64/canonical-form.txt (original)
+++ llvm/trunk/test/MC/Disassembler/ARM64/canonical-form.txt Wed Apr  9 09:44:22 2014
@@ -15,3 +15,7 @@
 0x1f 0x00 0x00 0x11
 
 # CHECK: mov wsp, w0
+
+0x00 0x7c 0x00 0x13
+
+# CHECK: asr	w0, w0, #0





More information about the llvm-commits mailing list