--- np2/i386c/ia32/resolve.h 2003/12/08 00:55:31 1.1 +++ np2/i386c/ia32/resolve.h 2008/03/22 04:03:07 1.7 @@ -1,4 +1,4 @@ -/* $Id: resolve.h,v 1.1 2003/12/08 00:55:31 yui Exp $ */ +/* $Id: resolve.h,v 1.7 2008/03/22 04:03:07 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -12,8 +12,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 @@ -36,10 +34,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) +static INLINE 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 }