Closed bobataylor closed 3 years ago
We have a fix in for this that should be ready in the next couple of days. I'll make a note of this issue when it gets merged.
@GhidorahRex if you're looking into PPC fixes, any chance for some attention on 1672?
Fixed by b7499e1bc1c4f097de2312fad3acae990fb2ac43
Describe the bug SIMM20 only exports the lowest 16 bits of a 20-bit immediate value. This causes any immediate greater than 0xFFFF or less than 0x0000 to be incorrect. https://github.com/NationalSecurityAgency/ghidra/blob/5234839b24c418219e35d0902161ca47ce98ce91/Ghidra/Processors/PowerPC/data/languages/ppc_vle.sinc#L48
To Reproduce Find any
e_li
instruction that uses an immediate larger than 16 bits. Ghidra's assembler works for testing negative values, just remember to set the VLE register to 1.Expected behavior SIMM20 should export all 20 bits of the immediate. Values like -0x1 and 0x12345 should work.
Environment (please complete the following information):
Additional context Changing the size of the export to 3 bytes instead of 2 seems to fix the problem, but I'm not sure this is the best solution.