~ubuntu-branches/ubuntu/jaunty/spim/jaunty

« back to all changes in this revision

Viewing changes to Tests/tt.fpu.bare.s

  • Committer: Bazaar Package Importer
  • Author(s): Fernando Sanchez
  • Date: 2001-01-24 14:05:34 UTC
  • Revision ID: james.westby@ubuntu.com-20010124140534-3le9wmofforjjcd8
Tags: upstream-6.3
ImportĀ upstreamĀ versionĀ 6.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# SPIM S20 MIPS simulator.
 
2
# A torture test for the FPU instructions in the bare SPIM simulator.
 
3
# Copyright (C) 1990-2000 by James Larus, larus@cs.wisc.edu.
 
4
# ALL RIGHTS RESERVED.
 
5
#
 
6
# SPIM is distributed under the following conditions:
 
7
#
 
8
# You may make copies of SPIM for your own use and modify those copies.
 
9
#
 
10
# All copies of SPIM must retain my name and copyright notice.
 
11
#
 
12
# You may not sell SPIM or distributed SPIM in conjunction with a commerical
 
13
# product or service without the expressed written consent of James Larus.
 
14
#
 
15
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 
16
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 
17
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
18
# PURPOSE.
 
19
#
 
20
 
 
21
# $Header: /u/faculty/larus/Software/larus/SPIM/Tests/RCS/tt.fpu.bare.s,v 1.3 1994/01/18 03:23:44 larus Exp $
 
22
 
 
23
# Adapted by Anne Rogers <amr@blueline.Princeton.EDU> from tt.le.s.
 
24
# Run -bare -notrap.
 
25
 
 
26
 
 
27
# Test floating point instructions.  Warning: This code is not relocatable.  
 
28
# New data statements should be added after "Testing C.UN.S\n".
 
29
 
 
30
        .data
 
31
saved_ret_pc:   .word 0         # Holds PC to return from main
 
32
sm:      .asciiz "Failed  "   
 
33
pt:      .asciiz "Passed all tests\n"
 
34
 
 
35
        .text
 
36
# Standard startup code.  Invoke the routine main with no arguments.
 
37
        .globl __start
 
38
__start: jal main
 
39
        addu $0 $0 $0           # Nop
 
40
        addiu $2 $0 10
 
41
        syscall                 # syscall 10 (exit)
 
42
        addu $0 $0 $0           # Nop
 
43
        addu $0 $0 $0           # Nop
 
44
        addu $0 $0 $0           # Nop
 
45
        addu $0 $0 $0           # Nop
 
46
 
 
47
        .globl main
 
48
main:
 
49
        lui $4 0x1000
 
50
        sw $31 0($4)
 
51
 
 
52
 
 
53
        .data
 
54
abs.s_:.asciiz "Testing ABS.S\n"
 
55
fp_s100:.float 100.0
 
56
fp_sm100:.float -100.0
 
57
        .text
 
58
        addi $v0 $0 4   # syscall 4 (print_str)
 
59
#       la $a0 abs.s_
 
60
        lui $a0, 0x1000
 
61
        ori $a0 $a0 0x1f
 
62
        syscall
 
63
 
 
64
        lui $2 0x1000
 
65
        ori $2 $2 0x30
 
66
        lwc1 $f0 0($2)
 
67
        addu $0 $0 $0
 
68
        lw $4 0($2)
 
69
        addu $0 $0 $0
 
70
        mfc1 $5 $f0
 
71
        addu $0 $0 $0
 
72
        bne $5 $4 fail
 
73
        addu $0 $0 $0
 
74
        abs.s $f2 $f0
 
75
        mfc1 $5 $f2
 
76
        addu $0 $0 $0              #Nop
 
77
        bne $4 $5 fail
 
78
 
 
79
        lwc1 $f0 4($2)
 
80
        abs.s $f2 $f0
 
81
        mfc1 $5 $f2
 
82
        addu $0 $0 $0              #Nop
 
83
        bne $4 $5 fail
 
84
        addu $0 $0 $0              #Nop
 
85
 
 
86
        .data
 
87
abs.d_:.asciiz "Testing ABS.D\n"
 
88
fp_d100:.double 100.0
 
89
fp_dm100:.double -100.0
 
90
        .text
 
91
        addi $v0 $0 4   # syscall 4 (print_str)
 
92
#       la $a0 abs.d_
 
93
        lui $a0, 0x1000
 
94
        ori $a0 $a0 0x38
 
95
        syscall 
 
96
 
 
97
#       la $2 fp_d100
 
98
        lui $2, 0x1000
 
99
        ori $2 $2 0x48
 
100
        lw $4 0($2)
 
101
        lw $5 4($2)
 
102
        lwc1 $f0 0($2)
 
103
        lwc1 $f1 4($2)
 
104
        addu $0 $0 $0              #Nop
 
105
        abs.d $f2 $f0
 
106
        mfc1 $6 $f2
 
107
        mfc1 $7 $f3
 
108
        addu $0 $0 $0              #Nop
 
109
        bne $4 $6 fail
 
110
        addu $0 $0 $0              #Nop
 
111
        bne $5 $7 fail
 
112
 
 
113
        lwc1 $f0 8($2)
 
114
        lwc1 $f1 12($2)
 
115
        addu $0 $0 $0              #Nop
 
116
        abs.d $f2 $f0
 
117
        mfc1 $6 $f2
 
118
        mfc1 $7 $f3
 
119
        addu $0 $0 $0              #Nop
 
120
        bne $4 $6 fail
 
121
        addu $0 $0 $0              #Nop
 
122
        bne $5 $7 fail
 
123
 
 
124
 
 
125
        .data
 
126
add.s_: .asciiz "Testing ADD.S\n"
 
127
fp_s0:  .float 0.0
 
128
fp_s1:  .float 1.0
 
129
fp_sm1: .float -1.0
 
130
        .text
 
131
        addi $v0 $0 4   # syscall 4 (print_str)
 
132
#       la $a0 add.s_
 
133
        lui $a0 0x1000
 
134
        ori $a0 $a0 0x58
 
135
        syscall
 
136
 
 
137
        lui $2, 0x1000
 
138
        ori $2 $2 0x68
 
139
        lw $4 0($2)
 
140
        lwc1 $f0 0($2)
 
141
        addu $0 $0 $0                  # Nop
 
142
        add.s $f2 $f0 $f0
 
143
        mfc1 $6 $f2
 
144
        addu $0 $0 $0                  # Nop
 
145
        bne $4 $6 fail
 
146
        addu $0 $0 $0                  # Nop
 
147
 
 
148
        lw $4 4($2)
 
149
        lwc1 $f0 0($2)
 
150
        lwc1 $f2 4($2)
 
151
        addu $0 $0 $0                  # Nop
 
152
        add.s $f4 $f0 $f2
 
153
        mfc1 $6 $f4
 
154
        addu $0 $0 $0                  # Nop
 
155
        bne $4 $6 fail
 
156
 
 
157
        lw $4 0($2)
 
158
        lwc1 $f0 4($2)
 
159
        lwc1 $f2 8($2)
 
160
        addu $0 $0 $0                  # Nop
 
161
        add.s $f4 $f0 $f2
 
162
        mfc1 $6 $f4
 
163
        addu $0 $0 $0                  # Nop
 
164
        bne $4 $6 fail
 
165
 
 
166
        .data
 
167
add.d_: .asciiz "Testing ADD.D\n"
 
168
fp_d0:  .double 0.0
 
169
fp_d1:  .double 1.0
 
170
fp_dm1: .double -1.0
 
171
        .text
 
172
        addi $v0 $0 4   # syscall 4 (print_str)
 
173
#       la $a0 add.d_
 
174
        lui $a0 0x1000
 
175
        ori $a0 $a0 0x74
 
176
        syscall
 
177
 
 
178
        lui $1 0x1000
 
179
        ori $1 $1 0x88
 
180
        lw $4 0($1)
 
181
        lw $5 4($1)
 
182
        lwc1 $f0 0($1)
 
183
        lwc1 $f1 4($1)
 
184
        addu $0 $0 $0              # Nop
 
185
        add.d $f2 $f0 $f0
 
186
        mfc1 $6 $f2
 
187
        mfc1 $7 $f3
 
188
        addu $0 $0 $0              # Nop
 
189
        bne $4 $6 fail
 
190
        addu $0 $0 $0              # Nop
 
191
        bne $5 $7 fail
 
192
 
 
193
        lw $4 8($1)
 
194
        lw $5 12($1)
 
195
        lwc1 $f0 0($1)
 
196
        lwc1 $f1 4($1)
 
197
        lwc1 $f2 8($1)
 
198
        lwc1 $f3 12($1)
 
199
        addu $0 $0 $0              # Nop
 
200
        add.d $f4 $f0 $f2
 
201
        mfc1 $6 $f4
 
202
        mfc1 $7 $f5
 
203
        addu $0 $0 $0              # Nop
 
204
        bne $4 $6 fail
 
205
        addu $0 $0 $0              # Nop
 
206
        bne $5 $7 fail
 
207
 
 
208
        lw $4 0($1)
 
209
        lw $5 4($1)
 
210
        lwc1 $f0 8($1)
 
211
        lwc1 $f1 12($1)
 
212
        lwc1 $f2 16($1)
 
213
        lwc1 $f3 20($1)
 
214
        addu $0 $0 $0              # Nop
 
215
        add.d $f4 $f0 $f2
 
216
        mfc1 $6 $f4
 
217
        mfc1 $7 $f5
 
218
        addu $0 $0 $0              # Nop
 
219
        bne $4 $6 fail
 
220
        addu $0 $0 $0              # Nop
 
221
        bne $5 $7 fail
 
222
        addu $0 $0 $0              # Nop
 
223
 
 
224
        .data
 
225
cvt.d.s_:       .asciiz "Testing CVT.D.S\n"
 
226
        .text
 
227
        addi $v0 $0 4   # syscall 4 (print_str)
 
228
#       la $a0 cvt.d.s_
 
229
        lui $a0 0x1000
 
230
        ori $a0 $a0 0xa0
 
231
        syscall
 
232
 
 
233
        
 
234
        lui $1 0x1000
 
235
        ori $1 $1 0x88
 
236
        lw $4 0($1)                                #fp_d0
 
237
        lw $5 4($1)                                #fp_d0+4
 
238
        lui $2, 0x1000
 
239
        ori $2 $2 0x68
 
240
        lwc1 $f0 0($2)                             #fp_s0
 
241
        addu $0 $0 $0                              # Nop
 
242
        cvt.d.s $f2 $f0
 
243
        mfc1 $6 $f2
 
244
        mfc1 $7 $f3
 
245
        addu $0 $0 $0                              # Nop
 
246
        bne $4 $6 fail
 
247
        addu $0 $0 $0                              # Nop
 
248
        bne $5 $7 fail
 
249
        addu $0 $0 $0                              # Nop
 
250
 
 
251
        lw $4 8($1)                                # fp_d1
 
252
        lw $5 12($1)                               # fp_d1+4
 
253
        lwc1 $f0 4($2)                             # fp_s1
 
254
        addu $0 $0 $0                              # Nop
 
255
        cvt.d.s $f2 $f0
 
256
        mfc1 $6 $f2
 
257
        mfc1 $7 $f3
 
258
        addu $0 $0 $0                              # Nop
 
259
        bne $4 $6 fail
 
260
        addu $0 $0 $0                              # Nop
 
261
        bne $5 $7 fail
 
262
        addu $0 $0 $0                              # Nop
 
263
 
 
264
        lw $4 16($1)                               # fp_dm1
 
265
        lw $5 20($1)                               # fp_dm1+4
 
266
        lwc1 $f0 8($2)                             # fp_sm1
 
267
        addu $0 $0 $0                              # Nop
 
268
        cvt.d.s $f2 $f0
 
269
        mfc1 $6 $f2
 
270
        mfc1 $7 $f3
 
271
        addu $0 $0 $0                              # Nop
 
272
        bne $4 $6 fail
 
273
        addu $0 $0 $0                              # Nop
 
274
        bne $5 $7 fail
 
275
        addu $0 $0 $0                              # Nop
 
276
 
 
277
        .data
 
278
cvt.d.w_:       .asciiz "Testing CVT.D.W\n"
 
279
        .text
 
280
        addi $v0 $0 4                # syscall 4 (print_str)
 
281
#       la $a0 cvt.d.w_
 
282
        lui $a0 0x1000
 
283
        ori $a0 $a0 0xb1
 
284
        syscall
 
285
 
 
286
        lui $1 0x1000
 
287
        ori $1 $1 0x88
 
288
        lw $4 0($1)                       # fp_d0
 
289
        lw $5 4($1)                       # fp_d0+4
 
290
        mtc1 $0 $0
 
291
        addu $0 $0 $0                     # Nop
 
292
        cvt.d.w $f2 $f0
 
293
        mfc1 $6 $f2
 
294
        mfc1 $7 $f3
 
295
        addu $0 $0 $0                     # Nop
 
296
        bne $4 $6 fail
 
297
        addu $0 $0 $0                     # Nop
 
298
        bne $5 $7 fail
 
299
        addu $0 $0 $0                     # Nop
 
300
 
 
301
        lw $4 8($1)                       # fp_d1
 
