--- np2/i386c/ia32/resolve.h 2003/12/08 00:55:31 1.1 +++ np2/i386c/ia32/resolve.h 2004/03/23 15:29:34 1.5 @@ -1,4 +1,4 @@ -/* $Id: resolve.h,v 1.1 2003/12/08 00:55:31 yui Exp $ */ +/* $Id: resolve.h,v 1.5 2004/03/23 15:29:34 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -36,10 +36,18 @@ extern "C" { void resolve_init(void); -DWORD calc_ea_dst(DWORD); -#define calc_lea(op) calc_ea_dst(op) -#define get_ea(op) calc_ea_dst(op) -#define get_lea(op) calc_ea_dst(op) +INLINE static UINT32 +calc_ea_dst(UINT32 op) +{ + extern UINT32 (*calc_ea_dst_tbl[0x100])(void); + extern UINT32 (*calc_ea32_dst_tbl[0x100])(void); + + __ASSERT(op < 0x100); + + if (!CPU_INST_AS32) + return ((*calc_ea_dst_tbl[op])() & 0xffff); + return (*calc_ea32_dst_tbl[op])(); +} #ifdef __cplusplus }