void gendiv_d(usf_state_t * state) { #ifdef INTERPRET_DIV_D gencallinterp(state, (unsigned int)state->current_instruction_table.DIV_D, 0); #else gencheck_cop1_unusable(state); mov_eax_memoffs32(state, (unsigned int *)(&state->reg_cop1_double[state->dst->f.cf.fs])); fld_preg32_qword(state, EAX); mov_eax_memoffs32(state, (unsigned int *)(&state->reg_cop1_double[state->dst->f.cf.ft])); fdiv_preg32_qword(state, EAX); mov_eax_memoffs32(state, (unsigned int *)(&state->reg_cop1_double[state->dst->f.cf.fd])); fstp_preg32_qword(state, EAX); #endif }
void gendiv_d() { #ifdef INTERPRET_DIV_D gencallinterp((unsigned long)DIV_D, 0); #else gencheck_cop1_unusable(); mov_eax_memoffs32((unsigned long *)(®_cop1_double[dst->f.cf.fs])); fld_preg32_qword(EAX); mov_eax_memoffs32((unsigned long *)(®_cop1_double[dst->f.cf.ft])); fdiv_preg32_qword(EAX); mov_eax_memoffs32((unsigned long *)(®_cop1_double[dst->f.cf.fd])); fstp_preg32_qword(EAX); #endif }