xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-xcoff-reloc-symb.mir (revision ac5d5351d42ab74cfc47964aa0ca94655cf7e7c7)
1# RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -x mir -verify-machineinstrs \
2# RUN:     -xcoff-traceback-table=false -start-after=lazy-machine-block-freq -filetype=obj -o %t.o < %s
3# RUN: llvm-readobj --relocs --expand-relocs --syms %t.o | FileCheck --check-prefixes=RELOC,SYM %s
4# RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s
5
6---
7name:            foo
8alignment:       16
9tracksRegLiveness: true
10jumpTable:
11  kind:            label-difference32
12  entries:
13    - id:              0
14      blocks:          [ '%bb.0' ]
15body:             |
16  bb.0:
17    successors: %bb.0(0x20000000)
18    liveins: $r2
19    renamable $r3 = LWZtoc %jump-table.0, $r2 :: (load (s32) from got)
20    BLR implicit $lr, implicit $rm, implicit killed $r3
21...
22
23# RELOC:       Relocation {{[{][[:space:]] *}}Virtual Address: 0x8
24# RELOC-NEXT:    Symbol:  ([[#TXT_INDX:]])
25# RELOC-NEXT:    IsSigned: No
26# RELOC-NEXT:    FixupBitValue: 0
27# RELOC-NEXT:    Length: 32
28# RELOC-NEXT:    Type: R_POS (0x0)
29# RELOC-NEXT:  }
30# RELOC-NEXT:  Relocation {
31# RELOC-NEXT:    Virtual Address: 0x8
32# RELOC-NEXT:    Symbol: .rodata ([[#RO_INDX:]])
33# RELOC-NEXT:    IsSigned: No
34# RELOC-NEXT:    FixupBitValue: 0
35# RELOC-NEXT:    Length: 32
36# RELOC-NEXT:    Type: R_NEG (0x1)
37# RELOC-NEXT:  }
38
39# SYM:       Symbol {{[{][[:space:]] *}}Index: [[#TXT_INDX]]{{[[:space:]] *}}Name:
40# SYM-NEXT:    Value (RelocatableAddress): 0x0
41# SYM-NEXT:    Section: .text
42# SYM-NEXT:    Type: 0x0
43# SYM-NEXT:    StorageClass: C_HIDEXT (0x6B)
44# SYM-NEXT:    NumberOfAuxEntries: 1
45# SYM-NEXT:    CSECT Auxiliary Entry {
46# SYM-NEXT:      Index: [[#TXT_INDX+1]]
47# SYM-NEXT:      SectionLen: 8
48# SYM-NEXT:      ParameterHashIndex: 0x0
49# SYM-NEXT:      TypeChkSectNum: 0x0
50# SYM-NEXT:      SymbolAlignmentLog2: 5
51# SYM-NEXT:      SymbolType: XTY_SD (0x1)
52# SYM-NEXT:      StorageMappingClass: XMC_PR (0x0)
53# SYM-NEXT:      StabInfoIndex: 0x0
54# SYM-NEXT:      StabSectNum: 0x0
55# SYM-NEXT:    }
56# SYM-NEXT:  }
57# SYM:       Symbol {{[{][[:space:]] *}}Index: [[#RO_INDX]]{{[[:space:]] *}}Name: .rodata
58# SYM-NEXT:    Value (RelocatableAddress): 0x8
59# SYM-NEXT:    Section: .text
60# SYM-NEXT:    Type: 0x0
61# SYM-NEXT:    StorageClass: C_HIDEXT (0x6B)
62# SYM-NEXT:    NumberOfAuxEntries: 1
63# SYM-NEXT:    CSECT Auxiliary Entry {
64# SYM-NEXT:      Index: [[#RO_INDX+1]]
65# SYM-NEXT:      SectionLen: 4
66# SYM-NEXT:      ParameterHashIndex: 0x0
67# SYM-NEXT:      TypeChkSectNum: 0x0
68# SYM-NEXT:      SymbolAlignmentLog2: 2
69# SYM-NEXT:      SymbolType: XTY_SD (0x1)
70# SYM-NEXT:      StorageMappingClass: XMC_RO (0x1)
71# SYM-NEXT:      StabInfoIndex: 0x0
72# SYM-NEXT:      StabSectNum: 0x0
73# SYM-NEXT:    }
74# SYM-NEXT:  }
75
76# DIS:      Disassembly of section .text:
77# DIS-EMPTY:
78# DIS-NEXT: 00000000 <.foo>:
79# DIS-NEXT:        0: 80 62 00 00                   lwz 3, 0(2)
80# DIS-NEXT:        4: 4e 80 00 20                   blr
81# DIS-EMPTY:
82# DIS-NEXT: 00000008 <.rodata>:
83# DIS-NEXT:        8: ff ff ff f8                   fmsub 31, 31, 31, 31
84# DIS-EMPTY:
85