302
        lw $5 12 ($1)                     # fp_d1+4
 
303
        addi $9 $0 1
 
304
        mtc1 $9 $0
 
305
        addu $0 $0 $0                     # Nop
 
306
        cvt.d.w $f2 $f0
 
307
        mfc1 $6 $f2
 
308
        mfc1 $7 $f3
 
309
        addu $0 $0 $0                     # Nop
 
310
        bne $4 $6 fail
 
311
        addu $0 $0 $0                     # Nop
 
312
        bne $5 $7 fail
 
313
        addu $0 $0 $0                     # Nop
 
314
 
 
315
        lw $4 16($1)                      # fp_dm1
 
316
        lw $5 20($1)                      # fp_dm1+4
 
317
        addi $9 $0 -1
 
318
        mtc1 $9 $0
 
319
        addu $0 $0 $0                     # Nop
 
320
        cvt.d.w $f2 $f0
 
321
        mfc1 $6 $f2
 
322
        mfc1 $7 $f3
 
323
        bne $4 $6 fail
 
324
        addu $0 $0 $0                     # Nop
 
325
        bne $5 $7 fail
 
326
        addu $0 $0 $0                     # Nop
 
327
 
 
328
        .data
 
329
cvt.s.d_:       .asciiz "Testing CVT.S.D\n"
 
330
        .text
 
331
        addi $v0 $0 4   # syscall 4 (print_str)
 
332
#       la $a0 cvt.s.d_
 
333
        lui $a0 0x1000
 
334
        ori $a0 $a0 0xc2
 
335
        syscall
 
336
 
 
337
        lui $1 0x1000
 
338
        ori $1 $1 0x68
 
339
        lw $4 0($1)                           # fp_s0
 
340
        lui $2 0x1000
 
341
        ori $2 $2 0x88
 
342
        lwc1 $f0 0($2)                        # fp_d0
 
343
        lwc1 $f1 4($2)                        # fp_d0+4
 
344
        addu $0 $0 $0              #Nop
 
345
        cvt.s.d $f2 $f0
 
346
        mfc1 $6 $f2
 
347
        addu $0 $0 $0          
 
348
        bne $4 $6 fail
 
349
        addu $0 $0 $0          
 
350
 
 
351
        lw $4 4($1)                           # fp_s1
 
352
        lwc1 $f0 8($2)                        # fp_d1
 
353
        lwc1 $f1 12($2)                       # fp_d1+4
 
354
        addu $0 $0 $0              #Nop
 
355
        cvt.s.d $f2 $f0
 
356
        addu $0 $0 $0          
 
357
        mfc1 $6 $f2
 
358
        addu $0 $0 $0          
 
359
        bne $4 $6 fail
 
360
        addu $0 $0 $0          
 
361
 
 
362
        lw $4 8($1)                           # fp_sm1
 
363
        lwc1 $f0 16($2)                       # fp_dm1
 
364
        lwc1 $f1 20 ($2)                      # fp_dm1+4
 
365
        addu $0 $0 $0              #Nop
 
366
        cvt.s.d $f2 $f0
 
367
        mfc1 $6 $f2
 
368
        addu $0 $0 $0
 
369
        bne $4 $6 fail
 
370
        addu $0 $0 $0
 
371
 
 
372
 
 
373
        .data
 
374
cvt.s.w_:       .asciiz "Testing CVT.S.W\n"
 
375
        .text
 
376
        addi $v0 $0 4   # syscall 4 (print_str)
 
377
#       la $a0 cvt.s.w_
 
378
        lui $a0 0x1000
 
379
        ori $a0 $a0 0xd3
 
380
        syscall
 
381
 
 
382
        lui $1 0x1000
 
383
        ori $1 $1 0x68
 
384
        lw $4 0($1)                        # fp_s0
 
385
        mtc1 $0 $0
 
386
        cvt.s.w $f2 $f0
 
387
        mfc1 $6 $f2
 
388
        addu $0 $0 $0
 
389
        bne $4 $6 fail
 
390
        addu $0 $0 $0
 
391
 
 
392
        lw $4 4($1)                        # fp_s1
 
393
        addi $9 $0 1
 
394
        mtc1 $9 $0
 
395
        cvt.s.w $f2 $f0
 
396
        mfc1 $6 $f2
 
397
        addu $0 $0 $0
 
398
        bne $4 $6 fail
 
399
        addu $0 $0 $0
 
400
 
 
401
        lw $4 8($1)                         # fp_sm1
 
402
        addi $9 $0 -1
 
403
        mtc1 $9 $0
 
404
        cvt.s.w $f2 $f0
 
405
        mfc1 $6 $f2
 
406
        addu $0 $0 $0
 
407
        bne $4 $6 fail
 
408
        addu $0 $0 $0
 
409
 
 
410
 
 
411
        .data
 
412
cvt.w.d_:       .asciiz "Testing CVT.W.D\n"
 
413
        .text
 
414
        addi $v0 $0 4   # syscall 4 (print_str)
 
415
#       la $a0 cvt.w.d_
 
416
        lui $a0 0x1000
 
417
        ori $a0 $a0 0xe4
 
418
        syscall
 
419
 
 
420
        lui $1 0x1000
 
421
        ori $1 $1 0x88
 
422
        lwc1 $f0 0($1)                            # fp_d0
 
423
        lwc1 $f1 4($1)                            # fp_d0+4
 
424
        addu $0 $0 $0                             # Nop
 
425
        cvt.w.d $f2 $f0
 
426
        mfc1 $6 $f2
 
427
        addu $0 $0 $0                             # Nop
 
428
        bne $0 $6 fail
 
429
        addu $0 $0 $0                             # Nop
 
430
 
 
431
        lwc1 $f0 8($1)                            # fp_d1
 
432
        lwc1 $f1 12($1)                           # fp_d1+4
 
433
        addu $0 $0 $0                             # Nop
 
434
        cvt.w.d $f2 $f0
 
435
        mfc1 $6 $f2
 
436
        addi $4 $0 1
 
437
        addu $0 $0 $0                             # Nop
 
438
        bne $4 $6 fail
 
439
        addu $0 $0 $0                             # Nop
 
440
 
 
441
        lwc1 $f0 16($1)                           # fp_dm1
 
442
        lwc1 $f1 20($1)                           # fp_dm1+4
 
443
        addu $0 $0 $0              #Nop
 
444
        cvt.w.d $f2 $f0
 
445
        mfc1 $6 $f2
 
446
        addi $4 $0 -1
 
447
        bne $4 $6 fail
 
448
        addu $0 $0 $0                             # Nop
 
449
 
 
450
 
 
451
        .data
 
452
cvt.w.s_:       .asciiz "Testing CVT.W.S\n"
 
453
        .text
 
454
#       addi $v0 $0 4   # syscall 4 (print_str)
 
455
#       la $a0 cvt.w.s_
 
456
        lui $a0 0x1000
 
457
        ori $a0 $a0 0xf5
 
458
        syscall
 
459
 
 
460
        lui $1 0x1000
 
461
        ori $1 $1 0x68
 
462
        lwc1 $f0 0($1)                             # fp_s0
 
463
        addu $0 $0 $0              #Nop
 
464
        cvt.w.s $f2 $f0
 
465
        mfc1 $6 $f2
 
466
        addu $0 $0 $0                              # Nop
 
467
        bne $0 $6 fail
 
468
        addu $0 $0 $0                              # Nop
 
469
 
 
470
        lwc1 $f0 4($1)                             # fp_s1
 
471
        addu $0 $0 $0              #Nop
 
472
        cvt.w.s $f2 $f0
 
473
        mfc1 $6 $f2
 
474
        addi $4 $0 1
 
475
        bne $4 $6 fail
 
476
        addu $0 $0 $0                              # Nop
 
477
 
 
478
        lwc1 $f0 8($1)                             # fp_sm1
 
479
        addu $0 $0 $0              #Nop
 
480
        cvt.w.s $f2 $f0
 
481
        mfc1 $6 $f2
 
482
        addi $4 $0 -1
 
483
        bne $4 $6 fail
 
484
        addu $0 $0 $0                              # Nop
 
485
 
 
486
 
 
487
        .data
 
488
div.s_: .asciiz "Testing DIV.S\n"
 
489
fp_s2:  .float 2.0
 
490
fp_s3:  .float 3.0
 
491
fp_s1p5:.float 1.5
 
492
        .text
 
493
        addi $v0 $0 4   # syscall 4 (print_str)
 
494
#       la $a0 div.s_
 
495
        lui $a0 0x1000
 
496
        ori $a0 $a0 0x106
 
497
        syscall
 
498
 
 
499
        lui $1 0x1000
 
500
        ori $1 $1 0x68
 
501
        lw $4 4($1)                              # fp_s1
 
502
        lwc1 $f0 4($1)                           # fp_s1
 
503
        addu $0 $0 $0              #Nop
 
504
        div.s $f2 $f0 $f0
 
505
        mfc1 $6 $f2
 
506
        addu $0 $0 $0                            # Nop
 
507
        bne $4 $6 fail
 
508
        addu $0 $0 $0                            # Nop
 
509
 
 
510
        lui $2 0x1000
 
511
        ori $2 $2 0x118
 
512
        lw $4 8($2)                                    # fp_s1p5
 
513
        lwc1 $f0 4($2)                                 # fp_s3
 
514
        lwc1 $f2 0($2)                                 # fp_s2
 
515
        addu $0 $0 $0              #Nop
 
516
        div.s $f4 $f0 $f2
 
517
        mfc1 $6 $f4
 
518
        addu $0 $0 $0                            # Nop
 
519
        bne $4 $6 fail
 
520
        addu $0 $0 $0                            # Nop
 
521
 
 
522
 
 
523
        .data
 
524
div.d_: .asciiz "Testing DIV.D\n"
 
525
# EOS = 132...align to 138
 
526
fp_d2:  .double 2.0
 
527
fp_d3:  .double 3.0
 
528
fp_d1p5:.double 1.5
 
529
        .text
 
530
        addi $v0 $0 4   # syscall 4 (print_str)
 
531
#       la $a0 div.d_
 
532
        lui $a0 0x1000
 
533
        ori $a0 $a0 0x124
 
534
        syscall
 
535
 
 
536
        lui $1 0x1000
 
537
        ori $1 $1 0x90
 
538
        lw $4 0($1)                             # fp_d1
 
539
        lw $5 4($1)                             # fp_d1+4
 
540
        lwc1 $f0 0($1)                          # fp_d1
 
541
        lwc1 $f1 4($1)                          # fp_d1+4
 
542
        addu $0 $0 $0              #Nop
 
543
        div.d $f2 $f0 $f0
 
544
        mfc1 $6 $f2
 
545
        mfc1 $7 $f3
 
546
        addu $0 $0 $0                            # Nop
 
547
        bne $4 $6 fail
 
548
        addu $0 $0 $0                            # Nop
 
549
        bne $5 $7 fail
 
550
        addu $0 $0 $0                            # Nop
 
551
 
 
552
 
 
553
        lui $2 0x1000
 
554
        ori $2 $2 0x138                          # Nop
 
555
        lw $4 16($2)                              # fp_d1p5         
 
556
        lw $5 20($2)                              # fp_d1p5+4
 
557
        lwc1 $f0 8($2)                          # fp_d3
 
558
        lwc1 $f1 12($2)                          # fp_d3+4
 
559
        lwc1 $f2 0($2)                           # fp_d2
 
560
        lwc1 $f3 4($2)                          # fp_d2+4
 
561
        addu $0 $0 $0                            # Nop
 
562
        div.d $f4 $f0 $f2
 
563
        mfc1 $6 $f4
 
564
        mfc1 $7 $f5
 
565
        bne $4 $6 fail
 
566
        addu $0 $0 $0                            # Nop
 
567
        bne $5 $7 fail
 
568
        addu $0 $0 $0                            # Nop
 
569
 
 
570
        .data
 
571
mov.s_: .asciiz "Testing MOV.S\n"
 
572
        .text
 
573
        addi $v0 $0 4   # syscall 4 (print_str)
 
574
#       la $a0 mov.s_
 
575
        lui $a0 0x1000
 
576
        ori $a0 $a0 0x150
 
577
        syscall
 
578
 
 
579
 
 
580
        lui $1 0x1000
 
581
        ori $1 $1 0x68
 
582
        lw $4 4($1)                        # fp_s1
 
583
        lwc1 $f2 4($1)                     # fp_s1
 
584
        addu $0 $0 $0                      # Nop
 
585
        mov.s $f4 $f2
 
586
        mov.s $f6 $f4
 
587
        mfc1 $6 $f6
 
588
        addu $0 $0 $0                      # Nop
 
589
        bne $4 $6 fail
 
590
        addu $0 $0 $0                      # Nop
 
591
 
 
592
        .data
 
593
mov.d_: .asciiz "Testing MOV.D\n"
 
594
        .text
 
595
        addi $v0 $0 4   # syscall 4 (print_str)
 
596
#       la $a0 mov.d_
 
597
        lui $a0 0x1000
 
598
        ori $a0 $a0 0x15f
 
599
        syscall
 
600
 
 
601
        lui $1 0x1000
 
602
        ori $1 $1 0x88
 
