mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 21:34:23 +00:00
Refactor PICSTR* instructions to really be pseudos. Nuke dead classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119841 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9558b4cdc4
commit
9ef65cbbc6
@ -459,49 +459,6 @@ class AI2ldstidx<bit isLd, bit isByte, bit isPre, dag oops, dag iops,
|
||||
let Inst{15-12} = Rt;
|
||||
}
|
||||
|
||||
class AXI2ldw<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
string asm, list<dag> pattern>
|
||||
: XI<oops, iops, AddrMode2, Size4Bytes, IndexModeNone, f, itin,
|
||||
asm, "", pattern> {
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{22} = 0; // B bit
|
||||
let Inst{24} = 1; // P bit
|
||||
let Inst{27-26} = 0b01;
|
||||
}
|
||||
class AXI2ldb<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
string asm, list<dag> pattern>
|
||||
: XI<oops, iops, AddrMode2, Size4Bytes, IndexModeNone, f, itin,
|
||||
asm, "", pattern> {
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{22} = 1; // B bit
|
||||
let Inst{24} = 1; // P bit
|
||||
let Inst{27-26} = 0b01;
|
||||
}
|
||||
|
||||
// stores
|
||||
class AXI2stw<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
string asm, list<dag> pattern>
|
||||
: XI<oops, iops, AddrMode2, Size4Bytes, IndexModeNone, f, itin,
|
||||
asm, "", pattern> {
|
||||
let Inst{20} = 0; // L bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{22} = 0; // B bit
|
||||
let Inst{24} = 1; // P bit
|
||||
let Inst{27-26} = 0b01;
|
||||
}
|
||||
class AXI2stb<dag oops, dag iops, Format f, InstrItinClass itin,
|
||||
string asm, list<dag> pattern>
|
||||
: XI<oops, iops, AddrMode2, Size4Bytes, IndexModeNone, f, itin,
|
||||
asm, "", pattern> {
|
||||
let Inst{20} = 0; // L bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{22} = 1; // B bit
|
||||
let Inst{24} = 1; // P bit
|
||||
let Inst{27-26} = 0b01;
|
||||
}
|
||||
|
||||
// addrmode3 instructions
|
||||
class AI3ld<bits<4> op, bit op20, dag oops, dag iops, Format f,
|
||||
InstrItinClass itin, string opc, string asm, list<dag> pattern>
|
||||
|
@ -1164,17 +1164,14 @@ def PICLDRSB : ARMPseudoInst<(outs GPR:$Rt), (ins addrmodepc:$addr, pred:$p),
|
||||
[(set GPR:$Rt, (sextloadi8 addrmodepc:$addr))]>;
|
||||
}
|
||||
let AddedComplexity = 10 in {
|
||||
def PICSTR : AXI2stw<(outs), (ins GPR:$src, addrmodepc:$addr, pred:$p),
|
||||
Pseudo, IIC_iStore_r, "",
|
||||
[(store GPR:$src, addrmodepc:$addr)]>;
|
||||
def PICSTR : ARMPseudoInst<(outs), (ins GPR:$src, addrmodepc:$addr, pred:$p),
|
||||
IIC_iStore_r, [(store GPR:$src, addrmodepc:$addr)]>;
|
||||
|
||||
def PICSTRH : AXI3sth<(outs), (ins GPR:$src, addrmodepc:$addr, pred:$p),
|
||||
Pseudo, IIC_iStore_bh_r, "",
|
||||
[(truncstorei16 GPR:$src, addrmodepc:$addr)]>;
|
||||
def PICSTRH : ARMPseudoInst<(outs), (ins GPR:$src, addrmodepc:$addr, pred:$p),
|
||||
IIC_iStore_bh_r, [(truncstorei16 GPR:$src, addrmodepc:$addr)]>;
|
||||
|
||||
def PICSTRB : AXI2stb<(outs), (ins GPR:$src, addrmodepc:$addr, pred:$p),
|
||||
Pseudo, IIC_iStore_bh_r, "",
|
||||
[(truncstorei8 GPR:$src, addrmodepc:$addr)]>;
|
||||
def PICSTRB : ARMPseudoInst<(outs), (ins GPR:$src, addrmodepc:$addr, pred:$p),
|
||||
IIC_iStore_bh_r, [(truncstorei8 GPR:$src, addrmodepc:$addr)]>;
|
||||
}
|
||||
} // isNotDuplicable = 1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user