OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.2/] [sim/] [testsuite/] [sim/] [frv/] [cmqmachs.cgs] - Blame information for rev 373

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 330 jeremybenn
# frv testcase for cmqmachs $GRi,$GRj,$ACCk,$CCi,$cond
2
# mach: frv fr500 fr400
3
 
4
        .include "testutils.inc"
5
 
6
        start
7
 
8
        .global cmqmachs
9
cmqmachs:
10
        set_spr_immed   0x1b1b,cccr
11
 
12
        ; Positive operands
13
        set_spr_immed   0,msr0
14
        set_spr_immed   0,msr1
15
        set_accg_immed  0,accg0
16
        set_acc_immed   0,acc0
17
        set_accg_immed  0,accg1
18
        set_acc_immed   0,acc1
19
        set_accg_immed  0,accg2
20
        set_acc_immed   0,acc2
21
        set_accg_immed  0,accg3
22
        set_acc_immed   0,acc3
23
        set_fr_iimmed   2,3,fr8         ; multiply small numbers
24
        set_fr_iimmed   3,2,fr10
25
        set_fr_iimmed   0,1,fr9         ; multiply by 0
26
        set_fr_iimmed   2,0,fr11
27
        cmqmachs        fr8,fr10,acc0,cc0,1
28
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
29
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
30
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
31
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
32
        test_accg_immed         0,accg0
33
        test_acc_immed  6,acc0
34
        test_accg_immed         0,accg1
35
        test_acc_immed  6,acc1
36
        test_accg_immed         0,accg2
37
        test_acc_immed  0,acc2
38
        test_accg_immed         0,accg3
39
        test_acc_immed  0,acc3
40
 
41
        set_fr_iimmed   2,1,fr8         ; multiply by 1
42
        set_fr_iimmed   1,2,fr10
43
        set_fr_iimmed   0x3fff,2,fr9    ; 15 bit result
44
        set_fr_iimmed   2,0x3fff,fr11
45
        cmqmachs        fr8,fr10,acc0,cc0,1
46
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
47
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
48
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
49
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
50
        test_accg_immed         0,accg0
51
        test_acc_immed  8,acc0
52
        test_accg_immed         0,accg1
53
        test_acc_immed  8,acc1
54
        test_accg_immed         0,accg2
55
        test_acc_limmed 0,0x7ffe,acc2
56
        test_accg_immed         0,accg3
57
        test_acc_limmed 0,0x7ffe,acc3
58
 
59
        set_fr_iimmed   0x4000,2,fr8    ; 16 bit result
60
        set_fr_iimmed   2,0x4000,fr10
61
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; max positive result
62
        set_fr_iimmed   0x7fff,0x7fff,fr11
63
        cmqmachs        fr8,fr10,acc0,cc0,1
64
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
65
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
66
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
67
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
68
        test_accg_immed         0,accg0
69
        test_acc_limmed 0x0000,0x8008,acc0
70
        test_accg_immed         0,accg1
71
        test_acc_limmed 0x0000,0x8008,acc1
72
        test_accg_immed         0,accg2
73
        test_acc_limmed 0x3fff,0x7fff,acc2
74
        test_accg_immed         0,accg3
75
        test_acc_limmed 0x3fff,0x7fff,acc3
76
 
77
        ; Mixed operands
78
        set_fr_iimmed   2,0xfffd,fr8            ; multiply small numbers
79
        set_fr_iimmed   0xfffd,2,fr10
80
        set_fr_iimmed   0xfffe,1,fr9            ; multiply by 1
81
        set_fr_iimmed   1,0xfffe,fr11
82
        cmqmachs        fr8,fr10,acc0,cc0,1
83
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
84
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
85
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
86
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
87
        test_accg_immed         0,accg0
88
        test_acc_limmed 0x0000,0x8002,acc0
89
        test_accg_immed         0,accg1
90
        test_acc_limmed 0x0000,0x8002,acc1
91
        test_accg_immed         0,accg2
92
        test_acc_limmed 0x3fff,0x7ffd,acc2
93
        test_accg_immed         0,accg3
94
        test_acc_limmed 0x3fff,0x7ffd,acc3
95
 
96
        set_fr_iimmed   0xfffe,0,fr8            ; multiply by 0
97
        set_fr_iimmed   0,0xfffe,fr10
98
        set_fr_iimmed   0x2001,0xfffe,fr9       ; 15 bit result
99
        set_fr_iimmed   0xfffe,0x2001,fr11
100
        cmqmachs        fr8,fr10,acc0,cc0,1
101
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
102
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
103
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
104
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
105
        test_accg_immed         0,accg0
106
        test_acc_limmed 0x0000,0x8002,acc0
107
        test_accg_immed         0,accg1
108
        test_acc_limmed 0x0000,0x8002,acc1
109
        test_accg_immed         0,accg2
110
        test_acc_limmed 0x3fff,0x3ffb,acc2
111
        test_accg_immed         0,accg3
112
        test_acc_limmed 0x3fff,0x3ffb,acc3
113
 
114
        set_fr_iimmed   0x4000,0xfffe,fr8       ; 16 bit result
115
        set_fr_iimmed   0xfffe,0x4000,fr10
116
        set_fr_iimmed   0x7fff,0x8000,fr9       ; max negative result
117
        set_fr_iimmed   0x8000,0x7fff,fr11
118
        cmqmachs        fr8,fr10,acc0,cc4,1
119
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
120
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
121
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
122
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
123
        test_accg_immed         0,accg0
124
        test_acc_limmed 0x0000,0x0002,acc0
125
        test_accg_immed         0,accg1
126
        test_acc_limmed 0x0000,0x0002,acc1
127
        test_accg_immed         0xff,accg2
128
        test_acc_limmed 0xffff,0xbffb,acc2
129
        test_accg_immed         0xff,accg3
130
        test_acc_limmed 0xffff,0xbffb,acc3
131
 
132
        ; Negative operands
133
        set_fr_iimmed   0xfffe,0xfffd,fr8               ; multiply small numbers
134
        set_fr_iimmed   0xfffd,0xfffe,fr10
135
        set_fr_iimmed   0xffff,0xfffe,fr9               ; multiply by -1
136
        set_fr_iimmed   0xfffe,0xffff,fr11
137
        cmqmachs        fr8,fr10,acc0,cc4,1
138
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
139
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
140
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
141
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
142
        test_accg_immed         0,accg0
143
        test_acc_limmed 0x0000,0x0008,acc0
144
        test_accg_immed         0,accg1
145
        test_acc_limmed 0x0000,0x0008,acc1
146
        test_accg_immed         0xff,accg2
147
        test_acc_limmed 0xffff,0xbffd,acc2
148
        test_accg_immed         0xff,accg3
149
        test_acc_limmed 0xffff,0xbffd,acc3
150
 
151
        set_fr_iimmed   0x8001,0x8001,fr8       ; almost max positive result
152
        set_fr_iimmed   0x8001,0x8001,fr10
153
        set_fr_iimmed   0x8000,0x8000,fr9       ; max positive result
154
        set_fr_iimmed   0x8000,0x8000,fr11
155
        cmqmachs        fr8,fr10,acc0,cc4,1
156
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
157
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
158
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
159
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
160
        test_accg_immed         0,accg0
161
        test_acc_immed  0x3fff0009,acc0
162
        test_accg_immed         0,accg1
163
        test_acc_immed  0x3fff0009,acc1
164
        test_accg_immed         0,accg2
165
        test_acc_immed  0x3fffbffd,acc2
