[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp PowerPCInstrFormats.td PowerPCInstrInfo.td

Chris Lattner lattner at cs.uiuc.edu
Sat Aug 14 22:20:29 PDT 2004



Changes in directory llvm/lib/Target/PowerPC:

PPC32AsmPrinter.cpp updated: 1.38 -> 1.39
PowerPCInstrFormats.td updated: 1.12 -> 1.13
PowerPCInstrInfo.td updated: 1.22 -> 1.23
---
Log message:

Convert the DForm_4 over to the asmprintergen


---
Diffs of the changes:  (+29 -9)

Index: llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp
diff -u llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp:1.38 llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp:1.39
--- llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp:1.38	Sat Aug 14 19:31:02 2004
+++ llvm/lib/Target/PowerPC/PPC32AsmPrinter.cpp	Sun Aug 15 00:20:16 2004
@@ -94,6 +94,11 @@
       }
     }
 
+    void printU16ImmOperand(const MachineInstr *MI, unsigned OpNo,
+                            MVT::ValueType VT) {
+      O << (unsigned short)MI->getOperand(OpNo).getImmedValue();
+    }
+
     void printConstantPool(MachineConstantPool *MCP);
     bool runOnMachineFunction(MachineFunction &F);    
     bool doInitialization(Module &M);


Index: llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
diff -u llvm/lib/Target/PowerPC/PowerPCInstrFormats.td:1.12 llvm/lib/Target/PowerPC/PowerPCInstrFormats.td:1.13
--- llvm/lib/Target/PowerPC/PowerPCInstrFormats.td:1.12	Thu Aug 12 21:19:25 2004
+++ llvm/lib/Target/PowerPC/PowerPCInstrFormats.td	Sun Aug 15 00:20:16 2004
@@ -146,9 +146,10 @@
 class DForm_3<string name, bits<6> opcode, bit ppc64, bit vmx> 
   : DForm_1<name, opcode, ppc64, vmx>;
 
-class DForm_4<string name, bits<6> opcode, bit ppc64, bit vmx> 
-  : DForm_base<name, opcode, ppc64, vmx> {
-  let Arg2Type = Zimm16.Value;
+class DForm_4<bits<6> opcode, bit ppc64, bit vmx,
+              dag OL, string asmstr> : DForm_base<"", opcode, ppc64, vmx> {
+  let OperandList = OL;
+  let AsmString = asmstr;
 }
 
 class DForm_4_zero<string name, bits<6> opcode, bit ppc64, bit vmx> 


Index: llvm/lib/Target/PowerPC/PowerPCInstrInfo.td
diff -u llvm/lib/Target/PowerPC/PowerPCInstrInfo.td:1.22 llvm/lib/Target/PowerPC/PowerPCInstrInfo.td:1.23
--- llvm/lib/Target/PowerPC/PowerPCInstrInfo.td:1.22	Sat Aug 14 18:27:29 2004
+++ llvm/lib/Target/PowerPC/PowerPCInstrInfo.td	Sun Aug 15 00:20:16 2004
@@ -22,6 +22,10 @@
   string AsmString = asmstr;
 }
 
+def u16imm  : Operand<i16> {
+  let PrintMethod = "printU16ImmOperand";
+}
+
 
 // Pseudo-instructions:
 def PHI : Pseudo<"PHI">;          // PHI node...
@@ -45,7 +49,9 @@
 def ADDC : XOForm_1<"addc", 31, 10, 0, 0, 0, 0>;
 def ADDE : XOForm_1<"adde", 31, 138, 0, 0, 0, 0>;
 def ADDZE : XOForm_3<"addze", 31, 202, 0, 0, 0, 0>;
-def ANDIo : DForm_4<"andi.",  28, 0, 0>;
+def ANDIo : DForm_4<28, 0, 0,
+                   (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
+                   "andi. $dst, $src1, $src2">;
 def AND  : XForm_6<"and",  31, 28, 0, 0, 0>;
 def ANDC  : XForm_6<"andc",  31, 60, 0, 0, 0>;
 
@@ -139,8 +145,12 @@
 def NEG : XOForm_3<"neg", 31, 104, 0, 0, 0, 0>;
 def NOR  : XForm_6<"nor",  31, 124, 0, 0, 0>;
 def NOP : DForm_4_zero<"nop", 24, 0, 0>;
-def ORI  : DForm_4<"ori",  24, 0, 0>;
-def ORIS : DForm_4<"oris", 25, 0, 0>;
+def ORI  : DForm_4<24, 0, 0,
+                   (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
+                   "ori $dst, $src1, $src2">;
+def ORIS : DForm_4<25, 0, 0,
+                   (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
+                   "oris $dst, $src1, $src2">;
 def OR  : XForm_6<"or",  31, 444, 0, 0, 0>;
 def ORo : XForm_6<"or.", 31, 444, 1, 0, 0>;
 def RLDICL : MDForm_1<"rldicl", 30, 0, 0, 1, 0>;
@@ -181,7 +191,11 @@
 def SUBFC : XOForm_1<"subfc", 31, 8, 0, 0, 0, 0>;
 def SUBFE : XOForm_1<"subfe", 31, 136, 0, 0, 0, 0>;
 def SUBFZE : XOForm_3<"subfze", 31, 200, 0, 0, 0, 0>;
-def XORI  : DForm_4<"xori",  26, 0, 0>;
-def XORIS : DForm_4<"xoris", 27, 0, 0>;
+def XORI  : DForm_4<26, 0, 0,
+                   (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
+                   "xori $dst, $src1, $src2">;
+def XORIS : DForm_4<27, 0, 0,
+                   (ops GPRC:$dst, GPRC:$src1, u16imm:$src2),
+                   "xoris $dst, $src1, $src2">;
 def XOR  : XForm_6<"xor",  31, 316, 0, 0, 0>;
-def MULLI : DForm_2 <"mulli", 7, 0, 0>;
+def MULLI : DForm_2<"mulli", 7, 0, 0>;






More information about the llvm-commits mailing list