summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCInstrFormats.td
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-10-19 18:42:01 +0000
committerNate Begeman <natebegeman@mac.com>2005-10-19 18:42:01 +0000
commit2d5aff761d32b7f4fddc982e9444d20af48f080b (patch)
treeab00451f6cfd50628e1ad4e046b1fd527f87f61e /lib/Target/PowerPC/PPCInstrFormats.td
parent886eb391704333cb0f24fad32f95da43371b9407 (diff)
downloadllvm-2d5aff761d32b7f4fddc982e9444d20af48f080b.tar.gz
llvm-2d5aff761d32b7f4fddc982e9444d20af48f080b.tar.bz2
llvm-2d5aff761d32b7f4fddc982e9444d20af48f080b.tar.xz
Write patterns for the various shl and srl patterns that don't involve
doing something clever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23824 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrFormats.td')
-rw-r--r--lib/Target/PowerPC/PPCInstrFormats.td14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td
index 880a66a99e..061311feaf 100644
--- a/lib/Target/PowerPC/PPCInstrFormats.td
+++ b/lib/Target/PowerPC/PPCInstrFormats.td
@@ -468,13 +468,16 @@ class AForm_3<bits<6> opcode, bits<5> xo, dag OL, string asmstr, list<dag> pat>
}
// 1.7.13 M-Form
-class MForm_1<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr> {
+class MForm_1<bits<6> opcode, dag OL, string asmstr, list<dag> pattern>
+ : I<opcode, OL, asmstr> {
bits<5> RA;
bits<5> RS;
bits<5> RB;
bits<5> MB;
bits<5> ME;
+ let Pattern = pattern;
+
bit RC = 0; // set by isDOT
let Inst{6-10} = RS;
@@ -485,18 +488,21 @@ class MForm_1<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr> {
let Inst{31} = RC;
}
-class MForm_2<bits<6> opcode, dag OL, string asmstr>
- : MForm_1<opcode, OL, asmstr> {
+class MForm_2<bits<6> opcode, dag OL, string asmstr, list<dag> pattern>
+ : MForm_1<opcode, OL, asmstr, pattern> {
}
// 1.7.14 MD-Form
-class MDForm_1<bits<6> opcode, bits<3> xo, dag OL, string asmstr>
+class MDForm_1<bits<6> opcode, bits<3> xo, dag OL, string asmstr,
+ list<dag> pattern>
: I<opcode, OL, asmstr> {
bits<5> RS;
bits<5> RA;
bits<6> SH;
bits<6> MBE;
+ let Pattern = pattern;
+
bit RC = 0; // set by isDOT
let Inst{6-10} = RS;