You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be pretty awsome to have an ESIL RZIL/p-code representation of the instruction behavior.
ESIL RZIL would allow us to emulate the code, whereas the p-code representation would allow us to use the decompiler.
To be considered
Where does the behavior of each instruction comes from?
Parsing it from the manual is tricky. The PDF has to be converted to .txt which introduces errors. Removing those during parsing is really, really annoying. On top of that we need a C-parser afterwards.
Couldn't we get the instruction behavior from the QEMU src? Last time I checked they support instructions until v62 which would be fine for the beginning (E.g. the Pixel 2 has v62 processors. So this instruction set is not too old and probably covers most basic instructions).
Yes, ESIL is being deprecated, we have better-designed IL, you can see details here: rizinorg/rizin#1361
I recommend to wait until it is integrated first and a few major architectures switched from ESIL to it.
It would be pretty awsome to have an
ESILRZIL/p-code representation of the instruction behavior.ESILRZIL would allow us to emulate the code, whereas the p-code representation would allow us to use the decompiler.To be considered
Where does the behavior of each instruction comes from?
Parsing it from the manual is tricky. The PDF has to be converted to .txt which introduces errors. Removing those during parsing is really, really annoying. On top of that we need a C-parser afterwards.
Couldn't we get the instruction behavior from the QEMU src? Last time I checked they support instructions until v62 which would be fine for the beginning (E.g. the Pixel 2 has v62 processors. So this instruction set is not too old and probably covers most basic instructions).
ESIL seems to be reworked at the moment: New Rizin IL integration rizin#1361
Some instructions have enormously complex behavior. Especially HVX instructions.
A quick example from the HVX manual illustrates this pretty well:
vtmp.h=vgather(Rt,Mu,Vvv.w).h
maps to:
There are also simpler ones but this seems to be the most complex we will get.
The text was updated successfully, but these errors were encountered: