OpenCores
URL https://opencores.org/ocsvn/raptor64/raptor64/trunk

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [software/] [sample code/] [sieve.s] - Blame information for rev 46

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 46 robfinch
        code
2
        align   16
3
my_org:
4
                                org     0x100800200
5
                db      "BOOT"
6
                jmp     crt_start
7
                .align 8
8
sp_save:
9
                dw      0
10
                fill.b  0x0200,0xff
11
L_1:
12
L_0:
13
main:
14
        subui   sp,sp,#24
15
        sw      bp,[sp]
16
        sw      xlr,8[sp]
17
        sw      lr,16[sp]
18
        lea     xlr,L_5
19
        mov     bp,sp
20
        subui   sp,sp,#12800040
21
        subui   sp,sp,#56
22
        sw      r11,[sp]
23
        sw      r12,8[sp]
24
        sw      r13,16[sp]
25
        sw      r14,24[sp]
26
        sw      r15,32[sp]
27
        sw      r16,40[sp]
28
        sw      r17,48[sp]
29
        ori     r15,r0,#-1
30
        lea     r3,-12000016[bp]
31
        mov     r16,r3
32
;               lw              r1,#0x17
33
;               mov             r2,sp
34
;               syscall #410
35
                lw              r1,#0xAB
36
                outb    r1,0xdc0600
37
 
38
        call    get_tick
39
        mov     r3,r1
40
        mov     r17,r3
41
                                lw              r1,#0xAC
42
                outb    r1,0xdc0600
43
                lw              r1,#0x17
44
                mov             r2,sp
45
                syscall #410
46
        subui   sp,sp,#8
47
        fip
48
        nop
49
        nop
50
        nop
51
        nop
52
        sw      r4,[sp]
53
;       fip
54
                lw              r1,#0xAE
55
                outb    r1,0xdc0600
56
        nop
57
        nop
58
        nop
59
        nop
60
        nop
61
        subui   sp,sp,#16
62
        fip
63
        nop
64
        nop
65
        nop
66
        nop
67
        nop
68
        sw      r17,8[sp]
69
        fip
70
        nop
71
        nop
72
        nop
73
        nop
74
        nop
75
        ori     r3,r0,#L_0
76
        fip
77
        nop
78
        nop
79
        nop
80
        nop
81
        nop
82
        sw      r3,[sp]
83
        nop
84
        nop
85
        nop
86
        nop
87
        nop
88
                lw              r1,#0xAE
89
                outb    r1,0xdc0600
90
        wait
91
        call    printf
92
        addui   sp,sp,#16
93
        lw      r4,[sp]
94
        addui   sp,sp,#8
95
        mov     r3,r1
96
                                lw              r1,#0xAD
97
                outb    r1,0xdc0600
98
                cli
99
 
100
        ori     r3,r0,#1500000
101
        mov     r14,r3
102
        ori     r3,r0,#0
103
        mov     r11,r3
104
L_6:
105
        bge     r11,r14,L_7
106
        add     r3,r11,#2
107
        sw      r3,[r16+r11*8]
108
        addui   r11,r11,#1
109
        bra     L_6
110
L_7:
111
        ori     r3,r0,#0
112
        mov     r11,r3
113
L_8:
114
        bge     r11,r14,L_9
115
        lw      r3,[r16+r11*8]
116
        beq     r3,r15,L_10
117
        lw      r3,[r16+r11*8]
118
        shli    r4,r3,#1
119
        sub     r3,r4,#2
120
        mov     r12,r3
121
L_12:
122
        bge     r12,r14,L_13
123
        sw      r15,[r16+r12*8]
124
        lw      r3,[r16+r11*8]
125
        add     r12,r12,r3
126
        bra     L_12
127
L_13:
128
L_10:
129
        addui   r11,r11,#1
130
        bra     L_8
131
L_9:
132
        ori     r3,r0,#0
133
        mov     r12,r3
134
        ori     r3,r0,#0
135
        mov     r11,r3
136
L_14:
137
        bge     r11,r14,L_15
138
        bge     r12,#100000,L_15
139
        lw      r3,[r16+r11*8]
140
        beq     r3,r15,L_16
141
        lw      r3,[r16+r11*8]
142
        add     r12,r12,#1
143
        lea     r4,-12800016[bp]
144
        sw      r3,[r4+r12*8]
145
L_16:
146
        addui   r11,r11,#1
147
        bra     L_14
148
L_15:
149
        subui   sp,sp,#16
150
        sw      r4,8[sp]
151
        sw      r5,[sp]
152
        call    get_tick
153
        lw      r4,8[sp]
154
        lw      r5,[sp]
155
        addui   sp,sp,#16
156
        mov     r3,r1
157
        mov     r13,r3
158
        subui   sp,sp,#16
159
        sw      r4,8[sp]
160
        sw      r5,[sp]
161
        subui   sp,sp,#16
162
        sub     r3,r13,r17
163
        sw      r3,8[sp]
164
        ori     r3,r0,#L_0
