summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-arm/fdpic-main-m.s
blob: 4fb40ca1d45db42243a68904045635d886aaed38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
	.arch armv7-m
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 1
	.eabi_attribute 18, 4
	.file	"hello.c"
	.text
	.align	2
	.syntax unified
	.thumb
	.fpu softvfp
	.type	my_local_func, %function
my_local_func:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	bx	lr
	.size	my_local_func, .-my_local_func
	.section	.text.startup,"ax",%progbits
	.align	2
	.global	_start
	.syntax unified
	.thumb
	.fpu softvfp
	.type	_start, %function
_start:
	b	main

	.global	main
	.syntax unified
	.thumb
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	ldr	r2, .L4
	ldr	r3, .L4+4
	push	{r4, r5, r6, lr}
	ldr	r5, [r9, r2]
	mov	r4, r9
	ldr	r3, [r9, r3]
	str	r3, [r5]
	bl	my_shared_func1(PLT)
	mov	r6, r0
	mov	r9, r4
	ldr	r0, [r5]
	mov	r9, r4
	bl	my_shared_func2(PLT)
	ldr	r3, .L4+8
	mov	r9, r4
	add	r3, r3, r9
	mov	r0, r3
	str	r3, [r5]
	mov	r9, r4
	bl	my_shared_func2(PLT)
	ldr	r3, .L4+12
	mov	r9, r4
	ldr	r3, [r9, r3]
	ldr	r0, [r3]
	mov	r9, r4
	bl	my_shared_func2(PLT)
	mov	r0, r6
	mov	r9, r4
	pop	{r4, r5, r6, pc}
.L5:
	.align	2
.L4:
	.word	funcptr(GOT)
	.word	my_shared_func1(GOTFUNCDESC)
	.word	my_local_func(GOTOFFFUNCDESC)
	.word	funcptr2(GOT)
	.size	main, .-main
	.global	funcptr2
	.comm	funcptr,4,4
	.section	.data.rel,"aw",%progbits
	.align	2
	.type	funcptr2, %object
	.size	funcptr2, 4
funcptr2:
	.word	my_shared_func1(FUNCDESC)