19990502 sourceware import
[external/binutils.git] / gas / testsuite / gas / hppa / reloc / funcrelocbug.s
1         .SPACE $PRIVATE$
2         .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
3         .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
4         .SPACE $TEXT$
5         .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
6         .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
7         .IMPORT $global$,DATA
8         .IMPORT $$dyncall,MILLICODE
9 ; gcc_compiled.:
10         .SPACE $TEXT$
11         .SUBSPA $CODE$
12
13         .align 4
14         .EXPORT g,CODE
15         .EXPORT g,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,RTNVAL=GR
16 g
17         .PROC
18         .CALLINFO FRAME=128,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
19         .ENTRY
20         stw %r2,-20(%r30)
21         copy %r3,%r1
22         copy %r30,%r3
23         stwm %r1,128(%r30)
24         stw %r26,-36(%r3)
25         stw %r25,-40(%r3)
26         stw %r24,-44(%r3)
27         ldw -36(%r3),%r26
28         ldw -40(%r3),%r25
29         ldw -44(%r3),%r19
30         copy %r19,%r22
31         .CALL   ARGW0=GR
32         bl $$dyncall,%r31
33         copy %r31,%r2
34         copy %r28,%r19
35         comiclr,<> 0,%r19,%r0
36         bl,n L$0002,%r0
37         ldw -36(%r3),%r28
38         bl,n L$0001,%r0
39         bl,n L$0003,%r0
40 L$0002
41         ldw -40(%r3),%r28
42         bl,n L$0001,%r0
43 L$0003
44 L$0001
45         ldw -20(%r3),%r2
46         ldo 64(%r3),%r30
47         ldwm -64(%r30),%r3
48         bv,n %r0(%r2)
49         .EXIT
50         .PROCEND
51         .align 4
52 f2___4
53         .PROC
54         .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
55         .ENTRY
56         copy %r3,%r1
57         copy %r30,%r3
58         stwm %r1,64(%r30)
59         stw %r29,8(%r3)
60         stw %r26,-36(%r3)
61         stw %r25,-40(%r3)
62         ldw -36(%r3),%r19
63         ldw -40(%r3),%r20
64         comclr,>= %r20,%r19,%r19
65         ldi 1,%r19
66         copy %r19,%r28
67         bl,n L$0005,%r0
68 L$0005
69         ldo 64(%r3),%r30
70         ldwm -64(%r30),%r3
71         bv,n %r0(%r2)
72         .EXIT
73         .PROCEND
74         .IMPORT abort,CODE
75         .SPACE $PRIVATE$
76         .SUBSPA $DATA$
77
78         .align 4
79 L$TRAMP0000
80         ldw     36(%r22),%r21
81         bb,>=,n %r21,30,.+16
82         depi    0,31,2,%r21
83         ldw     4(%r21),%r19
84         ldw     0(%r21),%r21
85         ldsid   (%r21),%r1
86         mtsp    %r1,%sr0
87         be      0(%sr0,%r21)
88         ldw     40(%r22),%r29
89         .word   0
90         .word   0
91         .SPACE $TEXT$
92         .SUBSPA $CODE$
93
94         .align 4
95         .EXPORT f,CODE
96         .EXPORT f,ENTRY,PRIV_LEV=3,RTNVAL=GR
97 f
98         .PROC
99         .CALLINFO FRAME=192,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
100         .ENTRY
101         stw %r2,-20(%r30)
102         copy %r3,%r1
103         copy %r30,%r3
104         stwm %r1,192(%r30)
105         ldo 16(%r3),%r19
106         addil L'L$TRAMP0000-$global$,%r27
107         ldo R'L$TRAMP0000-$global$(%r1),%r22
108         ldo 40(%r0),%r20
109         ldws,ma 4(%r22),%r21
110         addib,>= -4,%r20,.-4
111         stws,ma %r21,4(%r19)
112         ldil L'f2___4,%r20
113         ldo R'f2___4(%r20),%r19
114         stw %r19,52(%r3)
115         ldo 8(%r3),%r19
116         stw %r19,56(%r3)
117         ldo 16(%r3),%r19
118         ldo 48(%r3),%r20
119         fdc %r0(%r19)
120         fdc %r0(%r20)
121         sync
122         ldo 32(%r19),%r22
123         mfsp %sr0,%r21
124         ldsid (%r19),%r20
125         mtsp %r20,%sr0
126         fic %r0(%sr0,%r19)
127         fic %r0(%sr0,%r22)
128         sync
129         mtsp %r21,%sr0
130         nop
131         nop
132         nop
133         nop
134         nop
135         nop
136         ldo 16(%r3),%r19
137         ldi 1,%r26
138         ldi 2,%r25
139         copy %r19,%r24
140         .CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
141         bl g,%r2
142         nop
143         copy %r28,%r19
144         comiclr,<> 2,%r19,%r0
145         bl,n L$0006,%r0
146         .CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
147         bl abort,%r2
148         nop
149 L$0006
150 L$0004
151         ldw -20(%r3),%r2
152         ldo 64(%r3),%r30
153         ldwm -64(%r30),%r3
154         bv,n %r0(%r2)
155         .EXIT
156         .PROCEND
157         .IMPORT __main,CODE
158         .IMPORT exit,CODE
159         .align 4
160         .EXPORT main,CODE
161         .EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
162 main
163         .PROC
164         .CALLINFO FRAME=128,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
165         .ENTRY
166         stw %r2,-20(%r30)
167         copy %r3,%r1
168         copy %r30,%r3
169         stwm %r1,128(%r30)
170         .CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
171         bl __main,%r2
172         nop
173         .CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
174         bl f,%r2
175         nop
176         copy %r0,%r26
177         .CALL ARGW0=NO,ARGW1=NO,ARGW2=NO,ARGW3=NO
178         bl exit,%r2
179         nop
180 L$0007
181         ldw -20(%r3),%r2
182         ldo 64(%r3),%r30
183         ldwm -64(%r30),%r3
184         bv,n %r0(%r2)
185         .EXIT
186         .PROCEND