diff options
| author | chedahub <2017000029@ushs.hs.kr> | 2025-11-03 18:00:35 +0900 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2025-11-03 12:49:02 -0500 |
| commit | 251799ddc71f7c4027d7317ec00c87189b499eb4 (patch) | |
| tree | 448bf4d24c8c074a0f0388132d61dd2e7f22ca39 /arch/powerpc | |
| parent | d32a550355b7c4e7eba5e6dac7df7db7894b5139 (diff) | |
Fix VLE ANDIx translation to always store result in destination register
Diffstat (limited to 'arch/powerpc')
| -rw-r--r-- | arch/powerpc/il.cpp | 5 |
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; |
