ARM pre-v6 alias for 'nop' to 'mov r0, r0'
authorJim Grosbach <grosbach@apple.com>
Wed, 7 Mar 2012 00:52:41 +0000 (00:52 +0000)
committerJim Grosbach <grosbach@apple.com>
Wed, 7 Mar 2012 00:52:41 +0000 (00:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152185 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td

index 0b1406e657aa35f1a9fb8798aec3056dff314b1c..e2160244f4f8adea90efd28710c666a0427bf4ed 100644 (file)
@@ -5252,6 +5252,10 @@ def : ARMInstAlias<"mul${s}${p} $Rn, $Rm",
 def : ARMInstAlias<"neg${s}${p} $Rd, $Rm",
                    (RSBri GPR:$Rd, GPR:$Rm, 0, pred:$p, cc_out:$s)>;
 
+// Pre-v6, 'mov r0, r0' was used as a NOP encoding.
+def : InstAlias<"nop${p}", (MOVr R0, R0, pred:$p, zero_reg)>,
+         Requires<[IsARM, NoV6]>;
+
 // 'it' blocks in ARM mode just validate the predicates. The IT itself
 // is discarded.
 def ITasm : ARMAsmPseudo<"it$mask $cc", (ins it_pred:$cc, it_mask:$mask)>;