llvm-project/llvm/test/ExecutionEngine/RuntimeDyld/PowerPC/ppc32_elf_rel_addr16.s

48 lines
1.3 KiB
ArmAsm

# RUN: llvm-mc -triple=powerpc-unknown-linux-gnu -filetype=obj -o %T/ppc32_elf_rel_addr16.o %s
# RUN: llvm-rtdyld -triple=powerpc-unknown-linux-gnu -verify -check=%s %T/ppc32_elf_rel_addr16.o
.text
.file "ppc32_elf_rel_addr16.ll"
.globl lookup
.align 2
.type lookup,@function
lookup: # @lookup
.Lfunc_begin0:
# BB#0:
stw 31, -4(1)
stwu 1, -16(1)
insn_hi:
# Check the higher 16-bits of the symbol's absolute address
# rtdyld-check: decode_operand(insn_hi, 1) = elements[31:16]
lis 4, elements@ha
slwi 3, 3, 2
mr 31, 1
insn_lo:
# Check the lower 16-bits of the symbol's absolute address
# rtdyld-check: decode_operand(insn_lo, 2) = elements[15:0]
la 4, elements@l(4)
lwzx 3, 4, 3
addi 1, 1, 16
lwz 31, -4(1)
blr
.Lfunc_end0:
.size lookup, .Lfunc_end0-.Lfunc_begin0
.type elements,@object # @elements
.data
.globl elements
.align 2
elements:
.long 14 # 0xe
.long 4 # 0x4
.long 1 # 0x1
.long 3 # 0x3
.long 13 # 0xd
.long 0 # 0x0
.long 32 # 0x20
.long 334 # 0x14e
.size elements, 32
.ident "clang version 3.7.0 "
.section ".note.GNU-stack","",@progbits