166
        test_accg_immed         0,accg3
167
        test_acc_immed  0x3fffbffd,acc3
168
 
169
        set_accg_immed  0x7f,accg0              ; saturation
170
        set_acc_immed   0xffffffff,acc0
171
        set_accg_immed  0x7f,accg1
172
        set_acc_immed   0xffffffff,acc1
173
        set_accg_immed  0x7f,accg2              ; saturation
174
        set_acc_immed   0xffffffff,acc2
175
        set_accg_immed  0x7f,accg3
176
        set_acc_immed   0xffffffff,acc3
177
        set_fr_iimmed   1,1,fr8
178
        set_fr_iimmed   1,1,fr10
179
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; saturation
180
        set_fr_iimmed   0x7fff,0x7fff,fr11
181
        cmqmachs        fr8,fr10,acc0,cc4,1
182
        test_spr_bits   0x3c,2,0xf,msr0         ; msr0.sie is set
183
        test_spr_bits   2,1,1,msr0              ; msr0.ovf is set
184
        test_spr_bits   1,0,1,msr0              ; msr0.aovf is set
185
        test_spr_bits   0x7000,12,1,msr0        ; msr0.mtt is set
186
        test_accg_immed         0x7f,accg0
187
        test_acc_limmed 0xffff,0xffff,acc0
188
        test_accg_immed         0x7f,accg1
189
        test_acc_limmed 0xffff,0xffff,acc1
190
        test_accg_immed         0x7f,accg2
191
        test_acc_limmed 0xffff,0xffff,acc2
192
        test_accg_immed         0x7f,accg3
193
        test_acc_limmed 0xffff,0xffff,acc3
194
 
195
        set_accg_immed  0x80,accg0              ; saturation
196
        set_acc_immed   0,acc0
197
        set_accg_immed  0x80,accg1
198
        set_acc_immed   0,acc1
199
        set_accg_immed  0x80,accg2              ; saturation
200
        set_acc_immed   0,acc2
201
        set_accg_immed  0x80,accg3
202
        set_acc_immed   0,acc3
203
        set_fr_iimmed   0xffff,0,fr8
204
        set_fr_iimmed   1,0xffff,fr10
205
        set_fr_iimmed   0x0000,0x8000,fr9       ; saturation
206
        set_fr_iimmed   0x7fff,0x7fff,fr11
207
        cmqmachs        fr8,fr10,acc0,cc4,1
208
        test_spr_bits   0x3c,2,0x9,msr0         ; msr0.sie is set
209
        test_spr_bits   2,1,1,msr0              ; msr0.ovf is set
210
        test_spr_bits   1,0,1,msr0              ; msr0.aovf is set
211
        test_spr_bits   0x7000,12,1,msr0        ; msr0.mtt is set
212
        test_accg_immed         0x80,accg0
213
        test_acc_immed  0,acc0
214
        test_accg_immed         0x80,accg1
215
        test_acc_immed  0,acc1
216
        test_accg_immed         0x80,accg2
217
        test_acc_immed  0,acc2
218
        test_accg_immed         0x80,accg3
219
        test_acc_immed  0,acc3
220
 
221
        ; Positive operands
222
        set_spr_immed   0,msr0
223
        set_spr_immed   0,msr1
224
        set_accg_immed  0,accg0
225
        set_acc_immed   0,acc0
226
        set_accg_immed  0,accg1
227
        set_acc_immed   0,acc1
228
        set_accg_immed  0,accg2
229
        set_acc_immed   0,acc2
230
        set_accg_immed  0,accg3
231
        set_acc_immed   0,acc3
232
        set_fr_iimmed   2,3,fr8         ; multiply small numbers
233
        set_fr_iimmed   3,2,fr10
234
        set_fr_iimmed   0,1,fr9         ; multiply by 0
235
        set_fr_iimmed   2,0,fr11
236
        cmqmachs        fr8,fr10,acc0,cc1,0
237
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
238
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
239
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
240
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
241
        test_accg_immed         0,accg0
242
        test_acc_immed  6,acc0
243
        test_accg_immed         0,accg1
244
        test_acc_immed  6,acc1
245
        test_accg_immed         0,accg2
246
        test_acc_immed  0,acc2
247
        test_accg_immed         0,accg3
248
        test_acc_immed  0,acc3
249
 
250
        set_fr_iimmed   2,1,fr8         ; multiply by 1
251
        set_fr_iimmed   1,2,fr10
252
        set_fr_iimmed   0x3fff,2,fr9    ; 15 bit result
253
        set_fr_iimmed   2,0x3fff,fr11
254
        cmqmachs        fr8,fr10,acc0,cc1,0
255
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
256
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
257
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
258
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
259
        test_accg_immed         0,accg0
260
        test_acc_immed  8,acc0
261
        test_accg_immed         0,accg1
262
        test_acc_immed  8,acc1
263
        test_accg_immed         0,accg2
264
        test_acc_limmed 0,0x7ffe,acc2
265
        test_accg_immed         0,accg3
266
        test_acc_limmed 0,0x7ffe,acc3
267
 
268
        set_fr_iimmed   0x4000,2,fr8    ; 16 bit result
269
        set_fr_iimmed   2,0x4000,fr10
270
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; max positive result
271
        set_fr_iimmed   0x7fff,0x7fff,fr11
272
        cmqmachs        fr8,fr10,acc0,cc1,0
273
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
274
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
275
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
276
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
277
        test_accg_immed         0,accg0
278
        test_acc_limmed 0x0000,0x8008,acc0
279
        test_accg_immed         0,accg1
280
        test_acc_limmed 0x0000,0x8008,acc1
281
        test_accg_immed         0,accg2
282
        test_acc_limmed 0x3fff,0x7fff,acc2
283
        test_accg_immed         0,accg3
284
        test_acc_limmed 0x3fff,0x7fff,acc3
285
 
286
        ; Mixed operands
287
        set_fr_iimmed   2,0xfffd,fr8            ; multiply small numbers
288
        set_fr_iimmed   0xfffd,2,fr10
289
        set_fr_iimmed   0xfffe,1,fr9            ; multiply by 1
290
        set_fr_iimmed   1,0xfffe,fr11
291
        cmqmachs        fr8,fr10,acc0,cc1,0
292
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
293
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
294
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
295
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
296
        test_accg_immed         0,accg0
297
        test_acc_limmed 0x0000,0x8002,acc0
298
        test_accg_immed         0,accg1
299
        test_acc_limmed 0x0000,0x8002,acc1
300
        test_accg_immed         0,accg2
301
        test_acc_limmed 0x3fff,0x7ffd,acc2
302
        test_accg_immed         0,accg3
303
        test_acc_limmed 0x3fff,0x7ffd,acc3
304
 
305
        set_fr_iimmed   0xfffe,0,fr8            ; multiply by 0
306
        set_fr_iimmed   0,0xfffe,fr10
307
        set_fr_iimmed   0x2001,0xfffe,fr9       ; 15 bit result
308
        set_fr_iimmed   0xfffe,0x2001,fr11
309
        cmqmachs        fr8,fr10,acc0,cc1,0
310
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
311
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
312
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
313
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
314
        test_accg_immed         0,accg0
315
        test_acc_limmed 0x0000,0x8002,acc0
316
        test_accg_immed         0,accg1
317
        test_acc_limmed 0x0000,0x8002,acc1
318
        test_accg_immed         0,accg2
319
        test_acc_limmed 0x3fff,0x3ffb,acc2
320
        test_accg_immed         0,accg3
