# HG changeset patch # User TomW # Date 1411816426 -3600 # Node ID b7ff0dbb7baf3c02dcb5e0c8eb3aeab501aa9ee6 # Parent a0a99c64d528d38229d5aaf45038cb2fac690e3b Fixed incorrect flags on some versions of IMUL. diff -r a0a99c64d528 -r b7ff0dbb7baf src/x86_ops_mul.h --- a/src/x86_ops_mul.h Mon Sep 22 19:28:42 2014 +0100 +++ b/src/x86_ops_mul.h Sat Sep 27 12:13:46 2014 +0100 @@ -160,7 +160,7 @@ static int opIMUL_w_w_a16(uint32_t fetchdat) { - int32_t templ; + uint32_t templ; fetch_ea_16(fetchdat); templ = (int32_t)(int16_t)regs[reg].w * (int32_t)(int16_t)geteaw(); @@ -175,7 +175,7 @@ } static int opIMUL_w_w_a32(uint32_t fetchdat) { - int32_t templ; + uint32_t templ; fetch_ea_32(fetchdat); templ = (int32_t)(int16_t)regs[reg].w * (int32_t)(int16_t)geteaw(); @@ -191,7 +191,7 @@ static int opIMUL_l_l_a16(uint32_t fetchdat) { - int64_t temp64; + uint64_t temp64; fetch_ea_16(fetchdat); temp64 = (int64_t)(int32_t)regs[reg].l * (int64_t)(int32_t)geteal(); @@ -206,7 +206,7 @@ } static int opIMUL_l_l_a32(uint32_t fetchdat) { - int64_t temp64; + uint64_t temp64; fetch_ea_32(fetchdat); temp64 = (int64_t)(int32_t)regs[reg].l * (int64_t)(int32_t)geteal();