xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/sh/mulr.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# sh testcase for mulr
2# mach:	 all
3# as(sh):	-defsym sim_cpu=0
4# as(shdsp):	-defsym sim_cpu=1 -dsp
5
6	.include "testutils.inc"
7
8	start
9
10mulr_1:	! multiply by one
11	set_grs_a5a5
12	mov	#1, r0
13	mulr	r0, r1
14	assertreg0   1
15	test_gr_a5a5 r1
16	test_gr_a5a5 r2
17	test_gr_a5a5 r3
18	test_gr_a5a5 r4
19	test_gr_a5a5 r5
20	test_gr_a5a5 r6
21	test_gr_a5a5 r7
22	test_gr_a5a5 r8
23	test_gr_a5a5 r9
24	test_gr_a5a5 r10
25	test_gr_a5a5 r11
26	test_gr_a5a5 r12
27	test_gr_a5a5 r13
28	test_gr_a5a5 r14
29
30mulr_2:	! multiply by two
31	set_grs_a5a5
32	mov	#2, r0
33	mov	#12, r1
34	mulr	r0, r1
35	assertreg0   2
36	assertreg 24, r1
37	test_gr_a5a5 r2
38	test_gr_a5a5 r3
39	test_gr_a5a5 r4
40	test_gr_a5a5 r5
41	test_gr_a5a5 r6
42	test_gr_a5a5 r7
43	test_gr_a5a5 r8
44	test_gr_a5a5 r9
45	test_gr_a5a5 r10
46	test_gr_a5a5 r11
47	test_gr_a5a5 r12
48	test_gr_a5a5 r13
49	test_gr_a5a5 r14
50
51mulr_3:	! multiply five by five
52	set_grs_a5a5
53	mov	#5, r0
54	mov	#5, r1
55	mulr	r0, r1
56	assertreg0   5
57	assertreg 25, r1
58	test_gr_a5a5 r2
59	test_gr_a5a5 r3
60	test_gr_a5a5 r4
61	test_gr_a5a5 r5
62	test_gr_a5a5 r6
63	test_gr_a5a5 r7
64	test_gr_a5a5 r8
65	test_gr_a5a5 r9
66	test_gr_a5a5 r10
67	test_gr_a5a5 r11
68	test_gr_a5a5 r12
69	test_gr_a5a5 r13
70	test_gr_a5a5 r14
71
72
73mulr_4:	! multiply 127 by 127
74	set_grs_a5a5
75	mov	#127, r0
76	mov	#127, r1
77	mulr	r0, r1
78	assertreg0   127
79	assertreg 0x3f01, r1
80	test_gr_a5a5 r2
81	test_gr_a5a5 r3
82	test_gr_a5a5 r4
83	test_gr_a5a5 r5
84	test_gr_a5a5 r6
85	test_gr_a5a5 r7
86	test_gr_a5a5 r8
87	test_gr_a5a5 r9
88	test_gr_a5a5 r10
89	test_gr_a5a5 r11
90	test_gr_a5a5 r12
91	test_gr_a5a5 r13
92	test_gr_a5a5 r14
93
94mulr_5:	! multiply -1 by -1
95	set_grs_a5a5
96	mov	#-1, r0
97	mov	#-1, r1
98	mulr	r0, r1
99	assertreg0   -1
100	assertreg 1, r1
101	test_gr_a5a5 r2
102	test_gr_a5a5 r3
103	test_gr_a5a5 r4
104	test_gr_a5a5 r5
105	test_gr_a5a5 r6
106	test_gr_a5a5 r7
107	test_gr_a5a5 r8
108	test_gr_a5a5 r9
109	test_gr_a5a5 r10
110	test_gr_a5a5 r11
111	test_gr_a5a5 r12
112	test_gr_a5a5 r13
113	test_gr_a5a5 r14
114
115mulr_6:	! multiply 46340 by 46340
116	set_grs_a5a5
117	movi20	#46340, r0
118	movi20	#46340, r1
119	mulr	r0, r1
120	assertreg0   46340
121	assertreg 0x7ffea810, r1
122	test_gr_a5a5 r2
123	test_gr_a5a5 r3
124	test_gr_a5a5 r4
125	test_gr_a5a5 r5
126	test_gr_a5a5 r6
127	test_gr_a5a5 r7
128	test_gr_a5a5 r8
129	test_gr_a5a5 r9
130	test_gr_a5a5 r10
131	test_gr_a5a5 r11
132	test_gr_a5a5 r12
133	test_gr_a5a5 r13
134	test_gr_a5a5 r14
135
136mulr_7:	! multiply 7ffff by 7ffff (overflow)
137	set_grs_a5a5
138	movi20	#0x7ffff, r0
139	movi20	#0x7ffff, r1
140	mulr	r0, r1
141	assertreg0   0x7ffff
142	assertreg 0xfff00001, r1
143	test_gr_a5a5 r2
144	test_gr_a5a5 r3
145	test_gr_a5a5 r4
146	test_gr_a5a5 r5
147	test_gr_a5a5 r6
148	test_gr_a5a5 r7
149	test_gr_a5a5 r8
150	test_gr_a5a5 r9
151	test_gr_a5a5 r10
152	test_gr_a5a5 r11
153	test_gr_a5a5 r12
154	test_gr_a5a5 r13
155	test_gr_a5a5 r14
156
157
158	pass
159
160	exit 0
161
162