diff --git a/SheepShaver/src/Unix/dyngen_precompiled/ppc-execute-impl.cpp b/SheepShaver/src/Unix/dyngen_precompiled/ppc-execute-impl.cpp index 41fe83a8..89d2c329 100644 --- a/SheepShaver/src/Unix/dyngen_precompiled/ppc-execute-impl.cpp +++ b/SheepShaver/src/Unix/dyngen_precompiled/ppc-execute-impl.cpp @@ -57,6 +57,7 @@ template void powerpc_cpu::execute_fp_arith(uint32); template void powerpc_cpu::execute_fp_arith(uint32); template void powerpc_cpu::execute_fp_round(uint32); +template void powerpc_cpu::execute_fp_arith(uint32); template void powerpc_cpu::execute_fp_arith(uint32); template void powerpc_cpu::execute_fp_arith(uint32); template void powerpc_cpu::execute_fp_arith(uint32); diff --git a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-decode.cpp b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-decode.cpp index 6281b01b..6c5c7ad9 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-decode.cpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-decode.cpp @@ -470,6 +470,11 @@ const powerpc_cpu::instr_info_t powerpc_cpu::powerpc_ii_table[] = { PPC_I(FNMSUBS), A_form, 59, 30, CFLOW_NORMAL }, + { "fres", + EXECUTE_FP_ARITH(double, fres, RD, RB, NONE, NONE, RC_BIT_G, true), + PPC_I(FRES), + A_form, 59, 24, CFLOW_NORMAL + }, { "frsp", EXECUTE_1(fp_round, RC_BIT_G), PPC_I(FRSP), diff --git a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-instructions.hpp b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-instructions.hpp index b24042b3..6e5b9891 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-instructions.hpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-instructions.hpp @@ -99,6 +99,7 @@ enum powerpc_instruction { PPC_I(FNMADDS), PPC_I(FNMSUB), PPC_I(FNMSUBS), + PPC_I(FRES), PPC_I(FRSP), PPC_I(FRSQRTE), PPC_I(FSEL),