forked from OSchip/llvm-project
41 lines
1.2 KiB
ArmAsm
41 lines
1.2 KiB
ArmAsm
# REQUIRES: ppc
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=powerpc64le %s -o %t.o
|
|
# RUN: ld.lld %t.o -o %t
|
|
# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s --check-prefix=PDE
|
|
# RUN: ld.lld -pie %t.o -o %t
|
|
# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s --check-prefix=PIC
|
|
# RUN: ld.lld -shared %t.o -o %t.so
|
|
# RUN: llvm-objdump -d --no-show-raw-insn %t.so | FileCheck %s --check-prefix=PIC
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple=powerpc64 %s -o %t.o
|
|
# RUN: ld.lld %t.o -o %t
|
|
# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s --check-prefix=PDE
|
|
|
|
## Branches to an undefined weak symbol need a thunk iff a dynamic relocation is
|
|
## produced. undefweak2 is hidden and does not need a dynamic relocation, so we
|
|
## suppress the thunk. undefweak1 needs a thunk iff -pie or -shared.
|
|
|
|
# PDE-LABEL: <_start>:
|
|
# PDE-NEXT: bl {{.*}} <_start>
|
|
# PDE-NEXT: nop
|
|
# PDE-NEXT: bl {{.*}} <_start+0x8>
|
|
# PDE-NEXT: nop
|
|
|
|
# PIC-LABEL: <_start>:
|
|
# PIC-NEXT: bl {{.*}} <__plt_undefweak1>
|
|
# PIC-NEXT: ld 2, 24(1)
|
|
# PIC-NEXT: bl {{.*}} <_start+0x8>
|
|
# PIC-NEXT: nop
|
|
|
|
.text
|
|
.global _start
|
|
_start:
|
|
bl undefweak1
|
|
nop
|
|
bl undefweak2
|
|
nop
|
|
|
|
.weak undefweak1, undefweak2
|
|
.hidden undefweak2
|