//
// PowerPC instruction formats
-class I<bits<6> opcode, bit ppc64, bit vmx, dag OL, string asmstr>
- : Instruction {
+class I<bits<6> opcode, dag OL, string asmstr> : Instruction {
field bits<32> Inst;
- bit PPC64 = ppc64;
- bit VMX = vmx;
+ bit PPC64 = 0; // Default value, override with isPPC64
+ bit VMX = 0; // Default value, override with isVMX
let Name = "";
let Namespace = "PPC";
// 1.7.1 I-Form
class IForm<bits<6> opcode, bit aa, bit lk, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<24> LI;
let Inst{6-29} = LI;
}
// 1.7.2 B-Form
-class BForm<bits<6> opcode, bit aa, bit lk,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+class BForm<bits<6> opcode, bit aa, bit lk, dag OL, string asmstr>
+ : I<opcode, OL, asmstr> {
bits<5> BO;
bits<3> CRNum;
bits<2> BICode;
}
// 1.7.4 D-Form
-class DForm_base<bits<6> opcode, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+class DForm_base<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr>{
bits<5> A;
bits<5> B;
bits<16> C;
let Inst{16-31} = C;
}
-class DForm_1<bits<6> opcode, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+class DForm_1<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<5> A;
bits<16> C;
bits<5> B;
: DForm_base<opcode, OL, asmstr>;
class DForm_2_r0<bits<6> opcode, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<5> A;
bits<16> B;
class DForm_3<bits<6> opcode, dag OL, string asmstr>
: DForm_1<opcode, OL, asmstr>;
-class DForm_4<bits<6> opcode, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+class DForm_4<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<5> B;
bits<5> A;
bits<16> C;
let C = 0;
}
-class DForm_5<bits<6> opcode, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+class DForm_5<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<3> BF;
bits<1> L;
bits<5> RA;
// 1.7.5 DS-Form
class DSForm_1<bits<6> opcode, bits<2> xo, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<5> RST;
bits<14> DS;
bits<5> RA;
// 1.7.6 X-Form
class XForm_base_r3xo<bits<6> opcode, bits<10> xo, bit rc,
- dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<5> RST;
bits<5> A;
bits<5> B;
// when code is emitted.
class XForm_base_r3xo_swapped
<bits<6> opcode, bits<10> xo, bit rc, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<5> A;
bits<5> RST;
bits<5> B;
}
class XForm_16<bits<6> opcode, bits<10> xo, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<3> BF;
bits<1> L;
bits<5> RA;
}
class XForm_17<bits<6> opcode, bits<10> xo, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<3> BF;
bits<5> FRA;
bits<5> FRB;
// 1.7.7 XL-Form
class XLForm_1<bits<6> opcode, bits<10> xo, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<3> CRD;
bits<2> CRDb;
bits<3> CRA;
}
class XLForm_2<bits<6> opcode, bits<10> xo, bit lk,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+ dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<5> BO;
bits<5> BI;
bits<2> BH;
}
class XLForm_3<bits<6> opcode, bits<10> xo, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<3> BF;
bits<3> BFA;
// 1.7.8 XFX-Form
class XFXForm_1<bits<6> opcode, bits<10> xo, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<5> RT;
bits<10> SPR;
let SPR = spr;
}
-class XFXForm_3<bits<6> opcode, bits<10> xo,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+class XFXForm_3<bits<6> opcode, bits<10> xo, dag OL, string asmstr>
+ : I<opcode, OL, asmstr> {
bits<5> RT;
let Inst{6-10} = RT;
}
class XFXForm_5<bits<6> opcode, bit mfcrf, bits<10> xo,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+ dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<8> FXM;
bits<5> ST;
}
// 1.7.10 XS-Form
-class XSForm_1<bits<6> opcode, bits<9> xo, bit rc,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+class XSForm_1<bits<6> opcode, bits<9> xo, bit rc, dag OL, string asmstr>
+ : I<opcode, OL, asmstr> {
bits<5> RS;
bits<5> A;
bits<6> SH;
// 1.7.11 XO-Form
class XOForm_1<bits<6> opcode, bits<9> xo, bit oe, bit rc,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+ dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<5> RT;
bits<5> RA;
bits<5> RB;
// 1.7.12 A-Form
class AForm_1<bits<6> opcode, bits<5> xo, bit rc, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<5> FRT;
bits<5> FRA;
bits<5> FRC;
// 1.7.13 M-Form
class MForm_1<bits<6> opcode, bit rc, dag OL, string asmstr>
- : I<opcode, 0, 0, OL, asmstr> {
+ : I<opcode, OL, asmstr> {
bits<5> RA;
bits<5> RS;
bits<5> RB;
// 1.7.14 MD-Form
class MDForm_1<bits<6> opcode, bits<3> xo, bit rc,
- dag OL, string asmstr> : I<opcode, 0, 0, OL, asmstr> {
+ dag OL, string asmstr> : I<opcode, OL, asmstr> {
bits<5> RS;
bits<5> RA;
bits<6> SH;
//===----------------------------------------------------------------------===//
-class Pseudo<dag OL, string asmstr> : I<0, 0, 0, OL, asmstr> {
+class Pseudo<dag OL, string asmstr> : I<0, OL, asmstr> {
let PPC64 = 0;
let VMX = 0;