Home | History | Annotate | Line # | Download | only in mips
      1  1.1  christos   .macro fp_assert a, b
      2  1.1  christos   beq \a, \b, 1f
      3  1.1  christos   nop
      4  1.1  christos   j _fail
      5  1.1  christos   nop
      6  1.1  christos 1:
      7  1.1  christos   .endm
      8  1.1  christos 
      9  1.1  christos   .macro r6ck_1r inst, a, ret
     10  1.1  christos   li $4, \a
     11  1.1  christos   li $6, \ret
     12  1.1  christos   \inst $7, $4
     13  1.1  christos   fp_assert $6, $7
     14  1.1  christos   .endm
     15  1.1  christos 
     16  1.1  christos   .macro r6ck_1dr inst, a, ret
     17  1.1  christos   ld $4, \a
     18  1.1  christos   ld $6, \ret
     19  1.1  christos   \inst $7, $4
     20  1.1  christos   fp_assert $6, $7
     21  1.1  christos   .endm
     22  1.1  christos 
     23  1.1  christos   .macro r6ck_2r inst, a, b, ret
     24  1.1  christos   li $4, \a
     25  1.1  christos   li $5, \b
     26  1.1  christos   li $6, \ret
     27  1.1  christos   \inst $7, $4, $5
     28  1.1  christos   fp_assert $6, $7
     29  1.1  christos   .endm
     30  1.1  christos 
     31  1.1  christos   .macro r6ck_2dr inst, a, b, ret
     32  1.1  christos   ld $4, \a
     33  1.1  christos   ld $5, \b
     34  1.1  christos   ld $6, \ret
     35  1.1  christos   \inst $7, $4, $5
     36  1.1  christos   fp_assert $6, $7
     37  1.1  christos   .endm
     38  1.1  christos 
     39  1.1  christos   .macro r6ck_2dr1i inst, a, b, imm, ret
     40  1.1  christos   ld $4, \a
     41  1.1  christos   ld $5, \b
     42  1.1  christos   ld $6, \ret
     43  1.1  christos   \inst $7, $4, $5, \imm
     44  1.1  christos   fp_assert $6, $7
     45  1.1  christos   .endm
     46  1.1  christos 
     47  1.1  christos   .macro r6ck_1r1i inst, a, imm, ret
     48  1.1  christos   li $4, \a
     49  1.1  christos   li $6, \ret
     50  1.1  christos   \inst $7, $4, \imm
     51  1.1  christos   fp_assert $6, $7
     52  1.1  christos   .endm
     53  1.1  christos 
     54  1.1  christos   .macro r6ck_1dr1i inst, a, imm, ret
     55  1.1  christos   ld $4, \a
     56  1.1  christos   ld $6, \ret
     57  1.1  christos   \inst $7, $4, \imm
     58  1.1  christos   fp_assert $6, $7
     59  1.1  christos   .endm
     60  1.1  christos 
     61  1.1  christos   .macro r6ck_0dr1i inst, a, imm, ret
     62  1.1  christos   ld $4, \a
     63  1.1  christos   ld $6, \ret
     64  1.1  christos   \inst $4, $4, \imm
     65  1.1  christos   fp_assert $6, $4
     66  1.1  christos   .endm
     67  1.1  christos 
     68  1.1  christos   .macro r6ck_2r1i inst, a, b, imm, ret
     69  1.1  christos   li $4, \a
     70  1.1  christos   li $5, \b
     71  1.1  christos   li $6, \ret
     72  1.1  christos   \inst $7, $4, $5, \imm
     73  1.1  christos   fp_assert $6, $7
     74  1.1  christos   .endm
     75  1.1  christos 
     76  1.1  christos   .macro r6ck_3s inst, a, b, c, ret
     77  1.1  christos   li $4, \a
     78  1.1  christos   li $5, \b
     79  1.1  christos   li $6, \c
     80  1.1  christos   li $7, \ret
     81  1.1  christos   mtc1 $4, $f2
     82  1.1  christos   mtc1 $5, $f4
     83  1.1  christos   mtc1 $6, $f6
     84  1.1  christos   \inst $f2, $f4, $f6
     85  1.1  christos   mfc1 $8, $f2
     86  1.1  christos   fp_assert $7, $8
     87  1.1  christos   .endm
     88  1.1  christos 
     89  1.1  christos   .macro r6ck_2s inst, a, b, ret
     90  1.1  christos   li $4, \a
     91  1.1  christos   li $5, \b
     92  1.1  christos   li $6, \ret
     93  1.1  christos   mtc1 $4, $f2
     94  1.1  christos   mtc1 $5, $f4
     95  1.1  christos   \inst $f2, $f4
     96  1.1  christos   mfc1 $7, $f2
     97  1.1  christos   fp_assert $6, $7
     98  1.1  christos   .endm
     99  1.1  christos 
    100  1.1  christos   .macro r6ck_2d inst, a, b, ret
    101  1.1  christos   .data
    102  1.1  christos 1: .dword \a
    103  1.1  christos 2: .dword \b
    104  1.1  christos 3: .dword \ret
    105  1.1  christos   .text
    106  1.1  christos   la $4, 1b
    107  1.1  christos   la $5, 2b
    108  1.1  christos   la $6, 3b
    109  1.1  christos   ldc1 $f2, 0($4)
    110  1.1  christos   ldc1 $f4, 0($5)
    111  1.1  christos   lw $7, 0($6)
    112  1.1  christos   lw $8, 4($6)
    113  1.1  christos   \inst $f2, $f4
    114  1.1  christos 
    115  1.1  christos   #simulate dmfc1
    116  1.1  christos   mfhc1 $9, $f2
    117  1.1  christos   mfc1 $10, $f2
    118  1.1  christos   fp_assert $7, $9
    119  1.1  christos   fp_assert $8, $10
    120  1.1  christos   .endm
    121  1.1  christos 
    122  1.1  christos   .macro r6ck_3d inst, a, b, c, ret
    123  1.1  christos   .data
    124  1.1  christos 1: .dword \a
    125  1.1  christos 2: .dword \b
    126  1.1  christos 3: .dword \c
    127  1.1  christos 4: .dword \ret
    128  1.1  christos   .text
    129  1.1  christos   la $4, 1b
    130  1.1  christos   la $5, 2b
    131  1.1  christos   la $6, 3b
    132  1.1  christos   la $2, 4b
    133  1.1  christos   ldc1 $f2, 0($4)
    134  1.1  christos   ldc1 $f4, 0($5)
    135  1.1  christos   ldc1 $f6, 0($6)
    136  1.1  christos   lw $7, 0($2)
    137  1.1  christos   lw $8, 4($2)
    138  1.1  christos   \inst $f2, $f4, $f6
    139  1.1  christos 
    140  1.1  christos   #simulate dmfc1
    141  1.1  christos   mfhc1 $9, $f2
    142  1.1  christos   mfc1 $10, $f2
    143  1.1  christos   fp_assert $7, $9
    144  1.1  christos   fp_assert $8, $10
    145  1.1  christos   .endm
    146  1.1  christos 
    147  1.1  christos .text
    148  1.1  christos GetPC:
    149  1.1  christos   move $6, $ra
    150  1.1  christos   jr $ra
    151