1# frv testcase for cst $GRk,@($GRi,$GRj)
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cst
9cst:
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	cst		gr8,@(sp,gr7),cc0,1
17	test_mem_limmed	0xffff,0xffff,gr21
18
19	inc_gr_immed	-4,sp
20	set_gr_immed	4,gr7
21	set_gr_limmed	0xeeee,0xffff,gr8
22	cst		gr8,@(sp,gr7),cc0,1
23	test_mem_limmed	0xeeee,0xffff,gr21
24
25	inc_gr_immed	8,sp
26	set_gr_immed	-4,gr7
27	set_gr_limmed	0xcccc,0xdddd,gr8
28	cst		gr8,@(sp,gr7),cc4,1
29	test_mem_limmed	0xcccc,0xdddd,gr21
30
31	set_gr_gr	gr21,sp
32	set_mem_limmed	0xdead,0xbeef,sp
33	set_gr_immed	0,gr7
34	set_gr_limmed	0xffff,0xffff,gr8
35	cst		gr8,@(sp,gr7),cc0,0
36	test_mem_limmed	0xdead,0xbeef,gr21
37
38	inc_gr_immed	-4,sp
39	set_gr_immed	4,gr7
40	set_gr_limmed	0xeeee,0xffff,gr8
41	cst		gr8,@(sp,gr7),cc0,0
42	test_mem_limmed	0xdead,0xbeef,gr21
43
44	inc_gr_immed	8,sp
45	set_gr_immed	-4,gr7
46	set_gr_limmed	0xcccc,0xdddd,gr8
47	cst		gr8,@(sp,gr7),cc4,0
48	test_mem_limmed	0xdead,0xbeef,gr21
49
50	set_gr_gr	gr21,sp
51	set_mem_limmed	0xdead,0xbeef,sp
52	set_gr_immed	0,gr7
53	set_gr_limmed	0xffff,0xffff,gr8
54	cst		gr8,@(sp,gr7),cc1,0
55	test_mem_limmed	0xffff,0xffff,gr21
56
57	inc_gr_immed	-4,sp
58	set_gr_immed	4,gr7
59	set_gr_limmed	0xeeee,0xffff,gr8
60	cst		gr8,@(sp,gr7),cc1,0
61	test_mem_limmed	0xeeee,0xffff,gr21
62
63	inc_gr_immed	8,sp
64	set_gr_immed	-4,gr7
65	set_gr_limmed	0xcccc,0xdddd,gr8
66	cst		gr8,@(sp,gr7),cc5,0
67	test_mem_limmed	0xcccc,0xdddd,gr21
68
69	set_gr_gr	gr21,sp
70	set_mem_limmed	0xdead,0xbeef,sp
71	set_gr_immed	0,gr7
72	set_gr_limmed	0xffff,0xffff,gr8
73	cst		gr8,@(sp,gr7),cc1,1
74	test_mem_limmed	0xdead,0xbeef,gr21
75
76	inc_gr_immed	-4,sp
77	set_gr_immed	4,gr7
78	set_gr_limmed	0xeeee,0xffff,gr8
79	cst		gr8,@(sp,gr7),cc1,1
80	test_mem_limmed	0xdead,0xbeef,gr21
81
82	inc_gr_immed	8,sp
83	set_gr_immed	-4,gr7
84	set_gr_limmed	0xcccc,0xdddd,gr8
85	cst		gr8,@(sp,gr7),cc5,1
86	test_mem_limmed	0xdead,0xbeef,gr21
87
88	set_gr_gr	gr21,sp
89	set_mem_limmed	0xdead,0xbeef,sp
90	set_gr_immed	0,gr7
91	set_gr_limmed	0xffff,0xffff,gr8
92	cst		gr8,@(sp,gr7),cc2,0
93	test_mem_limmed	0xdead,0xbeef,gr21
94
95	inc_gr_immed	-4,sp
96	set_gr_immed	4,gr7
97	set_gr_limmed	0xeeee,0xffff,gr8
98	cst		gr8,@(sp,gr7),cc2,1
99	test_mem_limmed	0xdead,0xbeef,gr21
100
101	inc_gr_immed	8,sp
102	set_gr_immed	-4,gr7
103	set_gr_limmed	0xcccc,0xdddd,gr8
104	cst		gr8,@(sp,gr7),cc6,0
105	test_mem_limmed	0xdead,0xbeef,gr21
106
107	set_gr_gr	gr21,sp
108	set_mem_limmed	0xdead,0xbeef,sp
109	set_gr_immed	0,gr7
110	set_gr_limmed	0xffff,0xffff,gr8
111	cst		gr8,@(sp,gr7),cc3,1
112	test_mem_limmed	0xdead,0xbeef,gr21
113
114	inc_gr_immed	-4,sp
115	set_gr_immed	4,gr7
116	set_gr_limmed	0xeeee,0xffff,gr8
117	cst		gr8,@(sp,gr7),cc3,0
118	test_mem_limmed	0xdead,0xbeef,gr21
119
120	inc_gr_immed	8,sp
121	set_gr_immed	-4,gr7
122	set_gr_limmed	0xcccc,0xdddd,gr8
123	cst		gr8,@(sp,gr7),cc7,1
124	test_mem_limmed	0xdead,0xbeef,gr21
125
126	pass
127