321
        test_acc_limmed 0x3fff,0x3ffb,acc3
322
 
323
        set_fr_iimmed   0x4000,0xfffe,fr8       ; 16 bit result
324
        set_fr_iimmed   0xfffe,0x4000,fr10
325
        set_fr_iimmed   0x7fff,0x8000,fr9       ; max negative result
326
        set_fr_iimmed   0x8000,0x7fff,fr11
327
        cmqmachs        fr8,fr10,acc0,cc5,0
328
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
329
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
330
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
331
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
332
        test_accg_immed         0,accg0
333
        test_acc_limmed 0x0000,0x0002,acc0
334
        test_accg_immed         0,accg1
335
        test_acc_limmed 0x0000,0x0002,acc1
336
        test_accg_immed         0xff,accg2
337
        test_acc_limmed 0xffff,0xbffb,acc2
338
        test_accg_immed         0xff,accg3
339
        test_acc_limmed 0xffff,0xbffb,acc3
340
 
341
        ; Negative operands
342
        set_fr_iimmed   0xfffe,0xfffd,fr8               ; multiply small numbers
343
        set_fr_iimmed   0xfffd,0xfffe,fr10
344
        set_fr_iimmed   0xffff,0xfffe,fr9               ; multiply by -1
345
        set_fr_iimmed   0xfffe,0xffff,fr11
346
        cmqmachs        fr8,fr10,acc0,cc5,0
347
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
348
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
349
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
350
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
351
        test_accg_immed         0,accg0
352
        test_acc_limmed 0x0000,0x0008,acc0
353
        test_accg_immed         0,accg1
354
        test_acc_limmed 0x0000,0x0008,acc1
355
        test_accg_immed         0xff,accg2
356
        test_acc_limmed 0xffff,0xbffd,acc2
357
        test_accg_immed         0xff,accg3
358
        test_acc_limmed 0xffff,0xbffd,acc3
359
 
360
        set_fr_iimmed   0x8001,0x8001,fr8       ; almost max positive result
361
        set_fr_iimmed   0x8001,0x8001,fr10
362
        set_fr_iimmed   0x8000,0x8000,fr9       ; max positive result
363
        set_fr_iimmed   0x8000,0x8000,fr11
364
        cmqmachs        fr8,fr10,acc0,cc5,0
365
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
366
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
367
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
368
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
369
        test_accg_immed         0,accg0
370
        test_acc_immed  0x3fff0009,acc0
371
        test_accg_immed         0,accg1
372
        test_acc_immed  0x3fff0009,acc1
373
        test_accg_immed         0,accg2
374
        test_acc_immed  0x3fffbffd,acc2
375
        test_accg_immed         0,accg3
376
        test_acc_immed  0x3fffbffd,acc3
377
 
378
        set_accg_immed  0x7f,accg0              ; saturation
379
        set_acc_immed   0xffffffff,acc0
380
        set_accg_immed  0x7f,accg1
381
        set_acc_immed   0xffffffff,acc1
382
        set_accg_immed  0x7f,accg2              ; saturation
383
        set_acc_immed   0xffffffff,acc2
384
        set_accg_immed  0x7f,accg3
385
        set_acc_immed   0xffffffff,acc3
386
        set_fr_iimmed   1,1,fr8
387
        set_fr_iimmed   1,1,fr10
388
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; saturation
389
        set_fr_iimmed   0x7fff,0x7fff,fr11
390
        cmqmachs        fr8,fr10,acc0,cc5,0
391
        test_spr_bits   0x3c,2,0xf,msr0         ; msr0.sie is set
392
        test_spr_bits   2,1,1,msr0              ; msr0.ovf is set
393
        test_spr_bits   1,0,1,msr0              ; msr0.aovf is set
394
        test_spr_bits   0x7000,12,1,msr0        ; msr0.mtt is set
395
        test_accg_immed         0x7f,accg0
396
        test_acc_limmed 0xffff,0xffff,acc0
397
        test_accg_immed         0x7f,accg1
398
        test_acc_limmed 0xffff,0xffff,acc1
399
        test_accg_immed         0x7f,accg2
400
        test_acc_limmed 0xffff,0xffff,acc2
401
        test_accg_immed         0x7f,accg3
402
        test_acc_limmed 0xffff,0xffff,acc3
403
 
404
        set_accg_immed  0x80,accg0              ; saturation
405
        set_acc_immed   0,acc0
406
        set_accg_immed  0x80,accg1
407
        set_acc_immed   0,acc1
408
        set_accg_immed  0x80,accg2              ; saturation
409
        set_acc_immed   0,acc2
410
        set_accg_immed  0x80,accg3
411
        set_acc_immed   0,acc3
412
        set_fr_iimmed   0xffff,0,fr8
413
        set_fr_iimmed   1,0xffff,fr10
414
        set_fr_iimmed   0x0000,0x8000,fr9       ; saturation
415
        set_fr_iimmed   0x7fff,0x7fff,fr11
416
        cmqmachs        fr8,fr10,acc0,cc5,0
417
        test_spr_bits   0x3c,2,0x9,msr0         ; msr0.sie is set
418
        test_spr_bits   2,1,1,msr0              ; msr0.ovf is set
419
        test_spr_bits   1,0,1,msr0              ; msr0.aovf is set
420
        test_spr_bits   0x7000,12,1,msr0        ; msr0.mtt is set
421
        test_accg_immed         0x80,accg0
422
        test_acc_immed  0,acc0
423
        test_accg_immed         0x80,accg1
424
        test_acc_immed  0,acc1
425
        test_accg_immed         0x80,accg2
426
        test_acc_immed  0,acc2
427
        test_accg_immed         0x80,accg3
428
        test_acc_immed  0,acc3
429
 
430
        ; Positive operands
431
        set_spr_immed   0,msr0
432
        set_spr_immed   0,msr1
433
        set_accg_immed  0x00000011,accg0
434
        set_acc_immed   0x11111111,acc0
435
        set_accg_immed  0x00000022,accg1
436
        set_acc_immed   0x22222222,acc1
437
        set_accg_immed  0x00000033,accg2
438
        set_acc_immed   0x33333333,acc2
439
        set_accg_immed  0x00000044,accg3
440
        set_acc_immed   0x44444444,acc3
441
        set_fr_iimmed   2,3,fr8         ; multiply small numbers
442
        set_fr_iimmed   3,2,fr10
443
        set_fr_iimmed   0,1,fr9         ; multiply by 0
444
        set_fr_iimmed   2,0,fr11
445
        cmqmachs        fr8,fr10,acc0,cc0,0
446
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
447
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
448
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
449
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
450
        test_accg_immed         0x00000011,accg0
451
        test_acc_immed  0x11111111,acc0
452
        test_accg_immed         0x00000022,accg1
453
        test_acc_immed  0x22222222,acc1
454
        test_accg_immed         0x00000033,accg2
455
        test_acc_immed  0x33333333,acc2
456
        test_accg_immed         0x00000044,accg3
457
        test_acc_immed  0x44444444,acc3
458
 
459
        set_fr_iimmed   2,1,fr8         ; multiply by 1
460
        set_fr_iimmed   1,2,fr10
461
        set_fr_iimmed   0x3fff,2,fr9    ; 15 bit result
462
        set_fr_iimmed   2,0x3fff,fr11
463
        cmqmachs        fr8,fr10,acc0,cc0,0
464
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
465
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
466
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
467
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
468
        test_accg_immed         0x00000011,accg0
469
        test_acc_immed  0x11111111,acc0
