lifting-bits / remill

Library for lifting machine code to LLVM bitcode
Apache License 2.0
1.22k stars 143 forks source link

Fix placement of 32 bit regs on e500 and populate the low bits of PC on BE #702

Closed 2over12 closed 4 months ago

2over12 commented 4 months ago

This fixes a type error related to storing the next pc in the pc reg after the original BE fix. Also fixes the location of the _r[N] regs on the e500

m4xw commented 4 months ago

Isnt that just basically reintroducing DoubleReg https://github.com/lifting-bits/remill/blob/608acf8edde0cbb50f7b0a036c3b2bea5442514f/include/remill/Arch/SPARC32/Runtime/State.h#L32 ? Should maybe also streamline the names into hi/lo ?

2over12 commented 4 months ago

@Ninja3047 i think the testing framework reads/writes registers in the wrong endianness as well.. this is going to be a pain to fix