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