summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/sh/bandornot.s
blob: 1787d0d92fb8fab273c01b791f6bf006a872ddd1 (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
118
119
120
# sh testcase for bandnot, bornot
# mach:	 all
# as(sh):	-defsym sim_cpu=0
# as(shdsp):	-defsym sim_cpu=1 -dsp 

	.include "testutils.inc"

	.align 2
_x:	.long	0xa5a5a5a5

	start

bandor_b_imm_disp12_reg:
	set_grs_a5a5
	# Make sure T is true to start.
	sett

	mov.l	x, r1

	bandnot.b	#0, @(3, r1)
	bt8k	mfail
	bornot.b	#1, @(3, r1)
	bf8k	mfail
	bandnot.b	#2, @(3, r1)
	bt8k	mfail
	bornot.b	#3, @(3, r1)
	bf8k	mfail

	bornot.b	#4, @(3, r1)
	bf8k	mfail
	bandnot.b	#5, @(3, r1)
	bt8k	mfail
	bornot.b	#6, @(3, r1)
	bf8k	mfail
	bandnot.b	#7, @(3, r1)
	bt8k	mfail

	bandnot.b	#0, @(2, r1)
	bt8k	mfail
	bornot.b	#1, @(2, r1)
	bf8k	mfail
	bandnot.b	#2, @(2, r1)
	bt8k	mfail
	bornot.b	#3, @(2, r1)
	bf8k	mfail

	bra	.L2
	nop

	.align 2
x:	.long	_x

.L2:
	bornot.b	#4, @(2, r1)
	bf8k	mfail
	bandnot.b	#5, @(2, r1)
	bt8k	mfail
	bornot.b	#6, @(2, r1)
	bf8k	mfail
	bandnot.b	#7, @(2, r1)
	bt8k	mfail

	bandnot.b	#0, @(1, r1)
	bt8k	mfail
	bornot.b	#1, @(1, r1)
	bf8k	mfail
	bandnot.b	#2, @(1, r1)
	bt8k	mfail
	bornot.b	#3, @(1, r1)
	bf8k	mfail

	bornot.b	#4, @(1, r1)
	bf8k	mfail
	bandnot.b	#5, @(1, r1)
	bt8k	mfail
	bornot.b	#6, @(1, r1)
	bf8k	mfail
	bandnot.b	#7, @(1, r1)
	bt8k	mfail

	bandnot.b	#0, @(0, r1)
	bt8k	mfail
	bornot.b	#1, @(0, r1)
	bf8k	mfail
	bandnot.b	#2, @(0, r1)
	bt8k	mfail
	bornot.b	#3, @(0, r1)
	bf8k	mfail

	bornot.b	#4, @(0, r1)
	bf8k	mfail
	bandnot.b	#5, @(0, r1)
	bt8k	mfail
	bornot.b	#6, @(0, r1)
	bf8k	mfail
	bandnot.b	#7, @(0, r1)
	bt8k	mfail

	assertreg _x, r1

	test_gr_a5a5 r0
	test_gr_a5a5 r2
	test_gr_a5a5 r3
	test_gr_a5a5 r4
	test_gr_a5a5 r5
	test_gr_a5a5 r6
	test_gr_a5a5 r7
	test_gr_a5a5 r8
	test_gr_a5a5 r9
	test_gr_a5a5 r10
	test_gr_a5a5 r11
	test_gr_a5a5 r12
	test_gr_a5a5 r13
	test_gr_a5a5 r14

	pass

	exit 0