470
        test_accg_immed         0x00000022,accg1
471
        test_acc_immed  0x22222222,acc1
472
        test_accg_immed         0x00000033,accg2
473
        test_acc_immed  0x33333333,acc2
474
        test_accg_immed         0x00000044,accg3
475
        test_acc_immed  0x44444444,acc3
476
 
477
        set_fr_iimmed   0x4000,2,fr8    ; 16 bit result
478
        set_fr_iimmed   2,0x4000,fr10
479
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; max positive result
480
        set_fr_iimmed   0x7fff,0x7fff,fr11
481
        cmqmachs        fr8,fr10,acc0,cc0,0
482
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
483
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
484
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
485
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
486
        test_accg_immed         0x00000011,accg0
487
        test_acc_immed  0x11111111,acc0
488
        test_accg_immed         0x00000022,accg1
489
        test_acc_immed  0x22222222,acc1
490
        test_accg_immed         0x00000033,accg2
491
        test_acc_immed  0x33333333,acc2
492
        test_accg_immed         0x00000044,accg3
493
        test_acc_immed  0x44444444,acc3
494
 
495
        ; Mixed operands
496
        set_fr_iimmed   2,0xfffd,fr8            ; multiply small numbers
497
        set_fr_iimmed   0xfffd,2,fr10
498
        set_fr_iimmed   0xfffe,1,fr9            ; multiply by 1
499
        set_fr_iimmed   1,0xfffe,fr11
500
        cmqmachs        fr8,fr10,acc0,cc0,0
501
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
502
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
503
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
504
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
505
        test_accg_immed         0x00000011,accg0
506
        test_acc_immed  0x11111111,acc0
507
        test_accg_immed         0x00000022,accg1
508
        test_acc_immed  0x22222222,acc1
509
        test_accg_immed         0x00000033,accg2
510
        test_acc_immed  0x33333333,acc2
511
        test_accg_immed         0x00000044,accg3
512
        test_acc_immed  0x44444444,acc3
513
 
514
        set_fr_iimmed   0xfffe,0,fr8            ; multiply by 0
515
        set_fr_iimmed   0,0xfffe,fr10
516
        set_fr_iimmed   0x2001,0xfffe,fr9       ; 15 bit result
517
        set_fr_iimmed   0xfffe,0x2001,fr11
518
        cmqmachs        fr8,fr10,acc0,cc0,0
519
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
520
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
521
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
522
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
523
        test_accg_immed         0x00000011,accg0
524
        test_acc_immed  0x11111111,acc0
525
        test_accg_immed         0x00000022,accg1
526
        test_acc_immed  0x22222222,acc1
527
        test_accg_immed         0x00000033,accg2
528
        test_acc_immed  0x33333333,acc2
529
        test_accg_immed         0x00000044,accg3
530
        test_acc_immed  0x44444444,acc3
531
 
532
        set_fr_iimmed   0x4000,0xfffe,fr8       ; 16 bit result
533
        set_fr_iimmed   0xfffe,0x4000,fr10
534
        set_fr_iimmed   0x7fff,0x8000,fr9       ; max negative result
535
        set_fr_iimmed   0x8000,0x7fff,fr11
536
        cmqmachs        fr8,fr10,acc0,cc4,0
537
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
538
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
539
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
540
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
541
        test_accg_immed         0x00000011,accg0
542
        test_acc_immed  0x11111111,acc0
543
        test_accg_immed         0x00000022,accg1
544
        test_acc_immed  0x22222222,acc1
545
        test_accg_immed         0x00000033,accg2
546
        test_acc_immed  0x33333333,acc2
547
        test_accg_immed         0x00000044,accg3
548
        test_acc_immed  0x44444444,acc3
549
 
550
        ; Negative operands
551
        set_fr_iimmed   0xfffe,0xfffd,fr8               ; multiply small numbers
552
        set_fr_iimmed   0xfffd,0xfffe,fr10
553
        set_fr_iimmed   0xffff,0xfffe,fr9               ; multiply by -1
554
        set_fr_iimmed   0xfffe,0xffff,fr11
555
        cmqmachs        fr8,fr10,acc0,cc4,0
556
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
557
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
558
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
559
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
560
        test_accg_immed         0x00000011,accg0
561
        test_acc_immed  0x11111111,acc0
562
        test_accg_immed         0x00000022,accg1
563
        test_acc_immed  0x22222222,acc1
564
        test_accg_immed         0x00000033,accg2
565
        test_acc_immed  0x33333333,acc2
566
        test_accg_immed         0x00000044,accg3
567
        test_acc_immed  0x44444444,acc3
568
 
569
        set_fr_iimmed   0x8001,0x8001,fr8       ; almost max positive result
570
        set_fr_iimmed   0x8001,0x8001,fr10
571
        set_fr_iimmed   0x8000,0x8000,fr9       ; max positive result
572
        set_fr_iimmed   0x8000,0x8000,fr11
573
        cmqmachs        fr8,fr10,acc0,cc4,0
574
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
575
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
576
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
577
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
578
        test_accg_immed         0x00000011,accg0
579
        test_acc_immed  0x11111111,acc0
580
        test_accg_immed         0x00000022,accg1
581
        test_acc_immed  0x22222222,acc1
582
        test_accg_immed         0x00000033,accg2
583
        test_acc_immed  0x33333333,acc2
584
        test_accg_immed         0x00000044,accg3
585
        test_acc_immed  0x44444444,acc3
586
 
587
        set_accg_immed  0x7f,accg0              ; saturation
588
        set_acc_immed   0xffffffff,acc0
589
        set_accg_immed  0x7f,accg1
590
        set_acc_immed   0xffffffff,acc1
591
        set_accg_immed  0x7f,accg2              ; saturation
592
        set_acc_immed   0xffffffff,acc2
593
        set_accg_immed  0x7f,accg3
594
        set_acc_immed   0xffffffff,acc3
595
        set_fr_iimmed   1,1,fr8
596
        set_fr_iimmed   1,1,fr10
597
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; saturation
598
        set_fr_iimmed   0x7fff,0x7fff,fr11
599
        cmqmachs        fr8,fr10,acc0,cc4,0
600
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
601
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
602
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
603
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
604
        test_accg_immed         0x7f,accg0              ; saturation
605
        test_acc_immed  0xffffffff,acc0
606
        test_accg_immed         0x7f,accg1
607
        test_acc_immed  0xffffffff,acc1
608
        test_accg_immed         0x7f,accg2              ; saturation
609
        test_acc_immed  0xffffffff,acc2
610
        test_accg_immed         0x7f,accg3
611
        test_acc_immed  0xffffffff,acc3
612
 
613
        set_accg_immed  0x80,accg0              ; saturation
614
        set_acc_immed   0,acc0
615
        set_accg_immed  0x80,accg1
616
        set_acc_immed   0,acc1
617
        set_accg_immed  0x80,accg2              ; saturation
618
        set_acc_immed   0,acc2
619
        set_accg_immed  0x80,accg3
620
        set_acc_immed   0,acc3
621
        set_fr_iimmed   0xffff,0,fr8
622
        set_fr_iimmed   1,0xffff,fr10
623
        set_fr_iimmed   0x0000,0x8000,fr9       ; saturation
624
        set_fr_iimmed   0x7fff,0x7fff,fr11
625
        cmqmachs        fr8,fr10,acc0,cc4,0
626
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
627
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
628
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
629
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
630
        test_accg_immed         0x80,accg0              ; saturation
631
        test_acc_immed  0,acc0
632
        test_accg_immed         0x80,accg1
