[llvm-commits] [llvm] r118730 - in /llvm/trunk/lib/Target/ARM: ARMInstrFormats.td ARMInstrInfo.td

Jim Grosbach grosbach at apple.com
Wed Nov 10 15:12:48 PST 2010


Author: grosbach
Date: Wed Nov 10 17:12:48 2010
New Revision: 118730

URL: http://llvm.org/viewvc/llvm-project?rev=118730&view=rev
Log:
Fix ARM encoding of LDM+Return instruction.

Modified:
    llvm/trunk/lib/Target/ARM/ARMInstrFormats.td
    llvm/trunk/lib/Target/ARM/ARMInstrInfo.td

Modified: llvm/trunk/lib/Target/ARM/ARMInstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrFormats.td?rev=118730&r1=118729&r2=118730&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrFormats.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrFormats.td Wed Nov 10 17:12:48 2010
@@ -941,9 +941,11 @@
   : XI<oops, iops, AddrMode4, Size4Bytes, im, f, itin,
        asm, cstr, pattern> {
   bits<16> dsts;
-  let Inst{20}    = 1; // L bit
-  let Inst{22}    = 0; // S bit
+  bits<4> Rn;
   let Inst{27-25} = 0b100;
+  let Inst{22}    = 0; // S bit
+  let Inst{20}    = 1; // L bit
+  let Inst{19-16} = Rn;
   let Inst{15-0}  = dsts;
 }
 class AXI4st<dag oops, dag iops, IndexMode im, Format f, InstrItinClass itin,

Modified: llvm/trunk/lib/Target/ARM/ARMInstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrInfo.td?rev=118730&r1=118729&r2=118730&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrInfo.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrInfo.td Wed Nov 10 17:12:48 2010
@@ -1183,7 +1183,12 @@
                                         reglist:$dsts, variable_ops),
                        IndexModeUpd, LdStMulFrm, IIC_iLoad_mBr,
                        "ldm${mode}${p}\t$Rn!, $dsts",
-                       "$Rn = $wb", []>;
+                       "$Rn = $wb", []> {
+  bits<4> p;
+  let Inst{31-28} = p;
+  let Inst{24-23} = 0b01;
+  let Inst{21}    = 1;
+}
 
 // On non-Darwin platforms R9 is callee-saved.
 let isCall = 1,





More information about the llvm-commits mailing list