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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [sim/] [testsuite/] [sim/] [frv/] [cmcpxis.cgs] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
# frv testcase for cmcpxis $GRi,$GRj,$ACCk,$CCi,$cond
2
# mach: all
3
 
4
        .include "testutils.inc"
5
 
6
        start
7
 
8
        .global cmcpxis
9
cmcpxis:
10
        set_spr_immed   0x1b1b,cccr
11
 
12
        ; Positive operands
13
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
14
        set_fr_iimmed   5,3,fr8
15
        cmcpxis         fr7,fr8,acc0,cc0,1
16
        test_accg_immed 0x00,accg0
17
        test_acc_immed  26,acc0
18
 
19
        set_fr_iimmed   3,1,fr7         ; multiply by 0
20
        set_fr_iimmed   0,2,fr8
21
        cmcpxis         fr7,fr8,acc0,cc0,1
22
        test_accg_immed         0,accg0
23
        test_acc_immed  6,acc0
24
 
25
        set_fr_iimmed   2,1,fr7         ; multiply by 1
26
        set_fr_iimmed   1,1,fr8
27
        cmcpxis         fr7,fr8,acc0,cc0,1
28
        test_accg_immed         0,accg0
29
        test_acc_immed  3,acc0
30
 
31
        set_fr_iimmed   0x3ff8,2,fr7    ; 15 bit result
32
        set_fr_iimmed   0x0007,2,fr8
33
        cmcpxis         fr7,fr8,acc0,cc0,1
34
        test_accg_immed         0,accg0
35
        test_acc_limmed 0,0x7ffe,acc0
36
 
37
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
38
        set_fr_iimmed   0x2000,2,fr8
39
        cmcpxis         fr7,fr8,acc0,cc0,1
40
        test_accg_immed         0,accg0
41
        test_acc_limmed 0x0000,0xc000,acc0
42
 
43
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
44
        set_fr_iimmed   0x7fff,0x7fff,fr8
45
        cmcpxis         fr7,fr8,acc0,cc0,1
46
        test_accg_immed         0,accg0
47
        test_acc_limmed 0x3fff,0x0001,acc0
48
 
49
        ; Mixed operands
50
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
51
        set_fr_iimmed   1,0xfffd,fr8
52
        cmcpxis         fr7,fr8,acc0,cc0,1
53
        test_accg_immed         0xff,accg0
54
        test_acc_immed  -9,acc0
55
 
56
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
57
        set_fr_iimmed   0xfffe,1,fr8
58
        cmcpxis         fr7,fr8,acc0,cc0,1
59
        test_accg_immed 0xff,accg0
60
        test_acc_immed  -6,acc0
61
 
62
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
63
        set_fr_iimmed   0xfffe,1,fr8
64
        cmcpxis         fr7,fr8,acc0,cc0,1
65
        test_accg_immed         0xff,accg0
66
        test_acc_immed  -2,acc0
67
 
68
        set_fr_iimmed   0x2001,0xffff,fr7       ; 15 bit result
69
        set_fr_iimmed   0xffff,0xfffe,fr8
70
        cmcpxis         fr7,fr8,acc0,cc4,1
71
        test_accg_immed         0xff,accg0
72
        test_acc_limmed 0xffff,0xbfff,acc0
73
 
74
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
75
        set_fr_iimmed   0x0003,0xfffe,fr8
76
        cmcpxis         fr7,fr8,acc0,cc4,1
77
        test_accg_immed         0xff,accg0
78
        test_acc_limmed 0xffff,0x7ffa,acc0
79
 
80
        set_fr_iimmed   0x7fff,0x7fff,fr7       ; max negative result
81
        set_fr_iimmed   0x8000,0x8000,fr8
82
        cmcpxis         fr7,fr8,acc0,cc4,1
83
        test_accg_immed         0xff,accg0
84
        test_acc_limmed 0x8001,0x0000,acc0
85
 
86
        set_fr_iimmed   0x8000,0x8000,fr7       ; max positive result
87
        set_fr_iimmed   0x8000,0x8000,fr8
88
        cmcpxis         fr7,fr8,acc0,cc4,1
89
        test_accg_immed         0,accg0
90
        test_acc_limmed 0x8000,0x0000,acc0
91
 
92
        ; Negative operands
93
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
94
        set_fr_iimmed   0xfffb,0xfffd,fr8
95
        cmcpxis         fr7,fr8,acc0,cc4,1
96
        test_accg_immed 0x00,accg0
97
        test_acc_immed  26,acc0
98
 
99
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
100
        set_fr_iimmed   0xffff,0xfffe,fr8
101
        cmcpxis         fr7,fr8,acc0,cc4,1
102
        test_accg_immed         0,accg0
103
        test_acc_immed  3,acc0
104
 
105
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
106
        set_fr_iimmed   0x8001,0x7fff,fr8
107
        cmcpxis         fr7,fr8,acc0,cc4,1
108
        test_accg_immed         0,accg0
109
        test_acc_immed  0x3fff0001,acc0
110
 
111
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
112
        set_fr_iimmed   0x8000,0x8000,fr8
113
        cmcpxis         fr7,fr8,acc0,cc4,1
114
        test_accg_immed         0,accg0
115
        test_acc_immed  0x40000000,acc0
116
 
117
        ; Positive operands
118
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
119
        set_fr_iimmed   5,3,fr8
120
        cmcpxis         fr7,fr8,acc0,cc1,0
121
        test_accg_immed 0x00,accg0
122
        test_acc_immed  26,acc0
123
 
124
        set_fr_iimmed   3,1,fr7         ; multiply by 0
