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