diff options
Diffstat (limited to 'llvm/lib/Target/PowerPC/PowerPCInstrFormats.td')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PowerPCInstrFormats.td | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td b/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td index dfbbbe49e77..aaeb1eb01cd 100644 --- a/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td +++ b/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td @@ -424,12 +424,15 @@ class XSForm_1<bits<6> opcode, bits<9> xo, dag OL, string asmstr> } // 1.7.11 XO-Form -class XOForm_1<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr> +class XOForm_1<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr, + list<dag> pattern> : I<opcode, OL, asmstr> { bits<5> RT; bits<5> RA; bits<5> RB; + let Pattern = pattern; + bit RC = 0; // set by isDOT let Inst{6-10} = RT; @@ -440,15 +443,9 @@ class XOForm_1<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr> let Inst{31} = RC; } -class XOForm_1r<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr> - : XOForm_1<opcode, xo, oe, OL, asmstr> { - let Inst{11-15} = RB; - let Inst{16-20} = RA; -} - class XOForm_3<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr> - : XOForm_1<opcode, xo, oe, OL, asmstr> { + : XOForm_1<opcode, xo, oe, OL, asmstr, []> { let RB = 0; } |

