summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-11-17 19:16:08 +0000
committerChris Lattner <sabre@nondot.org>2005-11-17 19:16:08 +0000
commitbd9efdb64cc2ea65c4ffac11ded81d974b906d4c (patch)
tree15ea708c3a82043948f25ac7f35627ea720c4afb /llvm/lib/Target/PowerPC
parent3570cf456b31ac08cb91106f0d8b41f1619f41c5 (diff)
downloadbcm5719-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.cpp7
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrInfo.td5
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>;
}
OpenPOWER on IntegriCloud