--- np2/i386c/ia32/instructions/seg_reg.c 2003/12/08 00:55:32 1.1 +++ np2/i386c/ia32/instructions/seg_reg.c 2004/02/20 16:09:05 1.4 @@ -1,4 +1,4 @@ -/* $Id: seg_reg.c,v 1.1 2003/12/08 00:55:32 yui Exp $ */ +/* $Id: seg_reg.c,v 1.4 2004/02/20 16:09:05 monaka Exp $ */ /* * Copyright (c) 2003 NONAKA Kimihiro @@ -37,18 +37,18 @@ void LES_GwMp(void) { - WORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT16 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg16_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 2); CPU_SET_SEGREG(CPU_ES_INDEX, sreg); - *out = dst; + *out = (UINT16)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -57,14 +57,14 @@ LES_GwMp(void) void LES_GdMp(void) { - DWORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT32 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg32_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_d(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 4); CPU_SET_SEGREG(CPU_ES_INDEX, sreg); @@ -77,18 +77,18 @@ LES_GdMp(void) void LSS_GwMp(void) { - WORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT16 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg16_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 2); CPU_SET_SEGREG(CPU_SS_INDEX, sreg); - *out = dst; + *out = (UINT16)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -97,14 +97,14 @@ LSS_GwMp(void) void LSS_GdMp(void) { - DWORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT32 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg32_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_d(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 4); CPU_SET_SEGREG(CPU_SS_INDEX, sreg); @@ -117,18 +117,18 @@ LSS_GdMp(void) void LDS_GwMp(void) { - WORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT16 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg16_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 2); CPU_SET_SEGREG(CPU_DS_INDEX, sreg); - *out = dst; + *out = (UINT16)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -137,14 +137,14 @@ LDS_GwMp(void) void LDS_GdMp(void) { - DWORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT32 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg32_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_d(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 4); CPU_SET_SEGREG(CPU_DS_INDEX, sreg); @@ -157,18 +157,18 @@ LDS_GdMp(void) void LFS_GwMp(void) { - WORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT16 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg16_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 2); CPU_SET_SEGREG(CPU_FS_INDEX, sreg); - *out = dst; + *out = (UINT16)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -177,14 +177,14 @@ LFS_GwMp(void) void LFS_GdMp(void) { - DWORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT32 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg32_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_d(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 4); CPU_SET_SEGREG(CPU_FS_INDEX, sreg); @@ -197,18 +197,18 @@ LFS_GdMp(void) void LGS_GwMp(void) { - WORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT16 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg16_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 2); CPU_SET_SEGREG(CPU_GS_INDEX, sreg); - *out = dst; + *out = (UINT16)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -217,14 +217,14 @@ LGS_GwMp(void) void LGS_GdMp(void) { - DWORD *out; - DWORD op, dst, madr; - WORD sreg; + UINT32 *out; + UINT32 op, dst, madr; + UINT16 sreg; GET_PCBYTE(op); if (op < 0xc0) { out = reg32_b53[op]; - madr = get_ea(op); + madr = calc_ea_dst(op); dst = cpu_vmemoryread_d(CPU_INST_SEGREG_INDEX, madr); sreg = cpu_vmemoryread_w(CPU_INST_SEGREG_INDEX, madr + 4); CPU_SET_SEGREG(CPU_GS_INDEX, sreg);