Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean assignments for SIMD copy #7277

Open
shapaz opened this issue Dec 12, 2024 · 0 comments
Open

Clean assignments for SIMD copy #7277

shapaz opened this issue Dec 12, 2024 · 0 comments
Assignees
Labels
Feature: Decompiler Status: Triage Information is being gathered

Comments

@shapaz
Copy link

shapaz commented Dec 12, 2024

Is your feature request related to a problem? Please describe.
I am decompiling ARM 32bit code that uses SIMD optimisations for copying data, i.e., instead of moving data as words with ldr/str instructions, the compiler copies multiple values at once with vld1.64/vst1.32:
image

The decompiler, despite showing the operation as distinct assignments, presents confusing code that combines the input values with CONCAT then separates it with casts and shifts:
image

Describe the solution you'd like
I would like to see the decompiled code as distinct assignments of each value, since it always holds that:

(int)CONCAT44(x,y) == y
(int)(CONCAT44(x,y)>>32) == x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature: Decompiler Status: Triage Information is being gathered
Projects
None yet
Development

No branches or pull requests

3 participants