das-labor / panopticon

A libre cross-platform disassembler.
https://panopticon.re
GNU General Public License v3.0
1.43k stars 78 forks source link

x86 intructions need some crucial implementations #324

Closed m4b closed 7 years ago

m4b commented 7 years ago

/cc @flanfly

I've mentioned this a few times now, but the rreil needs some loving on x86

Specifically, I would 100% love to see leaq implemented above all else; but I'm afraid I don't really know how to do it. Mostly i'm just terrified ;)

Currently for some analyses, I have to switch between mnemonic (which is an Rvalue) and the statements implementing the mnemonic to access constants in the basic block.

For leaq though, since it doesn't have an implementation, I can't access it in the statements implementing the mnemonic, which is a pain.

Ideally, I should never have to access the rvalue version of the mnemonic (also this is a bug imho, but it also made syntax highlighting easy so i'm ok with it for now :P)

It also makes sophisticated analyses not possible, since basically there's no IR to do the analysis on for many crucial instructions.

So, i'd really like to see some of these instructions get better lifting implementations, like the various jmps, ret, push, pop, and of course, leaq