165
        sw      r3,[sp]
166
        call    printf
167
        addui   sp,sp,#16
168
        lw      r4,8[sp]
169
        lw      r5,[sp]
170
        addui   sp,sp,#16
171
        mov     r3,r1
172
        ori     r3,r0,#0
173
        mov     r11,r3
174
L_18:
175
        bge     r11,#100000,L_19
176
        subui   sp,sp,#16
177
        sw      r4,8[sp]
178
        sw      r5,[sp]
179
        subui   sp,sp,#16
180
        lea     r3,-12800016[bp]
181
        lw      r4,[r3+r11*8]
182
        sw      r4,8[sp]
183
        ori     r4,r0,#L_0
184
        sw      r4,[sp]
185
        call    printf
186
        addui   sp,sp,#16
187
        lw      r4,8[sp]
188
        lw      r5,[sp]
189
        addui   sp,sp,#16
190
        mov     r4,r1
191
        addui   r11,r11,#1
192
        bra     L_18
193
L_19:
194
        ori     r1,r0,#0
195
L_20:
196
        lw      r17,48[sp]
197
        lw      r16,40[sp]
198
        lw      r15,32[sp]
199
        lw      r14,24[sp]
200
        lw      r13,16[sp]
201
        lw      r12,8[sp]
202
        lw      r11,[sp]
203
        addui   sp,sp,#56
204
        mov     sp,bp
205
        lw      bp,[sp]
206
        lw      xlr,8[sp]
207
        lw      lr,16[sp]
208
        ret     #24
209
L_5:
210
        lw      lr,8[bp]
211
        sw      lr,16[bp]
212
        bra     L_20
213
printf:
214
                                lw              r1,#0xB0
215
                outb    r1,0xdc0600
216
        subui   sp,sp,#24
217
        sw      bp,[sp]
218
        sw      xlr,8[sp]
219
        sw      lr,16[sp]
220
        lea     xlr,L_21
221
        mov     bp,sp
222
        subui   sp,sp,#8
223
        subui   sp,sp,#24
224
        sw      r11,[sp]
225
        sw      r12,8[sp]
226
        sw      r13,16[sp]
227
        lw      r3,24[bp]
228
        mov     r12,r3
229
        ori     r13,r0,#putch
230
                                lw              r1,#0xAE
231
                outb    r1,0xdc0600
232
 
233
        lea     r3,24[bp]
234
        mov     r11,r3
235
L_22:
236
        lc      r3,[r12]
237
        beq     r3,r0,L_23
238
        lc      r3,[r12]
239
        bne     r3,#37,L_24
240
        addui   r12,r12,#2
241
        lc      r3,[r12]
242
        sext16  r3,r3
243
        or      r1,r3,r0
244
        beq     r1,#37,L_27
245
        beq     r1,#99,L_28
246
        beq     r1,#100,L_29
247
        beq     r1,#115,L_30
248
        bra     L_26
249
L_27:
250
        subui   sp,sp,#16
251
        sw      r4,8[sp]
252
        sw      r5,[sp]
253
        subui   sp,sp,#8
254
        ori     r3,r0,#37
255
        sw      r3,[sp]
256
        jal     lr,[r13]
257
        addui   sp,sp,#8
258
        lw      r4,8[sp]
259
        lw      r5,[sp]
260
        addui   sp,sp,#16
261
        mov     r3,r1
262
        bra     L_26
263
L_28:
264
        addui   r11,r11,#8
265
        subui   sp,sp,#16
266
        sw      r4,8[sp]
267
        sw      r5,[sp]
268
        subui   sp,sp,#8
269
        lw      r3,[r11]
270
        sw      r3,[sp]
271
        jal     lr,[r13]
272
        addui   sp,sp,#8
273
        lw      r4,8[sp]
274
        lw      r5,[sp]
275
        addui   sp,sp,#16
276
        mov     r3,r1
277
        bra     L_26
278
L_29:
279
        addui   r11,r11,#8
280
        subui   sp,sp,#16
281
        sw      r4,8[sp]
282
        sw      r5,[sp]
283
        subui   sp,sp,#8
284
        lw      r3,[r11]
285
        sw      r3,[sp]
286
        call    putnum
287
        addui   sp,sp,#8
288
        lw      r4,8[sp]
289
        lw      r5,[sp]
290
        addui   sp,sp,#16
291
        mov     r3,r1
292
        bra     L_26
293
L_30:
294
        addui   r11,r11,#8
295
        subui   sp,sp,#16
296
        sw      r4,8[sp]
297
        sw      r5,[sp]
298
        subui   sp,sp,#8
299
        lw      r3,[r11]
300
        sw      r3,[sp]
301
        call    putstr
302
        addui   sp,sp,#8
303
        lw      r4,8[sp]
304
        lw      r5,[sp]
305
        addui   sp,sp,#16
306
        mov     r3,r1
307
        bra     L_26
308
L_26:
309
        bra     L_25
