--- np2/i386c/ia32/instructions/seg_reg.c 2003/12/08 00:55:32 1.1 +++ np2/i386c/ia32/instructions/seg_reg.c 2004/02/18 20:11:37 1.3 @@ -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.3 2004/02/18 20:11:37 yui Exp $ */ /* * Copyright (c) 2003 NONAKA Kimihiro @@ -44,11 +44,11 @@ LES_GwMp(void) 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 = (WORD)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -64,7 +64,7 @@ LES_GdMp(void) 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); @@ -84,11 +84,11 @@ LSS_GwMp(void) 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 = (WORD)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -104,7 +104,7 @@ LSS_GdMp(void) 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); @@ -124,11 +124,11 @@ LDS_GwMp(void) 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 = (WORD)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -144,7 +144,7 @@ LDS_GdMp(void) 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); @@ -164,11 +164,11 @@ LFS_GwMp(void) 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 = (WORD)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -184,7 +184,7 @@ LFS_GdMp(void) 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); @@ -204,11 +204,11 @@ LGS_GwMp(void) 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 = (WORD)dst; return; } EXCEPTION(UD_EXCEPTION, 0); @@ -224,7 +224,7 @@ LGS_GdMp(void) 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);