125
        set_fr_iimmed   0,2,fr8
126
        cmcpxis         fr7,fr8,acc0,cc1,0
127
        test_accg_immed         0,accg0
128
        test_acc_immed  6,acc0
129
 
130
        set_fr_iimmed   2,1,fr7         ; multiply by 1
131
        set_fr_iimmed   1,1,fr8
132
        cmcpxis         fr7,fr8,acc0,cc1,0
133
        test_accg_immed         0,accg0
134
        test_acc_immed  3,acc0
135
 
136
        set_fr_iimmed   0x3ff8,2,fr7    ; 15 bit result
137
        set_fr_iimmed   0x0007,2,fr8
138
        cmcpxis         fr7,fr8,acc0,cc1,0
139
        test_accg_immed         0,accg0
140
        test_acc_limmed 0,0x7ffe,acc0
141
 
142
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
143
        set_fr_iimmed   0x2000,2,fr8
144
        cmcpxis         fr7,fr8,acc0,cc1,0
145
        test_accg_immed         0,accg0
146
        test_acc_limmed 0x0000,0xc000,acc0
147
 
148
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
149
        set_fr_iimmed   0x7fff,0x7fff,fr8
150
        cmcpxis         fr7,fr8,acc0,cc1,0
151
        test_accg_immed         0,accg0
152
        test_acc_limmed 0x3fff,0x0001,acc0
153
 
154
        ; Mixed operands
155
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
156
        set_fr_iimmed   1,0xfffd,fr8
157
        cmcpxis         fr7,fr8,acc0,cc1,0
158
        test_accg_immed         0xff,accg0
159
        test_acc_immed  -9,acc0
160
 
161
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
162
        set_fr_iimmed   0xfffe,1,fr8
163
        cmcpxis         fr7,fr8,acc0,cc1,0
164
        test_accg_immed 0xff,accg0
165
        test_acc_immed  -6,acc0
166
 
167
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
168
        set_fr_iimmed   0xfffe,1,fr8
169
        cmcpxis         fr7,fr8,acc0,cc1,0
170
        test_accg_immed         0xff,accg0
171
        test_acc_immed  -2,acc0
172
 
173
        set_fr_iimmed   0x2001,0xffff,fr7       ; 15 bit result
174
        set_fr_iimmed   0xffff,0xfffe,fr8
175
        cmcpxis         fr7,fr8,acc0,cc5,0
176
        test_accg_immed         0xff,accg0
177
        test_acc_limmed 0xffff,0xbfff,acc0
178
 
179
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
180
        set_fr_iimmed   0x0003,0xfffe,fr8
181
        cmcpxis         fr7,fr8,acc0,cc5,0
182
        test_accg_immed         0xff,accg0
183
        test_acc_limmed 0xffff,0x7ffa,acc0
184
 
185
        set_fr_iimmed   0x7fff,0x7fff,fr7       ; max negative result
186
        set_fr_iimmed   0x8000,0x8000,fr8
187
        cmcpxis         fr7,fr8,acc0,cc5,0
188
        test_accg_immed         0xff,accg0
189
        test_acc_limmed 0x8001,0x0000,acc0
190
 
191
        set_fr_iimmed   0x8000,0x8000,fr7       ; max positive result
192
        set_fr_iimmed   0x8000,0x8000,fr8
193
        cmcpxis         fr7,fr8,acc0,cc5,0
194
        test_accg_immed         0,accg0
195
        test_acc_limmed 0x8000,0x0000,acc0
196
 
197
        ; Negative operands
198
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
199
        set_fr_iimmed   0xfffb,0xfffd,fr8
200
        cmcpxis         fr7,fr8,acc0,cc5,0
201
        test_accg_immed 0x00,accg0
202
        test_acc_immed  26,acc0
203
 
204
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
205
        set_fr_iimmed   0xffff,0xfffe,fr8
206
        cmcpxis         fr7,fr8,acc0,cc5,0
207
        test_accg_immed         0,accg0
208
        test_acc_immed  3,acc0
209
 
210
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
211
        set_fr_iimmed   0x8001,0x7fff,fr8
212
        cmcpxis         fr7,fr8,acc0,cc5,0
213
        test_accg_immed         0,accg0
214
        test_acc_immed  0x3fff0001,acc0
215
 
216
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
217
        set_fr_iimmed   0x8000,0x8000,fr8
218
        cmcpxis         fr7,fr8,acc0,cc5,0
219
        test_accg_immed         0,accg0
220
        test_acc_immed  0x40000000,acc0
221
 
222
        ; Positive operands
223
        set_accg_immed  0x00000011,accg0
224
        set_acc_immed   0x11111111,acc0
225
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
226
        set_fr_iimmed   5,3,fr8
227
        cmcpxis         fr7,fr8,acc0,cc0,0
228
        test_accg_immed         0x00000011,accg0
229
        test_acc_immed  0x11111111,acc0
230
 
231
        set_fr_iimmed   3,1,fr7         ; multiply by 0
232
        set_fr_iimmed   0,2,fr8
233
        cmcpxis         fr7,fr8,acc0,cc0,0
234
        test_accg_immed         0x00000011,accg0
235
        test_acc_immed  0x11111111,acc0
236
 
237
        set_fr_iimmed   2,1,fr7         ; multiply by 1
238
        set_fr_iimmed   1,1,fr8
239
        cmcpxis         fr7,fr8,acc0,cc0,0
240
        test_accg_immed         0x00000011,accg0
241
        test_acc_immed  0x11111111,acc0
242
 
243
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
244
        set_fr_iimmed   0x0007,2,fr8
245
        cmcpxis         fr7,fr8,acc0,cc0,0
246
        test_accg_immed         0x00000011,accg0
247
        test_acc_immed  0x11111111,acc0
248
 
249
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
250
        set_fr_iimmed   0x2000,2,fr8
251
        cmcpxis         fr7,fr8,acc0,cc0,0
252
        test_accg_immed         0x00000011,accg0
253
        test_acc_immed  0x11111111,acc0
254
 
255
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
256
        set_fr_iimmed   0x7fff,0x7fff,fr8
257
        cmcpxis         fr7,fr8,acc0,cc0,0
258
        test_accg_immed         0x00000011,accg0
259
        test_acc_immed  0x11111111,acc0
260
 
261
        ; Mixed operands
262
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
263
        set_fr_iimmed   1,0xfffd,fr8
264
        cmcpxis         fr7,fr8,acc0,cc0,0
265
        test_accg_immed         0x00000011,accg0
266
        test_acc_immed  0x11111111,acc0
267
 
268
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
269
        set_fr_iimmed   0xfffe,1,fr8
270
        cmcpxis         fr7,fr8,acc0,cc0,0
271
        test_accg_immed         0x00000011,accg0
272
        test_acc_immed  0x11111111,acc0
273
 
274
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
275
        set_fr_iimmed   0xfffe,1,fr8
276
        cmcpxis         fr7,fr8,acc0,cc4,0
277
        test_accg_immed         0x00000011,accg0
278
        test_acc_immed  0x11111111,acc0
279
 
280
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
281
        set_fr_iimmed   0xfff9,0xfffe,fr8
282
        cmcpxis         fr7,fr8,acc0,cc4,0
283
        test_accg_immed         0x00000011,accg0
284
        test_acc_immed  0x11111111,acc0
285
 
286
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
287
        set_fr_iimmed   0x0003,0xfffe,fr8
288
        cmcpxis         fr7,fr8,acc0,cc4,0
289
        test_accg_immed         0x00000011,accg0
290
        test_acc_immed  0x11111111,acc0
291
 
292
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
293
        set_fr_iimmed   0x8000,0x8000,fr8
294
        cmcpxis         fr7,fr8,acc0,cc4,0
295
        test_accg_immed         0x00000011,accg0
296
        test_acc_immed  0x11111111,acc0
297
 
298
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
299
        set_fr_iimmed   0x8000,0x8000,fr8
300
        cmcpxis         fr7,fr8,acc0,cc4,0
301
        test_accg_immed         0x00000011,accg0
302
        test_acc_immed  0x11111111,acc0
303
 
304
        ; Negative operands
305
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
306
        set_fr_iimmed   0xfffb,0xfffd,fr8
307
        cmcpxis         fr7,fr8,acc0,cc4,0
308
        test_accg_immed         0x00000011,accg0
309
        test_acc_immed  0x11111111,acc0
310
 
311
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
312
        set_fr_iimmed   0xffff,0xfffe,fr8
313
        cmcpxis         fr7,fr8,acc0,cc4,0
314
        test_accg_immed         0x00000011,accg0
315
        test_acc_immed  0x11111111,acc0
316
 
317
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
318
        set_fr_iimmed   0x8001,0x7fff,fr8
319
        cmcpxis         fr7,fr8,acc0,cc4,0
320
        test_accg_immed         0x00000011,accg0
321
        test_acc_immed  0x11111111,acc0
322
 
323
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
324
        set_fr_iimmed   0x8000,0x8000,fr8
325
        cmcpxis         fr7,fr8,acc0,cc4,0
326
        test_accg_immed         0x00000011,accg0
327
        test_acc_immed  0x11111111,acc0
328
 
329
        ; Positive operands
330
        set_accg_immed  0x00000011,accg0
331
        set_acc_immed   0x11111111,acc0
332
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
333
        set_fr_iimmed   5,3,fr8
334
        cmcpxis         fr7,fr8,acc0,cc1,1
335
        test_accg_immed         0x00000011,accg0
336
        test_acc_immed  0x11111111,acc0
337
 
338
        set_fr_iimmed   3,1,fr7         ; multiply by 0
339
        set_fr_iimmed   0,2,fr8
340
        cmcpxis         fr7,fr8,acc0,cc1,1
341
        test_accg_immed         0x00000011,accg0
342
        test_acc_immed  0x11111111,acc0
343
 
344
        set_fr_iimmed   2,1,fr7         ; multiply by 1
345
        set_fr_iimmed   1,1,fr8
346
        cmcpxis         fr7,fr8,acc0,cc1,1
347
        test_accg_immed         0x00000011,accg0
348
        test_acc_immed  0x11111111,acc0
349
 
350
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
351
        set_fr_iimmed   0x0007,2,fr8
352
        cmcpxis         fr7,fr8,acc0,cc1,1
353
        test_accg_immed         0x00000011,accg0
354
        test_acc_immed  0x11111111,acc0
355
 
356
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
357
        set_fr_iimmed   0x2000,2,fr8
358
        cmcpxis         fr7,fr8,acc0,cc1,1
359
        test_accg_immed         0x00000011,accg0
360
        test_acc_immed  0x11111111,acc0
361
 
362
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
363
        set_fr_iimmed   0x7fff,0x7fff,fr8
364
        cmcpxis         fr7,fr8,acc0,cc1,1
365
        test_accg_immed         0x00000011,accg0
366
        test_acc_immed  0x11111111,acc0
367
 
368
        ; Mixed operands
369
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
370
        set_fr_iimmed   1,0xfffd,fr8
