summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/hppa/reloc/applybug.s
blob: f8ed6e8e20cc9bb8174598ea06b8f0b397e436cd (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
	.SPACE $PRIVATE$
	.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
	.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
	.SPACE $TEXT$
	.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
	.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
	.IMPORT $global$,DATA
	.IMPORT $$dyncall,MILLICODE
; gcc_compiled.:
	.SPACE $PRIVATE$
	.SUBSPA $DATA$

	.align 4
tab___2
	.word L$0002
	.word L$0003
	.word L$0004
	.SPACE $TEXT$
	.SUBSPA $CODE$

	.align 4
	.EXPORT execute,CODE
	.EXPORT execute,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
execute
	.PROC
	.CALLINFO FRAME=0,NO_CALLS
	.ENTRY
	addil L'buf-$global$,%r27
	ldo R'buf-$global$(%r1),%r20
	ldil L'L$0002,%r19
	movb,<> %r26,%r26,L$0002
	ldo R'L$0002(%r19),%r22
	copy %r0,%r21
	addil L'tab___2-$global$,%r27
	ldo R'tab___2-$global$(%r1),%r23
	addil L'optab-$global$,%r27
	ldo R'optab-$global$(%r1),%r20
L$0009
	sh2add %r21,%r23,%r19
	ldh 2(%r19),%r19
	ldo 1(%r21),%r21
	sub %r19,%r22,%r19
	comib,>= 2,%r21,L$0009
	sths,ma %r19,2(%r20)
	bv,n %r0(%r2)
L$0002
	ldi 120,%r19
	stbs,ma %r19,1(%r20)
	ldhs,ma 2(%r26),%r19
	add %r22,%r19,%r19
	bv,n %r0(%r19)
L$0003
	ldi 121,%r19
	stbs,ma %r19,1(%r20)
	ldhs,ma 2(%r26),%r19
	add %r22,%r19,%r19
	bv,n %r0(%r19)
L$0004
	ldi 122,%r19
	stb %r19,0(%r20)
	bv %r0(%r2)
	stbs,mb %r0,1(%r20)
	.EXIT
	.PROCEND
	.IMPORT __main,CODE
	.IMPORT strcmp,CODE
	.SPACE $TEXT$
	.SUBSPA $LIT$

	.align 4
L$C0000
	.STRING "xyxyz\x00"
	.IMPORT abort,CODE
	.IMPORT exit,CODE
	.SPACE $TEXT$
	.SUBSPA $CODE$

	.align 4
	.EXPORT main,CODE
	.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
main
	.PROC
	.CALLINFO FRAME=128,CALLS,SAVE_RP
	.ENTRY
	stw %r2,-20(%r30)
	.CALL 
	bl __main,%r2
	ldo 128(%r30),%r30
	.CALL ARGW0=GR
	bl execute,%r2
	copy %r0,%r26
	addil L'optab-$global$,%r27
	copy %r1,%r19
	ldo R'optab-$global$(%r19),%r21
	ldh 2(%r21),%r20
	ldh R'optab-$global$(%r19),%r19
	addil L'p-$global$,%r27
	copy %r1,%r22
	sth %r20,R'p-$global$(%r22)
	ldo R'p-$global$(%r22),%r26
	sth %r20,4(%r26)
	sth %r19,2(%r26)
	ldh 4(%r21),%r19
	.CALL ARGW0=GR
	bl execute,%r2
	sth %r19,6(%r26)
	addil L'buf-$global$,%r27
	copy %r1,%r19
	ldo R'buf-$global$(%r19),%r26
	ldil L'L$C0000,%r25
	.CALL ARGW0=GR,ARGW1=GR
	bl strcmp,%r2
	ldo R'L$C0000(%r25),%r25
	comib,=,n 0,%r28,L$0011
	.CALL 
	bl abort,%r2
	nop
L$0011
	.CALL ARGW0=GR
	bl exit,%r2
	copy %r0,%r26
	nop
	.EXIT
	.PROCEND
	.SPACE $PRIVATE$
	.SUBSPA $BSS$

optab	.comm 10
buf	.comm 10
p	.comm 10