# REQUIRES: ppc # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o # RUN: ld.lld -shared --no-toc-optimize %t.o -o %t # RUN: llvm-objdump -d %t | FileCheck %s # RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o # RUN: ld.lld -shared --no-toc-optimize %t.o -o %t # RUN: llvm-objdump -d %t | FileCheck %s # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o # RUN: ld.lld -shared %t.o -o %t # RUN: llvm-objdump -d %t | FileCheck --check-prefix=OPT %s # RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o # RUN: ld.lld -shared %t.o -o %t # RUN: llvm-objdump -d %t | FileCheck --check-prefix=OPT %s .abiversion 2 .section ".text" .p2align 2 .global func .type func, @function func: .Lfunc_gep: addis 2, 12, .TOC.-.Lfunc_gep@ha addi 2, 2, .TOC.-.Lfunc_gep@l .Lfunc_lep: .localentry func, .-func addis 3, 2, a@got@ha ld 3, a@got@l(3) ld 4, a@got(2) lis 5, a@got@h ori 5, 5, a@got@l li 6, 0 ori 6, 6, a@got blr # CHECK-LABEL: func # CHECK: addis 3, 2, 0 # CHECK-NEXT: ld 3, -32760(3) # CHECK-NEXT: ld 4, -32760(2) # CHECK-NEXT: lis 5, -1 # CHECK-NEXT: ori 5, 5, 32776 # CHECK-NEXT: li 6, 0 # CHECK-NEXT: ori 6, 6, 32776 # OPT-LABEL: func # OPT: nop # OPT-NEXT: ld 3, -32760(2) # OPT-NEXT: ld 4, -32760(2) # OPT-NEXT: lis 5, -1 # OPT-NEXT: ori 5, 5, 32776 # OPT-NEXT: li 6, 0 # OPT-NEXT: ori 6, 6, 32776 # Since the got entry for a is .got[1] and the TOC base points to # .got + 0x8000, the offset for a@got is -0x7FF8 --> -32760 .section ".data" .global a .type a, @object .size a, 4 .p2align 2 a: .long 0x1000