633
        test_acc_immed  0,acc1
634
        test_accg_immed         0x80,accg2              ; saturation
635
        test_acc_immed  0,acc2
636
        test_accg_immed         0x80,accg3
637
        test_acc_immed  0,acc3
638
 
639
        ; Positive operands
640
        set_spr_immed   0,msr0
641
        set_spr_immed   0,msr1
642
        set_accg_immed  0x00000011,accg0
643
        set_acc_immed   0x11111111,acc0
644
        set_accg_immed  0x00000022,accg1
645
        set_acc_immed   0x22222222,acc1
646
        set_accg_immed  0x00000033,accg2
647
        set_acc_immed   0x33333333,acc2
648
        set_accg_immed  0x00000044,accg3
649
        set_acc_immed   0x44444444,acc3
650
        set_fr_iimmed   2,3,fr8         ; multiply small numbers
651
        set_fr_iimmed   3,2,fr10
652
        set_fr_iimmed   0,1,fr9         ; multiply by 0
653
        set_fr_iimmed   2,0,fr11
654
        cmqmachs        fr8,fr10,acc0,cc1,1
655
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
656
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
657
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
658
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
659
        test_accg_immed         0x00000011,accg0
660
        test_acc_immed  0x11111111,acc0
661
        test_accg_immed         0x00000022,accg1
662
        test_acc_immed  0x22222222,acc1
663
        test_accg_immed         0x00000033,accg2
664
        test_acc_immed  0x33333333,acc2
665
        test_accg_immed         0x00000044,accg3
666
        test_acc_immed  0x44444444,acc3
667
 
668
        set_fr_iimmed   2,1,fr8         ; multiply by 1
669
        set_fr_iimmed   1,2,fr10
670
        set_fr_iimmed   0x3fff,2,fr9    ; 15 bit result
671
        set_fr_iimmed   2,0x3fff,fr11
672
        cmqmachs        fr8,fr10,acc0,cc1,1
673
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
674
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
675
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
676
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
677
        test_accg_immed         0x00000011,accg0
678
        test_acc_immed  0x11111111,acc0
679
        test_accg_immed         0x00000022,accg1
680
        test_acc_immed  0x22222222,acc1
681
        test_accg_immed         0x00000033,accg2
682
        test_acc_immed  0x33333333,acc2
683
        test_accg_immed         0x00000044,accg3
684
        test_acc_immed  0x44444444,acc3
685
 
686
        set_fr_iimmed   0x4000,2,fr8    ; 16 bit result
687
        set_fr_iimmed   2,0x4000,fr10
688
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; max positive result
689
        set_fr_iimmed   0x7fff,0x7fff,fr11
690
        cmqmachs        fr8,fr10,acc0,cc1,1
691
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
692
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
693
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
694
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
695
        test_accg_immed         0x00000011,accg0
696
        test_acc_immed  0x11111111,acc0
697
        test_accg_immed         0x00000022,accg1
698
        test_acc_immed  0x22222222,acc1
699
        test_accg_immed         0x00000033,accg2
700
        test_acc_immed  0x33333333,acc2
701
        test_accg_immed         0x00000044,accg3
702
        test_acc_immed  0x44444444,acc3
703
 
704
        ; Mixed operands
705
        set_fr_iimmed   2,0xfffd,fr8            ; multiply small numbers
706
        set_fr_iimmed   0xfffd,2,fr10
707
        set_fr_iimmed   0xfffe,1,fr9            ; multiply by 1
708
        set_fr_iimmed   1,0xfffe,fr11
709
        cmqmachs        fr8,fr10,acc0,cc1,1
710
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
711
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
712
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
713
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
714
        test_accg_immed         0x00000011,accg0
715
        test_acc_immed  0x11111111,acc0
716
        test_accg_immed         0x00000022,accg1
717
        test_acc_immed  0x22222222,acc1
718
        test_accg_immed         0x00000033,accg2
719
        test_acc_immed  0x33333333,acc2
720
        test_accg_immed         0x00000044,accg3
721
        test_acc_immed  0x44444444,acc3
722
 
723
        set_fr_iimmed   0xfffe,0,fr8            ; multiply by 0
724
        set_fr_iimmed   0,0xfffe,fr10
725
        set_fr_iimmed   0x2001,0xfffe,fr9       ; 15 bit result
726
        set_fr_iimmed   0xfffe,0x2001,fr11
727
        cmqmachs        fr8,fr10,acc0,cc1,1
728
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
729
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
730
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
731
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
732
        test_accg_immed         0x00000011,accg0
733
        test_acc_immed  0x11111111,acc0
734
        test_accg_immed         0x00000022,accg1
735
        test_acc_immed  0x22222222,acc1
736
        test_accg_immed         0x00000033,accg2
737
        test_acc_immed  0x33333333,acc2
738
        test_accg_immed         0x00000044,accg3
739
        test_acc_immed  0x44444444,acc3
740
 
741
        set_fr_iimmed   0x4000,0xfffe,fr8       ; 16 bit result
742
        set_fr_iimmed   0xfffe,0x4000,fr10
743
        set_fr_iimmed   0x7fff,0x8000,fr9       ; max negative result
744
        set_fr_iimmed   0x8000,0x7fff,fr11
745
        cmqmachs        fr8,fr10,acc0,cc5,1
746
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
747
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
748
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
749
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
750
        test_accg_immed         0x00000011,accg0
751
        test_acc_immed  0x11111111,acc0
752
        test_accg_immed         0x00000022,accg1
753
        test_acc_immed  0x22222222,acc1
754
        test_accg_immed         0x00000033,accg2
755
        test_acc_immed  0x33333333,acc2
756
        test_accg_immed         0x00000044,accg3
757
        test_acc_immed  0x44444444,acc3
758
 
759
        ; Negative operands
760
        set_fr_iimmed   0xfffe,0xfffd,fr8               ; multiply small numbers
761
        set_fr_iimmed   0xfffd,0xfffe,fr10
762
        set_fr_iimmed   0xffff,0xfffe,fr9               ; multiply by -1
763
        set_fr_iimmed   0xfffe,0xffff,fr11
764
        cmqmachs        fr8,fr10,acc0,cc5,1
765
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
766
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
767
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
768
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
769
        test_accg_immed         0x00000011,accg0
770
        test_acc_immed  0x11111111,acc0
771
        test_accg_immed         0x00000022,accg1
772
        test_acc_immed  0x22222222,acc1
773
        test_accg_immed         0x00000033,accg2
774
        test_acc_immed  0x33333333,acc2
775
        test_accg_immed         0x00000044,accg3
776
        test_acc_immed  0x44444444,acc3
777
 
778
        set_fr_iimmed   0x8001,0x8001,fr8       ; almost max positive result
779
        set_fr_iimmed   0x8001,0x8001,fr10
780
        set_fr_iimmed   0x8000,0x8000,fr9       ; max positive result
781
        set_fr_iimmed   0x8000,0x8000,fr11
782
        cmqmachs        fr8,fr10,acc0,cc5,1
783
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
784
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
785
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
786
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
787
        test_accg_immed         0x00000011,accg0
788
        test_acc_immed  0x11111111,acc0
789
        test_accg_immed         0x00000022,accg1
790
        test_acc_immed  0x22222222,acc1
791
        test_accg_immed         0x00000033,accg2
792
        test_acc_immed  0x33333333,acc2
793
        test_accg_immed         0x00000044,accg3
794
        test_acc_immed  0x44444444,acc3
795
 
