--- np2/i386c/ia32/resolve.c 2004/01/07 14:49:42 1.3 +++ np2/i386c/ia32/resolve.c 2004/01/23 14:33:26 1.4 @@ -1,4 +1,4 @@ -/* $Id: resolve.c,v 1.3 2004/01/07 14:49:42 monaka Exp $ */ +/* $Id: resolve.c,v 1.4 2004/01/23 14:33:26 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -71,8 +71,6 @@ static DWORD ea_bx_si(void) { - PROFILE_INC_EA16(0); - CPU_INST_SEGREG_INDEX = DS_FIX; return (CPU_BX + CPU_SI); } @@ -82,8 +80,6 @@ ea_bx_si_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(1); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_BX + CPU_SI); @@ -94,8 +90,6 @@ ea_bx_si_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(2); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_BX + CPU_SI); @@ -105,8 +99,6 @@ static DWORD ea_bx_di(void) { - PROFILE_INC_EA16(3); - CPU_INST_SEGREG_INDEX = DS_FIX; return (CPU_BX + CPU_DI); } @@ -116,8 +108,6 @@ ea_bx_di_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(4); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_BX + CPU_DI); @@ -128,8 +118,6 @@ ea_bx_di_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(5); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_BX + CPU_DI); @@ -139,8 +127,6 @@ static DWORD ea_bp_si(void) { - PROFILE_INC_EA16(6); - CPU_INST_SEGREG_INDEX = SS_FIX; return (CPU_BP + CPU_SI); } @@ -150,8 +136,6 @@ ea_bp_si_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(7); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return (adrs + CPU_BP + CPU_SI); @@ -162,8 +146,6 @@ ea_bp_si_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(8); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return (adrs + CPU_BP + CPU_SI); @@ -173,8 +155,6 @@ static DWORD ea_bp_di(void) { - PROFILE_INC_EA16(9); - CPU_INST_SEGREG_INDEX = SS_FIX; return (CPU_BP + CPU_DI); } @@ -184,8 +164,6 @@ ea_bp_di_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(10); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return (adrs + CPU_BP + CPU_DI); @@ -196,8 +174,6 @@ ea_bp_di_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(11); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return (adrs + CPU_BP + CPU_DI); @@ -207,8 +183,6 @@ static DWORD ea_si(void) { - PROFILE_INC_EA16(12); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_SI; } @@ -218,8 +192,6 @@ ea_si_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(13); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_SI); @@ -230,8 +202,6 @@ ea_si_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(14); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_SI); @@ -241,8 +211,6 @@ static DWORD ea_di(void) { - PROFILE_INC_EA16(15); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_DI; } @@ -252,8 +220,6 @@ ea_di_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(16); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_DI); @@ -264,8 +230,6 @@ ea_di_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(17); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_DI); @@ -276,8 +240,6 @@ ea_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(18); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs; @@ -288,8 +250,6 @@ ea_bp_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(19); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return (adrs + CPU_BP); @@ -300,8 +260,6 @@ ea_bp_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(20); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return (adrs + CPU_BP); @@ -311,8 +269,6 @@ static DWORD ea_bx(void) { - PROFILE_INC_EA16(21); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_BX; } @@ -322,8 +278,6 @@ ea_bx_disp8(void) { SDWORD adrs; - PROFILE_INC_EA16(22); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_BX); @@ -334,8 +288,6 @@ ea_bx_disp16(void) { DWORD adrs; - PROFILE_INC_EA16(23); - GET_PCWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return (adrs + CPU_BX); @@ -367,8 +319,6 @@ static DWORD ea32_eax(void) { - PROFILE_INC_EA32(0); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_EAX; } @@ -377,8 +327,6 @@ static DWORD ea32_ecx(void) { - PROFILE_INC_EA32(1); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_ECX; } @@ -387,8 +335,6 @@ static DWORD ea32_edx(void) { - PROFILE_INC_EA32(2); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_EDX; } @@ -397,8 +343,6 @@ static DWORD ea32_ebx(void) { - PROFILE_INC_EA32(3); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_EBX; } @@ -409,13 +353,11 @@ ea32_sib(void) DWORD op, dst; DWORD base, idx, scale; - PROFILE_INC_EA32(4); - GET_PCBYTE(op); - base = op & 7; idx = (op >> 3) & 7; scale = (op >> 6) & 3; + switch (base) { case 0: case 1: case 2: case 3: case 6: case 7: CPU_INST_SEGREG_INDEX = DS_FIX; @@ -439,7 +381,6 @@ ea32_sib(void) } if (idx != 4) dst += CPU_REGS_DWORD(idx) << scale; - PROFILE_INC_SIB0(op); return dst; } @@ -448,8 +389,6 @@ ea32_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(5); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs; @@ -459,8 +398,6 @@ static DWORD ea32_esi(void) { - PROFILE_INC_EA32(6); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_ESI; } @@ -469,8 +406,6 @@ static DWORD ea32_edi(void) { - PROFILE_INC_EA32(7); - CPU_INST_SEGREG_INDEX = DS_FIX; return CPU_EDI; } @@ -480,8 +415,6 @@ ea32_eax_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(8); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EAX; @@ -492,8 +425,6 @@ ea32_ecx_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(9); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_ECX; @@ -504,8 +435,6 @@ ea32_edx_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(10); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EDX; @@ -516,8 +445,6 @@ ea32_ebx_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(11); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EBX; @@ -530,14 +457,13 @@ ea32_sib_disp8(void) DWORD op; DWORD base, idx, scale; - PROFILE_INC_EA32(12); - GET_PCBYTE(op); - GET_PCBYTESD(adrs); - base = op & 7; idx = (op >> 3) & 7; scale = (op >> 6) & 3; + + GET_PCBYTESD(adrs); + switch (base) { case 0: case 1: case 2: case 3: case 6: case 7: CPU_INST_SEGREG_INDEX = DS_FIX; @@ -549,7 +475,6 @@ ea32_sib_disp8(void) } if (idx != 4) adrs += CPU_REGS_DWORD(idx) << scale; - PROFILE_INC_SIB1(op); return CPU_REGS_DWORD(base) + adrs; } @@ -558,8 +483,6 @@ ea32_ebp_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(13); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return adrs + CPU_EBP; @@ -570,8 +493,6 @@ ea32_esi_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(14); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_ESI; @@ -582,8 +503,6 @@ ea32_edi_disp8(void) { SDWORD adrs; - PROFILE_INC_EA32(15); - GET_PCBYTESD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EDI; @@ -594,8 +513,6 @@ ea32_eax_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(16); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EAX; @@ -606,8 +523,6 @@ ea32_ecx_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(17); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_ECX; @@ -618,8 +533,6 @@ ea32_edx_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(18); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EDX; @@ -630,8 +543,6 @@ ea32_ebx_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(19); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EBX; @@ -644,14 +555,13 @@ ea32_sib_disp32(void) DWORD op; DWORD base, idx, scale; - PROFILE_INC_EA32(20); - GET_PCBYTE(op); - GET_PCDWORD(adrs); - base = op & 7; idx = (op >> 3) & 7; scale = (op >> 6) & 3; + + GET_PCDWORD(adrs); + switch (base) { case 0: case 1: case 2: case 3: case 6: case 7: CPU_INST_SEGREG_INDEX = DS_FIX; @@ -663,7 +573,6 @@ ea32_sib_disp32(void) } if (idx != 4) adrs += CPU_REGS_DWORD(idx) << scale; - PROFILE_INC_SIB2(op); return CPU_REGS_DWORD(base) + adrs; } @@ -672,8 +581,6 @@ ea32_ebp_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(21); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = SS_FIX; return adrs + CPU_EBP; @@ -684,8 +591,6 @@ ea32_esi_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(22); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_ESI; @@ -696,8 +601,6 @@ ea32_edi_disp32(void) { DWORD adrs; - PROFILE_INC_EA32(23); - GET_PCDWORD(adrs); CPU_INST_SEGREG_INDEX = DS_FIX; return adrs + CPU_EDI;