603
        lw $4 8($1)                     # fp_d1
 
604
        lw $5 12($1)                    # fp_d1+4
 
605
        lwc1 $f2 8($1)                  # fp_d1
 
606
        lwc1 $f3 12($1)                 # fp_d1+4
 
607
        addu $0 $0 $0                      # Nop
 
608
        mov.d $f4 $f2
 
609
        mov.d $f6 $f4
 
610
        mfc1 $6 $f6
 
611
        mfc1 $7 $f7
 
612
        bne $4 $6 fail
 
613
        addu $0 $0 $0                      # Nop
 
614
        bne $5 $7 fail
 
615
        addu $0 $0 $0                      # Nop
 
616
 
 
617
 
 
618
        .data
 
619
mul.s_: .asciiz "Testing MUL.S\n"
 
620
        .text
 
621
        addi $v0 $0 4   # syscall 4 (print_str)
 
622
#       la $a0 mul.s_
 
623
        lui $a0 0x1000
 
624
        ori $a0 $a0 0x16e
 
625
 
 
626
        syscall
 
627
 
 
628
        lui $1 0x1000
 
629
        ori $1 $1 0x68
 
630
        lw $4 4($1)                        # fp_s1
 
631
        lwc1 $f0 4($1)                     # fp_s1
 
632
        addu $0 $0 $0              #Nop
 
633
        mul.s $f2 $f0 $f0
 
634
        mfc1 $6 $f2
 
635
        addu $0 $0 $0                      # Nop
 
636
        bne $4 $6 fail
 
637
        addu $0 $0 $0                      # Nop
 
638
 
 
639
        lui $2 0x1000
 
640
        ori $2 $2 0x118
 
641
        lw $4 4($2)                        # fp_s3
 
642
        lwc1 $f0 8($2)                     # fp_s1p5
 
643
        lwc1 $f2 0($2)                     # fp_s2
 
644
        addu $0 $0 $0              #Nop
 
645
        mul.s $f4 $f0 $f2
 
646
        mfc1 $6 $f4
 
647
        addu $0 $0 $0                      # Nop
 
648
        bne $4 $6 fail
 
649
        addu $0 $0 $0                      # Nop
 
650
 
 
651
        .data
 
652
mul.d_: .asciiz "Testing MUL.D\n"
 
653
        .text
 
654
        addi $v0 $0 4   # syscall 4 (print_str)
 
655
#       la $a0 mul.d_
 
656
        lui $a0 0x1000
 
657
        ori $a0 $a0 0x17d
 
658
        syscall
 
659
 
 
660
        lui $1 0x1000
 
661
        ori $1 $1 0x88
 
662
        lw $4 0($1)                              # fp_d1
 
663
        lw $5 4($1)                              # fp_d1+4
 
664
        lwc1 $f0 0($1)                           # fp_d1
 
665
        lwc1 $f1 4($1)                           # fp_d1+4
 
666
        addu $0 $0 $0              #Nop
 
667
        mul.d $f2 $f0 $f0
 
668
        mfc1 $6 $f2
 
669
        mfc1 $7 $f3
 
670
        bne $4 $6 fail
 
671
        addu $0 $0 $0                      # Nop
 
672
        bne $5 $7 fail
 
673
        addu $0 $0 $0                      # Nop
 
674
 
 
675
        lui $2 0x1000
 
676
        ori $2 $2 0x138                          # Nop
 
677
        lw $4 8($2)                              # fp_d3
 
678
        lw $5 12($2)                             # fp_d3+4
 
679
        lwc1 $f0 16($2)                          # fp_d1p5
 
680
        lwc1 $f1 20($2)                          # fp_d1p5+4
 
681
        lwc1 $f2 0($2)                           # fp_d2
 
682
        lwc1 $f3 4($2)                           # fp_d2+4
 
683
        addu $0 $0 $0              #Nop
 
684
        mul.d $f4 $f0 $f2
 
685
        mfc1 $6 $f4
 
686
        mfc1 $7 $f5
 
687
        bne $4 $6 fail
 
688
        addu $0 $0 $0                      # Nop
 
689
        bne $5 $7 fail
 
690
        addu $0 $0 $0                      # Nop
 
691
 
 
692
 
 
693
        .data
 
694
neg.s_: .asciiz "Testing NEG.S\n"
 
695
# 0x19b..0x19c
 
696
fp_sm3: .float -3.0
 
697
        .text
 
698
        addi  $v0 $0 4  # syscall 4 (print_str)
 
699
#       la $a0 neg.s_
 
700
        lui $a0 0x1000
 
701
        ori $a0 $a0 0x18c
 
702
        syscall
 
703
 
 
704
        lui $1 0x1000
 
705
        ori $1 $1 0x68
 
706
        lw $4 8($1)                             # fp_sm1
 
707
        lwc1 $f0 4($1)                          # fp_s1
 
708
        addu $0 $0 $0              #Nop
 
709
        neg.s $f2 $f0
 
710
        mfc1 $6 $f2
 
711
        addu $0 $0 $0                           # Nop
 
712
        bne $4 $6 fail
 
713
        addu $0 $0 $0                           # Nop
 
714
 
 
715
        lui $2 0x1000
 
716
        ori $2 $2 0x118
 
717
        lw $4 4($2)                             # fp_s3
 
718
        lui $1 0x1000
 
719
        ori $1 $1 0x19c
 
720
        lwc1 $f0 0($1)                          # fp_sm3
 
721
        addu $0 $0 $0              #Nop
 
722
        neg.s $f2 $f0
 
723
        mfc1 $6 $f2
 
724
        addu $0 $0 $0                           # Nop
 
725
        bne $4 $6 fail
 
726
        addu $0 $0 $0                           # Nop
 
727
 
 
728
        .data
 
729
neg.d_: .asciiz "Testing NEG.D\n"
 
730
fp_dm3: .double -3.0
 
731
        .text
 
732
        addi $v0 $0 4   # syscall 4 (print_str)
 
733
#       la $a0 neg.d_
 
734
        lui $a0 0x1000
 
735
        ori $a0 $a0 0x1a0
 
736
        syscall
 
737
 
 
738
        lui $1 0x1000
 
739
        ori $1 $1 0x88
 
740
        lw $4 16($1)                           # fp_dm1
 
741
        lw $5 20($1)                           # fp_dm1+4
 
742
        lwc1 $f0 8($1)                         # fp_d1
 
743
        lwc1 $f1 12($1)                        # fp_d1+4
 
744
        addu $0 $0 $0              #Nop
 
745
        neg.d $f2 $f0
 
746
        mfc1 $6 $f2
 
747
        mfc1 $7 $f3
 
748
        bne $4 $6 fail
 
749
        addu $0 $0 $0                          # Nop
 
750
        bne $5 $7 fail
 
751
        addu $0 $0 $0                          # Nop
 
752
 
 
753
        lui $2 0x1000
 
754
        ori $2 $2 0x138                        # Nop
 
755
        lw $4 8($2)                            # fp_d3
 
756
        lw $5 12($2)                           # fp_d3+4
 
757
        lui $1 0x1000
 
758
        ori $1 $1 0x1b0
 
759
        lwc1 $f0 0($1)                         # fp_dm3
 
760
        lwc1 $f1 4($1)                         # fp_dm3+4
 
761
        addu $0 $0 $0              #Nop
 
762
        neg.d $f4 $f0
 
763
        mfc1 $6 $f4
 
764
        mfc1 $7 $f5
 
765
        bne $4 $6 fail
 
766
        addu $0 $0 $0                           # Nop
 
767
        bne $5 $7 fail
 
768
        addu $0 $0 $0                           # Nop
 
769
 
 
770
 
 
771
        .data
 
772
sub.s_: .asciiz "Testing SUB.S\n"
 
773
        .text
 
774
        addi $v0 $0 4   # syscall 4 (print_str)
 
775
#       la $a0 sub.s_
 
776
        lui $a0 0x1000
 
777
        ori $a0 $a0 0x1b8
 
778
        syscall
 
779
 
 
780
        lui $1 0x1000
 
781
        ori $1 $1 0x68
 
782
        lw $4 0($1)                            # fp_s0
 
783
        lwc1 $f0 0($1)                         # fp_s0
 
784
        addu $0 $0 $0              #Nop
 
785
        sub.s $f2 $f0 $f0
 
786
        mfc1 $6 $f2
 
787
        bne $4 $6 fail
 
788
 
 
789
        lw $4 8($1)                            # fp_sm1
 
790
        lw $5 4($1)                            # fp_s1
 
791
        lwc1 $f0 0($1)                         # fp_s0
 
792
        lwc1 $f2 4($1)                         # fp_s1
 
793
        addu $0 $0 $0              #Nop
 
794
        sub.s $f4 $f0 $f2
 
795
        mfc1 $6 $f4
 
796
        addu $0 $0 $0                          # Nop
 
797
        bne $4 $6 fail
 
798
        sub.s $f4 $f2 $f0
 
799
        mfc1 $6 $f4
 
800
        addu $0 $0 $0                          # Nop
 
801
        bne $5 $6 fail
 
802
        addu $0 $0 $0                          # Nop
 
803
 
 
804
        lui $2 0x1000
 
805
        ori $2 $2 0x118
 
806
        lw $4 8($2)                            # fp_s1p5
 
807
        lwc1 $f0 8($2)                         # fp_s1p5
 
808
        lwc1 $f2 4($2)                         # fp_s3
 
809
        addu $0 $0 $0              #Nop
 
810
        sub.s $f4 $f2 $f0
 
811
        mfc1 $6 $f4
 
812
        addu $0 $0 $0                          # Nop
 
813
        bne $4 $6 fail
 
814
        addu $0 $0 $0                          # Nop
 
815
 
 
816
        .data
 
817
sub.d_: .asciiz "Testing SUB.D\n"
 
818
        .text
 
819
        addi $v0 $0 4   # syscall 4 (print_str)
 
820
#       la $a0 sub.d_
 
821
        lui $a0 0x1000
 
822
        ori $a0 $a0 0x1c7
 
823
        syscall
 
824
 
 
825
        lui $1 0x1000
 
826
        ori $1 $1 0x88
 
827
        lw $4 0($1)                            # fp_d0
 
828
        lw $5 4($1)                            # fp_d0+4
 
829
        lwc1 $f0 0($1)                         # fp_d0
 
830
        lwc1 $f1 4($1)                         # fp_d0+4
 
831
        addu $0 $0 $0              #Nop
 
832
        sub.d $f2 $f0 $f0
 
833
        mfc1 $6 $f2
 
834
        mfc1 $7 $f3
 
835
        bne $4 $6 fail
 
836
        addu $0 $0 $0                          # Nop
 
837
        bne $5 $7 fail
 
838
        addu $0 $0 $0                          # Nop
 
839
 
 
840
        lw $4 16($1)                           # fp_dm1
 
841
        lw $5 20($1)                           # fp_dm1+4
 
842
        lwc1 $f0 0($1)                         # fp_d0
 
843
        lwc1 $f1 4($1)                         # fp_d0+4
 
844
        lwc1 $f2 8($1)                         # fp_d1
 
845
        lwc1 $f3 12($1)                        # fp_d1+4
 
846
        addu $0 $0 $0              #Nop
 
847
        sub.d $f4 $f0 $f2
 
848
        mfc1 $6 $f4
 
849
        mfc1 $7 $f5
 
850
        bne $4 $6 fail
 
851
        addu $0 $0 $0                          # Nop
 
852
        bne $5 $7 fail
 
853
        addu $0 $0 $0                          # Nop
 
854
        lw $4 8($1)                            # fp_d1
 
855
        lw $5 12($1)                           # fp_d1+4
 
856
        sub.d $f4 $f2 $f0
 
857
        mfc1 $6 $f4
 
858
        mfc1 $7 $f5
 
859
        bne $4 $6 fail
 
860
        addu $0 $0 $0                          # Nop
 
861
        bne $5 $7 fail
 
862
        addu $0 $0 $0                          # Nop
 
863
 
 
864
        lui $2 0x1000
 
865
        ori $2 $2 0x138                        # Nop
 
866
        lw $4 16($2)                           # fp_d1p5
 
867
        lw $5 20($2)                           # fp_d1p5+4
 
868
        lwc1 $f0 16($2)                        # fp_d1p5
 
869
        lwc1 $f1 20($2)                        # fp_d1p5+4
 
870
        lwc1 $f2 8($2)                         # fp_d3
 
871
        lwc1 $f3 12($2)                        # fp_d3+4
 
872
        addu $0 $0 $0              #Nop
 
873
        sub.d $f4 $f2 $f0
 
874
        mfc1 $6 $f4
 
875
        mfc1 $7 $f5
 
876
        bne $4 $6 fail
 
877
        addu $0 $0 $0                          # Nop
 
878
        bne $5 $7 fail
 
879
        addu $0 $0 $0                          # Nop
 
880
 
 
881
 
 
882
        .data
 
883
c.eq.d_:        .asciiz "Testing C.EQ.D\n"
 
884
        .text
 
885
        addi $v0 $0 4   # syscall 4 (print_str)
 
886
#       la $a0 c.eq.d_
 
887
        lui $a0 0x1000
 
888
        ori $a0 $a0 0x1d6
 
