diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2008-11-08 17:21:38 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2008-11-08 17:21:38 +0000 |
| commit | 09f51d1fd4b54ccbb9cd454db937b056785601de (patch) | |
| tree | 8452b38b34f4cab302e7513446ed6fe75b0f7303 /llvm/lib/Target/ARM/AsmPrinter | |
| parent | 16ac9be7f0b2a7c716adddc92b7ea5b04fe94ba5 (diff) | |
| download | bcm5719-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.cpp | 11 |
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) { |

