@@ -78,6 +78,79 @@ _start:
7878 adrp x1, :got_auth:zed
7979 add x1, x1, :got_auth_lo12:zed
8080
81+ #--- ok-tiny.s
82+
83+ # RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux ok-tiny.s -o ok-tiny.o
84+
85+ # RUN: ld.lld ok-tiny.o a.so -pie -o external-tiny
86+ # RUN: llvm-readelf -r -S -x .got external-tiny | FileCheck %s --check-prefix=EXTERNAL-TINY
87+
88+ # RUN: ld.lld ok-tiny.o a.o -pie -o local-tiny
89+ # RUN: llvm-readelf -r -S -x .got -s local-tiny | FileCheck %s --check-prefix=LOCAL-TINY
90+
91+ # EXTERNAL-TINY: Offset Info Type Symbol's Value Symbol's Name + Addend
92+ # EXTERNAL-TINY-NEXT: 0000000000020380 000000010000e201 R_AARCH64_AUTH_GLOB_DAT 0000000000000000 bar + 0
93+ # EXTERNAL-TINY-NEXT: 0000000000020388 000000020000e201 R_AARCH64_AUTH_GLOB_DAT 0000000000000000 zed + 0
94+
95+ ## Symbol's values for bar and zed are equal since they contain no content (see Inputs/shared.s)
96+ # LOCAL-TINY: Offset Info Type Symbol's Value Symbol's Name + Addend
97+ # LOCAL-TINY-NEXT: 0000000000020320 0000000000000411 R_AARCH64_AUTH_RELATIVE 10260
98+ # LOCAL-TINY-NEXT: 0000000000020328 0000000000000411 R_AARCH64_AUTH_RELATIVE 10260
99+
100+ # EXTERNAL-TINY: Hex dump of section '.got':
101+ # EXTERNAL-TINY-NEXT: 0x00020380 00000000 00000080 00000000 000000a0
102+ # ^^
103+ # 0b10000000 bit 63 address diversity = true, bits 61..60 key = IA
104+ # ^^
105+ # 0b10100000 bit 63 address diversity = true, bits 61..60 key = DA
106+
107+ # LOCAL-TINY: Symbol table '.symtab' contains {{.*}} entries:
108+ # LOCAL-TINY: Num: Value Size Type Bind Vis Ndx Name
109+ # LOCAL-TINY: 0000000000010260 0 FUNC GLOBAL DEFAULT 6 bar
110+ # LOCAL-TINY: 0000000000010260 0 NOTYPE GLOBAL DEFAULT 6 zed
111+
112+ # LOCAL-TINY: Hex dump of section '.got':
113+ # LOCAL-TINY-NEXT: 0x00020320 00000000 00000080 00000000 000000a0
114+ # ^^
115+ # 0b10000000 bit 63 address diversity = true, bits 61..60 key = IA
116+ # ^^
117+ # 0b10100000 bit 63 address diversity = true, bits 61..60 key = DA
118+
119+ # RUN: llvm-objdump -d external-tiny | FileCheck %s --check-prefix=EXTERNAL-TINY-ASM
120+
121+ # EXTERNAL-TINY-ASM: <_start>:
122+ # EXTERNAL-TINY-ASM-NEXT: adr x0, 0x20380
123+ # EXTERNAL-TINY-ASM-NEXT: ldr x1, [x0]
124+ # EXTERNAL-TINY-ASM-NEXT: adr x0, 0x20380
125+ # EXTERNAL-TINY-ASM-NEXT: ldr x1, 0x20380
126+ # EXTERNAL-TINY-ASM-NEXT: adr x0, 0x20388
127+ # EXTERNAL-TINY-ASM-NEXT: ldr x1, [x0]
128+ # EXTERNAL-TINY-ASM-NEXT: adr x0, 0x20388
129+ # EXTERNAL-TINY-ASM-NEXT: ldr x1, 0x20388
130+
131+ # RUN: llvm-objdump -d local-tiny | FileCheck %s --check-prefix=LOCAL-TINY-ASM
132+
133+ # LOCAL-TINY-ASM: <_start>:
134+ # LOCAL-TINY-ASM-NEXT: adr x0, 0x20320
135+ # LOCAL-TINY-ASM-NEXT: ldr x1, [x0]
136+ # LOCAL-TINY-ASM-NEXT: adr x0, 0x20320
137+ # LOCAL-TINY-ASM-NEXT: ldr x1, 0x20320
138+ # LOCAL-TINY-ASM-NEXT: adr x0, 0x20328
139+ # LOCAL-TINY-ASM-NEXT: ldr x1, [x0]
140+ # LOCAL-TINY-ASM-NEXT: adr x0, 0x20328
141+ # LOCAL-TINY-ASM-NEXT: ldr x1, 0x20328
142+
143+ .globl _start
144+ _start:
145+ adr x0, :got_auth:bar
146+ ldr x1, [x0]
147+ adr x0, :got_auth:bar
148+ ldr x1, :got_auth:bar
149+ adr x0, :got_auth:zed
150+ ldr x1, [x0]
151+ adr x0, :got_auth:zed
152+ ldr x1, :got_auth:zed
153+
81154#--- err.s
82155
83156# RUN: llvm-mc -filetype=obj -triple=aarch64-none-linux err.s -o err.o
0 commit comments