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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-6.8/] [sim/] [testsuite/] [sim/] [frv/] [fr550/] [cmqmachs.cgs] - Blame information for rev 816

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

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

powered by: WebSVN 2.1.0

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