371
        cmcpxis         fr7,fr8,acc0,cc1,1
372
        test_accg_immed         0x00000011,accg0
373
        test_acc_immed  0x11111111,acc0
374
 
375
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
376
        set_fr_iimmed   0xfffe,1,fr8
377
        cmcpxis         fr7,fr8,acc0,cc1,1
378
        test_accg_immed         0x00000011,accg0
379
        test_acc_immed  0x11111111,acc0
380
 
381
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
382
        set_fr_iimmed   0xfffe,1,fr8
383
        cmcpxis         fr7,fr8,acc0,cc5,1
384
        test_accg_immed         0x00000011,accg0
385
        test_acc_immed  0x11111111,acc0
386
 
387
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
388
        set_fr_iimmed   0xfff9,0xfffe,fr8
389
        cmcpxis         fr7,fr8,acc0,cc5,1
390
        test_accg_immed         0x00000011,accg0
391
        test_acc_immed  0x11111111,acc0
392
 
393
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
394
        set_fr_iimmed   0x0003,0xfffe,fr8
395
        cmcpxis         fr7,fr8,acc0,cc5,1
396
        test_accg_immed         0x00000011,accg0
397
        test_acc_immed  0x11111111,acc0
398
 
399
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
400
        set_fr_iimmed   0x8000,0x8000,fr8
401
        cmcpxis         fr7,fr8,acc0,cc5,1
402
        test_accg_immed         0x00000011,accg0
403
        test_acc_immed  0x11111111,acc0
404
 
405
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
406
        set_fr_iimmed   0x8000,0x8000,fr8
407
        cmcpxis         fr7,fr8,acc0,cc5,1
408
        test_accg_immed         0x00000011,accg0
409
        test_acc_immed  0x11111111,acc0
410
 
411
        ; Negative operands
412
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
413
        set_fr_iimmed   0xfffb,0xfffd,fr8
414
        cmcpxis         fr7,fr8,acc0,cc5,1
415
        test_accg_immed         0x00000011,accg0
416
        test_acc_immed  0x11111111,acc0
417
 
418
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
419
        set_fr_iimmed   0xffff,0xfffe,fr8
420
        cmcpxis         fr7,fr8,acc0,cc5,1
421
        test_accg_immed         0x00000011,accg0
422
        test_acc_immed  0x11111111,acc0
423
 
424
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
425
        set_fr_iimmed   0x8001,0x7fff,fr8
426
        cmcpxis         fr7,fr8,acc0,cc5,1
427
        test_accg_immed         0x00000011,accg0
428
        test_acc_immed  0x11111111,acc0
429
 
430
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
431
        set_fr_iimmed   0x8000,0x8000,fr8
432
        cmcpxis         fr7,fr8,acc0,cc5,1
433
        test_accg_immed         0x00000011,accg0
434
        test_acc_immed  0x11111111,acc0
435
 
436
        ; Positive operands
437
        set_accg_immed  0x00000011,accg0
438
        set_acc_immed   0x11111111,acc0
439
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
440
        set_fr_iimmed   5,3,fr8
441
        cmcpxis         fr7,fr8,acc0,cc2,1
442
        test_accg_immed         0x00000011,accg0
443
        test_acc_immed  0x11111111,acc0
444
 
445
        set_fr_iimmed   3,1,fr7         ; multiply by 0
446
        set_fr_iimmed   0,2,fr8
447
        cmcpxis         fr7,fr8,acc0,cc2,1
448
        test_accg_immed         0x00000011,accg0
449
        test_acc_immed  0x11111111,acc0
450
 
451
        set_fr_iimmed   2,1,fr7         ; multiply by 1
452
        set_fr_iimmed   1,1,fr8
453
        cmcpxis         fr7,fr8,acc0,cc2,1
454
        test_accg_immed         0x00000011,accg0
455
        test_acc_immed  0x11111111,acc0
456
 
457
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
458
        set_fr_iimmed   0x0007,2,fr8
459
        cmcpxis         fr7,fr8,acc0,cc2,1
460
        test_accg_immed         0x00000011,accg0
461
        test_acc_immed  0x11111111,acc0
462
 
463
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
464
        set_fr_iimmed   0x2000,2,fr8
465
        cmcpxis         fr7,fr8,acc0,cc2,1
466
        test_accg_immed         0x00000011,accg0
467
        test_acc_immed  0x11111111,acc0
468
 
469
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
470
        set_fr_iimmed   0x7fff,0x7fff,fr8
471
        cmcpxis         fr7,fr8,acc0,cc2,1
472
        test_accg_immed         0x00000011,accg0
473
        test_acc_immed  0x11111111,acc0
474
 
475
        ; Mixed operands
476
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
477
        set_fr_iimmed   1,0xfffd,fr8
478
        cmcpxis         fr7,fr8,acc0,cc2,1
479
        test_accg_immed         0x00000011,accg0
480
        test_acc_immed  0x11111111,acc0
481
 
482
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
483
        set_fr_iimmed   0xfffe,1,fr8
484
        cmcpxis         fr7,fr8,acc0,cc2,1
485
        test_accg_immed         0x00000011,accg0
486
        test_acc_immed  0x11111111,acc0
487
 
488
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
489
        set_fr_iimmed   0xfffe,1,fr8
490
        cmcpxis         fr7,fr8,acc0,cc6,1
491
        test_accg_immed         0x00000011,accg0
492
        test_acc_immed  0x11111111,acc0
493
 
494
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
495
        set_fr_iimmed   0xfff9,0xfffe,fr8
