summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorchedahub <2017000029@ushs.hs.kr>2025-11-03 18:00:35 +0900
committerPeter LaFosse <peter@vector35.com>2025-11-03 12:49:02 -0500
commit251799ddc71f7c4027d7317ec00c87189b499eb4 (patch)
tree448bf4d24c8c074a0f0388132d61dd2e7f22ca39 /arch
parentd32a550355b7c4e7eba5e6dac7df7db7894b5139 (diff)
Fix VLE ANDIx translation to always store result in destination register
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/il.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/il.cpp b/arch/powerpc/il.cpp
index 728b3069..67ce4b99 100644
--- a/arch/powerpc/il.cpp
+++ b/arch/powerpc/il.cpp
@@ -660,8 +660,9 @@ bool GetLowLevelILForPPCInstruction(Architecture *arch, LowLevelILFunction &il,
// VLE instructions that get translated to ANDIx may
// not have the rc bit set
- if (instruction->flags.rc)
- ei0 = il.SetRegister(addressSize_l, oper0->reg, ei0, IL_FLAGWRITE_CR0_S);
+ ei0 = il.SetRegister(addressSize_l, oper0->reg, ei0,
+ instruction->flags.rc ? IL_FLAGWRITE_CR0_S : 0
+ );
il.AddInstruction(ei0);
break;