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