496
        cmcpxis         fr7,fr8,acc0,cc6,1
497
        test_accg_immed         0x00000011,accg0
498
        test_acc_immed  0x11111111,acc0
499
 
500
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
501
        set_fr_iimmed   0x0003,0xfffe,fr8
502
        cmcpxis         fr7,fr8,acc0,cc6,1
503
        test_accg_immed         0x00000011,accg0
504
        test_acc_immed  0x11111111,acc0
505
 
506
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
507
        set_fr_iimmed   0x8000,0x8000,fr8
508
        cmcpxis         fr7,fr8,acc0,cc6,1
509
        test_accg_immed         0x00000011,accg0
510
        test_acc_immed  0x11111111,acc0
511
 
512
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
513
        set_fr_iimmed   0x8000,0x8000,fr8
514
        cmcpxis         fr7,fr8,acc0,cc6,1
515
        test_accg_immed         0x00000011,accg0
516
        test_acc_immed  0x11111111,acc0
517
 
518
        ; Negative operands
519
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
520
        set_fr_iimmed   0xfffb,0xfffd,fr8
521
        cmcpxis         fr7,fr8,acc0,cc6,1
522
        test_accg_immed         0x00000011,accg0
523
        test_acc_immed  0x11111111,acc0
524
 
525
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
526
        set_fr_iimmed   0xffff,0xfffe,fr8
527
        cmcpxis         fr7,fr8,acc0,cc6,1
528
        test_accg_immed         0x00000011,accg0
529
        test_acc_immed  0x11111111,acc0
530
 
531
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
532
        set_fr_iimmed   0x8001,0x7fff,fr8
533
        cmcpxis         fr7,fr8,acc0,cc6,1
534
        test_accg_immed         0x00000011,accg0
535
        test_acc_immed  0x11111111,acc0
536
 
537
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
538
        set_fr_iimmed   0x8000,0x8000,fr8
539
        cmcpxis         fr7,fr8,acc0,cc6,1
540
        test_accg_immed         0x00000011,accg0
541
        test_acc_immed  0x11111111,acc0
542
 
543
        ; Positive operands
544
        set_accg_immed  0x00000011,accg0
545
        set_acc_immed   0x11111111,acc0
546
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
547
        set_fr_iimmed   5,3,fr8
548
        cmcpxis         fr7,fr8,acc0,cc2,1
549
        test_accg_immed         0x00000011,accg0
550
        test_acc_immed  0x11111111,acc0
551
 
552
        set_fr_iimmed   3,1,fr7         ; multiply by 0
553
        set_fr_iimmed   0,2,fr8
554
        cmcpxis         fr7,fr8,acc0,cc2,0
555
        test_accg_immed         0x00000011,accg0
556
        test_acc_immed  0x11111111,acc0
557
 
558
        set_fr_iimmed   2,1,fr7         ; multiply by 1
559
        set_fr_iimmed   1,1,fr8
560
        cmcpxis         fr7,fr8,acc0,cc2,1
561
        test_accg_immed         0x00000011,accg0
562
        test_acc_immed  0x11111111,acc0
563
 
564
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
565
        set_fr_iimmed   0x0007,2,fr8
566
        cmcpxis         fr7,fr8,acc0,cc2,0
567
        test_accg_immed         0x00000011,accg0
568
        test_acc_immed  0x11111111,acc0
569
 
570
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
571
        set_fr_iimmed   0x2000,2,fr8
572
        cmcpxis         fr7,fr8,acc0,cc2,1
573
        test_accg_immed         0x00000011,accg0
574
        test_acc_immed  0x11111111,acc0
575
 
576
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
577
        set_fr_iimmed   0x7fff,0x7fff,fr8
578
        cmcpxis         fr7,fr8,acc0,cc2,0
579
        test_accg_immed         0x00000011,accg0
580
        test_acc_immed  0x11111111,acc0
581
 
582
        ; Mixed operands
583
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
584
        set_fr_iimmed   1,0xfffd,fr8
585
        cmcpxis         fr7,fr8,acc0,cc2,1
586
        test_accg_immed         0x00000011,accg0
587
        test_acc_immed  0x11111111,acc0
588
 
589
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
590
        set_fr_iimmed   0xfffe,1,fr8
591
        cmcpxis         fr7,fr8,acc0,cc2,0
592
        test_accg_immed         0x00000011,accg0
593
        test_acc_immed  0x11111111,acc0
594
 
595
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
596
        set_fr_iimmed   0xfffe,1,fr8
597
        cmcpxis         fr7,fr8,acc0,cc6,1
598
        test_accg_immed         0x00000011,accg0
599
        test_acc_immed  0x11111111,acc0
600
 
601
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
602
        set_fr_iimmed   0xfff9,0xfffe,fr8
603
        cmcpxis         fr7,fr8,acc0,cc6,0
604
        test_accg_immed         0x00000011,accg0
605
        test_acc_immed  0x11111111,acc0
606
 
607
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
608
        set_fr_iimmed   0x0003,0xfffe,fr8
609
        cmcpxis         fr7,fr8,acc0,cc6,1
610
        test_accg_immed         0x00000011,accg0
611
        test_acc_immed  0x11111111,acc0
612
 
613
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
614
        set_fr_iimmed   0x8000,0x8000,fr8
615
        cmcpxis         fr7,fr8,acc0,cc6,0
616
        test_accg_immed         0x00000011,accg0
617
        test_acc_immed  0x11111111,acc0
618
 
619
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
620
        set_fr_iimmed   0x8000,0x8000,fr8
