File: avcall-riscv32-ilp32d-linux.s

package info (click to toggle)
ffcall 2.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,024 kB
  • sloc: asm: 100,607; ansic: 50,932; sh: 5,630; makefile: 1,588; cpp: 2
file content (325 lines) | stat: -rw-r--r-- 4,062 bytes parent folder | download | duplicates (2)
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
	.file	"avcall-riscv32.c"
	.option pic
	.text
	.align	1
	.globl	avcall_call
	.type	avcall_call, @function
avcall_call:
	add	sp,sp,-32
	sw	ra,28(sp)
	sw	s0,24(sp)
	sw	s1,20(sp)
	sw	s2,16(sp)
	sw	s3,12(sp)
	sw	s4,8(sp)
	add	s0,sp,32
	lw	t2,24(a0)
	lw	t0,20(a0)
	li	t3,32
	mv	s1,a0
	sub	t0,t0,t2
	add	sp,sp,-1040
	lw	ra,40(a0)
	ble	t0,t3,.L2
	mv	t1,sp
	sra	t6,t0,2
	add	t4,t2,32
	li	t3,8
.L3:
	lw	t5,0(t4)
	add	t3,t3,1
	add	t4,t4,4
	sw	t5,0(t1)
	add	t1,t1,4
	bgt	t6,t3,.L3
.L4:
	li	t1,4
	lw	a0,0(t2)
	bgt	t0,t1,.L79
.L5:
	beqz	ra,.L8
	lw	t1,48(s1)
	and	t3,t1,1
	beqz	t3,.L9
	fld	fa0,88(s1)
.L10:
	li	t3,1
	bleu	ra,t3,.L8
	and	t3,t1,2
	bnez	t3,.L80
	lw	t3,44(s1)
	and	t3,t3,2
	beqz	t3,.L13
	flw	fa1,56(s1)
.L13:
	li	t3,2
	beq	ra,t3,.L8
	and	t3,t1,4
	beqz	t3,.L14
	fld	fa2,104(s1)
.L15:
	li	t3,3
	beq	ra,t3,.L8
	and	t3,t1,8
	bnez	t3,.L81
	lw	t3,44(s1)
	and	t3,t3,8
	beqz	t3,.L17
	flw	fa3,64(s1)
.L17:
	li	t3,4
	beq	ra,t3,.L8
	and	t3,t1,16
	beqz	t3,.L18
	fld	fa4,120(s1)
.L19:
	li	t3,5
	beq	ra,t3,.L8
	and	t3,t1,32
	beqz	t3,.L20
	fld	fa5,128(s1)
.L21:
	li	t3,6
	beq	ra,t3,.L8
	and	t3,t1,64
	beqz	t3,.L22
	fld	fa6,136(s1)
.L23:
	li	t3,7
	beq	ra,t3,.L8
	and	t1,t1,128
	beqz	t1,.L24
	fld	fa7,144(s1)
.L8:
	lw	t1,12(s1)
	li	t3,13
	lw	t4,4(s1)
	bne	t1,t3,.L25
	lw	s1,8(s1)
	jalr	t4
	fsw	fa0,0(s1)
.L26:
	add	sp,s0,-32
	lw	ra,28(sp)
	li	a0,0
	lw	s0,24(sp)
	lw	s1,20(sp)
	lw	s2,16(sp)
	lw	s3,12(sp)
	lw	s4,8(sp)
	add	sp,sp,32
	jr	ra
.L79:
	li	t1,8
	lw	a1,4(t2)
	ble	t0,t1,.L5
	li	t1,12
	lw	a2,8(t2)
	ble	t0,t1,.L5
	li	t1,16
	lw	a3,12(t2)
	ble	t0,t1,.L5
	li	t1,20
	lw	a4,16(t2)
	ble	t0,t1,.L5
	li	t1,24
	lw	a5,20(t2)
	ble	t0,t1,.L5
	li	t1,28
	lw	a6,24(t2)
	ble	t0,t1,.L5
	lw	a7,28(t2)
	j	.L5
.L9:
	lw	t3,44(s1)
	and	t3,t3,1
	beqz	t3,.L10
	flw	fa0,52(s1)
	j	.L10
