brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · ccfd983 Raw
99 lines · plain
1// RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj %s -o -| llvm-objdump -r - | FileCheck %s2 3// CHECK: RELOCATION RECORDS FOR [.text]4 5	.file	"/home/espindola/llvm/llvm/test/CodeGen/AArch64/basic-pic.ll"6	.text7	.globl	get_globalvar8	.type	get_globalvar,@function9get_globalvar:                          // @get_globalvar10	.cfi_startproc11// %bb.0:12	adrp	x0, :got:var13	ldr	x0, [x0, #:got_lo12:var]14	ldr	 w0, [x0]15	ret16.Ltmp0:17	.size	get_globalvar, .Ltmp0-get_globalvar18	.cfi_endproc19 20// CHECK: R_AARCH64_ADR_GOT_PAGE var21// CHECK: R_AARCH64_LD64_GOT_LO12_NC var22 23	.globl	get_globalvaraddr24	.type	get_globalvaraddr,@function25get_globalvaraddr:                      // @get_globalvaraddr26	.cfi_startproc27// %bb.0:28	adrp	x0, :got:var29	ldr	x0, [x0, #:got_lo12:var]30	ret31.Ltmp1:32	.size	get_globalvaraddr, .Ltmp1-get_globalvaraddr33	.cfi_endproc34// CHECK: R_AARCH64_ADR_GOT_PAGE var35// CHECK: R_AARCH64_LD64_GOT_LO12_NC var36 37	.globl	get_hiddenvar38	.type	get_hiddenvar,@function39get_hiddenvar:                          // @get_hiddenvar40	.cfi_startproc41// %bb.0:42	adrp	x0, hiddenvar43	ldr	w0, [x0, #:lo12:hiddenvar]44	ret45.Ltmp2:46	.size	get_hiddenvar, .Ltmp2-get_hiddenvar47	.cfi_endproc48// CHECK: R_AARCH64_ADR_PREL_PG_HI21 hiddenvar49// CHECK: R_AARCH64_LDST32_ABS_LO12_NC hiddenvar50 51	.globl	get_hiddenvaraddr52	.type	get_hiddenvaraddr,@function53get_hiddenvaraddr:                      // @get_hiddenvaraddr54	.cfi_startproc55// %bb.0:56	adrp	x0, hiddenvar57	add	x0, x0, #:lo12:hiddenvar58	ret59.Ltmp3:60	.size	get_hiddenvaraddr, .Ltmp3-get_hiddenvaraddr61	.cfi_endproc62// CHECK: R_AARCH64_ADR_PREL_PG_HI21 hiddenvar63// CHECK: R_AARCH64_ADD_ABS_LO12_NC hiddenvar64 65	.globl	get_func66	.type	get_func,@function67get_func:                               // @get_func68	.cfi_startproc69// %bb.0:70	adrp	x0, :got:get_func71	ldr	x0, [x0, #:got_lo12:get_func]72	ret73.Ltmp4:74	.size	get_func, .Ltmp4-get_func75	.cfi_endproc76 77// Particularly important that the ADRP gets a relocation, LLVM tends to think78// it can relax it because it knows where get_func is. It can't!79// CHECK: R_AARCH64_ADR_GOT_PAGE get_func80// CHECK: R_AARCH64_LD64_GOT_LO12_NC get_func81 82	.type	var,@object             // @var83	.bss84	.globl	var85	.align	286var:87	.word	0                       // 0x088	.size	var, 489 90	.hidden	hiddenvar               // @hiddenvar91	.type	hiddenvar,@object92	.globl	hiddenvar93	.align	294hiddenvar:95	.word	0                       // 0x096	.size	hiddenvar, 497 98 99