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

aarch32-symbolic: Setting up an ABI-compatible stack #439

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

langston-barrett
Copy link
Contributor

@langston-barrett langston-barrett commented Sep 20, 2024

Like #433 + #437, but for AArch32. Towards #430. Based on #438. Needs to be integrated into the test suite for validation.

@langston-barrett langston-barrett added the arch:aarch32 AArch32 (32 bit ARM) issues label Sep 20, 2024
@langston-barrett langston-barrett self-assigned this Sep 20, 2024
@@ -0,0 +1,249 @@
{-|
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RyanGlScott There's a lot of code here that's basically equivalent to the code for the x86_64 SysV ABI, particularly the part about writing spilled arguments to the stack while maintaining proper alignment. Do you have thoughts on the best way to share between the two (or if we should share it)? I could lift writeSpilledArgs to Data.Macaw.Symbolic.Stack perhaps, with a note that it's only appropriate for use on certain ABIs, and that you'd probably want to use the specializations of it that we would provide in Data.Macaw.{X86,AArch32}.Symbolic.ABI?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think putting the shared code (with caveats that it is only valid for certain ABIs) in macaw-symbolic is fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch:aarch32 AArch32 (32 bit ARM) issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants