mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 21:57:55 +00:00
Kill of the vestiges of the 'call' Modifier (no longer needed for PLT).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115845 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
35636281c7
commit
1d6111c5ac
@ -256,9 +256,7 @@ void ARMAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
|
||||
O << *MO.getMBB()->getSymbol();
|
||||
return;
|
||||
case MachineOperand::MO_GlobalAddress: {
|
||||
bool isCallOp = Modifier && !strcmp(Modifier, "call");
|
||||
const GlobalValue *GV = MO.getGlobal();
|
||||
|
||||
if ((Modifier && strcmp(Modifier, "lo16") == 0) ||
|
||||
(TF & ARMII::MO_LO16))
|
||||
O << ":lower16:";
|
||||
@ -268,18 +266,13 @@ void ARMAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
|
||||
O << *Mang->getSymbol(GV);
|
||||
|
||||
printOffset(MO.getOffset(), O);
|
||||
|
||||
if (isCallOp && Subtarget->isTargetELF() &&
|
||||
TM.getRelocationModel() == Reloc::PIC_)
|
||||
if (TF == ARMII::MO_PLT)
|
||||
O << "(PLT)";
|
||||
break;
|
||||
}
|
||||
case MachineOperand::MO_ExternalSymbol: {
|
||||
bool isCallOp = Modifier && !strcmp(Modifier, "call");
|
||||
O << *GetExternalSymbolSymbol(MO.getSymbolName());
|
||||
|
||||
if (isCallOp && Subtarget->isTargetELF() &&
|
||||
TM.getRelocationModel() == Reloc::PIC_)
|
||||
if (TF == ARMII::MO_PLT)
|
||||
O << "(PLT)";
|
||||
break;
|
||||
}
|
||||
|
@ -965,14 +965,14 @@ let isCall = 1,
|
||||
D16, D17, D18, D19, D20, D21, D22, D23,
|
||||
D24, D25, D26, D27, D28, D29, D30, D31, CPSR, FPSCR] in {
|
||||
def BL : ABXI<0b1011, (outs), (ins i32imm:$func, variable_ops),
|
||||
IIC_Br, "bl\t${func:call}",
|
||||
IIC_Br, "bl\t$func",
|
||||
[(ARMcall tglobaladdr:$func)]>,
|
||||
Requires<[IsARM, IsNotDarwin]> {
|
||||
let Inst{31-28} = 0b1110;
|
||||
}
|
||||
|
||||
def BL_pred : ABI<0b1011, (outs), (ins i32imm:$func, variable_ops),
|
||||
IIC_Br, "bl", "\t${func:call}",
|
||||
IIC_Br, "bl", "\t$func",
|
||||
[(ARMcall_pred tglobaladdr:$func)]>,
|
||||
Requires<[IsARM, IsNotDarwin]>;
|
||||
|
||||
@ -1016,13 +1016,13 @@ let isCall = 1,
|
||||
D16, D17, D18, D19, D20, D21, D22, D23,
|
||||
D24, D25, D26, D27, D28, D29, D30, D31, CPSR, FPSCR] in {
|
||||
def BLr9 : ABXI<0b1011, (outs), (ins i32imm:$func, variable_ops),
|
||||
IIC_Br, "bl\t${func:call}",
|
||||
IIC_Br, "bl\t$func",
|
||||
[(ARMcall tglobaladdr:$func)]>, Requires<[IsARM, IsDarwin]> {
|
||||
let Inst{31-28} = 0b1110;
|
||||
}
|
||||
|
||||
def BLr9_pred : ABI<0b1011, (outs), (ins i32imm:$func, variable_ops),
|
||||
IIC_Br, "bl", "\t${func:call}",
|
||||
IIC_Br, "bl", "\t$func",
|
||||
[(ARMcall_pred tglobaladdr:$func)]>,
|
||||
Requires<[IsARM, IsDarwin]>;
|
||||
|
||||
|
@ -292,14 +292,14 @@ let isCall = 1,
|
||||
// Also used for Thumb2
|
||||
def tBL : TIx2<0b11110, 0b11, 1,
|
||||
(outs), (ins i32imm:$func, variable_ops), IIC_Br,
|
||||
"bl\t${func:call}",
|
||||
"bl\t$func",
|
||||
[(ARMtcall tglobaladdr:$func)]>,
|
||||
Requires<[IsThumb, IsNotDarwin]>;
|
||||
|
||||
// ARMv5T and above, also used for Thumb2
|
||||
def tBLXi : TIx2<0b11110, 0b11, 0,
|
||||
(outs), (ins i32imm:$func, variable_ops), IIC_Br,
|
||||
"blx\t${func:call}",
|
||||
"blx\t$func",
|
||||
[(ARMcall tglobaladdr:$func)]>,
|
||||
Requires<[IsThumb, HasV5T, IsNotDarwin]>;
|
||||
|
||||
@ -327,14 +327,14 @@ let isCall = 1,
|
||||
// Also used for Thumb2
|
||||
def tBLr9 : TIx2<0b11110, 0b11, 1,
|
||||
(outs), (ins i32imm:$func, variable_ops), IIC_Br,
|
||||
"bl\t${func:call}",
|
||||
"bl\t$func",
|
||||
[(ARMtcall tglobaladdr:$func)]>,
|
||||
Requires<[IsThumb, IsDarwin]>;
|
||||
|
||||
// ARMv5T and above, also used for Thumb2
|
||||
def tBLXi_r9 : TIx2<0b11110, 0b11, 0,
|
||||
(outs), (ins i32imm:$func, variable_ops), IIC_Br,
|
||||
"blx\t${func:call}",
|
||||
"blx\t$func",
|
||||
[(ARMcall tglobaladdr:$func)]>,
|
||||
Requires<[IsThumb, HasV5T, IsDarwin]>;
|
||||
|
||||
|
@ -116,12 +116,10 @@ void ARMInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
|
||||
unsigned Reg = Op.getReg();
|
||||
O << getRegisterName(Reg);
|
||||
} else if (Op.isImm()) {
|
||||
assert((Modifier && !strcmp(Modifier, "call")) ||
|
||||
((Modifier == 0 || Modifier[0] == 0) && "No modifiers supported"));
|
||||
assert((Modifier == 0 || Modifier[0] == 0) && "No modifiers supported");
|
||||
O << '#' << Op.getImm();
|
||||
} else {
|
||||
if (Modifier && Modifier[0] != 0 && strcmp(Modifier, "call") != 0)
|
||||
llvm_unreachable("Unsupported modifier");
|
||||
assert((Modifier == 0 || Modifier[0] == 0) && "No modifiers supported");
|
||||
assert(Op.isExpr() && "unknown operand kind in printOperand");
|
||||
O << *Op.getExpr();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user