mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[PowerPC][AIX] Fix printing of program counter for AIX assembly.
Program counter on AIX is the dollar-sign. Differential Revision:https://reviews.llvm.org/D75627
This commit is contained in:
parent
df7173628b
commit
5c20469fda
@ -418,9 +418,14 @@ void PPCInstPrinter::printBranchOperand(const MCInst *MI, unsigned OpNo,
|
||||
if (!MI->getOperand(OpNo).isImm())
|
||||
return printOperand(MI, OpNo, O);
|
||||
|
||||
// Branches can take an immediate operand. This is used by the branch
|
||||
// selection pass to print .+8, an eight byte displacement from the PC.
|
||||
O << ".";
|
||||
// Branches can take an immediate operand. This is used by the branch
|
||||
// selection pass to print, for example `.+8` (for ELF) or `$+8` (for AIX) to
|
||||
// express an eight byte displacement from the program counter.
|
||||
if (!TT.isOSAIX())
|
||||
O << ".";
|
||||
else
|
||||
O << "$";
|
||||
|
||||
int32_t Imm = SignExtend32<32>((unsigned)MI->getOperand(OpNo).getImm() << 2);
|
||||
if (Imm >= 0)
|
||||
O << "+";
|
||||
|
31
test/CodeGen/PowerPC/aix-print-pc.mir
Normal file
31
test/CodeGen/PowerPC/aix-print-pc.mir
Normal file
@ -0,0 +1,31 @@
|
||||
# RUN: llc -x mir -mtriple powerpc-unknown-aix-xcoff --verify-machineinstrs \
|
||||
# RUN: -start-before=ppc-branch-select < %s | FileCheck %s
|
||||
#
|
||||
# RUN: llc -x mir -mtriple powerpc64-unknown-aix-xcoff --verify-machineinstrs \
|
||||
# RUN: -start-before=ppc-branch-select < %s | FileCheck %s
|
||||
|
||||
# Test uses a long branch to force printing of a branch that uses the program
|
||||
# counter as an operand. ($PC + 8)
|
||||
|
||||
---
|
||||
name: print_program_counter
|
||||
machineFunctionInfo: {}
|
||||
body: |
|
||||
bb.0.entry:
|
||||
successors: %bb.1(0x30000000), %bb.2(0x50000000)
|
||||
liveins: $r3
|
||||
renamable $cr0 = CMPLWI killed renamable $r3, 0
|
||||
BCC 76, killed renamable $cr0, %bb.1
|
||||
bb.2:
|
||||
renamable $r3 = LI 2
|
||||
INLINEASM &".space 32760", 1
|
||||
BLR implicit $lr, implicit $rm, implicit killed $r3
|
||||
bb.1:
|
||||
renamable $r3 = LI 1
|
||||
INLINEASM &".space 32760", 1
|
||||
BLR implicit $lr, implicit $rm, implicit killed $r3
|
||||
|
||||
# CHECK-LABEL: .print_program_counter:
|
||||
# CHECK: cmplwi
|
||||
# CHECK-NEXT: bne {{[0-9]}}, $+8
|
||||
|
Loading…
x
Reference in New Issue
Block a user