summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2004-08-21 05:56:39 +0000
committerNate Begeman <natebegeman@mac.com>2004-08-21 05:56:39 +0000
commit3ad3ad4f3f85ef3a2e23cdfab47f8834ccfe7a58 (patch)
tree7d7ed95b45b5ad82a0bd120afeef7e41d296539e /llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
parent2a86fab933abd7f0a9dd3d5c8822db11b8873a23 (diff)
downloadbcm5719-llvm-3ad3ad4f3f85ef3a2e23cdfab47f8834ccfe7a58.tar.gz
bcm5719-llvm-3ad3ad4f3f85ef3a2e23cdfab47f8834ccfe7a58.zip
Move XForm instructions over to the auto-generated asm writer
llvm-svn: 15962
Diffstat (limited to 'llvm/lib/Target/PowerPC/PowerPCInstrFormats.td')
-rw-r--r--llvm/lib/Target/PowerPC/PowerPCInstrFormats.td59
1 files changed, 34 insertions, 25 deletions
diff --git a/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td b/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
index c0930e79fe3..4af8437dae5 100644
--- a/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
+++ b/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
@@ -252,8 +252,8 @@ class DSForm_2<string name, bits<6> opcode, bits<2> xo, bit ppc64, bit vmx>
: DSForm_1<name, opcode, xo, ppc64, vmx>;
// 1.7.6 X-Form
-class XForm_base_r3xo<string name, bits<6> opcode, bits<10> xo, bit rc,
- bit ppc64, bit vmx> : I<name, opcode, ppc64, vmx> {
+class XForm_base_r3xo<bits<6> opcode, bits<10> xo, bit rc, bit ppc64, bit vmx,
+ dag OL, string asmstr> : I<"", opcode, ppc64, vmx> {
field bits<5> RST;
field bits<5> A;
field bits<5> B;
@@ -270,14 +270,18 @@ class XForm_base_r3xo<string name, bits<6> opcode, bits<10> xo, bit rc,
let Inst{16-20} = B;
let Inst{21-30} = xo;
let Inst{31} = rc;
+ let OperandList = OL;
+ let AsmString = asmstr;
}
-class XForm_1<string name, bits<6> opcode, bits<10> xo, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, 0, ppc64, vmx>;
+class XForm_1<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr>;
-class XForm_5<string name, bits<6> opcode, bits<10> xo, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, 0, ppc64, vmx> {
+class XForm_5<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr> {
let ArgCount = 1;
let Arg1Type = 0;
let Arg2Type = 0;
@@ -285,22 +289,23 @@ class XForm_5<string name, bits<6> opcode, bits<10> xo, bit ppc64,
let B = 0;
}
-class XForm_6<string name, bits<6> opcode, bits<10> xo, bit rc, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, rc, ppc64, vmx>;
-
-class XForm_7<string name, bits<6> opcode, bits<10> xo, bit ppc64, bit vmx>
- : XForm_base_r3xo<name, opcode, xo, 1, ppc64, vmx>;
+class XForm_6<bits<6> opcode, bits<10> xo, bit rc, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, rc, ppc64, vmx, OL, asmstr>;
-class XForm_8<string name, bits<6> opcode, bits<10> xo, bit ppc64, bit vmx>
- : XForm_base_r3xo<name, opcode, xo, 0, ppc64, vmx>;
+class XForm_8<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr>;
-class XForm_10<string name, bits<6> opcode, bits<10> xo, bit rc, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, rc, ppc64, vmx> {
+class XForm_10<bits<6> opcode, bits<10> xo, bit rc, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, rc, ppc64, vmx, OL, asmstr> {
let Arg2Type = Imm5.Value;
}
-class XForm_11<string name, bits<6> opcode, bits<10> xo, bit rc, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, rc, ppc64, vmx> {
+class XForm_11<bits<6> opcode, bits<10> xo, bit rc, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, rc, ppc64, vmx, OL, asmstr> {
let ArgCount = 2;
let Arg2Type = 0;
let B = 0;
@@ -355,14 +360,16 @@ class XForm_17<string name, bits<6> opcode, bits<10> xo, bit ppc64, bit vmx>
let Inst{31} = 0;
}
-class XForm_25<string name, bits<6> opcode, bits<10> xo, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, 0, ppc64, vmx> {
+class XForm_25<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr> {
let Arg0Type = Fpr.Value;
let Arg1Type = Gpr0.Value;
}
-class XForm_26<string name, bits<6> opcode, bits<10> xo, bit rc, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, rc, ppc64, vmx> {
+class XForm_26<bits<6> opcode, bits<10> xo, bit rc, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, rc, ppc64, vmx, OL, asmstr> {
let ArgCount = 2;
let Arg0Type = Fpr.Value;
let Arg1Type = Fpr.Value;
@@ -370,15 +377,17 @@ class XForm_26<string name, bits<6> opcode, bits<10> xo, bit rc, bit ppc64,
let A = 0;
}
-class XForm_28<string name, bits<6> opcode, bits<10> xo, bit ppc64,
- bit vmx> : XForm_base_r3xo<name, opcode, xo, 0, ppc64, vmx> {
+class XForm_28<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr> {
let Arg0Type = Fpr.Value;
let Arg1Type = Gpr0.Value;
}
// 1.7.7 XL-Form
-class XLForm_1<string name, bits<6> opcode, bits<10> xo, bit ppc64, bit vmx>
- : XForm_base_r3xo<name, opcode, xo, 0, ppc64, vmx> {
+class XLForm_1<bits<6> opcode, bits<10> xo, bit ppc64, bit vmx,
+ dag OL, string asmstr>
+ : XForm_base_r3xo<opcode, xo, 0, ppc64, vmx, OL, asmstr> {
let Arg0Type = Imm5.Value;
let Arg1Type = Imm5.Value;
let Arg2Type = Imm5.Value;
OpenPOWER on IntegriCloud