diff options
author | Chris Lattner <sabre@nondot.org> | 2005-04-19 05:15:18 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-04-19 05:15:18 +0000 |
commit | 883059fb583c9bd2d88d31d20e5615a1cf1e979a (patch) | |
tree | 91140305f444ce5c98b096929cff279aaeff2061 /lib/Target/PowerPC/PPCInstrFormats.td | |
parent | 97a2d42999e43e440e48f65ba9560ef97be36d23 (diff) | |
download | llvm-883059fb583c9bd2d88d31d20e5615a1cf1e979a.tar.gz llvm-883059fb583c9bd2d88d31d20e5615a1cf1e979a.tar.bz2 llvm-883059fb583c9bd2d88d31d20e5615a1cf1e979a.tar.xz |
Convert the XForm instrs and XSForm instruction over to use isDOT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21351 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrFormats.td')
-rw-r--r-- | lib/Target/PowerPC/PPCInstrFormats.td | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td index f5134dfd76..0a68dd44ea 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -194,51 +194,55 @@ class DSForm_2<bits<6> opcode, bits<2> xo, dag OL, string asmstr> : DSForm_1<opcode, xo, OL, asmstr>; // 1.7.6 X-Form -class XForm_base_r3xo<bits<6> opcode, bits<10> xo, bit rc, +class XForm_base_r3xo<bits<6> opcode, bits<10> xo, dag OL, string asmstr> : I<opcode, OL, asmstr> { bits<5> RST; bits<5> A; bits<5> B; + bit RC = 0; // set by isDOT + let Inst{6-10} = RST; let Inst{11-15} = A; let Inst{16-20} = B; let Inst{21-30} = xo; - let Inst{31} = rc; + let Inst{31} = RC; } // This is the same as XForm_base_r3xo, but the first two operands are swapped // when code is emitted. class XForm_base_r3xo_swapped - <bits<6> opcode, bits<10> xo, bit rc, dag OL, string asmstr> + <bits<6> opcode, bits<10> xo, dag OL, string asmstr> : I<opcode, OL, asmstr> { bits<5> A; bits<5> RST; bits<5> B; + bit RC = 0; // set by isDOT + let Inst{6-10} = RST; let Inst{11-15} = A; let Inst{16-20} = B; let Inst{21-30} = xo; - let Inst{31} = rc; + let Inst{31} = RC; } class XForm_1<bits<6> opcode, bits<10> xo, dag OL, string asmstr> - : XForm_base_r3xo<opcode, xo, 0, OL, asmstr>; + : XForm_base_r3xo<opcode, xo, OL, asmstr>; -class XForm_6<bits<6> opcode, bits<10> xo, bit rc, dag OL, string asmstr> - : XForm_base_r3xo_swapped<opcode, xo, rc, OL, asmstr>; +class XForm_6<bits<6> opcode, bits<10> xo, dag OL, string asmstr> + : XForm_base_r3xo_swapped<opcode, xo, OL, asmstr>; class XForm_8<bits<6> opcode, bits<10> xo, dag OL, string asmstr> - : XForm_base_r3xo<opcode, xo, 0, OL, asmstr>; + : XForm_base_r3xo<opcode, xo, OL, asmstr>; -class XForm_10<bits<6> opcode, bits<10> xo, bit rc, dag OL, string asmstr> - : XForm_base_r3xo_swapped<opcode, xo, rc, OL, asmstr> { +class XForm_10<bits<6> opcode, bits<10> xo, dag OL, string asmstr> + : XForm_base_r3xo_swapped<opcode, xo, OL, asmstr> { } -class XForm_11<bits<6> opcode, bits<10> xo, bit rc, dag OL, string asmstr> - : XForm_base_r3xo_swapped<opcode, xo, rc, OL, asmstr> { +class XForm_11<bits<6> opcode, bits<10> xo, dag OL, string asmstr> + : XForm_base_r3xo_swapped<opcode, xo, OL, asmstr> { let B = 0; } @@ -278,16 +282,16 @@ class XForm_17<bits<6> opcode, bits<10> xo, dag OL, string asmstr> } class XForm_25<bits<6> opcode, bits<10> xo, dag OL, string asmstr> - : XForm_base_r3xo<opcode, xo, 0, OL, asmstr> { + : XForm_base_r3xo<opcode, xo, OL, asmstr> { } -class XForm_26<bits<6> opcode, bits<10> xo, bit rc, dag OL, string asmstr> - : XForm_base_r3xo<opcode, xo, rc, OL, asmstr> { +class XForm_26<bits<6> opcode, bits<10> xo, dag OL, string asmstr> + : XForm_base_r3xo<opcode, xo, OL, asmstr> { let A = 0; } class XForm_28<bits<6> opcode, bits<10> xo, dag OL, string asmstr> - : XForm_base_r3xo<opcode, xo, 0, OL, asmstr> { + : XForm_base_r3xo<opcode, xo, OL, asmstr> { } // 1.7.7 XL-Form @@ -397,18 +401,20 @@ class XFXForm_7_ext<bits<6> opcode, bits<10> xo, bits<10> spr, } // 1.7.10 XS-Form -class XSForm_1<bits<6> opcode, bits<9> xo, bit rc, dag OL, string asmstr> +class XSForm_1<bits<6> opcode, bits<9> xo, dag OL, string asmstr> : I<opcode, OL, asmstr> { bits<5> RS; bits<5> A; bits<6> SH; + bit RC = 0; // set by isDOT + let Inst{6-10} = RS; let Inst{11-15} = A; let Inst{16-20} = SH{1-5}; let Inst{21-29} = xo; let Inst{30} = SH{0}; - let Inst{31} = rc; + let Inst{31} = RC; } // 1.7.11 XO-Form |