Statistics
| Branch: | Revision:

root / tests / tcg / lm32 / macros.inc @ c09015dd

History | View | Annotate | Download (960 Bytes)

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