310
L_24:
311
        subui   sp,sp,#16
312
        sw      r4,8[sp]
313
        sw      r5,[sp]
314
        subui   sp,sp,#8
315
        lc      r3,[r12]
316
        sext16  r3,r3
317
        sw      r3,[sp]
318
        jal     lr,[r13]
319
        addui   sp,sp,#8
320
        lw      r4,8[sp]
321
        lw      r5,[sp]
322
        addui   sp,sp,#16
323
        mov     r3,r1
324
L_25:
325
        addui   r12,r12,#2
326
        bra     L_22
327
L_23:
328
L_31:
329
        lw      r13,16[sp]
330
        lw      r12,8[sp]
331
        lw      r11,[sp]
332
        addui   sp,sp,#24
333
        mov     sp,bp
334
        lw      bp,[sp]
335
        lw      xlr,8[sp]
336
        lw      lr,16[sp]
337
        ret     #24
338
L_21:
339
        lw      lr,8[bp]
340
        sw      lr,16[bp]
341
        bra     L_31
342
putch:
343
        subui   sp,sp,#24
344
        sw      bp,[sp]
345
        mov     bp,sp
346
                                lw              r1,#0xAF
347
                outb    r1,0xdc0600
348
 
349
                                lw              r1,#0x0a
350
                lw              r2,24[bp]
351
                lw              r3,#1
352
                syscall #410
353
 
354
                                lw              r1,#0xB0
355
                outb    r1,0xdc0600
356
 
357
L_33:
358
        mov     sp,bp
359
        lw      bp,[sp]
360
        ret     #24
361
L_32:
362
putnum:
363
        subui   sp,sp,#24
364
        sw      bp,[sp]
365
        mov     bp,sp
366
                                lw              r1,#0xB1
367
                outb    r1,0xdc0600
368
 
369
                                lw              r1,#0x15
370
                lw              r2,24[bp]
371
                lw              r3,#5
372
                syscall #410
373
 
374
                                lw              r1,#0xB2
375
                outb    r1,0xdc0600
376
 
377
L_35:
378
        mov     sp,bp
379
        lw      bp,[sp]
380
        ret     #24
381
L_34:
382
putstr:
383
        subui   sp,sp,#24
384
        sw      bp,[sp]
385
        mov     bp,sp
386
                                lw              r1,#0x14
387
                lw              r2,24[bp]
388
                syscall #410
389
 
390
L_37:
391
        mov     sp,bp
392
        lw      bp,[sp]
393
        ret     #24
394
L_36:
395
get_tick:
396
        subui   sp,sp,#24
397
        sw      bp,[sp]
398
        mov     bp,sp
399
                                lw              r1,#0
400
                syscall #416
401
 
402
L_39:
403
        mov     sp,bp
404
        lw      bp,[sp]
405
        ret     #24
406
L_38:
407
crt_start:
408
        subui   sp,sp,#24
409
        sw      bp,[sp]
410
        sw      xlr,8[sp]
411
        sw      lr,16[sp]
412
        lea     xlr,L_41
413
        mov     bp,sp
414
                                lw              r1,#0xAA
415
                outb    r1,0xdc0600
416
                sw              sp,sp_save
417
                lw              sp,#0x1_07FFFFF8
418
                lw              r1,#0x17
419
                mov             r2,sp
420
                syscall #410
421
                lea             xlr,prog_abort
422
                call    main
423
                lw              sp,sp_save
424
                bra             retcode
425
prog_abort:
426
 
427
        subui   sp,sp,#16
428
        sw      r4,8[sp]
429
        sw      r5,[sp]
430
        subui   sp,sp,#8
431
        ori     r3,r0,#L_0
432
        sw      r3,[sp]
433
        call    putstr
434
        addui   sp,sp,#8
435
        lw      r4,8[sp]
436
        lw      r5,[sp]
437
        addui   sp,sp,#16
438
                                lw      sp,sp_save
439
retcode:
440
 
441
L_42:
442
        mov     sp,bp
443
        lw      bp,[sp]
444
        lw      xlr,8[sp]
445
        lw      lr,16[sp]
446
        ret     #24
447
L_41:
448
        lw      lr,8[bp]
449
        sw      lr,16[bp]
450
        bra     L_42
451
        align   8
452
L_40:
453
        dc      80,114,111,103,114,97,109,32
454
        dc      97,98,111,114,116,101,100,32
455
        dc      97,98,110,111,114,109,97,108
456
        dc      108,121,46,0
457
L_4:
458
        dc      37,100,10,0
459
L_3:
460
        dc      67,108,111,99,107,32,116,105
461
        dc      99,107,115,32,37,100,13,10
462
        dc      0
463
L_2:
464
        dc      83,116,97,114,116,32,116,105
465
        dc      99,107,32,37,100,13,10,0
466
;       global  putch
467
;       global  get_tick
468
;       global  my_org
469
;       global  printf
470
;       global  main
471
;       global  putnum
472
;       global  putstr
473
;       global  crt_start

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.