From 03439b2a493bf80bbc1cd49a1f7a4612eb495965 Mon Sep 17 00:00:00 2001 From: Maxim Poliakovski Date: Tue, 4 Feb 2020 00:58:04 +0100 Subject: [PATCH] Placeholders for SUBFEO[.], SUBFMEO[.] and SUBFZEO[.]. --- cpu/ppc/ppcemu.h | 6 ++++++ cpu/ppc/ppcexec.cpp | 18 ++++++++++-------- cpu/ppc/ppcopcodes.cpp | 25 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/cpu/ppc/ppcemu.h b/cpu/ppc/ppcemu.h index 19a421e..9384bb8 100644 --- a/cpu/ppc/ppcemu.h +++ b/cpu/ppc/ppcemu.h @@ -415,10 +415,16 @@ extern void ppc_subfco(); extern void ppc_subfcodot(); extern void ppc_subfe(); extern void ppc_subfedot(); +extern void ppc_subfeo(); +extern void ppc_subfeodot(); extern void ppc_subfme(); extern void ppc_subfmedot(); +extern void ppc_subfmeo(); +extern void ppc_subfmeodot(); extern void ppc_subfze(); extern void ppc_subfzedot(); +extern void ppc_subfzeo(); +extern void ppc_subfzeodot(); extern void ppc_sync(); extern void ppc_tlbia(); extern void ppc_tlbie(); diff --git a/cpu/ppc/ppcexec.cpp b/cpu/ppc/ppcexec.cpp index 597075c..a6e6126 100644 --- a/cpu/ppc/ppcexec.cpp +++ b/cpu/ppc/ppcexec.cpp @@ -118,14 +118,16 @@ static std::unordered_map SubOpcode31Grabber = { {1132, &ppc_tlbsync}, {1134, &ppc_lfsux}, {1190, &ppc_mfsr}, {1194, &ppc_lswi}, {1196, &ppc_sync}, {1198, &ppc_lfdx}, {1232, &ppc_nego}, {1233, &ppc_negodot}, {1238, &power_mulo}, - {1239, &power_mulodot}, {1262, &ppc_lfdux}, {1300, &ppc_addeo}, - {1301, &ppc_addeodot}, {1318, &ppc_mfsrin}, {1322, &ppc_stswx}, - {1324, &ppc_stwbrx}, {1326, &ppc_stfsx}, {1328, &power_srq}, - {1329, &power_srqdot}, {1330, &power_sre}, {1331, &power_sredot}, - {1390, &ppc_stfsux}, {1392, &power_sriq}, {1393, &power_sriqdot}, - {1428, &ppc_addzeo}, {1429, &ppc_addzeodot}, {1450, &ppc_stswi}, - {1454, &ppc_stfdx}, {1456, &power_srlq}, {1457, &power_srlqdot}, - {1458, &power_sreq}, {1459, &power_sreqdot}, {1492, &ppc_addmeo}, + {1239, &power_mulodot}, {1262, &ppc_lfdux}, {1296, &ppc_subfeo}, + {1297, &ppc_subfeodot}, {1300, &ppc_addeo}, {1301, &ppc_addeodot}, + {1318, &ppc_mfsrin}, {1322, &ppc_stswx}, {1324, &ppc_stwbrx}, + {1326, &ppc_stfsx}, {1328, &power_srq}, {1329, &power_srqdot}, + {1330, &power_sre}, {1331, &power_sredot}, {1390, &ppc_stfsux}, + {1392, &power_sriq}, {1393, &power_sriqdot}, {1424, &ppc_subfzeo}, + {1425, &ppc_subfzeodot}, {1428, &ppc_addzeo}, {1429, &ppc_addzeodot}, + {1450, &ppc_stswi}, {1454, &ppc_stfdx}, {1456, &power_srlq}, + {1457, &power_srlqdot}, {1458, &power_sreq}, {1459, &power_sreqdot}, + {1488, &ppc_subfmeo}, {1489, &ppc_subfmeodot}, {1492, &ppc_addmeo}, {1493, &ppc_addmeodot}, {1494, &ppc_mullwo}, {1495, &ppc_mullwodot}, {1518, &ppc_stfdux}, {1520, &power_srliq}, {1521, &power_srliqdot}, {1552, &power_dozo}, {1553, &power_dozodot}, {1556, &ppc_addo}, diff --git a/cpu/ppc/ppcopcodes.cpp b/cpu/ppc/ppcopcodes.cpp index 19aae4d..34e4a6b 100644 --- a/cpu/ppc/ppcopcodes.cpp +++ b/cpu/ppc/ppcopcodes.cpp @@ -573,6 +573,14 @@ void ppc_subfedot() { ppc_store_result_regd(); } +void ppc_subfeo() { + printf("SUBFEO placeholder, opcode = 0x%08X\n", ppc_cur_instruction); +} + +void ppc_subfeodot() { + printf("SUBFEODOT placeholder, opcode = 0x%08X\n", ppc_cur_instruction); +} + void ppc_subfme() { ppc_grab_regsda(); not_this = ~ppc_result_a; @@ -604,6 +612,14 @@ void ppc_subfmedot() { ppc_store_result_regd(); } +void ppc_subfmeo() { + printf("SUBFMEO placeholder, opcode = 0x%08X\n", ppc_cur_instruction); +} + +void ppc_subfmeodot() { + printf("SUBFMEODOT placeholder, opcode = 0x%08X\n", ppc_cur_instruction); +} + void ppc_subfze() { ppc_grab_regsda(); not_this = ~ppc_result_a; @@ -633,6 +649,15 @@ void ppc_subfzedot() { ppc_store_result_regd(); } +void ppc_subfzeo() { + printf("SUBFZEO placeholder, opcode = 0x%08X\n", ppc_cur_instruction); +} + +void ppc_subfzeodot() { + printf("SUBFZEODOT placeholder, opcode = 0x%08X\n", ppc_cur_instruction); +} + + void ppc_and() { ppc_grab_regssab(); ppc_result_a = ppc_result_d & ppc_result_b;