[llvm-commits] CVS: llvm/lib/Target/IA64/IA64.td IA64InstrInfo.td IA64RegisterInfo.td

Duraid Madina duraid at octopus.com.au
Wed Dec 21 19:56:15 PST 2005



Changes in directory llvm/lib/Target/IA64:

IA64.td updated: 1.3 -> 1.4
IA64InstrInfo.td updated: 1.30 -> 1.31
IA64RegisterInfo.td updated: 1.11 -> 1.12
---
Log message:

update tablegen files - nothing to see here



---
Diffs of the changes:  (+18 -6)

 IA64.td             |    1 +
 IA64InstrInfo.td    |   19 +++++++++++++++----
 IA64RegisterInfo.td |    4 ++--
 3 files changed, 18 insertions(+), 6 deletions(-)


Index: llvm/lib/Target/IA64/IA64.td
diff -u llvm/lib/Target/IA64/IA64.td:1.3 llvm/lib/Target/IA64/IA64.td:1.4
--- llvm/lib/Target/IA64/IA64.td:1.3	Fri Sep 30 01:42:24 2005
+++ llvm/lib/Target/IA64/IA64.td	Wed Dec 21 21:56:03 2005
@@ -47,6 +47,7 @@
 
 //  r1, // global data pointer (GP)  - XXX NOT callee saved, we do it ourselves
 //  r12, // memory stack pointer (SP)- XXX NOT callee saved, we do it ourselves
+//  rp, // return branch register (rp/b0) - we do this ourselves
   // **** r13 (thread pointer) we do not touch, ever. it's not here. ****//
   //r15, // our frame pointer (FP)
   


Index: llvm/lib/Target/IA64/IA64InstrInfo.td
diff -u llvm/lib/Target/IA64/IA64InstrInfo.td:1.30 llvm/lib/Target/IA64/IA64InstrInfo.td:1.31
--- llvm/lib/Target/IA64/IA64InstrInfo.td:1.30	Sun Dec  4 20:34:29 2005
+++ llvm/lib/Target/IA64/IA64InstrInfo.td	Wed Dec 21 21:56:03 2005
@@ -23,7 +23,7 @@
 def s14imm  : Operand<i64> {
   let PrintMethod = "printS14ImmOperand";
 }
-def s22imm  : Operand<i32> {
+def s22imm  : Operand<i64> {
   let PrintMethod = "printS22ImmOperand";
 }
 def u64imm  : Operand<i64> {
@@ -116,7 +116,12 @@
 def ADDL_GA : AForm_DAG<0x03, 0x0b, (ops GR:$dst, GR:$src1, globaladdress:$imm),
            "addl $dst = $imm, $src1;;",
 	   []>;
-  
+
+// hmm 
+def ADDL_EA : AForm_DAG<0x03, 0x0b, (ops GR:$dst, GR:$src1, calltarget:$imm),
+           "addl $dst = $imm, $src1;;",
+	   []>;
+ 
 def SUB  : AForm_DAG<0x03, 0x0b, (ops GR:$dst, GR:$src1, GR:$src2),
            "sub $dst = $src1, $src2;;",
 	   [(set GR:$dst, (sub GR:$src1, GR:$src2))]>;
@@ -639,7 +644,7 @@
     "($qp) br.cond.sptk $dst;;">;
 }
 
-let isCall = 1, isTerminator = 1, isBranch = 1, 
+let isCall = 1, /* isTerminator = 1, isBranch = 1, */
   Uses = [out0,out1,out2,out3,out4,out5,out6,out7],
 // all calls clobber non-callee-saved registers, and for now, they are these:
   Defs = [r2,r3,r8,r9,r10,r11,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,
@@ -659,8 +664,14 @@
   def BRCALL: RawForm<0x03, 0xb0, (ops calltarget:$dst),
   "br.call.sptk rp = $dst;;">;       // FIXME: teach llvm about branch regs?
 // new daggy stuff!  
-  def BRCALL_IPREL : RawForm<0x03, 0xb0, (ops calltarget:$dst, variable_ops),
+
+// calls a globaladdress
+  def BRCALL_IPREL_GA : RawForm<0x03, 0xb0, (ops calltarget:$dst, variable_ops),
+  "br.call.sptk rp = $dst;;">;       // FIXME: teach llvm about branch regs?
+// calls an externalsymbol
+  def BRCALL_IPREL_ES : RawForm<0x03, 0xb0, (ops calltarget:$dst, variable_ops),
   "br.call.sptk rp = $dst;;">;       // FIXME: teach llvm about branch regs?
+// calls through a function descriptor
   def BRCALL_INDIRECT : RawForm<0x03, 0xb0, (ops GR:$branchreg, variable_ops),
   "br.call.sptk rp = $branchreg;;">; // FIXME: teach llvm about branch regs?
   def BRLCOND_CALL : RawForm<0x03, 0xb0, (ops PR:$qp, i64imm:$dst),


Index: llvm/lib/Target/IA64/IA64RegisterInfo.td
diff -u llvm/lib/Target/IA64/IA64RegisterInfo.td:1.11 llvm/lib/Target/IA64/IA64RegisterInfo.td:1.12
--- llvm/lib/Target/IA64/IA64RegisterInfo.td:1.11	Wed Nov 30 22:51:06 2005
+++ llvm/lib/Target/IA64/IA64RegisterInfo.td	Wed Dec 21 21:56:03 2005
@@ -235,8 +235,8 @@
 def GR : RegisterClass<"IA64", [i64], 64, 
        [
        
-//FIXME!: for readability, we don't want the out registers to be the first
-//        ones allocated
+//FIXME!: for both readability and performance, we don't want the out
+//        registers to be the first ones allocated
 
         out7, out6, out5, out4, out3, out2, out1, out0,
         r3,  r8,  r9,  r10, r11, r14,






More information about the llvm-commits mailing list