diff options
author | Jim Grosbach <grosbach@apple.com> | 2011-12-08 22:51:25 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2011-12-08 22:51:25 +0000 |
commit | 8cc83fa1b75bc3f520e30478e165a51f1f30cf51 (patch) | |
tree | 0d239a450294be43374ffbad8ad7f030d3c932fc | |
parent | 0a7625d6618d21b065747cd53989c3565d460300 (diff) | |
download | bcm5719-llvm-8cc83fa1b75bc3f520e30478e165a51f1f30cf51.tar.gz bcm5719-llvm-8cc83fa1b75bc3f520e30478e165a51f1f30cf51.zip |
ARM convenience aliases for VSQRT.
llvm-svn: 146201
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrVFP.td | 6 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrVFP.td b/llvm/lib/Target/ARM/ARMInstrVFP.td index 7ab2b88a1e1..828b9a2bb34 100644 --- a/llvm/lib/Target/ARM/ARMInstrVFP.td +++ b/llvm/lib/Target/ARM/ARMInstrVFP.td @@ -1168,9 +1168,15 @@ def : MnemonicAlias<"flds", "vldr">; 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)>; diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 6077c94c672..aa65e747e41 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -4296,7 +4296,7 @@ StringRef ARMAsmParser::splitMnemonic(StringRef Mnemonic, 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; |