621
        cmcpxis         fr7,fr8,acc0,cc6,1
622
        test_accg_immed         0x00000011,accg0
623
        test_acc_immed  0x11111111,acc0
624
 
625
        ; Negative operands
626
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
627
        set_fr_iimmed   0xfffb,0xfffd,fr8
628
        cmcpxis         fr7,fr8,acc0,cc6,0
629
        test_accg_immed         0x00000011,accg0
630
        test_acc_immed  0x11111111,acc0
631
 
632
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
633
        set_fr_iimmed   0xffff,0xfffe,fr8
634
        cmcpxis         fr7,fr8,acc0,cc6,1
635
        test_accg_immed         0x00000011,accg0
636
        test_acc_immed  0x11111111,acc0
637
 
638
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
639
        set_fr_iimmed   0x8001,0x7fff,fr8
640
        cmcpxis         fr7,fr8,acc0,cc6,0
641
        test_accg_immed         0x00000011,accg0
642
        test_acc_immed  0x11111111,acc0
643
 
644
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
645
        set_fr_iimmed   0x8000,0x8000,fr8
646
        cmcpxis         fr7,fr8,acc0,cc6,1
647
        test_accg_immed         0x00000011,accg0
648
        test_acc_immed  0x11111111,acc0
649
 
650
        ; Positive operands
651
        set_accg_immed  0x00000011,accg0
652
        set_acc_immed   0x11111111,acc0
653
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
654
        set_fr_iimmed   5,3,fr8
655
        cmcpxis         fr7,fr8,acc0,cc2,0
656
        test_accg_immed         0x00000011,accg0
657
        test_acc_immed  0x11111111,acc0
658
 
659
        set_fr_iimmed   3,1,fr7         ; multiply by 0
660
        set_fr_iimmed   0,2,fr8
661
        cmcpxis         fr7,fr8,acc0,cc2,1
662
        test_accg_immed         0x00000011,accg0
663
        test_acc_immed  0x11111111,acc0
664
 
665
        set_fr_iimmed   2,1,fr7         ; multiply by 1
666
        set_fr_iimmed   1,1,fr8
667
        cmcpxis         fr7,fr8,acc0,cc2,0
668
        test_accg_immed         0x00000011,accg0
669
        test_acc_immed  0x11111111,acc0
670
 
671
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
672
        set_fr_iimmed   0x0007,2,fr8
673
        cmcpxis         fr7,fr8,acc0,cc2,1
674
        test_accg_immed         0x00000011,accg0
675
        test_acc_immed  0x11111111,acc0
676
 
677
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
678
        set_fr_iimmed   0x2000,2,fr8
679
        cmcpxis         fr7,fr8,acc0,cc2,0
680
        test_accg_immed         0x00000011,accg0
681
        test_acc_immed  0x11111111,acc0
682
 
683
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
684
        set_fr_iimmed   0x7fff,0x7fff,fr8
685
        cmcpxis         fr7,fr8,acc0,cc2,1
686
        test_accg_immed         0x00000011,accg0
687
        test_acc_immed  0x11111111,acc0
688
 
689
        ; Mixed operands
690
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
691
        set_fr_iimmed   1,0xfffd,fr8
692
        cmcpxis         fr7,fr8,acc0,cc2,0
693
        test_accg_immed         0x00000011,accg0
694
        test_acc_immed  0x11111111,acc0
695
 
696
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
697
        set_fr_iimmed   0xfffe,1,fr8
698
        cmcpxis         fr7,fr8,acc0,cc2,1
699
        test_accg_immed         0x00000011,accg0
700
        test_acc_immed  0x11111111,acc0
701
 
702
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
703
        set_fr_iimmed   0xfffe,1,fr8
704
        cmcpxis         fr7,fr8,acc0,cc6,0
705
        test_accg_immed         0x00000011,accg0
706
        test_acc_immed  0x11111111,acc0
707
 
708
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
709
        set_fr_iimmed   0xfff9,0xfffe,fr8
710
        cmcpxis         fr7,fr8,acc0,cc6,1
711
        test_accg_immed         0x00000011,accg0
712
        test_acc_immed  0x11111111,acc0
713
 
714
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
715
        set_fr_iimmed   0x0003,0xfffe,fr8
716
        cmcpxis         fr7,fr8,acc0,cc6,0
717
        test_accg_immed         0x00000011,accg0
718
        test_acc_immed  0x11111111,acc0
719
 
720
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
721
        set_fr_iimmed   0x8000,0x8000,fr8
722
        cmcpxis         fr7,fr8,acc0,cc6,1
723
        test_accg_immed         0x00000011,accg0
724
        test_acc_immed  0x11111111,acc0
725
 
726
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
727
        set_fr_iimmed   0x8000,0x8000,fr8
728
        cmcpxis         fr7,fr8,acc0,cc6,0
729
        test_accg_immed         0x00000011,accg0
730
        test_acc_immed  0x11111111,acc0
731
 
732
        ; Negative operands
733
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
734
        set_fr_iimmed   0xfffb,0xfffd,fr8
735
        cmcpxis         fr7,fr8,acc0,cc6,1
736
        test_accg_immed         0x00000011,accg0
737
        test_acc_immed  0x11111111,acc0
738
 
739
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
740
        set_fr_iimmed   0xffff,0xfffe,fr8
741
        cmcpxis         fr7,fr8,acc0,cc6,0
742
        test_accg_immed         0x00000011,accg0
743
        test_acc_immed  0x11111111,acc0
744
 
745
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
746
        set_fr_iimmed   0x8001,0x7fff,fr8
