File xenia_PR2231.patch of Package xenia

From 41f451bf8b74bbe63ed1a7a4448315bd01d2f5fe Mon Sep 17 00:00:00 2001
From: guccigang420 <>
Date: Sun, 1 Oct 2023 17:30:28 +0200
Subject: [PATCH] Fixed MulHi in value.cc for Linux systems

---
 src/xenia/cpu/hir/value.cc | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/xenia/cpu/hir/value.cc b/src/xenia/cpu/hir/value.cc
index 1a72ba22f6..caf1eaf96a 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<uint64_t>(
+        constant.i64 = static_cast<uint64_t>((
             static_cast<unsigned __int128>(constant.i64) *
-            static_cast<unsigned __int128>(other->constant.i64));
+            static_cast<unsigned __int128>(other->constant.i64))
+            >> 64);
       } else {
         constant.i64 =
-            static_cast<uint64_t>(static_cast<__int128>(constant.i64) *
-                                  static_cast<__int128>(other->constant.i64));
+            static_cast<uint64_t>((static_cast<__int128>(constant.i64) *
+                                  static_cast<__int128>(other->constant.i64))
+                                  >> 64);
       }
 #endif  // XE_COMPILER_MSVC
       break;
openSUSE Build Service is sponsored by