diff options
author | Chris Lattner <sabre@nondot.org> | 2005-09-29 23:34:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-09-29 23:34:24 +0000 |
commit | 67ab118a6d97160762c3f4fbb1b28a6ae2a1a968 (patch) | |
tree | b53a7c6ed62d18ff5212d7e303f79312bbaeb727 /lib/Target/PowerPC/PPCInstrFormats.td | |
parent | 237733e9335f4d2bb16a818ab184929e12fae407 (diff) | |
download | llvm-67ab118a6d97160762c3f4fbb1b28a6ae2a1a968.tar.gz llvm-67ab118a6d97160762c3f4fbb1b28a6ae2a1a968.tar.bz2 llvm-67ab118a6d97160762c3f4fbb1b28a6ae2a1a968.tar.xz |
Add a bunch of patterns for F64 FP ops, add some more integer ops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23533 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrFormats.td')
-rw-r--r-- | lib/Target/PowerPC/PPCInstrFormats.td | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td index 320bd7bae3..72fa0eb134 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -240,8 +240,9 @@ class XForm_6<bits<6> opcode, bits<10> xo, dag OL, string asmstr, class XForm_8<bits<6> opcode, bits<10> xo, dag OL, string asmstr> : XForm_base_r3xo<opcode, xo, OL, asmstr>; -class XForm_10<bits<6> opcode, bits<10> xo, dag OL, string asmstr> +class XForm_10<bits<6> opcode, bits<10> xo, dag OL, string asmstr, list<dag> pt> : XForm_base_r3xo_swapped<opcode, xo, OL, asmstr> { + let Pattern = pt; } class XForm_11<bits<6> opcode, bits<10> xo, dag OL, string asmstr, @@ -290,9 +291,10 @@ class XForm_25<bits<6> opcode, bits<10> xo, dag OL, string asmstr> : XForm_base_r3xo<opcode, xo, OL, asmstr> { } -class XForm_26<bits<6> opcode, bits<10> xo, dag OL, string asmstr> +class XForm_26<bits<6> opcode, bits<10> xo, dag OL, string asmstr, list<dag> pt> : XForm_base_r3xo<opcode, xo, OL, asmstr> { let A = 0; + let Pattern = pt; } class XForm_28<bits<6> opcode, bits<10> xo, dag OL, string asmstr> @@ -463,13 +465,16 @@ class XOForm_3<bits<6> opcode, bits<9> xo, bit oe, } // 1.7.12 A-Form -class AForm_1<bits<6> opcode, bits<5> xo, dag OL, string asmstr> +class AForm_1<bits<6> opcode, bits<5> xo, dag OL, string asmstr, + list<dag> pattern> : I<opcode, OL, asmstr> { bits<5> FRT; bits<5> FRA; bits<5> FRC; bits<5> FRB; + let Pattern = pattern; + bit RC = 0; // set by isDOT let Inst{6-10} = FRT; @@ -480,13 +485,13 @@ class AForm_1<bits<6> opcode, bits<5> xo, dag OL, string asmstr> let Inst{31} = RC; } -class AForm_2<bits<6> opcode, bits<5> xo, dag OL, string asmstr> - : AForm_1<opcode, xo, OL, asmstr> { +class AForm_2<bits<6> opcode, bits<5> xo, dag OL, string asmstr, list<dag> pat> + : AForm_1<opcode, xo, OL, asmstr, pat> { let FRC = 0; } -class AForm_3<bits<6> opcode, bits<5> xo, dag OL, string asmstr> - : AForm_1<opcode, xo, OL, asmstr> { +class AForm_3<bits<6> opcode, bits<5> xo, dag OL, string asmstr, list<dag> pat> + : AForm_1<opcode, xo, OL, asmstr, pat> { let FRB = 0; } |