implement SRL and MUL
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 11 Sep 2006 19:24:19 +0000 (19:24 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 11 Sep 2006 19:24:19 +0000 (19:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30262 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td

index 8e2173b2d62d3ab7506265b4094da779d33eec10..ecbe48b4d063868783ca9f7a59c41bc9edf1a255 100644 (file)
@@ -129,6 +129,11 @@ def SRA : InstARM<(ops IntRegs:$dst, IntRegs:$a, IntRegs:$b),
                       "mov $dst, $a, asr $b",
                       [(set IntRegs:$dst, (sra IntRegs:$a, IntRegs:$b))]>;
 
+def SRL : InstARM<(ops IntRegs:$dst, IntRegs:$a, IntRegs:$b),
+                      "mov $dst, $a, lsr $b",
+                      [(set IntRegs:$dst, (srl IntRegs:$a, IntRegs:$b))]>;
+
+
 def EOR     : InstARM<(ops IntRegs:$dst, IntRegs:$a, op_addr_mode1:$b),
                        "eor $dst, $a, $b",
                       [(set IntRegs:$dst, (xor IntRegs:$a, addr_mode1:$b))]>;
@@ -145,6 +150,10 @@ let isTwoAddress = 1 in {
                           IntRegs:$false, imm:$cc))]>;
 }
 
+def MUL     : InstARM<(ops IntRegs:$dst, IntRegs:$a, IntRegs:$b),
+                       "mul $dst, $a, $b",
+                      [(set IntRegs:$dst, (mul IntRegs:$a, IntRegs:$b))]>;
+
 def bcond      : InstARM<(ops brtarget:$dst, CCOp:$cc),
                         "b$cc $dst",
                         [(armbr bb:$dst, imm:$cc)]>;