summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/AsmPrinter
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-11-08 17:21:38 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-11-08 17:21:38 +0000
commit09f51d1fd4b54ccbb9cd454db937b056785601de (patch)
tree8452b38b34f4cab302e7513446ed6fe75b0f7303 /llvm/lib/Target/ARM/AsmPrinter
parent16ac9be7f0b2a7c716adddc92b7ea5b04fe94ba5 (diff)
downloadbcm5719-llvm-09f51d1fd4b54ccbb9cd454db937b056785601de.tar.gz
bcm5719-llvm-09f51d1fd4b54ccbb9cd454db937b056785601de.zip
Factor out offset printing code into generic AsmPrinter.
FIXME: it seems, that most of targets don't support offsets wrt CPI/GlobalAddress', was it intentional? llvm-svn: 58917
Diffstat (limited to 'llvm/lib/Target/ARM/AsmPrinter')
-rw-r--r--llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
index 36cd98eb927..ae6c3544bb9 100644
--- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
@@ -300,12 +300,9 @@ void ARMAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
FnStubs.insert(Name);
} else
O << Name;
-
- if (MO.getOffset() > 0)
- O << '+' << MO.getOffset();
- else if (MO.getOffset() < 0)
- O << MO.getOffset();
-
+
+ printOffset(MO.getOffset());
+
if (isCallOp && Subtarget->isTargetELF() &&
TM.getRelocationModel() == Reloc::PIC_)
O << "(PLT)";
@@ -345,7 +342,7 @@ static void printSOImm(raw_ostream &O, int64_t V, const TargetAsmInfo *TAI) {
assert(V < (1 << 12) && "Not a valid so_imm value!");
unsigned Imm = ARM_AM::getSOImmValImm(V);
unsigned Rot = ARM_AM::getSOImmValRot(V);
-
+
// Print low-level immediate formation info, per
// A5.1.3: "Data-processing operands - Immediate".
if (Rot) {
OpenPOWER on IntegriCloud