diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-11-17 19:16:08 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-11-17 19:16:08 +0000 |
| commit | bd9efdb64cc2ea65c4ffac11ded81d974b906d4c (patch) | |
| tree | 15ea708c3a82043948f25ac7f35627ea720c4afb /llvm/lib/Target/PowerPC | |
| parent | 3570cf456b31ac08cb91106f0d8b41f1619f41c5 (diff) | |
| download | bcm5719-llvm-bd9efdb64cc2ea65c4ffac11ded81d974b906d4c.tar.gz bcm5719-llvm-bd9efdb64cc2ea65c4ffac11ded81d974b906d4c.zip | |
disentangle call operands from branch operands a bit
llvm-svn: 24400
Diffstat (limited to 'llvm/lib/Target/PowerPC')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 7 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrInfo.td | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp index 9ef6579d304..0b6fa5a3b30 100644 --- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -148,10 +148,13 @@ namespace { if (MI->getOperand(OpNo).isImmediate()) { O << "$+" << MI->getOperand(OpNo).getImmedValue(); } else { - printOp(MI->getOperand(OpNo), - TM.getInstrInfo()->isCall(MI->getOpcode())); + printOp(MI->getOperand(OpNo)); } } + void printCallOperand(const MachineInstr *MI, unsigned OpNo, + MVT::ValueType VT) { + printOp(MI->getOperand(OpNo), true); + } void printAbsAddrOperand(const MachineInstr *MI, unsigned OpNo, MVT::ValueType VT) { O << (int)MI->getOperand(OpNo).getImmedValue()*4; diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td index 0b79cda8f88..7e09b4d6df4 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td @@ -131,6 +131,9 @@ def s16immX4 : Operand<i32> { // Multiply imm by 4 before printing. def target : Operand<i32> { let PrintMethod = "printBranchOperand"; } +def calltarget : Operand<i32> { + let PrintMethod = "printCallOperand"; +} def aaddr : Operand<i32> { let PrintMethod = "printAbsAddrOperand"; } @@ -220,7 +223,7 @@ let isCall = 1, LR,CTR, CR0,CR1,CR5,CR6,CR7] in { // 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 BCTRL : XLForm_2_ext<19, 528, 20, 0, 1, (ops variable_ops), "bctrl", BrB>; } |