796
        set_accg_immed  0x7f,accg0              ; saturation
797
        set_acc_immed   0xffffffff,acc0
798
        set_accg_immed  0x7f,accg1
799
        set_acc_immed   0xffffffff,acc1
800
        set_accg_immed  0x7f,accg2              ; saturation
801
        set_acc_immed   0xffffffff,acc2
802
        set_accg_immed  0x7f,accg3
803
        set_acc_immed   0xffffffff,acc3
804
        set_fr_iimmed   1,1,fr8
805
        set_fr_iimmed   1,1,fr10
806
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; saturation
807
        set_fr_iimmed   0x7fff,0x7fff,fr11
808
        cmqmachs        fr8,fr10,acc0,cc5,1
809
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
810
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
811
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
812
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
813
        test_accg_immed         0x7f,accg0              ; saturation
814
        test_acc_immed  0xffffffff,acc0
815
        test_accg_immed         0x7f,accg1
816
        test_acc_immed  0xffffffff,acc1
817
        test_accg_immed         0x7f,accg2              ; saturation
818
        test_acc_immed  0xffffffff,acc2
819
        test_accg_immed         0x7f,accg3
820
        test_acc_immed  0xffffffff,acc3
821
 
822
        set_accg_immed  0x80,accg0              ; saturation
823
        set_acc_immed   0,acc0
824
        set_accg_immed  0x80,accg1
825
        set_acc_immed   0,acc1
826
        set_accg_immed  0x80,accg2              ; saturation
827
        set_acc_immed   0,acc2
828
        set_accg_immed  0x80,accg3
829
        set_acc_immed   0,acc3
830
        set_fr_iimmed   0xffff,0,fr8
831
        set_fr_iimmed   1,0xffff,fr10
832
        set_fr_iimmed   0x0000,0x8000,fr9       ; saturation
833
        set_fr_iimmed   0x7fff,0x7fff,fr11
834
        cmqmachs        fr8,fr10,acc0,cc5,1
835
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
836
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
837
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
838
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
839
        test_accg_immed         0x80,accg0              ; saturation
840
        test_acc_immed  0,acc0
841
        test_accg_immed         0x80,accg1
842
        test_acc_immed  0,acc1
843
        test_accg_immed         0x80,accg2              ; saturation
844
        test_acc_immed  0,acc2
845
        test_accg_immed         0x80,accg3
846
        test_acc_immed  0,acc3
847
 
848
        ; Positive operands
849
        set_spr_immed   0,msr0
850
        set_spr_immed   0,msr1
851
        set_accg_immed  0x00000011,accg0
852
        set_acc_immed   0x11111111,acc0
853
        set_accg_immed  0x00000022,accg1
854
        set_acc_immed   0x22222222,acc1
855
        set_accg_immed  0x00000033,accg2
856
        set_acc_immed   0x33333333,acc2
857
        set_accg_immed  0x00000044,accg3
858
        set_acc_immed   0x44444444,acc3
859
        set_fr_iimmed   2,3,fr8         ; multiply small numbers
860
        set_fr_iimmed   3,2,fr10
861
        set_fr_iimmed   0,1,fr9         ; multiply by 0
862
        set_fr_iimmed   2,0,fr11
863
        cmqmachs        fr8,fr10,acc0,cc2,1
864
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
865
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
866
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
867
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
868
        test_accg_immed         0x00000011,accg0
869
        test_acc_immed  0x11111111,acc0
870
        test_accg_immed         0x00000022,accg1
871
        test_acc_immed  0x22222222,acc1
872
        test_accg_immed         0x00000033,accg2
873
        test_acc_immed  0x33333333,acc2
874
        test_accg_immed         0x00000044,accg3
875
        test_acc_immed  0x44444444,acc3
876
 
877
        set_fr_iimmed   2,1,fr8         ; multiply by 1
878
        set_fr_iimmed   1,2,fr10
879
        set_fr_iimmed   0x3fff,2,fr9    ; 15 bit result
880
        set_fr_iimmed   2,0x3fff,fr11
881
        cmqmachs        fr8,fr10,acc0,cc2,1
882
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
883
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
884
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
885
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
886
        test_accg_immed         0x00000011,accg0
887
        test_acc_immed  0x11111111,acc0
888
        test_accg_immed         0x00000022,accg1
889
        test_acc_immed  0x22222222,acc1
890
        test_accg_immed         0x00000033,accg2
891
        test_acc_immed  0x33333333,acc2
892
        test_accg_immed         0x00000044,accg3
893
        test_acc_immed  0x44444444,acc3
894
 
895
        set_fr_iimmed   0x4000,2,fr8    ; 16 bit result
896
        set_fr_iimmed   2,0x4000,fr10
897
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; max positive result
898
        set_fr_iimmed   0x7fff,0x7fff,fr11
899
        cmqmachs        fr8,fr10,acc0,cc2,1
900
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
901
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
902
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
903
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
904
        test_accg_immed         0x00000011,accg0
905
        test_acc_immed  0x11111111,acc0
906
        test_accg_immed         0x00000022,accg1
907
        test_acc_immed  0x22222222,acc1
908
        test_accg_immed         0x00000033,accg2
909
        test_acc_immed  0x33333333,acc2
910
        test_accg_immed         0x00000044,accg3
911
        test_acc_immed  0x44444444,acc3
912
 
913
        ; Mixed operands
914
        set_fr_iimmed   2,0xfffd,fr8            ; multiply small numbers
915
        set_fr_iimmed   0xfffd,2,fr10
916
        set_fr_iimmed   0xfffe,1,fr9            ; multiply by 1
917
        set_fr_iimmed   1,0xfffe,fr11
918
        cmqmachs        fr8,fr10,acc0,cc2,1
919
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
920
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
921
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
922
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
923
        test_accg_immed         0x00000011,accg0
924
        test_acc_immed  0x11111111,acc0
925
        test_accg_immed         0x00000022,accg1
926
        test_acc_immed  0x22222222,acc1
927
        test_accg_immed         0x00000033,accg2
928
        test_acc_immed  0x33333333,acc2
929
        test_accg_immed         0x00000044,accg3
930
        test_acc_immed  0x44444444,acc3
931
 
932
        set_fr_iimmed   0xfffe,0,fr8            ; multiply by 0
933
        set_fr_iimmed   0,0xfffe,fr10
934
        set_fr_iimmed   0x2001,0xfffe,fr9       ; 15 bit result
935
        set_fr_iimmed   0xfffe,0x2001,fr11
936
        cmqmachs        fr8,fr10,acc0,cc2,1
937
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
938
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
939
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
940
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
941
        test_accg_immed         0x00000011,accg0
942
        test_acc_immed  0x11111111,acc0
943
        test_accg_immed         0x00000022,accg1
944
        test_acc_immed  0x22222222,acc1
945
        test_accg_immed         0x00000033,accg2
946
        test_acc_immed  0x33333333,acc2
947
        test_accg_immed         0x00000044,accg3
948
        test_acc_immed  0x44444444,acc3
949
 
950
        set_fr_iimmed   0x4000,0xfffe,fr8       ; 16 bit result
951
        set_fr_iimmed   0xfffe,0x4000,fr10
952
        set_fr_iimmed   0x7fff,0x8000,fr9       ; max negative result
953
        set_fr_iimmed   0x8000,0x7fff,fr11
954
        cmqmachs        fr8,fr10,acc0,cc6,1
955
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
956
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
957
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
958
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
959
        test_accg_immed         0x00000011,accg0
960
        test_acc_immed  0x11111111,acc0