889
        syscall
 
890
 
 
891
        lui $1 0x1000
 
892
        ori $1 $1 0x88
 
893
        lwc1 $f0 8($1)                        # fp_d1
 
894
        lwc1 $f1 12($1)                       # fp_d1+4
 
895
        lwc1 $f2 8($1)                        # fp_d1
 
896
        lwc1 $f3 12($1)                       # fp_d1+4
 
897
        lui $2 0x1000
 
898
        ori $2 $2 0x138                       
 
899
        lwc1 $f4 16($2)                       # fp_d1p5
 
900
        lwc1 $f5 20($2)                       # fp_d1p5+4
 
901
        addu $0 $0 $0                         # Nop     
 
902
        c.eq.d $f0 $f2
 
903
        addu $0 $0 $0
 
904
        addu $0 $0 $0                         
 
905
        bc1f fail            
 
906
        addu $0 $0 $0                         # Nop Delay slot
 
907
        bc1t l200
 
908
        addu $0 $0 $0                         # Nop Delay slot
 
909
        j fail
 
910
        addu $0 $0 $0                         # Nop Delay slot
 
911
l200:   c.eq.d $f0 $f4
 
912
        addu $0 $2 $2                           
 
913
        addu $0 $3 $3                          
 
914
        bc1t fail                             
 
915
        addu $0 $0 $0                         # Nop Delay slot
 
916
        bc1f l201                             
 
917
        addu $0 $0 $0                         # Nop Delay slot
 
918
        j fail  
 
919
        addu $0 $4 $4                         # Nop Delay slot
 
920
l201:   addu $0 $5 $5                         
 
921
 
 
922
 
 
923
        .data
 
924
c.eq.s_:        .asciiz "Testing C.EQ.S\n"
 
925
        .text
 
926
        addi $v0 $0 4   # syscall 4 (print_str)
 
927
#       la $a0 c.eq.s_
 
928
        lui $a0 0x1000
 
929
        ori $a0 $a0 0x1e6
 
930
        syscall
 
931
 
 
932
        lui $1 0x1000
 
933
        ori $1 $1 0x68
 
934
        lwc1 $f0 4($1)                        # fp_s1
 
935
        lwc1 $f2 4($1)                        # fp_s1
 
936
        lui $2 0x1000
 
937
        ori $2 $2 0x118
 
938
        lwc1 $f4 8($2)                        # fp_s1p5
 
939
        addu $0 $0 $0                         # Nop Delay slot
 
940
        c.eq.s $f0 $f2
 
941
        addu $0 $0 $0                         # Nop Delay slot
 
942
        addu $0 $0 $0                         # Nop Delay slot
 
943
        bc1f fail
 
944
        addu $0 $0 $0                         # Nop Delay slot
 
945
        bc1t l210
 
946
        addu $0 $0 $0                         # Nop Delay slot
 
947
        j fail
 
948
        addu $0 $0 $0                         # Nop Delay slot
 
949
l210:   c.eq.s $f0 $f4
 
950
        addu $0 $0 $0                         # Nop Delay slot
 
951
        addu $0 $0 $0                         # Nop Delay slot
 
952
        bc1t fail
 
953
        addu $0 $0 $0                         # Nop Delay slot
 
954
        bc1f l211
 
955
        addu $0 $0 $0                         # Nop Delay slot
 
956
        j fail
 
957
        addu $0 $0 $0                         # Nop Delay slot
 
958
l211:   addu $0 $0 $0                         # Nop Delay slot
 
959
 
 
960
 
 
961
 
 
962
        .data
 
963
c.f.d_: .asciiz "Testing C.F.D\n"
 
964
        .text
 
965
        addi $v0 $0 4   # syscall 4 (print_str)
 
966
#       la $a0 c.f.d_
 
967
        lui $a0 0x1000
 
968
        ori $a0 $a0 0x1f6
 
969
        syscall
 
970
 
 
971
        lui $1 0x1000
 
972
        ori $1 $1 0x88
 
973
        lui $2 0x1000
 
974
        ori $2 $2 0x138                       
 
975
        lwc1 $f0 8($1)                             # fp_d1
 
976
        lwc1 $f1 12($1)                            # fp_d1+4
 
977
        lwc1 $f2 8($1)                             # fp_d1
 
978
        lwc1 $f3 12($1)                            # fp_d1+4
 
979
        lwc1 $f4 16($2)                            # fp_d1p5
 
980
        lwc1 $f5 20($2)                            # fp_d1p5+4
 
981
        c.f.d $f0 $f2
 
982
        addu $0 $0 $0                         # Nop Delay slot
 
983
        addu $0 $0 $0                         # Nop Delay slot
 
984
        bc1t fail
 
985
        addu $0 $0 $0                         # Nop Delay slot
 
986
        bc1f l220
 
987
        addu $0 $0 $0                         # Nop Delay slot
 
988
        j fail
 
989
        addu $0 $0 $0                         # Nop Delay slot
 
990
l220:   c.f.d $f0 $f4
 
991
        addu $0 $0 $0                         # Nop Delay slot
 
992
        addu $0 $0 $0                         # Nop Delay slot
 
993
        bc1t fail
 
994
        addu $0 $0 $0                         # Nop Delay slot
 
995
        bc1f l221
 
996
        addu $0 $0 $0                         # Nop Delay slot
 
997
        j fail
 
998
        addu $0 $0 $0                         # Nop Delay slot
 
999
l221:   addu $0 $0 $0                         # Nop Delay slot
 
1000
 
 
1001
        .data
 
1002
c.f.s_: .asciiz "Testing C.F.S\n"
 
1003
        .text
 
1004
        addi $v0 $0 4   # syscall 4 (print_str)
 
1005
#       la $a0 c.f.s_
 
1006
        lui $a0 0x1000
 
1007
        ori $a0 $a0 0x205
 
1008
        syscall
 
1009
 
 
1010
        lui $1 0x1000
 
1011
        ori $1 $1 0x68
 
1012
        lui $2 0x1000
 
1013
        ori $2 $2 0x118
 
1014
        lwc1 $f0 4($1)                          # fp_s1
 
1015
        lwc1 $f2 4($1)                          # fp_s1
 
1016
        lwc1 $f4 8($2)                          # fp_s1p5
 
1017
        c.f.s $f0 $f2
 
1018
        addu $0 $0 $0                         # Nop Delay slot
 
1019
        addu $0 $0 $0                         # Nop Delay slot
 
1020
        bc1t fail
 
1021
        addu $0 $0 $0                         # Nop Delay slot
 
1022
        bc1f l230
 
1023
        addu $0 $0 $0                         # Nop Delay slot
 
1024
        j fail
 
1025
        addu $0 $0 $0                         # Nop Delay slot
 
1026
l230:   c.f.s $f0 $f4
 
1027
        addu $0 $0 $0                         # Nop Delay slot
 
1028
        addu $0 $0 $0                         # Nop Delay slot
 
1029
        bc1t fail
 
1030
        addu $0 $0 $0                         # Nop Delay slot
 
1031
        bc1f l231
 
1032
        addu $0 $0 $0                         # Nop Delay slot
 
1033
        j fail
 
1034
        addu $0 $0 $0                         # Nop Delay slot
 
1035
l231:   addu $0 $0 $0                         # Nop Delay slot
 
1036
 
 
1037
 
 
1038
        .data
 
1039
c.le.d_:        .asciiz "Testing C.LE.D\n"
 
1040
fp_dm2: .double -2.0
 
1041
 
 
1042
        .text
 
1043
        addi $v0 $0 4   # syscall 4 (print_str)
 
1044
#       la $a0 c.le.d_
 
1045
        lui $a0 0x1000
 
1046
        ori $a0 $a0 0x214
 
1047
        syscall
 
1048
 
 
1049
        lui $1 0x1000
 
1050
        ori $1 $1 0x88
 
1051
        lui $2 0x1000
 
1052
        ori $2 $2 0x138                       
 
1053
 
 
1054
        lwc1 $f0 8($1)                      # fp_d1
 
1055
        lwc1 $f1 12($1)                       # fp_d1+4
 
1056
        lwc1 $f2 16($2)                       # fp_d1p5
 
1057
        lwc1 $f3 20($2)                      # fp_d1p5+4
 
1058
        lui $3 0x1000
 
1059
        ori $3 $3 0x228
 
1060
        lwc1 $f4 0($3)                      # fp_dm2
 
1061
        lwc1 $f5 4($3)                      # fp_dm2+4
 
1062
        c.le.d $f0 $f2
 
1063
        addu $0 $0 $0                         # Nop Delay slot
 
1064
        addu $0 $0 $0                         # Nop Delay slot
 
1065
        bc1f fail
 
1066
        addu $0 $0 $0                         # Nop Delay slot
 
1067
        bc1t l240
 
1068
        addu $0 $0 $0                         # Nop Delay slot
 
1069
        j fail
 
1070
        addu $0 $0 $0                         # Nop Delay slot
 
1071
l240:   c.le.d $f2 $f0
 
1072
        addu $0 $0 $0                         # Nop Delay slot  
 
1073
        addu $0 $0 $0                         # Nop Delay slot
 
1074
        bc1t fail
 
1075
        addu $0 $0 $0                         # Nop Delay slot
 
1076
        bc1f l241
 
1077
        addu $0 $0 $0                         # Nop Delay slot
 
1078
        j fail
 
1079
        addu $0 $0 $0                         # Nop Delay slot
 
1080
l241:   c.le.d $f0 $f0
 
1081
        addu $0 $0 $0                         # Nop Delay slot
 
1082
        addu $0 $0 $0                         # Nop Delay slot
 
1083
        bc1f fail
 
1084
        addu $0 $0 $0                         # Nop Delay slot
 
1085
        bc1t l242
 
1086
        addu $0 $0 $0                         # Nop Delay slot
 
1087
        j fail
 
1088
        addu $0 $0 $0                         # Nop Delay slot
 
1089
l242:   c.le.d $f4 $f0
 
1090
        addu $0 $0 $0                         # Nop Delay slot
 
1091
        addu $0 $0 $0                         # Nop Delay slot
 
1092
        bc1f fail
 
1093
        addu $0 $0 $0                         # Nop Delay slot
 
1094
        bc1t l243
 
1095
        addu $0 $0 $0                         # Nop Delay slot
 
1096
        j fail
 
1097
        addu $0 $0 $0                         # Nop Delay slot
 
1098
l243:   addu $0 $0 $0                         # Nop Delay slot
 
1099
 
 
1100
 
 
1101
 
 
1102
        .data
 
1103
c.le.s_:        .asciiz "Testing C.LE.S\n"
 
1104
fp_sm2: .float -2.0
 
1105
        .text
 
1106
        addi $v0 $0 4   # syscall 4 (print_str)
 
1107
#       la $a0 c.le.s_
 
1108
        lui $a0 0x1000
 
1109
        ori $a0 $a0 0x230
 
1110
        syscall
 
1111
 
 
1112
        lui $1 0x1000
 
1113
        ori $1 $1 0x68
 
1114
        lui $2 0x1000
 
1115
        ori $2 $2 0x118
 
1116
 
 
1117
        lwc1 $f0 4($1)                       # fp_s1
 
1118
        lwc1 $f2 8($2)                       # fp_s1p5
 
1119
        lui $3 0x1000
 
1120
        ori $3 $3 0x240
 
1121
        lwc1 $f4 0($3)                       # fp_sm2
 
1122
        c.le.s $f0 $f2
 
1123
        addu $0 $0 $0                         # Nop Delay slot
 
1124
        addu $0 $0 $0                         # Nop Delay slot
 
1125
        bc1f fail
 
1126
        addu $0 $0 $0                         # Nop Delay slot
 
1127
        bc1t l250
 
1128
        addu $0 $0 $0                         # Nop Delay slot
 
1129
        j fail
 
1130
        addu $0 $0 $0                         # Nop Delay slot
 
1131
l250:   c.le.s $f2 $f0
 
1132
        addu $0 $0 $0                         # Nop Delay slot
 
1133
        addu $0 $0 $0                         # Nop Delay slot
 
1134
        bc1t fail
 
1135
        addu $0 $0 $0                         # Nop Delay slot
 
1136
        bc1f l251
 
1137
        addu $0 $0 $0                         # Nop Delay slot
 
1138
        j fail
 
1139
        addu $0 $0 $0                         # Nop Delay slot
 
1140
l251:   c.le.s $f0 $f0
 
1141
        addu $0 $0 $0                         # Nop Delay slot
 
1142
        addu $0 $0 $0                         # Nop Delay slot
 
1143
        bc1f fail
 
1144
        addu $0 $0 $0                         # Nop Delay slot
 
1145
        bc1t l252
 
1146
        addu $0 $0 $0                         # Nop Delay slot
 
1147
        j fail
 
1148
        addu $0 $0 $0                         # Nop Delay slot
 
1149
l252:   c.le.s $f4 $f0
 
1150
        addu $0 $0 $0                         # Nop Delay slot
 
1151
        addu $0 $0 $0                         # Nop Delay slot
 
1152
        bc1f fail
 
1153
        addu $0 $0 $0                         # Nop Delay slot
 
1154
        bc1t l253
 
1155
        addu $0 $0 $0                         # Nop Delay slot
 
