[llvm-commits] [llvm] r120849 - /llvm/trunk/lib/Target/ARM/ARMInstrThumb.td

Jim Grosbach grosbach at apple.com
Fri Dec 3 14:33:42 PST 2010


Author: grosbach
Date: Fri Dec  3 16:33:42 2010
New Revision: 120849

URL: http://llvm.org/viewvc/llvm-project?rev=120849&view=rev
Log:
Remove incorrect BL target encoding (it's similar to, but not the same as the
ARM instruction). Add encoding of bits 13 and 11.

Modified:
    llvm/trunk/lib/Target/ARM/ARMInstrThumb.td

Modified: llvm/trunk/lib/Target/ARM/ARMInstrThumb.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrThumb.td?rev=120849&r1=120848&r2=120849&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrThumb.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrThumb.td Fri Dec  3 16:33:42 2010
@@ -366,16 +366,12 @@
   Uses = [SP] in {
   // Also used for Thumb2
   def tBL  : TIx2<0b11110, 0b11, 1,
-                  (outs), (ins bltarget:$func, variable_ops), IIC_Br,
+                  (outs), (ins i32imm:$func, variable_ops), IIC_Br,
                   "bl\t$func",
                   [(ARMtcall tglobaladdr:$func)]>,
              Requires<[IsThumb, IsNotDarwin]> {
-    bits<24> func;
-    let Inst{26}    = func{23};
-    let Inst{25-16} = func{20-11};
-    let Inst{13}    = func{22};
-    let Inst{11}    = func{21};
-    let Inst{10-0}  = func{10-0};
+    let Inst{13} = 1;
+    let Inst{11} = 1;
   }
 
   // ARMv5T and above, also used for Thumb2
@@ -383,7 +379,10 @@
                    (outs), (ins i32imm:$func, variable_ops), IIC_Br,
                    "blx\t$func",
                    [(ARMcall tglobaladdr:$func)]>,
-              Requires<[IsThumb, HasV5T, IsNotDarwin]>;
+              Requires<[IsThumb, HasV5T, IsNotDarwin]> {
+    let Inst{13} = 1;
+    let Inst{11} = 1;
+  }
 
   // Also used for Thumb2
   def tBLXr : TI<(outs), (ins GPR:$func, variable_ops), IIC_Br,
@@ -413,16 +412,12 @@
   Uses = [R7, SP] in {
   // Also used for Thumb2
   def tBLr9 : TIx2<0b11110, 0b11, 1,
-                   (outs), (ins pred:$p, bltarget:$func, variable_ops), IIC_Br,
+                   (outs), (ins pred:$p, i32imm:$func, variable_ops), IIC_Br,
                    "bl${p}\t$func",
                    [(ARMtcall tglobaladdr:$func)]>,
               Requires<[IsThumb, IsDarwin]> {
-    bits<24> func;
-    let Inst{26}    = func{23};
-    let Inst{25-16} = func{20-11};
-    let Inst{13}    = func{22};
-    let Inst{11}    = func{21};
-    let Inst{10-0}  = func{10-0};
+    let Inst{13} = 1;
+    let Inst{11} = 1;
   }
 
   // ARMv5T and above, also used for Thumb2
@@ -430,7 +425,10 @@
                       (outs), (ins pred:$p, i32imm:$func, variable_ops), IIC_Br,
                       "blx${p}\t$func",
                       [(ARMcall tglobaladdr:$func)]>,
-                 Requires<[IsThumb, HasV5T, IsDarwin]>;
+                 Requires<[IsThumb, HasV5T, IsDarwin]> {
+    let Inst{13} = 1;
+    let Inst{11} = 1;
+  }
 
   // Also used for Thumb2
   def tBLXr_r9 : TI<(outs), (ins pred:$p, GPR:$func, variable_ops), IIC_Br,





More information about the llvm-commits mailing list