--- np2/i386c/ia32/resolve.h 2003/12/08 00:55:31 1.1 +++ np2/i386c/ia32/resolve.h 2004/02/20 16:09:04 1.4 @@ -1,4 +1,4 @@ -/* $Id: resolve.h,v 1.1 2003/12/08 00:55:31 yui Exp $ */ +/* $Id: resolve.h,v 1.4 2004/02/20 16:09:04 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -36,10 +36,23 @@ 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) +#if defined(DEBUG) || !defined(IA32_INLINE_CALC_EA) +UINT32 calc_ea_dst(UINT32 op); +#else +UINT32 (*calc_ea_dst_tbl[0x100])(void); +UINT32 (*calc_ea32_dst_tbl[0x100])(void); + +INLINE static UINT32 +calc_ea_dst(UINT32 op) +{ + + __ASSERT(op < 0x100); + + if (!CPU_INST_AS32) + return ((*calc_ea_dst_tbl[op])() & 0xffff); + return (*calc_ea32_dst_tbl[op])(); +} +#endif #ifdef __cplusplus }