1# frv testcase for cldsbu @($GRi,$GRj),$GRk,$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cldsbu
9cldsbu:
10	set_spr_immed	0x1b1b,cccr
11	set_gr_gr	sp,gr20
12
13	set_mem_limmed	0xdead,0xbeef,sp
14	set_gr_limmed	0xbeef,0xdead,gr8
15
16	set_gr_gr	sp,gr9
17	set_gr_immed	0,gr7
18	cldsbu 		@(sp,gr7),gr8,cc0,1
19	test_gr_limmed	0xffff,0xffde,gr8
20	test_gr_gr	sp,gr9
21
22	inc_gr_immed	1,gr9
23	set_gr_immed	1,gr7
24	cldsbu 		@(sp,gr7),gr8,cc0,1
25	test_gr_limmed	0xffff,0xffad,gr8
26	test_gr_gr	sp,gr9
27
28	inc_gr_immed	2,gr9
29	inc_gr_immed	-1,sp
30	set_mem_limmed	0xffff,0xff00,sp
31	inc_gr_immed	4,sp
32	set_gr_immed	-1,gr7
33	cldsbu 		@(sp,gr7),gr8,cc4,1
34	test_gr_immed	0,gr8
35	test_gr_gr	sp,gr9
36
37	set_gr_gr	gr20,sp
38	set_mem_limmed	0xdead,0xbeef,sp
39	set_gr_limmed	0xbeef,0xdead,gr8
40
41	set_gr_gr	sp,gr9
42	set_gr_immed	0,gr7
43	cldsbu 		@(sp,gr7),gr8,cc0,0
44	test_gr_limmed	0xbeef,0xdead,gr8
45	test_gr_gr	sp,gr9
46
47	set_gr_immed	1,gr7
48	cldsbu 		@(sp,gr7),gr8,cc0,0
49	test_gr_limmed	0xbeef,0xdead,gr8
50	test_gr_gr	sp,gr9
51
52	set_mem_limmed	0xffff,0xff00,sp
53	inc_gr_immed	4,sp
54	inc_gr_immed	4,gr9
55	set_gr_immed	-1,gr7
56	cldsbu 		@(sp,gr7),gr8,cc4,0
57	test_gr_limmed	0xbeef,0xdead,gr8
58	test_gr_gr	sp,gr9
59
60	set_gr_gr	gr20,sp
61	set_mem_limmed	0xdead,0xbeef,sp
62	set_gr_limmed	0xbeef,0xdead,gr8
63
64	set_gr_gr	sp,gr9
65	set_gr_immed	0,gr7
66	cldsbu 		@(sp,gr7),gr8,cc1,0
67	test_gr_limmed	0xffff,0xffde,gr8
68	test_gr_gr	sp,gr9
69
70	inc_gr_immed	1,gr9
71	set_gr_immed	1,gr7
72	cldsbu 		@(sp,gr7),gr8,cc1,0
73	test_gr_limmed	0xffff,0xffad,gr8
74	test_gr_gr	sp,gr9
75
76	inc_gr_immed	2,gr9
77	inc_gr_immed	-1,sp
78	set_mem_limmed	0xffff,0xff00,sp
79	inc_gr_immed	4,sp
80	set_gr_immed	-1,gr7
81	cldsbu 		@(sp,gr7),gr8,cc5,0
82	test_gr_immed	0,gr8
83	test_gr_gr	sp,gr9
84
85	set_gr_gr	gr20,sp
86	set_mem_limmed	0xdead,0xbeef,sp
87	set_gr_limmed	0xbeef,0xdead,gr8
88
89	set_gr_gr	sp,gr9
90	set_gr_immed	0,gr7
91	cldsbu 		@(sp,gr7),gr8,cc1,1
92	test_gr_limmed	0xbeef,0xdead,gr8
93	test_gr_gr	sp,gr9
94
95	set_gr_immed	1,gr7
96	cldsbu 		@(sp,gr7),gr8,cc1,1
97	test_gr_limmed	0xbeef,0xdead,gr8
98	test_gr_gr	sp,gr9
99
100	set_mem_limmed	0xffff,0xff00,sp
101	inc_gr_immed	4,sp
102	inc_gr_immed	4,gr9
103	set_gr_immed	-1,gr7
104	cldsbu 		@(sp,gr7),gr8,cc5,1
105	test_gr_limmed	0xbeef,0xdead,gr8
106	test_gr_gr	sp,gr9
107
108	set_gr_gr	gr20,sp
109	set_mem_limmed	0xdead,0xbeef,sp
110	set_gr_limmed	0xbeef,0xdead,gr8
111
112	set_gr_gr	sp,gr9
113	set_gr_immed	0,gr7
114	cldsbu 		@(sp,gr7),gr8,cc2,0
115	test_gr_limmed	0xbeef,0xdead,gr8
116	test_gr_gr	sp,gr9
117
118	set_gr_immed	1,gr7
119	cldsbu 		@(sp,gr7),gr8,cc2,1
120	test_gr_limmed	0xbeef,0xdead,gr8
121	test_gr_gr	sp,gr9
122
123	set_mem_limmed	0xffff,0xff00,sp
124	inc_gr_immed	4,sp
125	inc_gr_immed	4,gr9
126	set_gr_immed	-1,gr7
127	cldsbu 		@(sp,gr7),gr8,cc6,0
128	test_gr_limmed	0xbeef,0xdead,gr8
129	test_gr_gr	sp,gr9
130
131	set_gr_gr	gr20,sp
132	set_mem_limmed	0xdead,0xbeef,sp
133	set_gr_limmed	0xbeef,0xdead,gr8
134
135	set_gr_gr	sp,gr9
136	set_gr_immed	0,gr7
137	cldsbu 		@(sp,gr7),gr8,cc3,1
138	test_gr_limmed	0xbeef,0xdead,gr8
139	test_gr_gr	sp,gr9
140
141	set_gr_immed	1,gr7
142	cldsbu 		@(sp,gr7),gr8,cc3,0
143	test_gr_limmed	0xbeef,0xdead,gr8
144	test_gr_gr	sp,gr9
145
146	set_mem_limmed	0xffff,0xff00,sp
147	inc_gr_immed	4,sp
148	inc_gr_immed	4,gr9
149	set_gr_immed	-1,gr7
150	cldsbu 		@(sp,gr7),gr8,cc7,1
151	test_gr_limmed	0xbeef,0xdead,gr8
152	test_gr_gr	sp,gr9
153
154	set_gr_gr	gr20,sp
155	set_mem_limmed	0xdead,0xbeef,sp
156	set_gr_gr	sp,gr8
157	set_gr_immed	1,gr7
158	cldsbu 		@(gr8,gr7),gr8,cc0,1
159	test_gr_limmed	0xffff,0xffad,gr8
160
161	pass
162
163