View | Details | Raw Unified | Return to bug 197190
Collapse All | Expand All

(-)file_not_specified_in_diff (-3 / +3 lines)
Line  Link Here
0
-- hw/xfree86/x86emu/prim_ops.c
0
++ hw/xfree86/x86emu/prim_ops.c
Lines 2082-2088 Link Here
2082
void imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s)
2082
void imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s)
2083
{
2083
{
2084
#ifdef	__HAS_LONG_LONG__
2084
#ifdef	__HAS_LONG_LONG__
2085
	s64 res = (s32)d * (s32)s;
2085
	s64 res = (s64)(s32)d * (s32)s;
2086
2086
2087
	*res_lo = (u32)res;
2087
	*res_lo = (u32)res;
2088
	*res_hi = (u32)(res >> 32);
2088
	*res_hi = (u32)(res >> 32);
Lines 2174-2180 Link Here
2174
void mul_long(u32 s)
2174
void mul_long(u32 s)
2175
{
2175
{
2176
#ifdef	__HAS_LONG_LONG__
2176
#ifdef	__HAS_LONG_LONG__
2177
	u64 res = (u32)M.x86.R_EAX * (u32)s;
2177
	u64 res = (u64)M.x86.R_EAX * s;
2178
2178
2179
	M.x86.R_EAX = (u32)res;
2179
	M.x86.R_EAX = (u32)res;
2180
	M.x86.R_EDX = (u32)(res >> 32);
2180
	M.x86.R_EDX = (u32)(res >> 32);

Return to bug 197190