summaryrefslogtreecommitdiffstats
path: root/qemu/tests/tcg/cris/testutils.inc
blob: aa1641b2e6b4abccad673a7b3cbfeb5ee287f28a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
	.syntax	no_register_prefix

	.macro	start
	.text
	.global	main
main:
	.endm

	.macro	quit
	jump	pass
	nop
	.endm

	.macro	pass
	jump	pass
	nop
	.endm

	.macro	startnostack
	start
	.endm

	.macro	fail
	.data
99:
	.asciz " checkr3 failed\n"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
	.endm

	.macro	checkr3 val
	cmp.d	0x\val, $r3
	beq	100f
	nop
	.data
99:
	.asciz "checkr3 failed\n"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
100:
	.endm

; Test the condition codes
        .macro test_cc N Z V C
        .if \N
        bpl 9f
        nop
        .else
        bmi 9f
        nop
        .endif
        .if \Z
        bne 9f
        nop
        .else
        beq 9f
        nop
        .endif
        .if \V
        bvc 9f
        nop
        .else
        bvs 9f
        nop
        .endif
        .if \C
        bcc 9f
        nop
        .else
        bcs 9f
        nop
        .endif
        ba 8f
        nop
9:
	.data
99:
	.asciz "test_move_cc failed\n"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
8:
        .endm


        .macro test_move_cc N Z V C
        .if \N
        bpl 9f
        nop
        .else
        bmi 9f
        nop
        .endif
        .if \Z
        bne 9f
        nop
        .else
        beq 9f
        nop
        .endif
        ba 8f
        nop
9:
	.data
99:
	.asciz "test_move_cc failed\n"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
8:
        .endm