Statistics
| Branch: | Revision:

root / tests / lm32 / macros.inc @ d65f0831

History | View | Annotate | Download (960 Bytes)

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