Implement COP1_D_ROUND_L in cpu interpreter
This commit is contained in:
parent
de00171747
commit
32ade84138
|
@ -546,7 +546,7 @@ R4300iOp::Func * R4300iOp::BuildInterpreter()
|
||||||
Jump_CoP1_D[5] = COP1_D_ABS;
|
Jump_CoP1_D[5] = COP1_D_ABS;
|
||||||
Jump_CoP1_D[6] = COP1_D_MOV;
|
Jump_CoP1_D[6] = COP1_D_MOV;
|
||||||
Jump_CoP1_D[7] = COP1_D_NEG;
|
Jump_CoP1_D[7] = COP1_D_NEG;
|
||||||
Jump_CoP1_D[8] = UnknownOpcode;
|
Jump_CoP1_D[8] = COP1_D_ROUND_L;
|
||||||
Jump_CoP1_D[9] = COP1_D_TRUNC_L; //added by Witten
|
Jump_CoP1_D[9] = COP1_D_TRUNC_L; //added by Witten
|
||||||
Jump_CoP1_D[10] = COP1_D_CEIL_L; //added by Witten
|
Jump_CoP1_D[10] = COP1_D_CEIL_L; //added by Witten
|
||||||
Jump_CoP1_D[11] = COP1_D_FLOOR_L; //added by Witten
|
Jump_CoP1_D[11] = COP1_D_FLOOR_L; //added by Witten
|
||||||
|
@ -2658,6 +2658,12 @@ void R4300iOp::COP1_D_NEG()
|
||||||
*(double *)_FPR_D[m_Opcode.fd] = (*(double *)_FPR_D[m_Opcode.fs] * -1.0);
|
*(double *)_FPR_D[m_Opcode.fd] = (*(double *)_FPR_D[m_Opcode.fs] * -1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void R4300iOp::COP1_D_ROUND_L()
|
||||||
|
{
|
||||||
|
TEST_COP1_USABLE_EXCEPTION();
|
||||||
|
Double_RoundToInteger64(&*(uint64_t *)_FPR_S[m_Opcode.fd], &*(double *)_FPR_D[m_Opcode.fs], FE_TONEAREST);
|
||||||
|
}
|
||||||
|
|
||||||
void R4300iOp::COP1_D_TRUNC_L()
|
void R4300iOp::COP1_D_TRUNC_L()
|
||||||
{ //added by Witten
|
{ //added by Witten
|
||||||
TEST_COP1_USABLE_EXCEPTION();
|
TEST_COP1_USABLE_EXCEPTION();
|
||||||
|
|
|
@ -182,6 +182,7 @@ public:
|
||||||
static void COP1_D_ABS();
|
static void COP1_D_ABS();
|
||||||
static void COP1_D_MOV();
|
static void COP1_D_MOV();
|
||||||
static void COP1_D_NEG();
|
static void COP1_D_NEG();
|
||||||
|
static void COP1_D_ROUND_L();
|
||||||
static void COP1_D_TRUNC_L(); //added by Witten
|
static void COP1_D_TRUNC_L(); //added by Witten
|
||||||
static void COP1_D_CEIL_L(); //added by Witten
|
static void COP1_D_CEIL_L(); //added by Witten
|
||||||
static void COP1_D_FLOOR_L(); //added by Witten
|
static void COP1_D_FLOOR_L(); //added by Witten
|
||||||
|
|
|
@ -441,7 +441,7 @@ R4300iOp32::Func * R4300iOp32::BuildInterpreter()
|
||||||
Jump_CoP1_D[5] = R4300iOp::COP1_D_ABS;
|
Jump_CoP1_D[5] = R4300iOp::COP1_D_ABS;
|
||||||
Jump_CoP1_D[6] = R4300iOp::COP1_D_MOV;
|
Jump_CoP1_D[6] = R4300iOp::COP1_D_MOV;
|
||||||
Jump_CoP1_D[7] = R4300iOp::COP1_D_NEG;
|
Jump_CoP1_D[7] = R4300iOp::COP1_D_NEG;
|
||||||
Jump_CoP1_D[8] = R4300iOp::UnknownOpcode;
|
Jump_CoP1_D[8] = R4300iOp::COP1_D_ROUND_L;
|
||||||
Jump_CoP1_D[9] = R4300iOp::COP1_D_TRUNC_L; //added by Witten
|
Jump_CoP1_D[9] = R4300iOp::COP1_D_TRUNC_L; //added by Witten
|
||||||
Jump_CoP1_D[10] = R4300iOp::COP1_D_CEIL_L; //added by Witten
|
Jump_CoP1_D[10] = R4300iOp::COP1_D_CEIL_L; //added by Witten
|
||||||
Jump_CoP1_D[11] = R4300iOp::COP1_D_FLOOR_L; //added by Witten
|
Jump_CoP1_D[11] = R4300iOp::COP1_D_FLOOR_L; //added by Witten
|
||||||
|
|
Loading…
Reference in New Issue