From 52dfc0cf9365d6f758b8c4fee59859418725d5c6 Mon Sep 17 00:00:00 2001 From: dingusdev <52434309+dingusdev@users.noreply.github.com> Date: Wed, 31 Jan 2024 08:06:33 -0700 Subject: [PATCH] Slightly faster typecasting --- cpu/ppc/ppcfpopcodes.cpp | 16 ++++++++-------- cpu/ppc/ppcopcodes.cpp | 34 +++++++++++++++++----------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/cpu/ppc/ppcfpopcodes.cpp b/cpu/ppc/ppcfpopcodes.cpp index f2d7c0c..907e67a 100644 --- a/cpu/ppc/ppcfpopcodes.cpp +++ b/cpu/ppc/ppcfpopcodes.cpp @@ -695,7 +695,7 @@ void dppc_interpreter::ppc_fctiwz() { void dppc_interpreter::ppc_lfs() { ppc_grab_regsfpdia(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a) ? val_reg_a : 0; float result = (float)mmu_read_vmem(ppc_effective_address); ppc_state.fpr[reg_d].dbl64_r = (double)result; @@ -705,7 +705,7 @@ void dppc_interpreter::ppc_lfs() { void dppc_interpreter::ppc_lfsu() { ppc_grab_regsfpdia(); if (reg_a) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a) ? val_reg_a : 0; float result = (float)mmu_read_vmem(ppc_effective_address); ppc_state.fpr[reg_d].dbl64_r = (double)result; @@ -736,7 +736,7 @@ void dppc_interpreter::ppc_lfsux() { void dppc_interpreter::ppc_lfd() { ppc_grab_regsfpdia(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a) ? val_reg_a : 0; ppc_result64_d = mmu_read_vmem(ppc_effective_address); ppc_store_dfpresult_int(reg_d); @@ -745,7 +745,7 @@ void dppc_interpreter::ppc_lfd() { void dppc_interpreter::ppc_lfdu() { ppc_grab_regsfpdia(); if (reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += val_reg_a; ppc_result64_d = mmu_read_vmem(ppc_effective_address); ppc_store_dfpresult_int(reg_d); @@ -776,7 +776,7 @@ void dppc_interpreter::ppc_lfdux() { void dppc_interpreter::ppc_stfs() { ppc_grab_regsfpsia(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a) ? val_reg_a : 0; float result = ppc_state.fpr[reg_s].dbl64_r; mmu_write_vmem(ppc_effective_address, uint32_t(result)); @@ -785,7 +785,7 @@ void dppc_interpreter::ppc_stfs() { void dppc_interpreter::ppc_stfsu() { ppc_grab_regsfpsia(); if (reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += val_reg_a; float result = ppc_state.fpr[reg_s].dbl64_r; mmu_write_vmem(ppc_effective_address, uint32_t(result)); @@ -816,7 +816,7 @@ void dppc_interpreter::ppc_stfsux() { void dppc_interpreter::ppc_stfd() { ppc_grab_regsfpsia(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a) ? val_reg_a : 0; mmu_write_vmem(ppc_effective_address, ppc_state.fpr[reg_s].int64_r); } @@ -824,7 +824,7 @@ void dppc_interpreter::ppc_stfd() { void dppc_interpreter::ppc_stfdu() { ppc_grab_regsfpsia(); if (reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += val_reg_a; mmu_write_vmem(ppc_effective_address, ppc_state.fpr[reg_s].int64_r); ppc_state.gpr[reg_a] = ppc_effective_address; diff --git a/cpu/ppc/ppcopcodes.cpp b/cpu/ppc/ppcopcodes.cpp index 5994357..e2e5919 100644 --- a/cpu/ppc/ppcopcodes.cpp +++ b/cpu/ppc/ppcopcodes.cpp @@ -60,7 +60,7 @@ void ppc_store_result_rega() { void ppc_grab_regsdasimm() { reg_d = (ppc_cur_instruction >> 21) & 31; reg_a = (ppc_cur_instruction >> 16) & 31; - simm = int32_t(int16_t(ppc_cur_instruction & 0xFFFFUL)); + simm = int32_t(int16_t(ppc_cur_instruction)); ppc_result_a = ppc_state.gpr[reg_a]; } @@ -73,7 +73,7 @@ inline void ppc_grab_regsdauimm() { inline void ppc_grab_regsasimm() { reg_a = (ppc_cur_instruction >> 16) & 31; - simm = int32_t(int16_t(ppc_cur_instruction & 0xFFFFUL)); + simm = int32_t(int16_t(ppc_cur_instruction)); ppc_result_a = ppc_state.gpr[reg_a]; } @@ -1577,7 +1577,7 @@ void dppc_interpreter::ppc_stb() { num_int_stores++; #endif ppc_grab_regssa(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += reg_a ? ppc_result_a : 0; mmu_write_vmem(ppc_effective_address, ppc_result_d); //mem_write_byte(ppc_effective_address, ppc_result_d); @@ -1599,7 +1599,7 @@ void dppc_interpreter::ppc_stbu() { #endif ppc_grab_regssa(); if (reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += ppc_result_a; mmu_write_vmem(ppc_effective_address, ppc_result_d); //mem_write_byte(ppc_effective_address, ppc_result_d); @@ -1629,7 +1629,7 @@ void dppc_interpreter::ppc_sth() { num_int_stores++; #endif ppc_grab_regssa(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a > 0) ? ppc_result_a : 0; mmu_write_vmem(ppc_effective_address, ppc_result_d); //mem_write_word(ppc_effective_address, ppc_result_d); @@ -1641,7 +1641,7 @@ void dppc_interpreter::ppc_sthu() { #endif ppc_grab_regssa(); if (reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += ppc_result_a; mmu_write_vmem(ppc_effective_address, ppc_result_d); //mem_write_word(ppc_effective_address, ppc_result_d); @@ -1692,7 +1692,7 @@ void dppc_interpreter::ppc_stw() { num_int_stores++; #endif ppc_grab_regssa(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += reg_a ? ppc_result_a : 0; mmu_write_vmem(ppc_effective_address, ppc_result_d); //mem_write_dword(ppc_effective_address, ppc_result_d); @@ -1733,7 +1733,7 @@ void dppc_interpreter::ppc_stwu() { #endif ppc_grab_regssa(); if (reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += ppc_result_a; mmu_write_vmem(ppc_effective_address, ppc_result_d); //mem_write_dword(ppc_effective_address, ppc_result_d); @@ -1774,7 +1774,7 @@ void dppc_interpreter::ppc_stmw() { num_int_stores++; #endif ppc_grab_regssa(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a > 0) ? ppc_result_a : 0; /* what should we do if EA is unaligned? */ @@ -1794,7 +1794,7 @@ void dppc_interpreter::ppc_lbz() { num_int_loads++; #endif ppc_grab_regsda(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a > 0) ? ppc_result_a : 0; //ppc_result_d = mem_grab_byte(ppc_effective_address); ppc_result_d = mmu_read_vmem(ppc_effective_address); @@ -1806,7 +1806,7 @@ void dppc_interpreter::ppc_lbzu() { num_int_loads++; #endif ppc_grab_regsda(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); if ((reg_a != reg_d) || reg_a != 0) { ppc_effective_address += ppc_result_a; //ppc_result_d = mem_grab_byte(ppc_effective_address); @@ -1853,7 +1853,7 @@ void dppc_interpreter::ppc_lhz() { num_int_loads++; #endif ppc_grab_regsda(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += reg_a ? ppc_result_a : 0; //ppc_result_d = mem_grab_word(ppc_effective_address); ppc_result_d = mmu_read_vmem(ppc_effective_address); @@ -1866,7 +1866,7 @@ void dppc_interpreter::ppc_lhzu() { #endif ppc_grab_regsda(); if ((reg_a != reg_d) || reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += ppc_result_a; //ppc_result_d = mem_grab_word(ppc_effective_address); ppc_result_d = mmu_read_vmem(ppc_effective_address); @@ -1911,7 +1911,7 @@ void dppc_interpreter::ppc_lha() { num_int_loads++; #endif ppc_grab_regsda(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a > 0) ? ppc_result_a : 0; //uint16_t val = mem_grab_word(ppc_effective_address); uint16_t val = mmu_read_vmem(ppc_effective_address); @@ -1925,7 +1925,7 @@ void dppc_interpreter::ppc_lhau() { #endif ppc_grab_regsda(); if ((reg_a != reg_d) || reg_a != 0) { - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += ppc_result_a; //uint16_t val = mem_grab_word(ppc_effective_address); uint16_t val = mmu_read_vmem(ppc_effective_address); @@ -1985,7 +1985,7 @@ void dppc_interpreter::ppc_lwz() { num_int_loads++; #endif ppc_grab_regsda(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); ppc_effective_address += (reg_a > 0) ? ppc_result_a : 0; //ppc_result_d = mem_grab_dword(ppc_effective_address); ppc_result_d = mmu_read_vmem(ppc_effective_address); @@ -2008,7 +2008,7 @@ void dppc_interpreter::ppc_lwzu() { num_int_loads++; #endif ppc_grab_regsda(); - ppc_effective_address = (int32_t)((int16_t)(ppc_cur_instruction & 0xFFFF)); + ppc_effective_address = int32_t(int16_t(ppc_cur_instruction)); if ((reg_a != reg_d) || reg_a != 0) { ppc_effective_address += ppc_result_a; //ppc_result_d = mem_grab_dword(ppc_effective_address);