|
@@ -1152,8 +1152,34 @@ void instr_D9_7_reg(int32_t r) {
|
|
|
fpu_op_D9_7_reg(r);
|
|
|
}
|
|
|
|
|
|
-void instr_DA_mem(int32_t addr, int32_t r) { task_switch_test(); fpu_op_DA_mem(r, addr); }
|
|
|
-void instr_DA_reg(int32_t r2, int32_t r) { task_switch_test(); fpu_op_DA_reg(0xC0 | r2 | r << 3); }
|
|
|
+void instr_DA_0_mem(int32_t addr) { task_switch_test(); fpu_fadd(safe_read32s(addr)); }
|
|
|
+void instr_DA_1_mem(int32_t addr) { task_switch_test(); fpu_fmul(safe_read32s(addr)); }
|
|
|
+void instr_DA_2_mem(int32_t addr) { task_switch_test(); fpu_fcom(safe_read32s(addr)); }
|
|
|
+void instr_DA_3_mem(int32_t addr) { task_switch_test(); fpu_fcomp(safe_read32s(addr)); }
|
|
|
+void instr_DA_4_mem(int32_t addr) { task_switch_test(); fpu_fsub(safe_read32s(addr)); }
|
|
|
+void instr_DA_5_mem(int32_t addr) { task_switch_test(); fpu_fsubr(safe_read32s(addr)); }
|
|
|
+void instr_DA_6_mem(int32_t addr) { task_switch_test(); fpu_fdiv(safe_read32s(addr)); }
|
|
|
+void instr_DA_7_mem(int32_t addr) { task_switch_test(); fpu_fdivr(safe_read32s(addr)); }
|
|
|
+
|
|
|
+void instr_DA_0_reg(int32_t r) { task_switch_test(); fpu_fcmovcc(test_b(), r); }
|
|
|
+void instr_DA_1_reg(int32_t r) { task_switch_test(); fpu_fcmovcc(test_z(), r); }
|
|
|
+void instr_DA_2_reg(int32_t r) { task_switch_test(); fpu_fcmovcc(test_be(), r); }
|
|
|
+void instr_DA_3_reg(int32_t r) { task_switch_test(); fpu_fcmovcc(test_p(), r); }
|
|
|
+void instr_DA_4_reg(int32_t r) { trigger_ud(); }
|
|
|
+void instr_DA_5_reg(int32_t r) {
|
|
|
+ task_switch_test();
|
|
|
+ if(r == 1)
|
|
|
+ {
|
|
|
+ fpu_fucompp();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ trigger_ud();
|
|
|
+ }
|
|
|
+}
|
|
|
+void instr_DA_6_reg(int32_t r) { trigger_ud(); }
|
|
|
+void instr_DA_7_reg(int32_t r) { trigger_ud(); }
|
|
|
+
|
|
|
void instr_DB_mem(int32_t addr, int32_t r) { task_switch_test(); fpu_op_DB_mem(r, addr); }
|
|
|
void instr_DB_reg(int32_t r2, int32_t r) { task_switch_test(); fpu_op_DB_reg(0xC0 | r2 | r << 3); }
|
|
|
void instr_DC_mem(int32_t addr, int32_t r) { task_switch_test(); fpu_op_DC_mem(r, addr); }
|