747
        cmcpxis         fr7,fr8,acc0,cc6,0
748
        test_accg_immed         0x00000011,accg0
749
        test_acc_immed  0x11111111,acc0
750
 
751
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
752
        set_fr_iimmed   0x8000,0x8000,fr8
753
        cmcpxis         fr7,fr8,acc0,cc6,1
754
        test_accg_immed         0x00000011,accg0
755
        test_acc_immed  0x11111111,acc0
756
;
757
        ; Positive operands
758
        set_accg_immed  0x00000011,accg0
759
        set_acc_immed   0x11111111,acc0
760
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
761
        set_fr_iimmed   5,3,fr8
762
        cmcpxis         fr7,fr8,acc0,cc3,1
763
        test_accg_immed         0x00000011,accg0
764
        test_acc_immed  0x11111111,acc0
765
 
766
        set_fr_iimmed   3,1,fr7         ; multiply by 0
767
        set_fr_iimmed   0,2,fr8
768
        cmcpxis         fr7,fr8,acc0,cc3,0
769
        test_accg_immed         0x00000011,accg0
770
        test_acc_immed  0x11111111,acc0
771
 
772
        set_fr_iimmed   2,1,fr7         ; multiply by 1
773
        set_fr_iimmed   1,1,fr8
774
        cmcpxis         fr7,fr8,acc0,cc3,1
775
        test_accg_immed         0x00000011,accg0
776
        test_acc_immed  0x11111111,acc0
777
 
778
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
779
        set_fr_iimmed   0x0007,2,fr8
780
        cmcpxis         fr7,fr8,acc0,cc3,0
781
        test_accg_immed         0x00000011,accg0
782
        test_acc_immed  0x11111111,acc0
783
 
784
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
785
        set_fr_iimmed   0x2000,2,fr8
786
        cmcpxis         fr7,fr8,acc0,cc3,1
787
        test_accg_immed         0x00000011,accg0
788
        test_acc_immed  0x11111111,acc0
789
 
790
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
791
        set_fr_iimmed   0x7fff,0x7fff,fr8
792
        cmcpxis         fr7,fr8,acc0,cc3,0
793
        test_accg_immed         0x00000011,accg0
794
        test_acc_immed  0x11111111,acc0
795
 
796
        ; Mixed operands
797
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
798
        set_fr_iimmed   1,0xfffd,fr8
799
        cmcpxis         fr7,fr8,acc0,cc3,1
800
        test_accg_immed         0x00000011,accg0
801
        test_acc_immed  0x11111111,acc0
802
 
803
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
804
        set_fr_iimmed   0xfffe,1,fr8
805
        cmcpxis         fr7,fr8,acc0,cc3,0
806
        test_accg_immed         0x00000011,accg0
807
        test_acc_immed  0x11111111,acc0
808
 
809
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
810
        set_fr_iimmed   0xfffe,1,fr8
811
        cmcpxis         fr7,fr8,acc0,cc6,1
812
        test_accg_immed         0x00000011,accg0
813
        test_acc_immed  0x11111111,acc0
814
 
815
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
816
        set_fr_iimmed   0xfff9,0xfffe,fr8
817
        cmcpxis         fr7,fr8,acc0,cc6,0
818
        test_accg_immed         0x00000011,accg0
819
        test_acc_immed  0x11111111,acc0
820
 
821
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
822
        set_fr_iimmed   0x0003,0xfffe,fr8
823
        cmcpxis         fr7,fr8,acc0,cc6,1
824
        test_accg_immed         0x00000011,accg0
825
        test_acc_immed  0x11111111,acc0
826
 
827
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
828
        set_fr_iimmed   0x8000,0x8000,fr8
829
        cmcpxis         fr7,fr8,acc0,cc6,0
830
        test_accg_immed         0x00000011,accg0
831
        test_acc_immed  0x11111111,acc0
832
 
833
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
834
        set_fr_iimmed   0x8000,0x8000,fr8
835
        cmcpxis         fr7,fr8,acc0,cc6,1
836
        test_accg_immed         0x00000011,accg0
837
        test_acc_immed  0x11111111,acc0
838
 
839
        ; Negative operands
840
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
841
        set_fr_iimmed   0xfffb,0xfffd,fr8
842
        cmcpxis         fr7,fr8,acc0,cc6,0
843
        test_accg_immed         0x00000011,accg0
844
        test_acc_immed  0x11111111,acc0
845
 
846
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
847
        set_fr_iimmed   0xffff,0xfffe,fr8
848
        cmcpxis         fr7,fr8,acc0,cc6,1
849
        test_accg_immed         0x00000011,accg0
850
        test_acc_immed  0x11111111,acc0
851
 
852
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
853
        set_fr_iimmed   0x8001,0x7fff,fr8
854
        cmcpxis         fr7,fr8,acc0,cc6,0
855
        test_accg_immed         0x00000011,accg0
856
        test_acc_immed  0x11111111,acc0
857
 
858
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
859
        set_fr_iimmed   0x8000,0x8000,fr8
860
        cmcpxis         fr7,fr8,acc0,cc6,1
861
        test_accg_immed         0x00000011,accg0
862
        test_acc_immed  0x11111111,acc0
863
 
864
        ; Positive operands
865
        set_accg_immed  0x00000011,accg0
866
        set_acc_immed   0x11111111,acc0
867
        set_fr_iimmed   2,4,fr7         ; multiply small numbers
868
        set_fr_iimmed   5,3,fr8
869
        cmcpxis         fr7,fr8,acc0,cc3,0
870
        test_accg_immed         0x00000011,accg0
