From d254a5736b10d5be0adfccdcd6cf2b16b8ebbc36 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Fri, 18 Dec 2020 14:28:57 +0300 Subject: [PATCH] Fix bug with vector arg alignment in BIND_FUNC and callbacks. --- rpcs3/Emu/Cell/PPUCallback.h | 2 +- rpcs3/Emu/Cell/PPUFunction.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/Cell/PPUCallback.h b/rpcs3/Emu/Cell/PPUCallback.h index e9919bca56..742d275f1d 100644 --- a/rpcs3/Emu/Cell/PPUCallback.h +++ b/rpcs3/Emu/Cell/PPUCallback.h @@ -104,7 +104,7 @@ namespace ppu_cb_detail is_context ? ARG_CONTEXT : ARG_UNKNOWN; - const u32 g = g_count + (is_general || is_float ? 1 : is_vector ? ::align(g_count, 2) + 2 : 0); + const u32 g = g_count + (is_general || is_float ? 1 : is_vector ? (g_count & 1) + 2 : 0); const u32 f = f_count + is_float; const u32 v = v_count + is_vector; diff --git a/rpcs3/Emu/Cell/PPUFunction.h b/rpcs3/Emu/Cell/PPUFunction.h index cd6c68333b..665b78e74a 100644 --- a/rpcs3/Emu/Cell/PPUFunction.h +++ b/rpcs3/Emu/Cell/PPUFunction.h @@ -198,7 +198,7 @@ namespace ppu_func_detail is_variadic ? ARG_VARIADIC : ARG_UNKNOWN; - const u32 g = g_count + (is_general || is_float ? 1 : is_vector ? ::align(g_count, 2) + 2 : 0); + const u32 g = g_count + (is_general || is_float ? 1 : is_vector ? (g_count & 1) + 2 : 0); const u32 f = f_count + is_float; const u32 v = v_count + is_vector;