.L25:
	li	t3,14
	beq	t1,t3,.L82
	jalr	t4
	lw	t1,12(s1)
	li	t4,1
	mv	t3,a0
	beq	t1,t4,.L26
	li	t4,2
	beq	t1,t4,.L72
	li	t4,3
	beq	t1,t4,.L72
	li	t4,4
	beq	t1,t4,.L72
	li	t4,5
	beq	t1,t4,.L73
	li	t4,6
	beq	t1,t4,.L73
	li	t4,7
	beq	t1,t4,.L77
	li	t4,8
	beq	t1,t4,.L77
	li	t4,9
	beq	t1,t4,.L77
	li	t4,10
	beq	t1,t4,.L77
	add	t6,t1,-11
	li	t4,1
	bleu	t6,t4,.L83
	li	t6,15
	beq	t1,t6,.L77
	li	t6,16
	bne	t1,t6,.L26
	lw	t1,0(s1)
	and	t1,t1,2
	beqz	t1,.L26
	lw	s3,16(s1)
	li	t1,7
	add	t6,s3,-1
	bgtu	t6,t1,.L26
	lw	t6,8(s1)
	li	s4,4
	and	t0,t6,-4
	lw	t2,0(t0)
	and	t6,t6,3
	sll	s2,t6,3
	sll	s1,a0,s2
	add	t1,s3,t6
	sll	t4,t4,s2
	xor	s1,s1,t2
	bgtu	s3,s4,.L39
	bgtu	t1,s4,.L40
	sll	t1,t1,3
	add	t3,t1,-1
	li	t1,2
	sll	t1,t1,t3
	sub	t1,t1,t4
	and	t1,t1,s1
	xor	t1,t1,t2
	sw	t1,0(t0)
	j	.L26
.L80:
	fld	fa1,96(s1)
	j	.L13
.L82:
	lw	s1,8(s1)
	jalr	t4
	fsd	fa0,0(s1)
	j	.L26
.L72:
	lw	t1,8(s1)
	sb	t3,0(t1)
	j	.L26
.L2:
	blez	t0,.L5
	j	.L4
.L14:
	lw	t3,44(s1)
	and	t3,t3,4
	beqz	t3,.L15
	flw	fa2,60(s1)
	j	.L15
.L81:
	fld	fa3,112(s1)
	j	.L17
.L73:
	lw	t1,8(s1)
	sh	t3,0(t1)
	j	.L26
.L18:
	lw	t3,44(s1)
	and	t3,t3,16
	beqz	t3,.L19
	flw	fa4,68(s1)
	j	.L19
.L77:
	lw	t1,8(s1)
	sw	t3,0(t1)
	j	.L26
.L20:
	lw	t3,44(s1)
	and	t3,t3,32
	beqz	t3,.L21
	flw	fa5,72(s1)
	j	.L21
.L22:
	lw	t3,44(s1)
	and	t3,t3,64
	beqz	t3,.L23
	flw	fa6,76(s1)
	j	.L23
.L24:
	lw	t1,44(s1)
	and	t1,t1,128
	beqz	t1,.L8
	flw	fa7,80(s1)
	j	.L8
.L83:
	lw	t1,8(s1)
	sw	a0,0(t1)
	sw	a1,4(t1)
	j	.L26
.L40:
	li	t5,-8
	mul	t6,t6,t5
	lw	s2,4(t0)
	sll	t1,t1,3
	add	t5,t1,-33
	li	t1,2
	sll	t1,t1,t5
	sub	t4,zero,t4
	add	t1,t1,-1
	and	t4,t4,s1
	xor	t4,t4,t2
	sra	t3,a0,t6
	xor	t3,t3,s2
	and	t1,t1,t3
	xor	t1,t1,s2
	sw	t4,0(t0)
	sw	t1,4(t0)
	j	.L26
.L39:
	sub	t4,zero,t4
	and	t4,t4,s1
	xor	t4,t4,t2
	sw	t4,0(t0)
	li	t4,8
	sll	s1,a1,s2
	bleu	t1,t4,.L84
	li	t4,-8
	mul	t6,t6,t4
	sll	t1,t1,3
	li	t2,2
	add	t1,t1,-65
	lw	s2,8(t0)
	sll	t1,t2,t1
	add	t2,t1,-1
	add	t1,t6,32
	sra	t4,a1,t1
	xor	t4,t4,s2
	sra	t1,a0,t1
	and	t3,t2,t4
	or	t1,t1,s1
	xor	t3,t3,s2
	sw	t1,4(t0)
	sw	t3,8(t0)
	j	.L26
.L84:
	li	t4,-4
	mul	t4,t6,t4
	sll	t1,t1,3
	lw	t6,4(t0)
	add	t5,t1,-33
	li	t1,2
	sll	t1,t1,t5
	add	t1,t1,-1
	add	t4,t4,16
	sra	t3,a0,t4
	sra	t3,t3,t4
	or	t3,t3,s1
	xor	t3,t3,t6
	and	t1,t1,t3
	xor	t1,t1,t6
	sw	t1,4(t0)
	j	.L26
	.size	avcall_call, .-avcall_call
	.ident	"GCC: (GNU) 7.3.0"