tc-i386.c fix for oss-fuzz gas fuzzing
[binutils-gdb.git] / sim / testsuite / sh / mulr.s
blob1e755ab2de75c132a61b6f1e3869d21581c9633c
1 # sh testcase for mulr
2 # mach: all
3 # as(sh): -defsym sim_cpu=0
4 # as(shdsp): -defsym sim_cpu=1 -dsp
6 .include "testutils.inc"
8 start
10 mulr_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
30 mulr_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
51 mulr_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
73 mulr_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
94 mulr_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
115 mulr_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
136 mulr_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
158 pass
160 exit 0