예제 #1
0
파일: gcop1_l.c 프로젝트: AlexOteiza/n64ios
void gencvt_d_l(void)
{
#if defined(COUNT_INSTR)
   inc_m32abs(&instr_count[117]);
#endif
#ifdef INTERPRET_CVT_D_L
   gencallinterp((unsigned long long)CVT_D_L, 0);
#else
   gencheck_cop1_unusable();
   mov_reg64_m64abs(RAX, (unsigned long long *)(&reg_cop1_double[dst->f.cf.fs]));
   fild_preg64_qword(RAX);
   mov_reg64_m64abs(RAX, (unsigned long long *)(&reg_cop1_double[dst->f.cf.fd]));
   fstp_preg64_qword(RAX);
#endif
}
예제 #2
0
void gencvt_d_l(void)
{
#ifdef INTERPRET_CVT_D_L
   gencallinterp((native_type)cached_interpreter_table.CVT_D_L, 0);
#else
   gencheck_cop1_unusable();

#ifdef __x86_64__
   mov_xreg64_m64rel(RAX, (unsigned long long *)(&reg_cop1_double[dst->f.cf.fs]));
   fild_preg64_qword(RAX);
   mov_xreg64_m64rel(RAX, (unsigned long long *)(&reg_cop1_double[dst->f.cf.fd]));
   fstp_preg64_qword(RAX);
#else
   mov_eax_memoffs32((unsigned int*)(&reg_cop1_double[dst->f.cf.fs]));
   fild_preg32_qword(EAX);
   mov_eax_memoffs32((unsigned int*)(&reg_cop1_double[dst->f.cf.fd]));
   fstp_preg32_qword(EAX);
#endif
#endif
}