mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
Add patterns for some new instructions, allowing the use of the ineg fragment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23266 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e29dca4d83
commit
d1cdc7028c
@ -449,8 +449,8 @@ class XOForm_1<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr,
|
||||
}
|
||||
|
||||
class XOForm_3<bits<6> opcode, bits<9> xo, bit oe,
|
||||
dag OL, string asmstr>
|
||||
: XOForm_1<opcode, xo, oe, OL, asmstr, []> {
|
||||
dag OL, string asmstr, list<dag> pattern>
|
||||
: XOForm_1<opcode, xo, oe, OL, asmstr, pattern> {
|
||||
let RB = 0;
|
||||
}
|
||||
|
||||
|
@ -60,10 +60,6 @@ def vtFP : PatLeaf<(vt), [{ return MVT::isFloatingPoint(N->getVT()); }]>;
|
||||
def not : PatFrag<(ops node:$in), (xor node:$in, immAllOnes)>;
|
||||
def ineg : PatFrag<(ops node:$in), (sub immZero, node:$in)>;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class isPPC64 { bit PPC64 = 1; }
|
||||
class isVMX { bit VMX = 1; }
|
||||
class isDOT {
|
||||
@ -476,13 +472,17 @@ def SUBFE : XOForm_1<31, 136, 0, (ops GPRC:$rT, GPRC:$rA, GPRC:$rB),
|
||||
"subfe $rT, $rA, $rB",
|
||||
[]>;
|
||||
def ADDME : XOForm_3<31, 234, 0, (ops GPRC:$rT, GPRC:$rA),
|
||||
"addme $rT, $rA">;
|
||||
"addme $rT, $rA",
|
||||
[]>;
|
||||
def ADDZE : XOForm_3<31, 202, 0, (ops GPRC:$rT, GPRC:$rA),
|
||||
"addze $rT, $rA">;
|
||||
"addze $rT, $rA",
|
||||
[]>;
|
||||
def NEG : XOForm_3<31, 104, 0, (ops GPRC:$rT, GPRC:$rA),
|
||||
"neg $rT, $rA">;
|
||||
"neg $rT, $rA",
|
||||
[(set GPRC:$rT, (ineg GPRC:$rA))]>;
|
||||
def SUBFZE : XOForm_3<31, 200, 0, (ops GPRC:$rT, GPRC:$rA),
|
||||
"subfze $rT, $rA">;
|
||||
"subfze $rT, $rA",
|
||||
[]>;
|
||||
|
||||
// A-Form instructions. Most of the instructions executed in the FPU are of
|
||||
// this type.
|
||||
|
Loading…
Reference in New Issue
Block a user