|
|
1.1 root 1:
2: .macro test_name name
3: .data
4: tn_\name:
5: .asciz "\name"
6: .text
7: mvhi r13, hi(tn_\name)
8: ori r13, r13, lo(tn_\name)
9: sw (r12+8), r13
10: .endm
11:
12: .macro load reg val
13: mvhi \reg, hi(\val)
14: ori \reg, \reg, lo(\val)
15: .endm
16:
17: .macro tc_pass
18: mvi r13, 0
19: sw (r12+4), r13
20: .endm
21:
22: .macro tc_fail
23: mvi r13, 1
24: sw (r12+4), r13
25: .endm
26:
27: .macro check_r3 val
28: mvhi r13, hi(\val)
29: ori r13, r13, lo(\val)
30: be r3, r13, 1f
31: tc_fail
32: bi 2f
33: 1:
34: tc_pass
35: 2:
36: .endm
37:
38: .macro check_mem adr val
39: mvhi r13, hi(\adr)
40: ori r13, r13, lo(\adr)
41: mvhi r14, hi(\val)
42: ori r14, r14, lo(\val)
43: lw r13, (r13+0)
44: be r13, r14, 1f
45: tc_fail
46: bi 2f
47: 1:
48: tc_pass
49: 2:
50: .endm
51:
52: .macro check_excp excp
53: andi r13, r25, \excp
54: bne r13, r0, 1f
55: tc_fail
56: bi 2f
57: 1:
58: tc_pass
59: 2:
60: .endm
61:
62: .macro start
63: .global _main
64: .text
65: _main:
66: mvhi r12, hi(0xffff0000) # base address of test block
67: ori r12, r12, lo(0xffff0000)
68: .endm
69:
70: .macro end
71: sw (r12+0), r0
72: 1:
73: bi 1b
74: .endm
75:
76: # base +
77: # 0 ctrl
78: # 4 pass/fail
79: # 8 ptr to test name
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.