* gas/config/tc-avr.c: Change ISA for devices with USB support to
[external/binutils.git] / sim / testsuite / sim / sh / mulr.s
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
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
29
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
50
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
71
72
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
93
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
114
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
135
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
156
157
158         pass
159
160         exit 0
161
162