disentangle call operands from branch operands a bit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24400 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-11-17 19:16:08 +00:00
parent 1d05cb47a9
commit 3e7f86a037
2 changed files with 9 additions and 3 deletions

View File

@ -148,10 +148,13 @@ namespace {
if (MI->getOperand(OpNo).isImmediate()) { if (MI->getOperand(OpNo).isImmediate()) {
O << "$+" << MI->getOperand(OpNo).getImmedValue(); O << "$+" << MI->getOperand(OpNo).getImmedValue();
} else { } else {
printOp(MI->getOperand(OpNo), printOp(MI->getOperand(OpNo));
TM.getInstrInfo()->isCall(MI->getOpcode()));
} }
} }
void printCallOperand(const MachineInstr *MI, unsigned OpNo,
MVT::ValueType VT) {
printOp(MI->getOperand(OpNo), true);
}
void printAbsAddrOperand(const MachineInstr *MI, unsigned OpNo, void printAbsAddrOperand(const MachineInstr *MI, unsigned OpNo,
MVT::ValueType VT) { MVT::ValueType VT) {
O << (int)MI->getOperand(OpNo).getImmedValue()*4; O << (int)MI->getOperand(OpNo).getImmedValue()*4;

View File

@ -131,6 +131,9 @@ def s16immX4 : Operand<i32> { // Multiply imm by 4 before printing.
def target : Operand<i32> { def target : Operand<i32> {
let PrintMethod = "printBranchOperand"; let PrintMethod = "printBranchOperand";
} }
def calltarget : Operand<i32> {
let PrintMethod = "printCallOperand";
}
def aaddr : Operand<i32> { def aaddr : Operand<i32> {
let PrintMethod = "printAbsAddrOperand"; let PrintMethod = "printAbsAddrOperand";
} }
@ -220,7 +223,7 @@ let isCall = 1,
LR,CTR, LR,CTR,
CR0,CR1,CR5,CR6,CR7] in { CR0,CR1,CR5,CR6,CR7] in {
// Convenient aliases for call instructions // Convenient aliases for call instructions
def BL : IForm<18, 0, 1, (ops target:$func, variable_ops), "bl $func", BrB>; def BL : IForm<18, 0, 1, (ops calltarget:$func, variable_ops), "bl $func", BrB>;
def BLA : IForm<18, 1, 1, (ops aaddr:$func, variable_ops), "bla $func", BrB>; def BLA : IForm<18, 1, 1, (ops aaddr:$func, variable_ops), "bla $func", BrB>;
def BCTRL : XLForm_2_ext<19, 528, 20, 0, 1, (ops variable_ops), "bctrl", BrB>; def BCTRL : XLForm_2_ext<19, 528, 20, 0, 1, (ops variable_ops), "bctrl", BrB>;
} }