aix-xcoff-reloc-symb.mir 2.9 KB
# RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -x mir -verify-machineinstrs -start-after=lazy-machine-block-freq -filetype=obj -o %t.o < %s
# RUN: llvm-readobj --relocs --expand-relocs -t %t.o | FileCheck --check-prefixes=RELOC,SYM %s
# RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s

---
name:            foo
alignment:       16
tracksRegLiveness: true
jumpTable:
  kind:            label-difference32
  entries:
    - id:              0
      blocks:          [ '%bb.0' ]
body:             |
  bb.0:
    successors: %bb.0(0x20000000)
    liveins: $r2
    renamable $r3 = LWZtoc %jump-table.0, $r2 :: (load 4 from got)
    BLR implicit $lr, implicit $rm, implicit killed $r3
...

# RELOC:       Relocation {{[{][[:space:]] *}}Virtual Address: 0x8
# RELOC-NEXT:    Symbol: .text ([[#TXT_INDX:]])
# RELOC-NEXT:    IsSigned: No
# RELOC-NEXT:    FixupBitValue: 0
# RELOC-NEXT:    Length: 32
# RELOC-NEXT:    Type: R_POS (0x0)
# RELOC-NEXT:  }
# RELOC-NEXT:  Relocation {
# RELOC-NEXT:    Virtual Address: 0x8
# RELOC-NEXT:    Symbol: .rodata ([[#RO_INDX:]])
# RELOC-NEXT:    IsSigned: No
# RELOC-NEXT:    FixupBitValue: 0
# RELOC-NEXT:    Length: 32
# RELOC-NEXT:    Type: R_NEG (0x1)
# RELOC-NEXT:  }

# SYM:       Symbol {{[{][[:space:]] *}}Index: [[#TXT_INDX]]{{[[:space:]] *}}Name: .text
# SYM-NEXT:    Value (RelocatableAddress): 0x0
# SYM-NEXT:    Section: .text
# SYM-NEXT:    Type: 0x0
# SYM-NEXT:    StorageClass: C_HIDEXT (0x6B)
# SYM-NEXT:    NumberOfAuxEntries: 1
# SYM-NEXT:    CSECT Auxiliary Entry {
# SYM-NEXT:      Index: [[#TXT_INDX+1]]
# SYM-NEXT:      SectionLen: 8
# SYM-NEXT:      ParameterHashIndex: 0x0
# SYM-NEXT:      TypeChkSectNum: 0x0
# SYM-NEXT:      SymbolAlignmentLog2: 4
# SYM-NEXT:      SymbolType: XTY_SD (0x1)
# SYM-NEXT:      StorageMappingClass: XMC_PR (0x0)
# SYM-NEXT:      StabInfoIndex: 0x0
# SYM-NEXT:      StabSectNum: 0x0
# SYM-NEXT:    }
# SYM-NEXT:  }
# SYM:       Symbol {{[{][[:space:]] *}}Index: [[#RO_INDX]]{{[[:space:]] *}}Name: .rodata
# SYM-NEXT:    Value (RelocatableAddress): 0x8
# SYM-NEXT:    Section: .text
# SYM-NEXT:    Type: 0x0
# SYM-NEXT:    StorageClass: C_HIDEXT (0x6B)
# SYM-NEXT:    NumberOfAuxEntries: 1
# SYM-NEXT:    CSECT Auxiliary Entry {
# SYM-NEXT:      Index: [[#RO_INDX+1]]
# SYM-NEXT:      SectionLen: 4
# SYM-NEXT:      ParameterHashIndex: 0x0
# SYM-NEXT:      TypeChkSectNum: 0x0
# SYM-NEXT:      SymbolAlignmentLog2: 2
# SYM-NEXT:      SymbolType: XTY_SD (0x1)
# SYM-NEXT:      StorageMappingClass: XMC_RO (0x1)
# SYM-NEXT:      StabInfoIndex: 0x0
# SYM-NEXT:      StabSectNum: 0x0
# SYM-NEXT:    }
# SYM-NEXT:  }

# DIS:      Disassembly of section .text:
# DIS-EMPTY:
# DIS-NEXT: 00000000 <.text>:
# DIS-NEXT:        0: 80 62 00 00                   lwz 3, 0(2)
# DIS-NEXT:        4: 4e 80 00 20                   blr
# DIS-EMPTY:
# DIS-NEXT: 00000008 <.rodata>:
# DIS-NEXT:        8: ff ff ff f8                   fmsub 31, 31, 31, 31
# DIS-EMPTY: