diff --git a/src/xenia/cpu/hir/value.cc b/src/xenia/cpu/hir/value.cc index 1a72ba22f..caf1eaf96 100644 --- a/src/xenia/cpu/hir/value.cc +++ b/src/xenia/cpu/hir/value.cc @@ -409,13 +409,15 @@ void Value::MulHi(Value* other, bool is_unsigned) { } #else if (is_unsigned) { - constant.i64 = static_cast( + constant.i64 = static_cast(( static_cast(constant.i64) * - static_cast(other->constant.i64)); + static_cast(other->constant.i64)) + >> 64); } else { constant.i64 = - static_cast(static_cast<__int128>(constant.i64) * - static_cast<__int128>(other->constant.i64)); + static_cast((static_cast<__int128>(constant.i64) * + static_cast<__int128>(other->constant.i64)) + >> 64); } #endif // XE_COMPILER_MSVC break;