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