From 39429aada7ba6ab22dda6b62c0bc5bb59540d407 Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Fri, 3 May 2024 14:26:29 -0700 Subject: [PATCH] [a64] Fix `BYTE_SWAP_V128` This just reverses the bytes of 32-bit values, not reverse the whole vector. --- src/xenia/cpu/backend/a64/a64_sequences.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/xenia/cpu/backend/a64/a64_sequences.cc b/src/xenia/cpu/backend/a64/a64_sequences.cc index a5c20802b..21fcde1de 100644 --- a/src/xenia/cpu/backend/a64/a64_sequences.cc +++ b/src/xenia/cpu/backend/a64/a64_sequences.cc @@ -2626,9 +2626,7 @@ struct BYTE_SWAP_V128 : Sequence> { static void Emit(A64Emitter& e, const EmitArgType& i) { // Reverse upper and lower 64-bit halfs - e.REV64(i.dest.reg().B16(), i.src1.reg().B16()); - // Reverse the 64-bit halfs themselves - e.EXT(i.dest.reg().B16(), i.dest.reg().B16(), i.dest.reg().B16(), 8); + e.REV32(i.dest.reg().B16(), i.src1.reg().B16()); } }; EMITTER_OPCODE_TABLE(OPCODE_BYTE_SWAP, BYTE_SWAP_I16, BYTE_SWAP_I32,