1156
        j fail
 
1157
        addu $0 $0 $0                         # Nop Delay slot
 
1158
l253:   addu $0 $0 $0                         # Nop Delay slot
 
1159
 
 
1160
 
 
1161
 
 
1162
 
 
1163
 
 
1164
        .data
 
1165
c.lt.d_:        .asciiz "Testing C.LT.D\n"
 
1166
        .text
 
1167
        addi $v0 $0 4   # syscall 4 (print_str)
 
1168
#       la $a0 c.lt.d_
 
1169
        lui $a0 0x1000
 
1170
        ori $a0 $a0 0x244
 
1171
        syscall
 
1172
 
 
1173
        lui $1 0x1000
 
1174
        ori $1 $1 0x88
 
1175
        lui $2 0x1000
 
1176
        ori $2 $2 0x138                       
 
1177
 
 
1178
        lwc1 $f0 8($1)                      # fp_d1
 
1179
        lwc1 $f1 12($1)                       # fp_d1+4
 
1180
        lwc1 $f2 16($2)                       # fp_d1p5
 
1181
        lwc1 $f3 20($2)                      # fp_d1p5+4
 
1182
        lui $3 0x1000
 
1183
        ori $3 $3 0x220
 
1184
        lwc1 $f4 0($3)                           # fp_dm2
 
1185
        lwc1 $f5 4($3)                            # fp_dm2+4
 
1186
        c.lt.d $f0 $f2
 
1187
        addu $0 $0 $0                         # Nop Delay slot
 
1188
        addu $0 $0 $0                         # Nop Delay slot
 
1189
        bc1f fail
 
1190
        addu $0 $0 $0                         # Nop Delay slot
 
1191
        bc1t l260
 
1192
        addu $0 $0 $0                         # Nop Delay slot
 
1193
        j fail
 
1194
        addu $0 $0 $0                         # Nop Delay slot
 
1195
l260:   c.lt.d $f2 $f0
 
1196
        addu $0 $0 $0                         # Nop Delay slot
 
1197
        addu $0 $0 $0                         # Nop Delay slot
 
1198
        bc1t fail
 
1199
        addu $0 $0 $0                         # Nop Delay slot
 
1200
        bc1f l261
 
1201
        addu $0 $0 $0                         # Nop Delay slot
 
1202
        j fail
 
1203
        addu $0 $0 $0                         # Nop Delay slot
 
1204
l261:   c.lt.d $f0 $f0
 
1205
        addu $0 $0 $0                         # Nop Delay slot
 
1206
        addu $0 $0 $0                         # Nop Delay slot
 
1207
        bc1t fail
 
1208
        addu $0 $0 $0                         # Nop Delay slot
 
1209
        bc1f l262
 
1210
        addu $0 $0 $0                         # Nop Delay slot
 
1211
        j fail
 
1212
        addu $0 $0 $0                         # Nop Delay slot
 
1213
l262:   c.lt.d $f4 $f0
 
1214
        addu $0 $0 $0                         # Nop Delay slot
 
1215
        addu $0 $0 $0                         # Nop Delay slot
 
1216
        bc1f fail
 
1217
        addu $0 $0 $0                         # Nop Delay slot
 
1218
        bc1t l263
 
1219
        addu $0 $0 $0                         # Nop Delay slot
 
1220
        j fail
 
1221
        addu $0 $0 $0                         # Nop Delay slot
 
1222
l263:
 
1223
 
 
1224
 
 
1225
        .data
 
1226
c.lt.s_:        .asciiz "Testing C.LT.S\n"
 
1227
        .text
 
1228
        addi $v0 $0 4   # syscall 4 (print_str)
 
1229
#       la $a0 c.lt.s_
 
1230
        lui $a0 0x1000
 
1231
        ori $a0 $a0 0x254
 
1232
        syscall
 
1233
 
 
1234
        lui $1 0x1000
 
1235
        ori $1 $1 0x68
 
1236
        lui $2 0x1000
 
1237
        ori $2 $2 0x118
 
1238
 
 
1239
        lwc1 $f0 4($1)                       # fp_s1
 
1240
        lwc1 $f2 8($2)                       # fp_s1p5
 
1241
        lui $3 0x1000
 
1242
        ori $3 $3 0x240
 
1243
        lwc1 $f4 0($3)                        # fp_sm2
 
1244
        c.lt.s $f0 $f2
 
1245
        addu $0 $0 $0                         # Nop Delay slot
 
1246
        addu $0 $0 $0                         # Nop Delay slot
 
1247
        bc1f fail
 
1248
        addu $0 $0 $0                         # Nop Delay slot
 
1249
        bc1t l270
 
1250
        addu $0 $0 $0                         # Nop Delay slot
 
1251
        j fail
 
1252
        addu $0 $0 $0                         # Nop Delay slot
 
1253
l270:   c.lt.s $f2 $f0
 
1254
        addu $0 $0 $0                         # Nop Delay slot
 
1255
        addu $0 $0 $0                         # Nop Delay slot
 
1256
        bc1t fail
 
1257
        addu $0 $0 $0                         # Nop Delay slot
 
1258
        bc1f l271
 
1259
        addu $0 $0 $0                         # Nop Delay slot
 
1260
        j fail
 
1261
        addu $0 $0 $0                         # Nop Delay slot
 
1262
l271:   c.lt.s $f0 $f0
 
1263
        addu $0 $0 $0                         # Nop Delay slot
 
1264
        addu $0 $0 $0                         # Nop Delay slot
 
1265
        bc1t fail
 
1266
        addu $0 $0 $0                         # Nop Delay slot
 
1267
        bc1f l272
 
1268
        addu $0 $0 $0                         # Nop Delay slot
 
1269
        j fail
 
1270
        addu $0 $0 $0                         # Nop Delay slot
 
1271
l272:   c.lt.s $f4 $f0
 
1272
        addu $0 $0 $0                         # Nop Delay slot
 
1273
        addu $0 $0 $0                         # Nop Delay slot
 
1274
        bc1f fail
 
1275
        addu $0 $0 $0                         # Nop Delay slot
 
1276
        bc1t l273
 
1277
        addu $0 $0 $0                         # Nop Delay slot
 
1278
        j fail
 
1279
        addu $0 $0 $0                         # Nop Delay slot
 
1280
l273:
 
1281
 
 
1282
 
 
1283
        .data
 
1284
c.nge.d_:       .asciiz "Testing C.NGE.D\n"
 
1285
        .text
 
1286
        addi $v0 $0 4   # syscall 4 (print_str)
 
1287
#       la $a0 c.nge.d_
 
1288
        lui $a0 0x1000
 
1289
        ori $a0 $a0 0x264
 
1290
        syscall
 
1291
 
 
1292
        lui $1 0x1000
 
1293
        ori $1 $1 0x88
 
1294
        lui $2 0x1000
 
1295
        ori $2 $2 0x138                       
 
1296
 
 
1297
        lwc1 $f0 8($1)                      # fp_d1
 
1298
        lwc1 $f1 12($1)                       # fp_d1+4
 
1299
        lwc1 $f2 16($2)                       # fp_d1p5
 
1300
        lwc1 $f3 20($2)                      # fp_d1p5+4
 
1301
        lui $3 0x1000
 
1302
        ori $3 $3 0x220
 
1303
        lwc1 $f4 0($3)                           # fp_dm2
 
1304
        lwc1 $f5 4($3)                            # fp_dm2+4
 
1305
        c.nge.d $f0 $f2
 
1306
        addu $0 $0 $0                         # Nop Delay slot
 
1307
        addu $0 $0 $0                         # Nop Delay slot
 
1308
        bc1f fail
 
1309
        addu $0 $0 $0                         # Nop Delay slot
 
1310
        bc1t l280
 
1311
        addu $0 $0 $0                         # Nop Delay slot
 
1312
        j fail
 
1313
        addu $0 $0 $0                         # Nop Delay slot
 
1314
l280:   c.nge.d $f2 $f0
 
1315
        addu $0 $0 $0                         # Nop Delay slot
 
1316
        addu $0 $0 $0                         # Nop Delay slot
 
1317
        bc1t fail
 
1318
        addu $0 $0 $0                         # Nop Delay slot
 
1319
        bc1f l281
 
1320
        addu $0 $0 $0                         # Nop Delay slot
 
1321
        j fail
 
1322
        addu $0 $0 $0                         # Nop Delay slot
 
1323
l281:   c.nge.d $f0 $f0
 
1324
        addu $0 $0 $0                         # Nop Delay slot
 
1325
        addu $0 $0 $0                         # Nop Delay slot
 
1326
        bc1t fail
 
1327
        addu $0 $0 $0                         # Nop Delay slot
 
1328
        bc1f l282
 
1329
        addu $0 $0 $0                         # Nop Delay slot
 
1330
        j fail
 
1331
        addu $0 $0 $0                         # Nop Delay slot
 
1332
l282:   c.nge.d $f4 $f0
 
1333
        addu $0 $0 $0                         # Nop Delay slot
 
1334
        addu $0 $0 $0                         # Nop Delay slot
 
1335
        bc1f fail
 
1336
        addu $0 $0 $0                         # Nop Delay slot
 
1337
        bc1t l283
 
1338
        addu $0 $0 $0                         # Nop Delay slot
 
1339
        j fail
 
1340
        addu $0 $0 $0                         # Nop Delay slot
 
1341
l283:
 
1342
 
 
1343
 
 
1344
        .data
 
1345
c.nge.s_:       .asciiz "Testing C.NGE.S\n"
 
1346
        .text
 
1347
        addi $v0 $0 4   # syscall 4 (print_str)
 
1348
#       la $a0 c.nge.s_
 
1349
        lui $a0 0x1000
 
1350
        ori $a0 $a0 0x275
 
1351
        syscall
 
1352
 
 
1353
        lui $1 0x1000
 
1354
        ori $1 $1 0x68
 
1355
        lui $2 0x1000
 
1356
        ori $2 $2 0x118
 
1357
 
 
1358
        lwc1 $f0 4($1)                       # fp_s1
 
1359
        lwc1 $f2 8($2)                       # fp_s1p5
 
1360
        lui $3 0x1000
 
1361
        ori $3 $3 0x240
 
1362
        lwc1 $f4 0($3)                        # fp_sm2
 
1363
        c.nge.s $f0 $f2
 
1364
        addu $0 $0 $0                         # Nop Delay slot
 
1365
        addu $0 $0 $0                         # Nop Delay slot
 
1366
        bc1f fail
 
1367
        addu $0 $0 $0                         # Nop Delay slot
 
1368
        bc1t l290
 
1369
        addu $0 $0 $0                         # Nop Delay slot
 
1370
        j fail
 
1371
        addu $0 $0 $0                         # Nop Delay slot
 
1372
l290:   c.nge.s $f2 $f0
 
1373
        addu $0 $0 $0                         # Nop Delay slot
 
1374
        addu $0 $0 $0                         # Nop Delay slot
 
1375
        bc1t fail
 
1376
        addu $0 $0 $0                         # Nop Delay slot
 
1377
        bc1f l291
 
1378
        addu $0 $0 $0                         # Nop Delay slot
 
1379
        j fail
 
1380
        addu $0 $0 $0                         # Nop Delay slot
 
1381
l291:   c.nge.s $f0 $f0
 
1382
        addu $0 $0 $0                         # Nop Delay slot
 
1383
        addu $0 $0 $0                         # Nop Delay slot
 
1384
        bc1t fail
 
1385
        addu $0 $0 $0                         # Nop Delay slot
 
1386
        bc1f l292
 
1387
        addu $0 $0 $0                         # Nop Delay slot
 
1388
        j fail
 
1389
        addu $0 $0 $0                         # Nop Delay slot
 
1390
l292:   c.nge.s $f4 $f0
 
1391
        addu $0 $0 $0                         # Nop Delay slot
 
1392
        addu $0 $0 $0                         # Nop Delay slot
 
1393
        bc1f fail
 
1394
        addu $0 $0 $0                         # Nop Delay slot
 
1395
        bc1t l293
 
1396
        addu $0 $0 $0                         # Nop Delay slot
 
1397
        j fail
 
1398
        addu $0 $0 $0                         # Nop Delay slot
 
1399
l293:
 
1400
 
 
1401
 
 
1402
        .data
 
1403
c.ngle.d_:      .asciiz "Testing C.NGLE.D\n"
 
1404
        .text
 
1405
        addi $v0 $0 4   # syscall 4 (print_str)
 
1406
#       la $a0 c.ngle.d_
 
1407
        lui $a0 0x1000
 
1408
        ori $a0 $a0 0x286
 
1409
        syscall
 
1410
 
 
1411
        lui $1 0x1000
 
1412
        ori $1 $1 0x88
 
1413
        lui $2 0x1000
 
1414
        ori $2 $2 0x138                       
 
1415
 
 
1416
        lwc1 $f0 8($1)                      # fp_d1
 
1417
        lwc1 $f1 12($1)                       # fp_d1+4
 
1418
        lwc1 $f2 8($1)                      # fp_d1
 
1419
        lwc1 $f3 12($1)                       # fp_d1+4
 
1420
        lwc1 $f4 16($2)                       # fp_d1p5
 
