may as well preempt the vr4300 mul bug

This commit is contained in:
lif 2023-12-17 03:55:45 -08:00
parent b7d26c8081
commit a28418a331

View file

@ -267,12 +267,28 @@ typedef enum
#define mips_emit_mtlo(rs) \ #define mips_emit_mtlo(rs) \
mips_emit_special(mtlo, rs, 0, 0, 0) \ mips_emit_special(mtlo, rs, 0, 0, 0) \
#ifdef NINTENDO64
// "VR4300 multiplication bug", aka mips64-gcc -mfix4300
#define mips_emit_mult(rs, rt) \
mips_emit_special(mult, rs, rt, 0, 0) \
;mips_emit_nop(); mips_emit_nop()
#define mips_emit_multu(rs, rt) \
mips_emit_special(multu, rs, rt, 0, 0) \
;mips_emit_nop(); mips_emit_nop()
#else
#define mips_emit_mult(rs, rt) \ #define mips_emit_mult(rs, rt) \
mips_emit_special(mult, rs, rt, 0, 0) \ mips_emit_special(mult, rs, rt, 0, 0) \
#define mips_emit_multu(rs, rt) \ #define mips_emit_multu(rs, rt) \
mips_emit_special(multu, rs, rt, 0, 0) \ mips_emit_special(multu, rs, rt, 0, 0) \
#endif
#define mips_emit_div(rs, rt) \ #define mips_emit_div(rs, rt) \
mips_emit_special(div, rs, rt, 0, 0) \ mips_emit_special(div, rs, rt, 0, 0) \