From 9d331d99af090088a6c110f231e9f3d3b4e423c8 Mon Sep 17 00:00:00 2001 From: Will Martin Date: Wed, 21 Jan 2026 10:40:21 +0900 Subject: [PATCH] [A64/Emitter] Document VPackD3DCOLOR mask semantics - Note PSHUFB vs TBL 0xFF behavior --- src/xenia/cpu/backend/a64/a64_emitter.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/xenia/cpu/backend/a64/a64_emitter.cc b/src/xenia/cpu/backend/a64/a64_emitter.cc index 56bfd07dc..ac439dba8 100644 --- a/src/xenia/cpu/backend/a64/a64_emitter.cc +++ b/src/xenia/cpu/backend/a64/a64_emitter.cc @@ -1229,6 +1229,8 @@ static const vec128_t v_consts[] = { /* VPermuteByteMask */ vec128b(0x1F), /* VPackD3DCOLORSat */ vec128i(0x404000FFu), /* VPackD3DCOLOR */ + // Note: x86 PSHUFB uses 0xFF to zero bytes, ARM TBL uses indices >= 16 + // Keep original 0xFF for consistency, handle in implementation vec128i(0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0C000408u), /* VUnpackD3DCOLOR */ vec128i(0xFFFFFF0Eu, 0xFFFFFF0Du, 0xFFFFFF0Cu, 0xFFFFFF0Fu),