1421
        lwc1 $f5 20($2)                      # fp_d1p5+4
 
1422
        c.ngle.d $f0 $f2
 
1423
        addu $0 $0 $0                         # Nop Delay slot
 
1424
        addu $0 $0 $0                         # Nop Delay slot
 
1425
        bc1t fail
 
1426
        addu $0 $0 $0                         # Nop Delay slot
 
1427
l300:   c.ngle.d $f0 $f4
 
1428
        addu $0 $0 $0                         # Nop Delay slot
 
1429
        addu $0 $0 $0                         # Nop Delay slot
 
1430
        bc1t fail
 
1431
        addu $0 $0 $0                         # Nop Delay slot
 
1432
l301:
 
1433
 
 
1434
 
 
1435
        .data
 
1436
c.ngle.s_:      .asciiz "Testing C.NGLE.S\n"
 
1437
        .text
 
1438
        addi $v0 $0 4   # syscall 4 (print_str)
 
1439
#       la $a0 c.ngle.s_
 
1440
        lui $a0 0x1000
 
1441
        ori $a0 $a0 0x298
 
1442
        syscall
 
1443
 
 
1444
        lui $1 0x1000
 
1445
        ori $1 $1 0x68
 
1446
        lui $2 0x1000
 
1447
        ori $2 $2 0x118
 
1448
 
 
1449
        lwc1 $f0 4($1)                       # fp_s1
 
1450
        lwc1 $f2 4($1)                       # fp_s1
 
1451
        lwc1 $f4 8($2)                       # fp_s1p5
 
1452
        c.ngle.s $f0 $f2
 
1453
        addu $0 $0 $0                         # Nop Delay slot
 
1454
        addu $0 $0 $0                         # Nop Delay slot
 
1455
        bc1t fail
 
1456
        addu $0 $0 $0                         # Nop Delay slot
 
1457
l310:   c.ngle.s $f0 $f4
 
1458
        addu $0 $0 $0                         # Nop Delay slot
 
1459
        addu $0 $0 $0                         # Nop Delay slot
 
1460
        bc1t fail
 
1461
        addu $0 $0 $0                         # Nop Delay slot
 
1462
l311:
 
1463
 
 
1464
 
 
1465
        .data
 
1466
c.ngl.d_:       .asciiz "Testing C.NGL.D\n"
 
1467
        .text
 
1468
        addi $v0 $0 4   # syscall 4 (print_str)
 
1469
#       la $a0 c.ngl.d_
 
1470
        lui $a0 0x1000
 
1471
        ori $a0 $a0 0x2aa
 
1472
        syscall
 
1473
 
 
1474
        lui $1 0x1000
 
1475
        ori $1 $1 0x88
 
1476
        lui $2 0x1000
 
1477
        ori $2 $2 0x138                       
 
1478
 
 
1479
        lwc1 $f0 8($1)                      # fp_d1
 
1480
        lwc1 $f1 12($1)                       # Nop
 
1481
        lwc1 $f2 8($1)                      # fp_d1
 
1482
        lwc1 $f3 12($1)                       # Nop
 
1483
        lwc1 $f4 16($2)                       # fp_d1p5
 
1484
        lwc1 $f5 20($2)                      # fp_d1p5+4
 
1485
        c.ngl.d $f0 $f2
 
1486
        addu $0 $0 $0                         # Nop Delay slot
 
1487
        addu $0 $0 $0                         # Nop Delay slot
 
1488
        bc1f fail
 
1489
        addu $0 $0 $0                         # Nop Delay slot
 
1490
        bc1t l320
 
1491
        addu $0 $0 $0                         # Nop Delay slot
 
1492
        j fail
 
1493
        addu $0 $0 $0                         # Nop Delay slot
 
1494
l320:   c.ngl.d $f0 $f4
 
1495
        addu $0 $0 $0                         # Nop Delay slot
 
1496
        addu $0 $0 $0                         # Nop Delay slot
 
1497
        bc1t fail
 
1498
        addu $0 $0 $0                         # Nop Delay slot
 
1499
        bc1f l321
 
1500
        addu $0 $0 $0                         # Nop Delay slot
 
1501
        j fail
 
1502
        addu $0 $0 $0                         # Nop Delay slot
 
1503
l321:
 
1504
 
 
1505
 
 
1506
        .data
 
1507
c.ngl.s_:       .asciiz "Testing C.NGL.S\n"
 
1508
        .text
 
1509
        addi $v0 $0 4   # syscall 4 (print_str)
 
1510
#       la $a0 c.ngl.s_
 
1511
        lui $a0 0x1000
 
1512
        ori $a0 $a0 0x2bb
 
1513
        syscall
 
1514
 
 
1515
        lui $1 0x1000
 
1516
        ori $1 $1 0x68
 
1517
        lui $2 0x1000
 
1518
        ori $2 $2 0x118
 
1519
 
 
1520
        lwc1 $f0 4($1)                       # fp_s1
 
1521
        lwc1 $f2 4($1)                       # fp_s1
 
1522
        lwc1 $f4 8($2)                       # fp_s1p5
 
1523
        c.ngl.s $f0 $f2
 
1524
        addu $0 $0 $0                         # Nop Delay slot
 
1525
        addu $0 $0 $0                         # Nop Delay slot  bc1f fail
 
1526
        bc1t l330
 
1527
        addu $0 $0 $0                         # Nop Delay slot
 
1528
        j fail
 
1529
        addu $0 $0 $0                         # Nop Delay slot
 
1530
l330:   c.ngl.s $f0 $f4
 
1531
        addu $0 $0 $0                         # Nop Delay slot
 
1532
        addu $0 $0 $0                         # Nop Delay slot
 
1533
        bc1t fail
 
1534
        addu $0 $0 $0                         # Nop Delay slot
 
1535
        bc1f l331
 
1536
        addu $0 $0 $0                         # Nop Delay slot
 
1537
        j fail
 
1538
        addu $0 $0 $0                         # Nop Delay slot
 
1539
l331:
 
1540
 
 
1541
 
 
1542
        .data
 
1543
c.ngt.d_:       .asciiz "Testing C.NGT.D\n"
 
1544
        .text
 
1545
        addi $v0 $0 4   # syscall 4 (print_str)
 
1546
#       la $a0 c.ngt.d_
 
1547
        lui $a0 0x1000
 
1548
        ori $a0 $a0 0x2cc
 
1549
        syscall
 
1550
 
 
1551
        lui $1 0x1000
 
1552
        ori $1 $1 0x88
 
1553
        lui $2 0x1000
 
1554
        ori $2 $2 0x138                       
 
1555
 
 
1556
        lwc1 $f0 8($1)                      # fp_d1
 
1557
        lwc1 $f1 12($1)                       # Nop
 
1558
        lwc1 $f2 16($2)                       # fp_d1p5
 
1559
        lwc1 $f3 20($2)                      # fp_d1p5+4
 
1560
        lui $3 0x1000
 
1561
        ori $3 $3 0x220
 
1562
        lwc1 $f4 0($3)                           # fp_dm2
 
1563
        lwc1 $f5 4($3)                            # Nop
 
1564
        c.ngt.d $f0 $f2
 
1565
        addu $0 $0 $0                         # Nop Delay slot
 
1566
        addu $0 $0 $0                         # Nop Delay slot
 
1567
        bc1f fail
 
1568
        addu $0 $0 $0                         # Nop Delay slot
 
1569
        bc1t l340
 
1570
        addu $0 $0 $0                         # Nop Delay slot
 
1571
        j fail
 
1572
        addu $0 $0 $0                         # Nop Delay slot
 
1573
l340:   c.ngt.d $f2 $f0
 
1574
        addu $0 $0 $0                         # Nop Delay slot
 
1575
        addu $0 $0 $0                         # Nop Delay slot
 
1576
        bc1t fail
 
1577
        addu $0 $0 $0                         # Nop Delay slot
 
1578
        bc1f l341
 
1579
        addu $0 $0 $0                         # Nop Delay slot
 
1580
        j fail
 
1581
        addu $0 $0 $0                         # Nop Delay slot
 
1582
l341:   c.ngt.d $f0 $f0
 
1583
        addu $0 $0 $0                         # Nop Delay slot
 
1584
        addu $0 $0 $0                         # Nop Delay slot
 
1585
        bc1f fail
 
1586
        addu $0 $0 $0                         # Nop Delay slot
 
1587
        bc1t l342
 
1588
        addu $0 $0 $0                         # Nop Delay slot
 
1589
        j fail
 
1590
        addu $0 $0 $0                         # Nop Delay slot
 
1591
l342:   c.ngt.d $f4 $f0
 
1592
        addu $0 $0 $0                         # Nop Delay slot
 
1593
        addu $0 $0 $0                         # Nop Delay slot
 
1594
        bc1f fail
 
1595
        addu $0 $0 $0                         # Nop Delay slot
 
1596
        bc1t l343
 
1597
        addu $0 $0 $0                         # Nop Delay slot
 
1598
        j fail
 
1599
        addu $0 $0 $0                         # Nop Delay slot
 
1600
l343:
 
1601
 
 
1602
 
 
1603
        .data
 
1604
c.ngt.s_:       .asciiz "Testing C.NGT.S\n"
 
1605
        .text
 
1606
        addi $v0 $0 4   # syscall 4 (print_str)
 
1607
#       la $a0 c.ngt.s_
 
1608
        lui $a0 0x1000
 
1609
        ori $a0 $a0 0x2dd
 
1610
        syscall
 
1611
 
 
1612
        lui $1 0x1000
 
1613
        ori $1 $1 0x68
 
1614
        lui $2 0x1000
 
1615
        ori $2 $2 0x118
 
1616
 
 
1617
        lwc1 $f0 4($1)                       # fp_s1
 
1618
        lwc1 $f2 8($2)                       # fp_s1p5
 
1619
        lui $3 0x1000
 
1620
        ori $3 $3 0x240
 
1621
        lwc1 $f4 0($3)                        # fp_sm2
 
1622
        c.ngt.s $f0 $f2
 
1623
        addu $0 $0 $0                         # Nop Delay slot
 
1624
        addu $0 $0 $0                         # Nop Delay slot
 
1625
        bc1f fail
 
1626
        addu $0 $0 $0                         # Nop Delay slot
 
1627
        bc1t l350
 
1628
        addu $0 $0 $0                         # Nop Delay slot
 
1629
        j fail
 
1630
        addu $0 $0 $0                         # Nop Delay slot
 
1631
l350:   c.ngt.s $f2 $f0
 
1632
        addu $0 $0 $0                         # Nop Delay slot
 
1633
        addu $0 $0 $0                         # Nop Delay slot
 
1634
        bc1t fail
 
1635
        addu $0 $0 $0                         # Nop Delay slot
 
1636
        bc1f l351
 
1637
        addu $0 $0 $0                         # Nop Delay slot
 
1638
        j fail
 
1639
        addu $0 $0 $0                         # Nop Delay slot
 
1640
l351:   c.ngt.s $f0 $f0
 
1641
        addu $0 $0 $0                         # Nop Delay slot
 
1642
        addu $0 $0 $0                         # Nop Delay slot
 
1643
        bc1f fail
 
1644
        addu $0 $0 $0                         # Nop Delay slot
 
1645
        bc1t l352
 
1646
        addu $0 $0 $0                         # Nop Delay slot
 
1647
        j fail
 
1648
        addu $0 $0 $0                         # Nop Delay slot
 
1649
l352:   c.ngt.s $f4 $f0
 
1650
        addu $0 $0 $0                         # Nop Delay slot
 
1651
        addu $0 $0 $0                         # Nop Delay slot
 
1652
        bc1f fail
 
1653
        addu $0 $0 $0                         # Nop Delay slot
 
1654
        bc1t l353
 
1655
        addu $0 $0 $0                         # Nop Delay slot
 
1656
        j fail
 
1657
        addu $0 $0 $0                         # Nop Delay slot
 
1658
l353:
 
1659
 
 
1660
 
 
1661
        .data
 
1662
c.ole.d_:       .asciiz "Testing C.OLE.D\n"
 
1663
        .text
 
1664
        addi $v0 $0 4   # syscall 4 (print_str)
 
1665
#       la $a0 c.ole.d_
 
1666
        lui $a0 0x1000
 
1667
        ori $a0 $a0 0x2ee
 
1668
        syscall
 
1669
 
 
1670
        lui $1 0x1000
 
1671
        ori $1 $1 0x88
 
1672
        lui $2 0x1000
 
1673
        ori $2 $2 0x138                       
 
1674
 
 
1675
        lwc1 $f0 8($1)                      # fp_d1
 
1676
        lwc1 $f1 12($1)                       # Nop
 
1677
        lwc1 $f2 16($2)                       # fp_d1p5
 
1678
        lwc1 $f3 20($2)                      # fp_d1p5+4
 
1679
        lui $3 0x1000
 
1680
        ori $3 $3 0x220
 
1681
        lwc1 $f4 0($3)                           # fp_dm2
 
1682
        lwc1 $f5 4($3)                            # Nop
 
1683
        c.ole.d $f0 $f2
 
1684
        addu $0 $0 $0                         # Nop Delay slot
 
1685
        addu $0 $0 $0                         # Nop Delay slot
 
