Improve lifting of some ARMv8 vector instructions like movi
#5664
Labels
Arch: ARM64
Issues with the AArch64 architecture plugin
Component: Architecture
Issue needs changes to an architecture plugin
Effort: Medium
Issue should take < 1 month
Impact: Medium
Issue is impactful with a bad, or no, workaround
Type: Enhancement
Issue is a small enhancement to existing functionality
What is the feature you'd like to have?
Some ARMv8 instructions, like the vector version of
movi
, are lifted in a way that causes a large amount of HLIL to be generated instead of amemset()
or a single assignment likev0 = 0xaaaaaaaaaaaaaaaaaa
.Is your feature request related to a problem?
Any time you have an instruction like
movi v0.16b, #0xaa
, you will wind up with the following regardless of the type you give it:This can happen quite frequently in some binaries and cause a real headache when trying to understand what the code is doing.
Are any alternative solutions acceptable?
Possibly? Really anything that doesn't expand into 16 HLIL instructions should be an improvement.
Additional Information:
This may be related to load/store splitting logic as well, unsure.
The text was updated successfully, but these errors were encountered: