bool MatchDiv32s(u32 op,u32 pc) { u32 n = GetN(op); u32 m = GetM(op); div_som_reg1=NoReg; div_som_reg2=(Sh4RegType)m; div_som_reg3=(Sh4RegType)n; u32 match=MatchDiv32(pc+2,div_som_reg1,div_som_reg2,div_som_reg3); printf("DIV32S matched %d%% @ 0x%X\n",match*100/65,pc); if (match==65) { //DIV32S was perfectly matched :) printf("div32s %d/%d/%d\n",div_som_reg1,div_som_reg2,div_som_reg3); return true; } else //no match ... { /* printf("%04X\n",ReadMem16(pc-2)); printf("%04X\n",ReadMem16(pc-0)); printf("%04X\n",ReadMem16(pc+2)); printf("%04X\n",ReadMem16(pc+4)); printf("%04X\n",ReadMem16(pc+6));*/ return false; } }
bool MatchDiv32u(u32 op,u32 pc) { div_som_reg1=NoReg; div_som_reg2=NoReg; div_som_reg3=NoReg; u32 match=MatchDiv32(pc+2,div_som_reg1,div_som_reg2,div_som_reg3); //log("DIV32U matched %d%% @ 0x%X\n",match*100/65,pc); if (match==65) { //DIV32U was perfectly matched :) return true; } else //no match ... return false; }
bool __fastcall MatchDiv32s(u32 op,u32 pc) { u32 n = GetN(op); u32 m = GetM(op); div_som_reg1=NoReg; div_som_reg2=(Sh4RegType)m; div_som_reg3=(Sh4RegType)n; u32 match=MatchDiv32(pc+2,div_som_reg1,div_som_reg2,div_som_reg3); log("DIV32S matched %d%% @ 0x%X\n",match*100/65,pc); if (match==65) { //DIV32S was perfectly matched :) return true; } else //no match ... return false; }