summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCInstrFormats.td
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-09-29 23:34:24 +0000
committerChris Lattner <sabre@nondot.org>2005-09-29 23:34:24 +0000
commit67ab118a6d97160762c3f4fbb1b28a6ae2a1a968 (patch)
treeb53a7c6ed62d18ff5212d7e303f79312bbaeb727 /lib/Target/PowerPC/PPCInstrFormats.td
parent237733e9335f4d2bb16a818ab184929e12fae407 (diff)
downloadllvm-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.td19
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;
}