[ELF] Refine isExported/isPreemptible condition
[llvm-project.git] / lld / test / ELF / relocatable-crel-32.s
blob8fbf236d77452b18af5d303936e35f2e7be6e267
1 # REQUIRES: ppc
2 # RUN: rm -rf %t && split-file %s %t && cd %t
3 # RUN: llvm-mc -filetype=obj -triple=powerpc -crel a.s -o a.o
4 # RUN: llvm-mc -filetype=obj -triple=powerpc -crel b.s -o b.o
5 # RUN: ld.lld -r b.o a.o -o out
6 # RUN: llvm-readobj -r out | FileCheck %s --check-prefixes=CHECK,CRELFOO
8 # RUN: llvm-mc -filetype=obj -triple=powerpc a.s -o a1.o
9 # RUN: ld.lld -r b.o a1.o -o out1
10 # RUN: llvm-readobj -r out1 | FileCheck %s --check-prefixes=CHECK,RELAFOO
11 # RUN: ld.lld -r a1.o b.o -o out2
12 # RUN: llvm-readobj -r out2 | FileCheck %s --check-prefixes=CHECK2
14 # CHECK: Relocations [
15 # CHECK-NEXT: Section (2) .crel.text {
16 # CHECK-NEXT: 0x0 R_PPC_REL24 fb 0x0
17 # CHECK-NEXT: 0x4 R_PPC_REL24 foo 0x0
18 # CHECK-NEXT: 0x8 R_PPC_REL24 .text.foo 0x0
19 # CHECK-NEXT: 0xE R_PPC_ADDR16_HA .rodata.str1.1 0x4
20 # CHECK-NEXT: 0x12 R_PPC_ADDR16_LO .rodata.str1.1 0x4
21 # CHECK-NEXT: 0x16 R_PPC_ADDR16_HA .rodata.str1.1 0x0
22 # CHECK-NEXT: 0x1A R_PPC_ADDR16_LO .rodata.str1.1 0x0
23 # CHECK-NEXT: }
24 # CRELFOO-NEXT: Section (4) .crel.text.foo {
25 # RELAFOO-NEXT: Section (4) .rela.text.foo {
26 # CHECK-NEXT: 0x0 R_PPC_REL24 g 0x0
27 # CHECK-NEXT: 0x4 R_PPC_REL24 g 0x0
28 # CHECK-NEXT: }
29 # CHECK-NEXT: ]
31 # CHECK2: Relocations [
32 # CHECK2-NEXT: Section (2) .crel.text {
33 # CHECK2-NEXT: 0x0 R_PPC_REL24 foo 0x0
34 # CHECK2-NEXT: 0x4 R_PPC_REL24 .text.foo 0x0
35 # CHECK2-NEXT: 0xA R_PPC_ADDR16_HA .rodata.str1.1 0x4
36 # CHECK2-NEXT: 0xE R_PPC_ADDR16_LO .rodata.str1.1 0x4
37 # CHECK2-NEXT: 0x12 R_PPC_ADDR16_HA .rodata.str1.1 0x0
38 # CHECK2-NEXT: 0x16 R_PPC_ADDR16_LO .rodata.str1.1 0x0
39 # CHECK2-NEXT: 0x18 R_PPC_REL24 fb 0x0
40 # CHECK2-NEXT: }
41 # CHECK2-NEXT: Section (4) .rela.text.foo {
42 # CHECK2-NEXT: 0x0 R_PPC_REL24 g 0x0
43 # CHECK2-NEXT: 0x4 R_PPC_REL24 g 0x0
44 # CHECK2-NEXT: }
45 # CHECK2-NEXT: ]
47 #--- a.s
48 .global _start, foo
49 _start:
50 bl foo
51 bl .text.foo
52 lis 3, .L.str@ha
53 la 3, .L.str@l(3)
54 lis 3, .L.str1@ha
55 la 3, .L.str1@l(3)
57 .section .text.foo,"ax"
58 foo:
59 bl g
60 bl g
62 .section .rodata.str1.1,"aMS",@progbits,1
63 .L.str:
64 .asciz "abc"
65 .L.str1:
66 .asciz "def"
68 #--- b.s
69 .globl fb
70 fb:
71 bl fb