871
        test_acc_immed  0x11111111,acc0
872
 
873
        set_fr_iimmed   3,1,fr7         ; multiply by 0
874
        set_fr_iimmed   0,2,fr8
875
        cmcpxis         fr7,fr8,acc0,cc3,1
876
        test_accg_immed         0x00000011,accg0
877
        test_acc_immed  0x11111111,acc0
878
 
879
        set_fr_iimmed   2,1,fr7         ; multiply by 1
880
        set_fr_iimmed   1,1,fr8
881
        cmcpxis         fr7,fr8,acc0,cc3,0
882
        test_accg_immed         0x00000011,accg0
883
        test_acc_immed  0x11111111,acc0
884
 
885
        set_fr_iimmed   0x3fff,2,fr7    ; 15 bit result
886
        set_fr_iimmed   0x0007,2,fr8
887
        cmcpxis         fr7,fr8,acc0,cc3,1
888
        test_accg_immed         0x00000011,accg0
889
        test_acc_immed  0x11111111,acc0
890
 
891
        set_fr_iimmed   0x4000,2,fr7    ; 16 bit result
892
        set_fr_iimmed   0x2000,2,fr8
893
        cmcpxis         fr7,fr8,acc0,cc3,0
894
        test_accg_immed         0x00000011,accg0
895
        test_acc_immed  0x11111111,acc0
896
 
897
        set_fr_iimmed   0x7fff,0x0000,fr7       ; max positive result
898
        set_fr_iimmed   0x7fff,0x7fff,fr8
899
        cmcpxis         fr7,fr8,acc0,cc3,1
900
        test_accg_immed         0x00000011,accg0
901
        test_acc_immed  0x11111111,acc0
902
 
903
        ; Mixed operands
904
        set_fr_iimmed   2,0xfffd,fr7            ; multiply small numbers
905
        set_fr_iimmed   1,0xfffd,fr8
906
        cmcpxis         fr7,fr8,acc0,cc3,0
907
        test_accg_immed         0x00000011,accg0
908
        test_acc_immed  0x11111111,acc0
909
 
910
        set_fr_iimmed   0xfffe,2,fr7            ; multiply by 1
911
        set_fr_iimmed   0xfffe,1,fr8
912
        cmcpxis         fr7,fr8,acc0,cc3,1
913
        test_accg_immed         0x00000011,accg0
914
        test_acc_immed  0x11111111,acc0
915
 
916
        set_fr_iimmed   0xfffe,0,fr7            ; multiply by 0
917
        set_fr_iimmed   0xfffe,1,fr8
918
        cmcpxis         fr7,fr8,acc0,cc7,0
919
        test_accg_immed         0x00000011,accg0
920
        test_acc_immed  0x11111111,acc0
921
 
922
        set_fr_iimmed   0x2001,0xfffe,fr7       ; 15 bit result
923
        set_fr_iimmed   0xfff9,0xfffe,fr8
924
        cmcpxis         fr7,fr8,acc0,cc7,1
925
        test_accg_immed         0x00000011,accg0
926
        test_acc_immed  0x11111111,acc0
927
 
928
        set_fr_iimmed   0x4000,0xfffe,fr7       ; 16 bit result
929
        set_fr_iimmed   0x0003,0xfffe,fr8
930
        cmcpxis         fr7,fr8,acc0,cc7,0
931
        test_accg_immed         0x00000011,accg0
932
        test_acc_immed  0x11111111,acc0
933
 
934
        set_fr_iimmed   0x7fff,0x8000,fr7       ; max negative result
935
        set_fr_iimmed   0x8000,0x8000,fr8
936
        cmcpxis         fr7,fr8,acc0,cc7,1
937
        test_accg_immed         0x00000011,accg0
938
        test_acc_immed  0x11111111,acc0
939
 
940
        set_fr_iimmed   0x8000,0x7fff,fr7       ; max positive result
941
        set_fr_iimmed   0x8000,0x8000,fr8
942
        cmcpxis         fr7,fr8,acc0,cc7,0
943
        test_accg_immed         0x00000011,accg0
944
        test_acc_immed  0x11111111,acc0
945
 
946
        ; Negative operands
947
        set_fr_iimmed   0xfffe,0xfffc,fr7               ; multiply small numbers
948
        set_fr_iimmed   0xfffb,0xfffd,fr8
949
        cmcpxis         fr7,fr8,acc0,cc7,1
950
        test_accg_immed         0x00000011,accg0
951
        test_acc_immed  0x11111111,acc0
952
 
953
        set_fr_iimmed   0xffff,0xffff,fr7               ; multiply by -1
954
        set_fr_iimmed   0xffff,0xfffe,fr8
955
        cmcpxis         fr7,fr8,acc0,cc7,0
956
        test_accg_immed         0x00000011,accg0
957
        test_acc_immed  0x11111111,acc0
958
 
959
        set_fr_iimmed   0x7fff,0x0000,fr7       ; almost max positive result
960
        set_fr_iimmed   0x8001,0x7fff,fr8
961
        cmcpxis         fr7,fr8,acc0,cc7,0
962
        test_accg_immed         0x00000011,accg0
963
        test_acc_immed  0x11111111,acc0
964
 
965
        set_fr_iimmed   0x8000,0x0000,fr7       ; max positive result
966
        set_fr_iimmed   0x8000,0x8000,fr8
967
        cmcpxis         fr7,fr8,acc0,cc7,1
968
        test_accg_immed         0x00000011,accg0
969
        test_acc_immed  0x11111111,acc0
970
 
971
        pass

powered by: WebSVN 2.1.0

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