From e4a401563474d3cac1799f7696a09693c4ad534f Mon Sep 17 00:00:00 2001 From: chedahub <2017000029@ushs.hs.kr> Date: Sat, 1 Nov 2025 01:03:09 +0900 Subject: [PATCH] Fix(ppcvle): Correct si_split16 immediate decoding for I16A-form instructions --- arch/powerpc/decode/vle32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/decode/vle32.c b/arch/powerpc/decode/vle32.c index 7f87689dc4..43289bc5ad 100644 --- a/arch/powerpc/decode/vle32.c +++ b/arch/powerpc/decode/vle32.c @@ -326,7 +326,7 @@ static uint32_t ComputeSCI8(uint32_t word32) { static void FillOperands32Vle(Instruction* instruction, uint32_t word32, uint64_t address, bool translate) { - uint16_t ui0_4 = (word32 >> 16) & 0x1f; + uint16_t ui0_4 = (word32 >> 21) & 0x1f; uint16_t ui5_15 = word32 & 0x7ff; uint32_t ui_split16 = (ui0_4 << 11) | ui5_15; int32_t si_split16 = (int32_t)(int16_t)(uint16_t)(ui_split16);