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