1686
        bc1f fail
 
1687
        addu $0 $0 $0                         # Nop Delay slot
 
1688
        bc1t l360
 
1689
        addu $0 $0 $0                         # Nop Delay slot
 
1690
        j fail
 
1691
        addu $0 $0 $0                         # Nop Delay slot
 
1692
l360:   c.ole.d $f2 $f0
 
1693
        addu $0 $0 $0                         # Nop Delay slot
 
1694
        addu $0 $0 $0                         # Nop Delay slot
 
1695
        bc1t fail
 
1696
        addu $0 $0 $0                         # Nop Delay slot
 
1697
        bc1f l361
 
1698
        addu $0 $0 $0                         # Nop Delay slot
 
1699
        j fail
 
1700
        addu $0 $0 $0                         # Nop Delay slot
 
1701
l361:   c.ole.d $f0 $f0
 
1702
        addu $0 $0 $0                         # Nop Delay slot
 
1703
        addu $0 $0 $0                         # Nop Delay slot
 
1704
        bc1f fail
 
1705
        addu $0 $0 $0                         # Nop Delay slot
 
1706
        bc1t l362
 
1707
        addu $0 $0 $0                         # Nop Delay slot
 
1708
        j fail
 
1709
        addu $0 $0 $0                         # Nop Delay slot
 
1710
l362:   c.ole.d $f4 $f0
 
1711
        addu $0 $0 $0                         # Nop Delay slot
 
1712
        addu $0 $0 $0                         # Nop Delay slot
 
1713
        bc1f fail
 
1714
        addu $0 $0 $0                         # Nop Delay slot
 
1715
        bc1t l363
 
1716
        addu $0 $0 $0                         # Nop Delay slot
 
1717
        j fail
 
1718
        addu $0 $0 $0                         # Nop Delay slot
 
1719
l363:
 
1720
 
 
1721
 
 
1722
        .data
 
1723
c.ole.s_:       .asciiz "Testing C.OLE.S\n"
 
1724
        .text
 
1725
        addi $v0 $0 4   # syscall 4 (print_str)
 
1726
#       la $a0 c.ole.s_
 
1727
        lui $a0 0x1000
 
1728
        ori $a0 $a0 0x2ff
 
1729
        syscall
 
1730
 
 
1731
        lui $1 0x1000
 
1732
        ori $1 $1 0x68
 
1733
        lui $2 0x1000
 
1734
        ori $2 $2 0x118
 
1735
 
 
1736
        lwc1 $f0 4($1)                       # fp_s1
 
1737
        lwc1 $f2 8($2)                       # fp_s1p5
 
1738
        lui $3 0x1000
 
1739
        ori $3 $3 0x240
 
1740
        lwc1 $f4 0($3)                        # fp_sm2
 
1741
        c.ole.s $f0 $f2
 
1742
        addu $0 $0 $0                         # Nop Delay slot
 
1743
        addu $0 $0 $0                         # Nop Delay slot
 
1744
        bc1f fail
 
1745
        addu $0 $0 $0                         # Nop Delay slot
 
1746
        bc1t l370
 
1747
        addu $0 $0 $0                         # Nop Delay slot
 
1748
        j fail
 
1749
        addu $0 $0 $0                         # Nop Delay slot
 
1750
l370:   c.ole.s $f2 $f0
 
1751
        addu $0 $0 $0                         # Nop Delay slot
 
1752
        addu $0 $0 $0                         # Nop Delay slot
 
1753
        bc1t fail
 
1754
        addu $0 $0 $0                         # Nop Delay slot
 
1755
        bc1f l371
 
1756
        addu $0 $0 $0                         # Nop Delay slot
 
1757
        j fail
 
1758
        addu $0 $0 $0                         # Nop Delay slot
 
1759
l371:   c.ole.s $f0 $f0
 
1760
        addu $0 $0 $0                         # Nop Delay slot
 
1761
        addu $0 $0 $0                         # Nop Delay slot
 
1762
        bc1f fail
 
1763
        addu $0 $0 $0                         # Nop Delay slot
 
1764
        bc1t l372
 
1765
        addu $0 $0 $0                         # Nop Delay slot
 
1766
        j fail
 
1767
        addu $0 $0 $0                         # Nop Delay slot
 
1768
l372:   c.ole.s $f4 $f0
 
1769
        addu $0 $0 $0                         # Nop Delay slot
 
1770
        addu $0 $0 $0                         # Nop Delay slot
 
1771
        bc1f fail
 
1772
        addu $0 $0 $0                         # Nop Delay slot
 
1773
        bc1t l373
 
1774
        addu $0 $0 $0                         # Nop Delay slot
 
1775
        j fail
 
1776
        addu $0 $0 $0                         # Nop Delay slot
 
1777
l373:
 
1778
 
 
1779
 
 
1780
        .data
 
1781
c.seq.d_:       .asciiz "Testing C.SEQ.D\n"
 
1782
        .text
 
1783
        addi $v0 $0 4   # syscall 4 (print_str)
 
1784
#       la $a0 c.seq.d_
 
1785
        lui $a0 0x1000
 
1786
        ori $a0 $a0 0x310
 
1787
        syscall
 
1788
 
 
1789
        lui $1 0x1000
 
1790
        ori $1 $1 0x88
 
1791
        lui $2 0x1000
 
1792
        ori $2 $2 0x138                       
 
1793
 
 
1794
        lwc1 $f0 8($1)                      # fp_d1
 
1795
        lwc1 $f1 12($1)                       # Nop
 
1796
        lwc1 $f2 8($1)                      # fp_d1
 
1797
        lwc1 $f3 12($1)                       # Nop
 
1798
        lwc1 $f4 16($2)                       # fp_d1p5
 
1799
        lwc1 $f5 20($2)                      # fp_d1p5+4
 
1800
        c.seq.d $f0 $f2
 
1801
        addu $0 $0 $0                         # Nop Delay slot
 
1802
        addu $0 $0 $0                         # Nop Delay slot
 
1803
        bc1f fail
 
1804
        addu $0 $0 $0                         # Nop Delay slot
 
1805
        bc1t l380
 
1806
        addu $0 $0 $0                         # Nop Delay slot
 
1807
        j fail
 
1808
        addu $0 $0 $0                         # Nop Delay slot
 
1809
l380:   c.seq.d $f0 $f4
 
1810
        addu $0 $0 $0                         # Nop Delay slot
 
1811
        addu $0 $0 $0                         # Nop Delay slot
 
1812
        bc1t fail
 
1813
        addu $0 $0 $0                         # Nop Delay slot
 
1814
        bc1f l381
 
1815
        addu $0 $0 $0                         # Nop Delay slot
 
1816
        j fail
 
1817
        addu $0 $0 $0                         # Nop Delay slot
 
1818
l381:
 
1819
 
 
1820
 
 
1821
        .data
 
1822
c.seq.s_:       .asciiz "Testing C.SEQ.S\n"
 
1823
        .text
 
1824
        addi $v0 $0 4   # syscall 4 (print_str)
 
1825
#       la $a0 c.seq.s_
 
1826
        lui $a0 0x1000
 
1827
        ori $a0 $a0 0x321
 
1828
        syscall
 
1829
 
 
1830
        lui $1 0x1000
 
1831
        ori $1 $1 0x68
 
1832
        lui $2 0x1000
 
1833
        ori $2 $2 0x118
 
1834
 
 
1835
        lwc1 $f0 4($1)                       # fp_s1
 
1836
        lwc1 $f2 4($1)                       # fp_s1
 
1837
        lwc1 $f4 8($2)                       # fp_s1p5
 
1838
        c.seq.s $f0 $f2
 
1839
        addu $0 $0 $0                         # Nop Delay slot
 
1840
        addu $0 $0 $0                         # Nop Delay slot
 
1841
        bc1f fail
 
1842
        addu $0 $0 $0                         # Nop Delay slot
 
1843
        bc1t l390
 
1844
        addu $0 $0 $0                         # Nop Delay slot
 
1845
        j fail
 
1846
        addu $0 $0 $0                         # Nop Delay slot
 
1847
l390:   c.seq.s $f0 $f4
 
1848
        addu $0 $0 $0                         # Nop Delay slot
 
1849
        addu $0 $0 $0                         # Nop Delay slot
 
1850
        bc1t fail
 
1851
        addu $0 $0 $0                         # Nop Delay slot
 
1852
        bc1f l391
 
1853
        addu $0 $0 $0                         # Nop Delay slot
 
1854
        j fail
 
1855
        addu $0 $0 $0                         # Nop Delay slot
 
1856
l391:
 
1857
 
 
1858
 
 
1859
        .data
 
1860
c.sf.d_:        .asciiz "Testing C.SF.D\n"
 
1861
        .text
 
1862
        addi $v0 $0 4   # syscall 4 (print_str)
 
1863
#       la $a0 c.sf.d_
 
1864
        lui $a0 0x1000
 
1865
        ori $a0 $a0 0x332
 
1866
        syscall
 
1867
 
 
1868
        lui $1 0x1000
 
1869
        ori $1 $1 0x88
 
1870
        lui $2 0x1000
 
1871
        ori $2 $2 0x138                       
 
1872
 
 
1873
        lwc1 $f0 8($1)                      # fp_d1
 
1874
        lwc1 $f1 12($1)                       # Nop
 
1875
        lwc1 $f2 8($1)                      # fp_d1
 
1876
        lwc1 $f3 12($1)                       # Nop
 
1877
        lwc1 $f4 16($2)                       # fp_d1p5
 
1878
        lwc1 $f5 20($2)                      # fp_d1p5+4
 
1879
        c.sf.d $f0 $f2
 
1880
        addu $0 $0 $0                         # Nop Delay slot
 
1881
        addu $0 $0 $0                         # Nop Delay slot
 
1882
        bc1t fail
 
1883
        addu $0 $0 $0                         # Nop Delay slot
 
1884
l400:   c.sf.d $f0 $f4
 
1885
        addu $0 $0 $0                         # Nop Delay slot
 
1886
        addu $0 $0 $0                         # Nop Delay slot
 
1887
        bc1t fail
 
1888
        addu $0 $0 $0                         # Nop Delay slot
 
1889
l401:
 
1890
 
 
1891
 
 
1892
        .data
 
1893
c.sf.s_:        .asciiz "Testing C.SF.S\n"
 
1894
        .text
 
1895
        addi $v0 $0 4   # syscall 4 (print_str)
 
1896
#       la $a0 c.sf.s_
 
1897
        lui $a0 0x1000
 
1898
        ori $a0 $a0 0x342
 
1899
        syscall
 
1900
 
 
1901
        lui $1 0x1000
 
1902
        ori $1 $1 0x68
 
1903
        lui $2 0x1000
 
1904
        ori $2 $2 0x118
 
1905
 
 
1906
        lwc1 $f0 4($1)                       # fp_s1
 
1907
        lwc1 $f2 4($1)                       # fp_s1
 
1908
        lwc1 $f4 8($2)                       # fp_s1p5
 
1909
        c.sf.s $f0 $f2
 
1910
        addu $0 $0 $0                         # Nop Delay slot
 
1911
        addu $0 $0 $0                         # Nop Delay slot
 
1912
        bc1t fail
 
1913
        addu $0 $0 $0                         # Nop Delay slot
 
1914
l410:   c.sf.s $f0 $f4
 
1915
        addu $0 $0 $0                         # Nop Delay slot
 
1916
        addu $0 $0 $0                         # Nop Delay slot
 
1917
        bc1t fail
 
1918
        addu $0 $0 $0                         # Nop Delay slot
 
1919
l411:
 
1920
 
 
1921
 
 
1922
        .data
 
1923
c.ueq.d_:       .asciiz "Testing C.UEQ.D\n"
 
1924
        .text
 
1925
        addi $v0 $0 4   # syscall 4 (print_str)
 
1926
#       la $a0 c.ueq.d_
 
1927
        lui $a0 0x1000
 
1928
        ori $a0 $a0 0x352
 
1929
        syscall
 
1930
 
 
1931
        lui $1 0x1000
 
1932
        ori $1 $1 0x88
 
1933
        lui $2 0x1000
 
1934
        ori $2 $2 0x138                       
 
1935
 
 
1936
        lwc1 $f0 8($1)                      # fp_d1
 
1937
        lwc1 $f1 12($1)                       # Nop
 
1938
        lwc1 $f2 8($1)                      # fp_d1
 
1939
        lwc1 $f3 12($1)                       # Nop
 
1940
        lwc1 $f4 16($2)                       # fp_d1p5
 
1941
        lwc1 $f5 20($2)                      # fp_d1p5+4
 
1942
        c.ueq.d $f0 $f2
 
1943
        addu $0 $0 $0                         # Nop Delay slot
 
1944
        addu $0 $0 $0                         # Nop Delay slot
 
1945
        bc1f fail
 
1946
        addu $0 $0 $0                         # Nop Delay slot
 
1947
        bc1t l420
 
1948
        addu $0 $0 $0                         # Nop Delay slot
 
1949
        j fail
 
1950
        addu $0 $0 $0                         # Nop Delay slot
 
1951
l420:   c.ueq.d $f0 $f4
 
1952
        addu $0 $0 $0                         # Nop Delay slot
 
