|
|
1.1 root 1: .macro test_suite name
2: .data
3: status: .word result
4: result: .space 20
5: .text
6: .global main
7: .align 4
8: main:
9: .endm
10:
11: .macro reset_ps
12: movi a2, 0x4000f
13: wsr a2, ps
14: isync
15: .endm
16:
17: .macro test_suite_end
18: reset_ps
19: movi a0, status
20: l32i a2, a0, 0
21: movi a0, result
22: sub a2, a2, a0
23: movi a3, 0
24: loopnez a2, 1f
25: l8ui a2, a0, 0
26: or a3, a3, a2
27: addi a0, a0, 1
28: 1:
29: exit
30: .endm
31:
32: .macro test name
33: .endm
34:
35: .macro test_end
36: 99:
37: reset_ps
38: movi a2, status
39: l32i a3, a2, 0
40: addi a3, a3, 1
41: s32i a3, a2, 0
42: .endm
43:
44: .macro exit
45: movi a2, 1
46: simcall
47: .endm
48:
49: .macro test_fail
50: movi a2, status
51: l32i a2, a2, 0
52: movi a3, 1
53: s8i a3, a2, 0
54: j 99f
55: .endm
56:
57: .macro assert cond, arg1, arg2
58: b\cond \arg1, \arg2, 90f
59: test_fail
60: 90:
61: nop
62: .endm
63:
64: .macro set_vector vector, addr
65: movi a2, handler_\vector
66: movi a3, \addr
67: s32i a3, a2, 0
68: .endm
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.