xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/sh/float.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# sh testcase for float
2# mach: sh
3# as(sh):	-defsym sim_cpu=0
4
5	.include "testutils.inc"
6
7	start
8
9float_pos:
10	set_grs_a5a5
11	set_fprs_a5a5
12	single_prec
13	mov	#3, r0
14	lds	r0, fpul
15	float	fpul, fr2
16
17	# Check the result.
18	fldi1	fr0
19	fldi1	fr1
20	fadd	fr0, fr1
21	fadd	fr0, fr1
22	fcmp/eq	fr1, fr2
23	bt	float_neg
24	fail
25
26float_neg:
27	mov	#3, r0
28	neg	r0, r0
29	lds	r0, fpul
30	float	fpul, fr2
31
32	# Check the result.
33	fldi1	fr0
34	fldi1	fr1
35	fadd	fr0, fr1
36	fadd	fr0, fr1
37	fneg	fr1
38	fcmp/eq	fr1, fr2
39	bt	.L0
40	fail
41.L0:
42	assertreg0	-3
43	test_gr_a5a5	r1
44	test_gr_a5a5	r2
45	test_gr_a5a5	r3
46	test_gr_a5a5	r4
47	test_gr_a5a5	r5
48	test_gr_a5a5	r6
49	test_gr_a5a5	r7
50	test_gr_a5a5	r8
51	test_gr_a5a5	r9
52	test_gr_a5a5	r10
53	test_gr_a5a5	r11
54	test_gr_a5a5	r12
55	test_gr_a5a5	r13
56	test_gr_a5a5	r14
57
58	assert_fpreg_i	 1, fr0
59	assert_fpreg_i	-3, fr1
60	assert_fpreg_i	-3, fr2
61	test_fpr_a5a5	fr3
62	test_fpr_a5a5	fr4
63	test_fpr_a5a5	fr5
64	test_fpr_a5a5	fr6
65	test_fpr_a5a5	fr7
66	test_fpr_a5a5	fr8
67	test_fpr_a5a5	fr9
68	test_fpr_a5a5	fr10
69	test_fpr_a5a5	fr11
70	test_fpr_a5a5	fr12
71	test_fpr_a5a5	fr13
72	test_fpr_a5a5	fr14
73	test_fpr_a5a5	fr15
74
75double_pos:
76	set_grs_a5a5
77	set_fprs_a5a5
78	double_prec
79	mov	#3, r0
80	lds	r0, fpul
81	float	fpul, dr4
82
83	# check the result.
84	fldi1	fr0
85	fldi1	fr1
86	single_prec
87	fadd	fr0, fr1
88	fadd	fr0, fr1
89	double_prec
90	_s2d	fr1, dr2
91	fcmp/eq	dr2, dr4
92	bt	double_neg
93	fail
94
95double_neg:
96	double_prec
97	mov	#3, r0
98	neg	r0, r0
99	lds	r0, fpul
100	float	fpul, dr4
101
102	# check the result.
103	fldi1	fr0
104	fldi1	fr1
105	single_prec
106	fadd	fr0, fr1
107	fadd	fr0, fr1
108	fneg	fr1
109	double_prec
110	_s2d	fr1, dr2
111	fcmp/eq	dr2, dr4
112	bt	.L2
113	fail
114.L2:
115	assertreg0	-3
116	test_gr_a5a5	r1
117	test_gr_a5a5	r2
118	test_gr_a5a5	r3
119	test_gr_a5a5	r4
120	test_gr_a5a5	r5
121	test_gr_a5a5	r6
122	test_gr_a5a5	r7
123	test_gr_a5a5	r8
124	test_gr_a5a5	r9
125	test_gr_a5a5	r10
126	test_gr_a5a5	r11
127	test_gr_a5a5	r12
128	test_gr_a5a5	r13
129	test_gr_a5a5	r14
130
131	single_prec
132	assert_fpreg_i	 1, fr0
133	assert_fpreg_i	-3, fr1
134	double_prec
135	assert_dpreg_i	-3, dr2
136	assert_dpreg_i	-3, dr4
137	test_fpr_a5a5	fr6
138	test_fpr_a5a5	fr7
139	test_fpr_a5a5	fr8
140	test_fpr_a5a5	fr9
141	test_fpr_a5a5	fr10
142	test_fpr_a5a5	fr11
143	test_fpr_a5a5	fr12
144	test_fpr_a5a5	fr13
145	test_fpr_a5a5	fr14
146	test_fpr_a5a5	fr15
147
148	pass
149	exit 0
150