aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/sh/bclr.s
blob: cbe1c7e618d4b4e4848eddadbea7dbe333adabf3 (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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# sh testcase for bclr
# mach:	 all
# as(sh):	-defsym sim_cpu=0
# as(shdsp):	-defsym sim_cpu=1 -dsp 

	.include "testutils.inc"

	.align 2
_x:	.long	0xffffffff
_y:	.long	0x55555555

	start

bclr_b_imm_disp12_reg:
	set_grs_a5a5
	mov.l	x, r1

	bclr.b	#0, @(3, r1)
	assertmem _x, 0xfffffffe
	bclr.b	#1, @(3, r1)
	assertmem _x, 0xfffffffc
	bclr.b	#2, @(3, r1)
	assertmem _x, 0xfffffff8
	bclr.b	#3, @(3, r1)
	assertmem _x, 0xfffffff0

	bclr.b	#4, @(3, r1)
	assertmem _x, 0xffffffe0
	bclr.b	#5, @(3, r1)
	assertmem _x, 0xffffffc0
	bclr.b	#6, @(3, r1)
	assertmem _x, 0xffffff80
	bclr.b	#7, @(3, r1)
	assertmem _x, 0xffffff00

	bclr.b	#0, @(2, r1)
	assertmem _x, 0xfffffe00
	bclr.b	#1, @(2, r1)
	assertmem _x, 0xfffffc00
	bclr.b	#2, @(2, r1)
	assertmem _x, 0xfffff800
	bclr.b	#3, @(2, r1)
	assertmem _x, 0xfffff000

	bra	.L2
	nop

	.align 2
x:	.long	_x
y:	.long	_y

.L2:
	bclr.b	#4, @(2, r1)
	assertmem _x, 0xffffe000
	bclr.b	#5, @(2, r1)
	assertmem _x, 0xffffc000
	bclr.b	#6, @(2, r1)
	assertmem _x, 0xffff8000
	bclr.b	#7, @(2, r1)
	assertmem _x, 0xffff0000

	bclr.b	#0, @(1, r1)
	assertmem _x, 0xfffe0000
	bclr.b	#1, @(1, r1)
	assertmem _x, 0xfffc0000
	bclr.b	#2, @(1, r1)
	assertmem _x, 0xfff80000
	bclr.b	#3, @(1, r1)
	assertmem _x, 0xfff00000

	bclr.b	#4, @(1, r1)
	assertmem _x, 0xffe00000
	bclr.b	#5, @(1, r1)
	assertmem _x, 0xffc00000
	bclr.b	#6, @(1, r1)
	assertmem _x, 0xff800000
	bclr.b	#7, @(1, r1)
	assertmem _x, 0xff000000

	bclr.b	#0, @(0, r1)
	assertmem _x, 0xfe000000
	bclr.b	#1, @(0, r1)
	assertmem _x, 0xfc000000
	bclr.b	#2, @(0, r1)
	assertmem _x, 0xf8000000
	bclr.b	#3, @(0, r1)
	assertmem _x, 0xf0000000

	bclr.b	#4, @(0, r1)
	assertmem _x, 0xe0000000
	bclr.b	#5, @(0, r1)
	assertmem _x, 0xc0000000
	bclr.b	#6, @(0, r1)
	assertmem _x, 0x80000000
	bclr.b	#7, @(0, r1)
	assertmem _x, 0x00000000

	assertreg _x, r1

bclr_imm_reg:
	set_greg 0xff, r1
	bclr	#0, r1
	assertreg 0xfe, r1
	bclr	#1, r1
	assertreg 0xfc, r1
	bclr	#2, r1
	assertreg 0xf8, r1
	bclr	#3, r1
	assertreg 0xf0, r1

	bclr	#4, r1
	assertreg 0xe0, r1
	bclr	#5, r1
	assertreg 0xc0, r1
	bclr	#6, r1
	assertreg 0x80, r1
	bclr	#7, r1
	assertreg 0x00, 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