961
        test_accg_immed         0x00000022,accg1
962
        test_acc_immed  0x22222222,acc1
963
        test_accg_immed         0x00000033,accg2
964
        test_acc_immed  0x33333333,acc2
965
        test_accg_immed         0x00000044,accg3
966
        test_acc_immed  0x44444444,acc3
967
 
968
        ; Negative operands
969
        set_fr_iimmed   0xfffe,0xfffd,fr8               ; multiply small numbers
970
        set_fr_iimmed   0xfffd,0xfffe,fr10
971
        set_fr_iimmed   0xffff,0xfffe,fr9               ; multiply by -1
972
        set_fr_iimmed   0xfffe,0xffff,fr11
973
        cmqmachs        fr8,fr10,acc0,cc6,1
974
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
975
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
976
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
977
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
978
        test_accg_immed         0x00000011,accg0
979
        test_acc_immed  0x11111111,acc0
980
        test_accg_immed         0x00000022,accg1
981
        test_acc_immed  0x22222222,acc1
982
        test_accg_immed         0x00000033,accg2
983
        test_acc_immed  0x33333333,acc2
984
        test_accg_immed         0x00000044,accg3
985
        test_acc_immed  0x44444444,acc3
986
 
987
        set_fr_iimmed   0x8001,0x8001,fr8       ; almost max positive result
988
        set_fr_iimmed   0x8001,0x8001,fr10
989
        set_fr_iimmed   0x8000,0x8000,fr9       ; max positive result
990
        set_fr_iimmed   0x8000,0x8000,fr11
991
        cmqmachs        fr8,fr10,acc0,cc6,1
992
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
993
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
994
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
995
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
996
        test_accg_immed         0x00000011,accg0
997
        test_acc_immed  0x11111111,acc0
998
        test_accg_immed         0x00000022,accg1
999
        test_acc_immed  0x22222222,acc1
1000
        test_accg_immed         0x00000033,accg2
1001
        test_acc_immed  0x33333333,acc2
1002
        test_accg_immed         0x00000044,accg3
1003
        test_acc_immed  0x44444444,acc3
1004
 
1005
        set_accg_immed  0x7f,accg0              ; saturation
1006
        set_acc_immed   0xffffffff,acc0
1007
        set_accg_immed  0x7f,accg1
1008
        set_acc_immed   0xffffffff,acc1
1009
        set_accg_immed  0x7f,accg2              ; saturation
1010
        set_acc_immed   0xffffffff,acc2
1011
        set_accg_immed  0x7f,accg3
1012
        set_acc_immed   0xffffffff,acc3
1013
        set_fr_iimmed   1,1,fr8
1014
        set_fr_iimmed   1,1,fr10
1015
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; saturation
1016
        set_fr_iimmed   0x7fff,0x7fff,fr11
1017
        cmqmachs        fr8,fr10,acc0,cc6,1
1018
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1019
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1020
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1021
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1022
        test_accg_immed         0x7f,accg0              ; saturation
1023
        test_acc_immed  0xffffffff,acc0
1024
        test_accg_immed         0x7f,accg1
1025
        test_acc_immed  0xffffffff,acc1
1026
        test_accg_immed         0x7f,accg2              ; saturation
1027
        test_acc_immed  0xffffffff,acc2
1028
        test_accg_immed         0x7f,accg3
1029
        test_acc_immed  0xffffffff,acc3
1030
 
1031
        set_accg_immed  0x80,accg0              ; saturation
1032
        set_acc_immed   0,acc0
1033
        set_accg_immed  0x80,accg1
1034
        set_acc_immed   0,acc1
1035
        set_accg_immed  0x80,accg2              ; saturation
1036
        set_acc_immed   0,acc2
1037
        set_accg_immed  0x80,accg3
1038
        set_acc_immed   0,acc3
1039
        set_fr_iimmed   0xffff,0,fr8
1040
        set_fr_iimmed   1,0xffff,fr10
1041
        set_fr_iimmed   0x0000,0x8000,fr9       ; saturation
1042
        set_fr_iimmed   0x7fff,0x7fff,fr11
1043
        cmqmachs        fr8,fr10,acc0,cc6,1
1044
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1045
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1046
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1047
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1048
        test_accg_immed         0x80,accg0              ; saturation
1049
        test_acc_immed  0,acc0
1050
        test_accg_immed         0x80,accg1
1051
        test_acc_immed  0,acc1
1052
        test_accg_immed         0x80,accg2              ; saturation
1053
        test_acc_immed  0,acc2
1054
        test_accg_immed         0x80,accg3
1055
        test_acc_immed  0,acc3
1056
;
1057
        ; Positive operands
1058
        set_spr_immed   0,msr0
1059
        set_spr_immed   0,msr1
1060
        set_accg_immed  0x00000011,accg0
1061
        set_acc_immed   0x11111111,acc0
1062
        set_accg_immed  0x00000022,accg1
1063
        set_acc_immed   0x22222222,acc1
1064
        set_accg_immed  0x00000033,accg2
1065
        set_acc_immed   0x33333333,acc2
1066
        set_accg_immed  0x00000044,accg3
1067
        set_acc_immed   0x44444444,acc3
1068
        set_fr_iimmed   2,3,fr8         ; multiply small numbers
1069
        set_fr_iimmed   3,2,fr10
1070
        set_fr_iimmed   0,1,fr9         ; multiply by 0
1071
        set_fr_iimmed   2,0,fr11
1072
        cmqmachs        fr8,fr10,acc0,cc3,1
1073
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1074
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1075
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1076
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1077
        test_accg_immed         0x00000011,accg0
1078
        test_acc_immed  0x11111111,acc0
1079
        test_accg_immed         0x00000022,accg1
1080
        test_acc_immed  0x22222222,acc1
1081
        test_accg_immed         0x00000033,accg2
1082
        test_acc_immed  0x33333333,acc2
1083
        test_accg_immed         0x00000044,accg3
1084
        test_acc_immed  0x44444444,acc3
1085
 
1086
        set_fr_iimmed   2,1,fr8         ; multiply by 1
1087
        set_fr_iimmed   1,2,fr10
1088
        set_fr_iimmed   0x3fff,2,fr9    ; 15 bit result
1089
        set_fr_iimmed   2,0x3fff,fr11
1090
        cmqmachs        fr8,fr10,acc0,cc3,1
1091
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1092
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1093
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1094
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1095
        test_accg_immed         0x00000011,accg0
1096
        test_acc_immed  0x11111111,acc0
1097
        test_accg_immed         0x00000022,accg1
1098
        test_acc_immed  0x22222222,acc1
1099
        test_accg_immed         0x00000033,accg2
1100
        test_acc_immed  0x33333333,acc2
1101
        test_accg_immed         0x00000044,accg3
1102
        test_acc_immed  0x44444444,acc3
1103
 
1104
        set_fr_iimmed   0x4000,2,fr8    ; 16 bit result
1105
        set_fr_iimmed   2,0x4000,fr10
1106
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; max positive result
1107
        set_fr_iimmed   0x7fff,0x7fff,fr11
1108
        cmqmachs        fr8,fr10,acc0,cc3,1
1109
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1110
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1111
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1112
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1113
        test_accg_immed         0x00000011,accg0
1114
        test_acc_immed  0x11111111,acc0
1115
        test_accg_immed         0x00000022,accg1
1116
        test_acc_immed  0x22222222,acc1
1117
        test_accg_immed         0x00000033,accg2
1118
        test_acc_immed  0x33333333,acc2
