[llvm-commits] [llvm] r146201 - in /llvm/trunk/lib/Target/ARM: ARMInstrVFP.td AsmParser/ARMAsmParser.cpp

Jim Grosbach grosbach at apple.com
Thu Dec 8 14:51:25 PST 2011


Author: grosbach
Date: Thu Dec  8 16:51:25 2011
New Revision: 146201

URL: http://llvm.org/viewvc/llvm-project?rev=146201&view=rev
Log:
ARM convenience aliases for VSQRT.

Modified:
    llvm/trunk/lib/Target/ARM/ARMInstrVFP.td
    llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMInstrVFP.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrVFP.td?rev=146201&r1=146200&r2=146201&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrVFP.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrVFP.td Thu Dec  8 16:51:25 2011
@@ -1168,9 +1168,15 @@
 def : MnemonicAlias<"fldd", "vldr">;
 def : MnemonicAlias<"fmrs", "vmov">;
 def : MnemonicAlias<"fmsr", "vmov">;
+def : MnemonicAlias<"fsqrts", "vsqrt">;
+def : MnemonicAlias<"fsqrtd", "vsqrt">;
 
 def : VFP2InstAlias<"fmstat${p}", (FMSTAT pred:$p)>;
 
+// No need for the size suffix on VSQRT. It's implied by the register classes.
+def : VFP2InstAlias<"vsqrt${p} $Sd, $Sm", (VSQRTS SPR:$Sd, SPR:$Sm, pred:$p)>;
+def : VFP2InstAlias<"vsqrt${p} $Dd, $Dm", (VSQRTD DPR:$Dd, DPR:$Dm, pred:$p)>;
+
 // VLDR/VSTR accept an optional type suffix.
 def : VFP2InstAlias<"vldr${p}.32 $Sd, $addr",
                     (VLDRS SPR:$Sd, addrmode5:$addr, pred:$p)>;

Modified: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp?rev=146201&r1=146200&r2=146201&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Thu Dec  8 16:51:25 2011
@@ -4296,7 +4296,7 @@
         Mnemonic == "vcls" || Mnemonic == "vmls" || Mnemonic == "vmrs" ||
         Mnemonic == "vnmls" || Mnemonic == "vqabs" || Mnemonic == "vrecps" ||
         Mnemonic == "vrsqrts" || Mnemonic == "srs" || Mnemonic == "flds" ||
-        Mnemonic == "fmrs" ||
+        Mnemonic == "fmrs" || Mnemonic == "fsqrts" ||
         (Mnemonic == "movs" && isThumb()))) {
     Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 1);
     CarrySetting = true;





More information about the llvm-commits mailing list