summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/hppa/reloc/funcrelocbug.s
blob: fcfe93b6871b5b01a2627f0e8dd9c501178d8397 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
	.code
	.align 4
	.EXPORT g,CODE
	.EXPORT g,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,RTNVAL=GR
g
	.PROC
	.CALLINFO FRAME=128,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
	.ENTRY
	stw %r2,-20(%r30)
	copy %r3,%r1
	copy %r30,%r3
	stwm %r1,128(%r30)
	stw %r26,-36(%r3)
	stw %r25,-40(%r3)
	stw %r24,-44(%r3)
	ldw -36(%r3),%r26
	ldw -40(%r3),%r25
	ldw -44(%r3),%r19
	copy %r19,%r22
	.CALL	ARGW0=GR
	bl $$dyncall,%r31
	copy %r31,%r2
	copy %r28,%r19
	comiclr,<> 0,%r19,%r0
	bl,n L$0002,%r0
	ldw -36(%r3),%r28
	bl,n L$0001,%r0
	bl,n L$0003,%r0
L$0002
	ldw -40(%r3),%r28
	bl,n L$0001,%r0
L$0003
L$0001
	ldw -20(%r3),%r2
	ldo 64(%r3),%r30
	ldwm -64(%r30),%r3
	bv,n %r0(%r2)
	.EXIT
	.PROCEND
	.align 4
f2___4
	.PROC
	.CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
	.ENTRY
	copy %r3,%r1
	copy %r30,%r3
	stwm %r1,64(%r30)
	stw %r29,8(%r3)
	stw %r26,-36(%r3)
	stw %r25,-40(%r3)
	ldw -36(%r3),%r19
	ldw -40(%r3),%r20
	comclr,>= %r20,%r19,%r19
	ldi 1,%r19
	copy %r19,%r28
	bl,n L$0005,%r0
L$0005
	ldo 64(%r3),%r30
	ldwm -64(%r30),%r3
	bv,n %r0(%r2)
	.EXIT
	.PROCEND
	.IMPORT abort,CODE
	.data

	.align 4
L$TRAMP0000
	ldw	36(%r22),%r21
	bb,>=,n	%r21,30,.+16
	depi	0,31,2,%r21
	ldw	4(%r21),%r19
	ldw	0(%r21),%r21
	ldsid	(%r21),%r1
	mtsp	%r1,%sr0
	be	0(%sr0,%r21)
	ldw	40(%r22),%r29
	.word	0
	.word	0
	.code

	.align 4
	.EXPORT f,CODE
	.EXPORT f,ENTRY,PRIV_LEV=3,RTNVAL=GR
f
	.PROC
	.CALLINFO FRAME=192,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
	.ENTRY
	stw %r2,-20(%r30)
	copy %r3,%r1
	copy %r30,%r3
	stwm %r1,192(%r30)
	ldo 16(%r3),%r19
	addil L'L$TRAMP0000-$global$,%r27
	ldo R'L$TRAMP0000-$global$(%r1),%r22
	ldo 40(%r0),%r20
	ldws,ma 4(%r22),%r21
	addib,>= -4,%r20,.-4
	stws,ma %r21,4(%r19)
	ldil L'f2___4,%r20
	ldo R'f2___4(%r20),%r19
	stw %r19,52(%r3)
	ldo 8(%r3),%r19
	stw %r19,56(%r3)
	ldo 16(%r3),%r19
	ldo 48(%r3),%r20
	fdc %r0(%r19)
	fdc %r0(%r20)
	sync
	ldo 32(%r19),%r22
	mfsp %sr0,%r21
	ldsid (%r19),%r20
	mtsp %r20,%sr0
	fic %r0(%sr0,%r19)
	fic %r0(%sr0,%r22)
	sync
	mtsp %r21,%sr0
	nop
	nop
	nop
	nop
	nop
	nop
	ldo 16(%r3),%r19
	ldi 1,%r26
	ldi 2,%r25
	copy %r19,%r24
	.CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
	bl g,%r2
	nop
	copy %r28,%r19
	comiclr,<> 2,%r19,%r0
	bl,n L$0006,%r0
	.CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
	bl abort,%r2
	nop
L$0006
L$0004
	ldw -20(%r3),%r2
	ldo 64(%r3),%r30
	ldwm -64(%r30),%r3
	bv,n %r0(%r2)
	.EXIT
	.PROCEND
	.IMPORT __main,CODE
	.IMPORT exit,CODE
	.align 4
	.EXPORT main,CODE
	.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
main
	.PROC
	.CALLINFO FRAME=128,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
	.ENTRY
	stw %r2,-20(%r30)
	copy %r3,%r1
	copy %r30,%r3
	stwm %r1,128(%r30)
	.CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
	bl __main,%r2
	nop
	.CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
	bl f,%r2
	nop
	copy %r0,%r26
	.CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
	bl exit,%r2
	nop
L$0007
	ldw -20(%r3),%r2
	ldo 64(%r3),%r30
	ldwm -64(%r30),%r3
	bv,n %r0(%r2)
	.EXIT
	.PROCEND