1119
        test_accg_immed         0x00000044,accg3
1120
        test_acc_immed  0x44444444,acc3
1121
 
1122
        ; Mixed operands
1123
        set_fr_iimmed   2,0xfffd,fr8            ; multiply small numbers
1124
        set_fr_iimmed   0xfffd,2,fr10
1125
        set_fr_iimmed   0xfffe,1,fr9            ; multiply by 1
1126
        set_fr_iimmed   1,0xfffe,fr11
1127
        cmqmachs        fr8,fr10,acc0,cc3,1
1128
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1129
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1130
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1131
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1132
        test_accg_immed         0x00000011,accg0
1133
        test_acc_immed  0x11111111,acc0
1134
        test_accg_immed         0x00000022,accg1
1135
        test_acc_immed  0x22222222,acc1
1136
        test_accg_immed         0x00000033,accg2
1137
        test_acc_immed  0x33333333,acc2
1138
        test_accg_immed         0x00000044,accg3
1139
        test_acc_immed  0x44444444,acc3
1140
 
1141
        set_fr_iimmed   0xfffe,0,fr8            ; multiply by 0
1142
        set_fr_iimmed   0,0xfffe,fr10
1143
        set_fr_iimmed   0x2001,0xfffe,fr9       ; 15 bit result
1144
        set_fr_iimmed   0xfffe,0x2001,fr11
1145
        cmqmachs        fr8,fr10,acc0,cc3,1
1146
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1147
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1148
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1149
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1150
        test_accg_immed         0x00000011,accg0
1151
        test_acc_immed  0x11111111,acc0
1152
        test_accg_immed         0x00000022,accg1
1153
        test_acc_immed  0x22222222,acc1
1154
        test_accg_immed         0x00000033,accg2
1155
        test_acc_immed  0x33333333,acc2
1156
        test_accg_immed         0x00000044,accg3
1157
        test_acc_immed  0x44444444,acc3
1158
 
1159
        set_fr_iimmed   0x4000,0xfffe,fr8       ; 16 bit result
1160
        set_fr_iimmed   0xfffe,0x4000,fr10
1161
        set_fr_iimmed   0x7fff,0x8000,fr9       ; max negative result
1162
        set_fr_iimmed   0x8000,0x7fff,fr11
1163
        cmqmachs        fr8,fr10,acc0,cc7,1
1164
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1165
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1166
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1167
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1168
        test_accg_immed         0x00000011,accg0
1169
        test_acc_immed  0x11111111,acc0
1170
        test_accg_immed         0x00000022,accg1
1171
        test_acc_immed  0x22222222,acc1
1172
        test_accg_immed         0x00000033,accg2
1173
        test_acc_immed  0x33333333,acc2
1174
        test_accg_immed         0x00000044,accg3
1175
        test_acc_immed  0x44444444,acc3
1176
 
1177
        ; Negative operands
1178
        set_fr_iimmed   0xfffe,0xfffd,fr8               ; multiply small numbers
1179
        set_fr_iimmed   0xfffd,0xfffe,fr10
1180
        set_fr_iimmed   0xffff,0xfffe,fr9               ; multiply by -1
1181
        set_fr_iimmed   0xfffe,0xffff,fr11
1182
        cmqmachs        fr8,fr10,acc0,cc7,1
1183
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1184
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1185
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1186
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1187
        test_accg_immed         0x00000011,accg0
1188
        test_acc_immed  0x11111111,acc0
1189
        test_accg_immed         0x00000022,accg1
1190
        test_acc_immed  0x22222222,acc1
1191
        test_accg_immed         0x00000033,accg2
1192
        test_acc_immed  0x33333333,acc2
1193
        test_accg_immed         0x00000044,accg3
1194
        test_acc_immed  0x44444444,acc3
1195
 
1196
        set_fr_iimmed   0x8001,0x8001,fr8       ; almost max positive result
1197
        set_fr_iimmed   0x8001,0x8001,fr10
1198
        set_fr_iimmed   0x8000,0x8000,fr9       ; max positive result
1199
        set_fr_iimmed   0x8000,0x8000,fr11
1200
        cmqmachs        fr8,fr10,acc0,cc7,1
1201
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1202
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1203
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1204
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1205
        test_accg_immed         0x00000011,accg0
1206
        test_acc_immed  0x11111111,acc0
1207
        test_accg_immed         0x00000022,accg1
1208
        test_acc_immed  0x22222222,acc1
1209
        test_accg_immed         0x00000033,accg2
1210
        test_acc_immed  0x33333333,acc2
1211
        test_accg_immed         0x00000044,accg3
1212
        test_acc_immed  0x44444444,acc3
1213
 
1214
        set_accg_immed  0x7f,accg0              ; saturation
1215
        set_acc_immed   0xffffffff,acc0
1216
        set_accg_immed  0x7f,accg1
1217
        set_acc_immed   0xffffffff,acc1
1218
        set_accg_immed  0x7f,accg2              ; saturation
1219
        set_acc_immed   0xffffffff,acc2
1220
        set_accg_immed  0x7f,accg3
1221
        set_acc_immed   0xffffffff,acc3
1222
        set_fr_iimmed   1,1,fr8
1223
        set_fr_iimmed   1,1,fr10
1224
        set_fr_iimmed   0x7fff,0x7fff,fr9       ; saturation
1225
        set_fr_iimmed   0x7fff,0x7fff,fr11
1226
        cmqmachs        fr8,fr10,acc0,cc7,1
1227
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1228
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1229
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1230
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1231
        test_accg_immed         0x7f,accg0              ; saturation
1232
        test_acc_immed  0xffffffff,acc0
1233
        test_accg_immed         0x7f,accg1
1234
        test_acc_immed  0xffffffff,acc1
1235
        test_accg_immed         0x7f,accg2              ; saturation
1236
        test_acc_immed  0xffffffff,acc2
1237
        test_accg_immed         0x7f,accg3
1238
        test_acc_immed  0xffffffff,acc3
1239
 
1240
        set_accg_immed  0x80,accg0              ; saturation
1241
        set_acc_immed   0,acc0
1242
        set_accg_immed  0x80,accg1
1243
        set_acc_immed   0,acc1
1244
        set_accg_immed  0x80,accg2              ; saturation
1245
        set_acc_immed   0,acc2
1246
        set_accg_immed  0x80,accg3
1247
        set_acc_immed   0,acc3
1248
        set_fr_iimmed   0xffff,0,fr8
1249
        set_fr_iimmed   1,0xffff,fr10
1250
        set_fr_iimmed   0x0000,0x8000,fr9       ; saturation
1251
        set_fr_iimmed   0x7fff,0x7fff,fr11
1252
        cmqmachs        fr8,fr10,acc0,cc7,1
1253
        test_spr_bits   0x3c,2,0,msr0           ; msr0.sie is clear
1254
        test_spr_bits   2,1,0,msr0              ; msr0.ovf not set
1255
        test_spr_bits   1,0,0,msr0              ; msr0.aovf not set
1256
        test_spr_bits   0x7000,12,0,msr0        ; msr0.mtt not set
1257
        test_accg_immed         0x80,accg0              ; saturation
1258
        test_acc_immed  0,acc0
1259
        test_accg_immed         0x80,accg1
1260
        test_acc_immed  0,acc1
1261
        test_accg_immed         0x80,accg2              ; saturation
1262
        test_acc_immed  0,acc2
1263
        test_accg_immed         0x80,accg3
1264
        test_acc_immed  0,acc3
1265
 
1266
        pass
1267
 
1268
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.