1953
        addu $0 $0 $0                         # Nop Delay slot
 
1954
        bc1t fail
 
1955
        addu $0 $0 $0                         # Nop Delay slot
 
1956
        bc1f l421
 
1957
        addu $0 $0 $0                         # Nop Delay slot
 
1958
        j fail
 
1959
        addu $0 $0 $0                         # Nop Delay slot
 
1960
l421:
 
1961
 
 
1962
 
 
1963
        .data
 
1964
c.ueq.s_:       .asciiz "Testing C.UEQ.S\n"
 
1965
        .text
 
1966
        addi $v0 $0 4   # syscall 4 (print_str)
 
1967
#       la $a0 c.ueq.s_
 
1968
        lui $a0 0x1000
 
1969
        ori $a0 $a0 0x363
 
1970
        syscall
 
1971
 
 
1972
        lui $1 0x1000
 
1973
        ori $1 $1 0x68
 
1974
        lui $2 0x1000
 
1975
        ori $2 $2 0x118
 
1976
 
 
1977
        lwc1 $f0 4($1)                       # fp_s1
 
1978
        lwc1 $f2 4($1)                       # fp_s1
 
1979
        lwc1 $f4 8($2)                       # fp_s1p5
 
1980
        c.ueq.s $f0 $f2
 
1981
        addu $0 $0 $0                         # Nop Delay slot
 
1982
        addu $0 $0 $0                         # Nop Delay slot
 
1983
        bc1f fail
 
1984
        addu $0 $0 $0                         # Nop Delay slot
 
1985
        bc1t l430
 
1986
        addu $0 $0 $0                         # Nop Delay slot
 
1987
        j fail
 
1988
        addu $0 $0 $0                         # Nop Delay slot
 
1989
l430:   c.ueq.s $f0 $f4
 
1990
        addu $0 $0 $0                         # Nop Delay slot
 
1991
        addu $0 $0 $0                         # Nop Delay slot
 
1992
        bc1t fail
 
1993
        addu $0 $0 $0                         # Nop Delay slot
 
1994
        bc1f l431
 
1995
        addu $0 $0 $0                         # Nop Delay slot
 
1996
        j fail
 
1997
        addu $0 $0 $0                         # Nop Delay slot
 
1998
l431:
 
1999
 
 
2000
 
 
2001
        .data
 
2002
c.ule.d_:       .asciiz "Testing C.ULE.D\n"
 
2003
        .text
 
2004
        addi $v0 $0 4   # syscall 4 (print_str)
 
2005
#       la $a0 c.ule.d_
 
2006
        lui $a0 0x1000
 
2007
        ori $a0 $a0 0x374
 
2008
        syscall
 
2009
 
 
2010
        lui $1 0x1000
 
2011
        ori $1 $1 0x88
 
2012
        lui $2 0x1000
 
2013
        ori $2 $2 0x138                       
 
2014
 
 
2015
        lwc1 $f0 8($1)                      # fp_d1
 
2016
        lwc1 $f1 12($1)                       # Nop
 
2017
        lwc1 $f2 16($2)                       # fp_d1p5
 
2018
        lwc1 $f3 20($2)                      # fp_d1p5+4
 
2019
        lui $3 0x1000
 
2020
        ori $3 $3 0x220
 
2021
        lwc1 $f4 0($3)                           # fp_dm2
 
2022
        lwc1 $f5 4($3)                            # Nop
 
2023
        c.ule.d $f0 $f2
 
2024
        addu $0 $0 $0                         # Nop Delay slot
 
2025
        addu $0 $0 $0                         # Nop Delay slot
 
2026
        bc1f fail
 
2027
        addu $0 $0 $0                         # Nop Delay slot
 
2028
        bc1t l440
 
2029
        addu $0 $0 $0                         # Nop Delay slot
 
2030
        j fail
 
2031
        addu $0 $0 $0                         # Nop Delay slot
 
2032
l440:   c.ule.d $f2 $f0
 
2033
        addu $0 $0 $0                         # Nop Delay slot
 
2034
        addu $0 $0 $0                         # Nop Delay slot
 
2035
        bc1t fail
 
2036
        addu $0 $0 $0                         # Nop Delay slot
 
2037
        bc1f l441
 
2038
        addu $0 $0 $0                         # Nop Delay slot
 
2039
        j fail
 
2040
        addu $0 $0 $0                         # Nop Delay slot
 
2041
l441:   c.ule.d $f0 $f0
 
2042
        addu $0 $0 $0                         # Nop Delay slot
 
2043
        addu $0 $0 $0                         # Nop Delay slot
 
2044
        bc1f fail
 
2045
        addu $0 $0 $0                         # Nop Delay slot
 
2046
        bc1t l442
 
2047
        addu $0 $0 $0                         # Nop Delay slot
 
2048
        j fail
 
2049
        addu $0 $0 $0                         # Nop Delay slot
 
2050
l442:   c.ule.d $f4 $f0
 
2051
        addu $0 $0 $0                         # Nop Delay slot
 
2052
        addu $0 $0 $0                         # Nop Delay slot
 
2053
        bc1f fail
 
2054
        addu $0 $0 $0                         # Nop Delay slot
 
2055
        bc1t l443
 
2056
        addu $0 $0 $0                         # Nop Delay slot
 
2057
        j fail
 
2058
        addu $0 $0 $0                         # Nop Delay slot
 
2059
l443:
 
2060
 
 
2061
 
 
2062
        .data
 
2063
c.ule.s_:       .asciiz "Testing C.ULE.S\n"
 
2064
        .text
 
2065
        addi $v0 $0 4   # syscall 4 (print_str)
 
2066
#       la $a0 c.ule.s_
 
2067
        lui $a0 0x1000
 
2068
        ori $a0 $a0 0x385
 
2069
        syscall
 
2070
 
 
2071
        lui $1 0x1000
 
2072
        ori $1 $1 0x68
 
2073
        lui $2 0x1000
 
2074
        ori $2 $2 0x118
 
2075
 
 
2076
        lwc1 $f0 4($1)                       # fp_s1
 
2077
        lwc1 $f2 8($2)                       # fp_s1p5
 
2078
        lui $3 0x1000
 
2079
        ori $3 $3 0x240
 
2080
        lwc1 $f4 0($3)                        # fp_sm2
 
2081
        c.ule.s $f0 $f2
 
2082
        addu $0 $0 $0                         # Nop Delay slot
 
2083
        addu $0 $0 $0                         # Nop Delay slot
 
2084
        bc1f fail
 
2085
        addu $0 $0 $0                         # Nop Delay slot
 
2086
        bc1t l450
 
2087
        addu $0 $0 $0                         # Nop Delay slot
 
2088
        j fail
 
2089
        addu $0 $0 $0                         # Nop Delay slot
 
2090
l450:   c.ule.s $f2 $f0
 
2091
        addu $0 $0 $0                         # Nop Delay slot
 
2092
        addu $0 $0 $0                         # Nop Delay slot
 
2093
        bc1t fail
 
2094
        addu $0 $0 $0                         # Nop Delay slot
 
2095
        bc1f l451
 
2096
        addu $0 $0 $0                         # Nop Delay slot
 
2097
        j fail
 
2098
        addu $0 $0 $0                         # Nop Delay slot
 
2099
l451:   c.ule.s $f0 $f0
 
2100
        addu $0 $0 $0                         # Nop Delay slot
 
2101
        addu $0 $0 $0                         # Nop Delay slot
 
2102
        bc1f fail
 
2103
        addu $0 $0 $0                         # Nop Delay slot
 
2104
        bc1t l452
 
2105
        addu $0 $0 $0                         # Nop Delay slot
 
2106
        j fail
 
2107
        addu $0 $0 $0                         # Nop Delay slot
 
2108
l452:   c.ule.s $f4 $f0
 
2109
        addu $0 $0 $0                         # Nop Delay slot
 
2110
        addu $0 $0 $0                         # Nop Delay slot
 
2111
        bc1f fail
 
2112
        addu $0 $0 $0                         # Nop Delay slot
 
2113
        bc1t l453
 
2114
        addu $0 $0 $0                         # Nop Delay slot
 
2115
        j fail
 
2116
        addu $0 $0 $0                         # Nop Delay slot
 
2117
l453:
 
2118
 
 
2119
 
 
2120
        .data
 
2121
c.un.d_:        .asciiz "Testing C.UN.D\n"
 
2122
        .text
 
2123
        addi $v0 $0 4   # syscall 4 (print_str)
 
2124
#       la $a0 c.un.d_
 
2125
        lui $a0 0x1000
 
2126
        ori $a0 $a0 0x396
 
2127
        syscall
 
2128
 
 
2129
        lui $1 0x1000
 
2130
        ori $1 $1 0x88
 
2131
        lui $2 0x1000
 
2132
        ori $2 $2 0x138                       
 
2133
 
 
2134
        lwc1 $f0 8($1)                      # fp_d1
 
2135
        lwc1 $f1 12($1)                       # Nop
 
2136
        lwc1 $f2 8($1)                      # fp_d1
 
2137
        lwc1 $f3 12($1)                       # Nop
 
2138
        lwc1 $f4 16($2)                       # fp_d1p5
 
2139
        lwc1 $f5 20($2)                      # fp_d1p5+4
 
2140
        c.un.d $f0 $f2
 
2141
        addu $0 $0 $0                         # Nop Delay slot
 
2142
        addu $0 $0 $0                         # Nop Delay slot
 
2143
        bc1t fail
 
2144
        addu $0 $0 $0                         # Nop Delay slot
 
2145
        bc1f l460
 
2146
        addu $0 $0 $0                         # Nop Delay slot
 
2147
        j fail
 
2148
        addu $0 $0 $0                         # Nop Delay slot
 
2149
l460:   c.un.d $f0 $f4
 
2150
        addu $0 $0 $0                         # Nop Delay slot
 
2151
        addu $0 $0 $0                         # Nop Delay slot
 
2152
        bc1t fail
 
2153
        addu $0 $0 $0                         # Nop Delay slot
 
2154
        bc1f l461
 
2155
        addu $0 $0 $0                         # Nop Delay slot
 
2156
        j fail
 
2157
        addu $0 $0 $0                         # Nop Delay slot
 
2158
l461:
 
2159
 
 
2160
 
 
2161
        .data
 
2162
c.un.s_:        .asciiz "Testing C.UN.S\n"
 
2163
        .text
 
2164
        addi $v0 $0 4   # syscall 4 (print_str)
 
2165
#       la $a0 c.un.s_
 
2166
        lui $a0 0x1000
 
2167
        ori $a0 $a0 0x3a6
 
2168
        syscall
 
2169
 
 
2170
        lui $1 0x1000
 
2171
        ori $1 $1 0x68
 
2172
        lui $2 0x1000
 
2173
        ori $2 $2 0x118
 
2174
 
 
2175
        lwc1 $f0 4($1)                       # fp_s1
 
2176
        lwc1 $f2 4($1)                       # fp_s1
 
2177
        lwc1 $f4 8($2)                       # fp_s1p5
 
2178
        c.un.s $f0 $f2
 
2179
        addu $0 $0 $0                         # Nop Delay slot
 
2180
        addu $0 $0 $0                         # Nop Delay slot
 
2181
        bc1t fail
 
2182
        addu $0 $0 $0                         # Nop Delay slot
 
2183
        bc1f l470
 
2184
        addu $0 $0 $0                         # Nop Delay slot
 
2185
        j fail
 
2186
        addu $0 $0 $0                         # Nop Delay slot
 
2187
l470:   c.un.s $f0 $f4
 
2188
        addu $0 $0 $0                         # Nop Delay slot
 
2189
        addu $0 $0 $0                         # Nop Delay slot
 
2190
        bc1t fail
 
2191
        addu $0 $0 $0                         # Nop Delay slot
 
2192
        bc1f l471
 
2193
        addu $0 $0 $0                         # Nop Delay slot
 
2194
        j fail
 
2195
        addu $0 $0 $0                         # Nop Delay slot
 
2196
l471:
 
2197
 
 
2198
 
 
2199
 
 
2200
# Done !!!
 
2201
        .text
 
2202
        addi $2 $0 4    # syscall 4 (print_str)
 
2203
#       la $a0 pt
 
2204
        lui $a0, 0x1000
 
2205
        ori $a0 $a0 0xd
 
2206
        syscall
 
2207
        lui $4 0x1000
 
2208
        lw $31 0($4)
 
2209
        addu $0 $0 $0           # Nop
 
2210
        jr $31          # Return from main
 
2211
 
 
2212
 
 
2213
 
 
2214
 
 
2215
#       .data
 
2216
#fm:    .asciiz "Failed test\n"
 
2217
        .text
 
2218
fail:   addi $2 $0 4    # syscall 4 (print_str)
 
2219
#       la $a0 fm
 
2220
        lui $a0, 0x1000
 
2221
        ori $a0 $a0 0x4
 
2222
        syscall
 
2223
        addi $2 $0 10   # syscall 10 (exit)
 
2224
        syscall
 
2225
        addu $0 $0 $0           # Nop
 
2226
        addu $0 $0 $0           # Nop
 
2227
        addu $0 $0 $0           # Nop
 
2228
        addu $0 $0 $0           # Nop
 
2229