mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
Fix PR8828 by removing the explicit def in MovePCToLR as well as the pointless
piclabel operand. The operand in the tablegen definition doesn't actually turn into an MI operand, so it just confuses anything checking the TargetInstrDesc for the number of operands. It suffices to just have an implicit def of LR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131626 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
462b6dc6bf
commit
0113e4e3f2
@ -240,11 +240,11 @@ SDNode *PPCDAGToDAGISel::getGlobalBaseReg() {
|
||||
|
||||
if (PPCLowering.getPointerTy() == MVT::i32) {
|
||||
GlobalBaseReg = RegInfo->createVirtualRegister(PPC::GPRCRegisterClass);
|
||||
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR), PPC::LR);
|
||||
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR));
|
||||
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg);
|
||||
} else {
|
||||
GlobalBaseReg = RegInfo->createVirtualRegister(PPC::G8RCRegisterClass);
|
||||
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8), PPC::LR8);
|
||||
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8));
|
||||
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR8), GlobalBaseReg);
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ def HI48_64 : SDNodeXForm<imm, [{
|
||||
//
|
||||
|
||||
let Defs = [LR8] in
|
||||
def MovePCtoLR8 : Pseudo<(outs), (ins piclabel:$label), "", []>,
|
||||
def MovePCtoLR8 : Pseudo<(outs), (ins), "", []>,
|
||||
PPC970_Unit_BRU;
|
||||
|
||||
// Darwin ABI Calls.
|
||||
|
@ -300,7 +300,6 @@ def calltarget : Operand<iPTR> {
|
||||
def aaddr : Operand<iPTR> {
|
||||
let PrintMethod = "printAbsAddrOperand";
|
||||
}
|
||||
def piclabel: Operand<iPTR> {}
|
||||
def symbolHi: Operand<i32> {
|
||||
let PrintMethod = "printSymbolHi";
|
||||
let EncoderMethod = "getHA16Encoding";
|
||||
@ -413,7 +412,7 @@ let isTerminator = 1, isBarrier = 1, PPC970_Unit = 7 in {
|
||||
}
|
||||
|
||||
let Defs = [LR] in
|
||||
def MovePCtoLR : Pseudo<(outs), (ins piclabel:$label), "", []>,
|
||||
def MovePCtoLR : Pseudo<(outs), (ins), "", []>,
|
||||
PPC970_Unit_BRU;
|
||||
|
||||
let isBranch = 1, isTerminator = 1, hasCtrlDep = 1, PPC970_Unit = 7 in {
|
||||
|
Loading…
Reference in New Issue
Block a user