| version 1.5, 2004/03/23 15:29:34 | version 1.7, 2004/08/05 05:37:57 | 
| Line 30 | Line 30 | 
 | #ifndef IA32_CPU_IA32XC_MCR__ | #ifndef IA32_CPU_IA32XC_MCR__ | 
 | #define IA32_CPU_IA32XC_MCR__ | #define IA32_CPU_IA32XC_MCR__ | 
 |  |  | 
| #if defined(IA32_CROSS_CHECK) && defined(__GNUC__) && (defined(i386) || defined(__i386__)) | #if defined(IA32_CROSS_CHECK) && defined(GCC_CPU_ARCH_IA32) | 
 |  |  | 
 | #define IA32_CPU_ENABLE_XC | #define IA32_CPU_ENABLE_XC | 
 |  |  | 
| Line 247  do { \ | Line 247  do { \ | 
 | UINT32 __s = (s); \ | UINT32 __s = (s); \ | 
 | UINT32 __d = (d); \ | UINT32 __d = (d); \ | 
 | UINT32 __r = __d; \ | UINT32 __r = __d; \ | 
| DWORD __R; \ | UINT32 __R; \ | 
 | UINT8 __f; \ | UINT8 __f; \ | 
 | UINT8 __o; \ | UINT8 __o; \ | 
 | \ | \ | 
| Line 1337  do { \ | Line 1337  do { \ | 
 | : "=m" (__r), "=m" (__h), "=m" (__f), "=m" (__o) \ | : "=m" (__r), "=m" (__h), "=m" (__f), "=m" (__o) \ | 
 | : "m" (__d), "m" (__s) \ | : "m" (__d), "m" (__s) \ | 
 | : "eax", "edx"); \ | : "eax", "edx"); \ | 
| if (((DWORD)__R != __r) || \ | if (((UINT32)__R != __r) || \ | 
| ((DWORD)(__R >> 32) != __h) || \ | ((UINT32)(__R >> 32) != __h) || \ | 
 | (((__f ^ CPU_FLAGL) & C_FLAG) != 0) || \ | (((__f ^ CPU_FLAGL) & C_FLAG) != 0) || \ | 
 | (!CPU_OV != !__o)) { \ | (!CPU_OV != !__o)) { \ | 
 | ia32_warning("XC_DWORD_IMUL: __s = %08x, __d = %08x",__s, __d);\ | ia32_warning("XC_DWORD_IMUL: __s = %08x, __d = %08x",__s, __d);\ | 
 | ia32_warning("XC_DWORD_IMUL: __Rl = %08x, __r = %08x", \ | ia32_warning("XC_DWORD_IMUL: __Rl = %08x, __r = %08x", \ | 
| (DWORD)__R, __r); \ | (UINT32)__R, __r); \ | 
 | ia32_warning("XC_DWORD_IMUL: __Rh == %08x, __h == %08x", \ | ia32_warning("XC_DWORD_IMUL: __Rh == %08x, __h == %08x", \ | 
| (DWORD)(__R >> 32), __h); \ | (UINT32)(__R >> 32), __h); \ | 
 | ia32_warning("XC_DWORD_IMUL: CPU_FLAGL = %02x, __f = %02x, " \ | ia32_warning("XC_DWORD_IMUL: CPU_FLAGL = %02x, __f = %02x, " \ | 
 | "mask = %02x", CPU_FLAGL, __f, C_FLAG); \ | "mask = %02x", CPU_FLAGL, __f, C_FLAG); \ | 
 | ia32_warning("XC_DWORD_IMUL: CPU_OV = %s, __o = %s", \ | ia32_warning("XC_DWORD_IMUL: CPU_OV = %s, __o = %s", \ | 
 | CPU_OV ? "OV" : "NV", __o ? "OV" : "NV"); \ | CPU_OV ? "OV" : "NV", __o ? "OV" : "NV"); \ | 
| assert((DWORD)__R == __r); \ | assert((UINT32)__R == __r); \ | 
| assert((DWORD)(__R >> 32) == __h); \ | assert((UINT32)(__R >> 32) == __h); \ | 
 | assert(((__f ^ CPU_FLAGL) & C_FLAG) == 0); \ | assert(((__f ^ CPU_FLAGL) & C_FLAG) == 0); \ | 
 | assert(!CPU_OV == !__o); \ | assert(!CPU_OV == !__o); \ | 
 | } \ | } \ | 
| Line 1709  do { \ | Line 1709  do { \ | 
 |  |  | 
 | #define XC_STORE_FLAGL() | #define XC_STORE_FLAGL() | 
 |  |  | 
| #endif  /* IA32_CROSS_CHECK && __GNUC__ && (i386) || __i386__) */ | #endif  /* IA32_CROSS_CHECK && GCC_CPU_ARCH_IA32 */ | 
 |  |  | 
 | #endif  /* IA32_CPU_IA32_MCR__ */ | #endif  /* IA32_CPU_IA32_MCR__ */ |