mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-26 07:24:25 +00:00
Add FastEmitInst_ii for the arm fast isel generator. It doesn't use it, but
if it ever did it needs the def machinery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130549 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -137,6 +137,9 @@ class ARMFastISel : public FastISel {
|
|||||||
virtual unsigned FastEmitInst_i(unsigned MachineInstOpcode,
|
virtual unsigned FastEmitInst_i(unsigned MachineInstOpcode,
|
||||||
const TargetRegisterClass *RC,
|
const TargetRegisterClass *RC,
|
||||||
uint64_t Imm);
|
uint64_t Imm);
|
||||||
|
virtual unsigned FastEmitInst_ii(unsigned MachineInstOpcode,
|
||||||
|
const TargetRegisterClass *RC,
|
||||||
|
uint64_t Imm1, uint64_t Imm2);
|
||||||
|
|
||||||
virtual unsigned FastEmitInst_extractsubreg(MVT RetVT,
|
virtual unsigned FastEmitInst_extractsubreg(MVT RetVT,
|
||||||
unsigned Op0, bool Op0IsKill,
|
unsigned Op0, bool Op0IsKill,
|
||||||
@ -434,6 +437,26 @@ unsigned ARMFastISel::FastEmitInst_i(unsigned MachineInstOpcode,
|
|||||||
return ResultReg;
|
return ResultReg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned ARMFastISel::FastEmitInst_ii(unsigned MachineInstOpcode,
|
||||||
|
const TargetRegisterClass *RC,
|
||||||
|
uint64_t Imm1, uint64_t Imm2) {
|
||||||
|
unsigned ResultReg = createResultReg(RC);
|
||||||
|
const TargetInstrDesc &II = TII.get(MachineInstOpcode);
|
||||||
|
|
||||||
|
if (II.getNumDefs() >= 1)
|
||||||
|
AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, II, ResultReg)
|
||||||
|
.addImm(Imm1).addImm(Imm2));
|
||||||
|
else {
|
||||||
|
AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, II)
|
||||||
|
.addImm(Imm1).addImm(Imm2));
|
||||||
|
AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL,
|
||||||
|
TII.get(TargetOpcode::COPY),
|
||||||
|
ResultReg)
|
||||||
|
.addReg(II.ImplicitDefs[0]));
|
||||||
|
}
|
||||||
|
return ResultReg;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned ARMFastISel::FastEmitInst_extractsubreg(MVT RetVT,
|
unsigned ARMFastISel::FastEmitInst_extractsubreg(MVT RetVT,
|
||||||
unsigned Op0, bool Op0IsKill,
|
unsigned Op0, bool Op0IsKill,
|
||||||
uint32_t Idx) {
|
uint32_t Idx) {
|
||||||
|
Reference in New Issue
Block a user