diff options
Diffstat (limited to 'lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp')
-rw-r--r-- | lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp b/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp index 94d8cd5aa3..589a260005 100644 --- a/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp +++ b/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp @@ -220,6 +220,18 @@ namespace { } void printPCRelativeOperand(const MachineInstr *MI, unsigned OpNo) { + // Used to generate a ".-<target>", but it turns out that the assembler + // really wants the target. + // + // N.B.: This operand is used for call targets. Branch hints are another + // animal entirely. + printOp(MI->getOperand(OpNo)); + } + + void printHBROperand(const MachineInstr *MI, unsigned OpNo) { + // HBR operands are generated in front of branches, hence, the + // program counter plus the target. + O << ".+"; printOp(MI->getOperand(OpNo)); } |