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