--- np2/i386c/ia32/instructions/bin_arith.c 2004/03/29 14:19:25 1.11 +++ np2/i386c/ia32/instructions/bin_arith.c 2012/01/08 19:09:40 1.16 @@ -1,5 +1,3 @@ -/* $Id: bin_arith.c,v 1.11 2004/03/29 14:19:25 yui Exp $ */ - /* * Copyright (c) 2002-2004 NONAKA Kimihiro * All rights reserved. @@ -12,8 +10,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES @@ -47,7 +43,7 @@ ARITH_INSTRUCTION_3(SBB) /* * IMUL */ -void +void CPUCALL IMUL_ALEb(UINT32 op) { UINT32 madr; @@ -67,7 +63,7 @@ IMUL_ALEb(UINT32 op) CPU_AX = (UINT16)res; } -void +void CPUCALL IMUL_AXEw(UINT32 op) { UINT32 madr; @@ -88,7 +84,7 @@ IMUL_AXEw(UINT32 op) CPU_DX = (UINT16)(res >> 16); } -void +void CPUCALL IMUL_EAXEd(UINT32 op) { UINT32 madr; @@ -197,7 +193,7 @@ IMUL_GdEdId(void) /* * MUL */ -void +void CPUCALL MUL_ALEb(UINT32 op) { UINT32 res, madr; @@ -216,7 +212,7 @@ MUL_ALEb(UINT32 op) CPU_AX = (UINT16)res; } -void +void CPUCALL MUL_AXEw(UINT32 op) { UINT32 res, madr; @@ -236,7 +232,7 @@ MUL_AXEw(UINT32 op) CPU_DX = (UINT16)(res >> 16); } -void +void CPUCALL MUL_EAXEd(UINT32 op) { UINT32 res, madr; @@ -260,7 +256,7 @@ MUL_EAXEd(UINT32 op) /* * IDIV */ -void +void CPUCALL IDIV_ALEb(UINT32 op) { UINT32 madr; @@ -290,7 +286,7 @@ IDIV_ALEb(UINT32 op) EXCEPTION(DE_EXCEPTION, 0); } -void +void CPUCALL IDIV_AXEw(UINT32 op) { SINT32 tmp, r; @@ -320,7 +316,7 @@ IDIV_AXEw(UINT32 op) EXCEPTION(DE_EXCEPTION, 0); } -void +void CPUCALL IDIV_EAXEd(UINT32 op) { SINT64 tmp, r; @@ -354,7 +350,7 @@ IDIV_EAXEd(UINT32 op) /* * DIV */ -void +void CPUCALL DIV_ALEb(UINT32 op) { UINT32 madr; @@ -383,7 +379,7 @@ DIV_ALEb(UINT32 op) EXCEPTION(DE_EXCEPTION, 0); } -void +void CPUCALL DIV_AXEw(UINT32 op) { UINT32 madr; @@ -412,7 +408,7 @@ DIV_AXEw(UINT32 op) EXCEPTION(DE_EXCEPTION, 0); } -void +void CPUCALL DIV_EAXEd(UINT32 op) { UINT32 madr; @@ -494,34 +490,31 @@ void DEC_EDI(void) { DWORD_DEC(CPU_EDI); /* * NEG */ -static UINT32 +static UINT32 CPUCALL NEG1(UINT32 src, void *arg) { UINT32 dst; - (void)arg; BYTE_NEG(dst, src); return dst; } -static UINT32 +static UINT32 CPUCALL NEG2(UINT32 src, void *arg) { UINT32 dst; - (void)arg; WORD_NEG(dst, src); return dst; } -static UINT32 +static UINT32 CPUCALL NEG4(UINT32 src, void *arg) { UINT32 dst; - (void)arg; DWORD_NEG(dst, src); return dst; } -void +void CPUCALL NEG_Eb(UINT32 op) { UINT8 *out; @@ -536,11 +529,11 @@ NEG_Eb(UINT32 op) } else { CPU_WORKCLOCK(7); madr = calc_ea_dst(op); - cpu_memory_access_va_RMW(CPU_INST_SEGREG_INDEX, madr, NEG1, 0); + cpu_vmemory_RMW_b(CPU_INST_SEGREG_INDEX, madr, NEG1, 0); } } -void +void CPUCALL NEG_Ew(UINT32 op) { UINT16 *out; @@ -555,11 +548,11 @@ NEG_Ew(UINT32 op) } else { CPU_WORKCLOCK(7); madr = calc_ea_dst(op); - cpu_memory_access_va_RMW_w(CPU_INST_SEGREG_INDEX, madr, NEG2, 0); + cpu_vmemory_RMW_w(CPU_INST_SEGREG_INDEX, madr, NEG2, 0); } } -void +void CPUCALL NEG_Ed(UINT32 op) { UINT32 *out; @@ -574,7 +567,7 @@ NEG_Ed(UINT32 op) } else { CPU_WORKCLOCK(7); madr = calc_ea_dst(op); - cpu_memory_access_va_RMW_d(CPU_INST_SEGREG_INDEX, madr, NEG4, 0); + cpu_vmemory_RMW_d(CPU_INST_SEGREG_INDEX, madr, NEG4, 0); } } @@ -705,7 +698,7 @@ CMP_EAXId(void) DWORD_SUB(res, dst, src); } -void +void CPUCALL CMP_EbIb(UINT8 *regp, UINT32 src) { UINT32 dst, res; @@ -714,7 +707,7 @@ CMP_EbIb(UINT8 *regp, UINT32 src) BYTE_SUB(res, dst, src); } -void +void CPUCALL CMP_EbIb_ext(UINT32 madr, UINT32 src) { UINT32 dst, res; @@ -723,7 +716,7 @@ CMP_EbIb_ext(UINT32 madr, UINT32 src) BYTE_SUB(res, dst, src); } -void +void CPUCALL CMP_EwIx(UINT16 *regp, UINT32 src) { UINT32 dst, res; @@ -732,7 +725,7 @@ CMP_EwIx(UINT16 *regp, UINT32 src) WORD_SUB(res, dst, src); } -void +void CPUCALL CMP_EwIx_ext(UINT32 madr, UINT32 src) { UINT32 dst, res; @@ -741,7 +734,7 @@ CMP_EwIx_ext(UINT32 madr, UINT32 src) WORD_SUB(res, dst, src); } -void +void CPUCALL CMP_EdIx(UINT32 *regp, UINT32 src) { UINT32 dst, res; @@ -750,7 +743,7 @@ CMP_EdIx(UINT32 *regp, UINT32 src) DWORD_SUB(res, dst, src); } -void +void CPUCALL CMP_EdIx_ext(UINT32 madr, UINT32 src) { UINT32 dst, res;