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

Mips64 support for syscalls2 and OSI_linux #1321

Merged
merged 20 commits into from
Aug 10, 2023
Merged

Mips64 support for syscalls2 and OSI_linux #1321

merged 20 commits into from
Aug 10, 2023

Conversation

AndrewFasano
Copy link
Member

@AndrewFasano AndrewFasano commented Jul 21, 2023

Extends syscalls2 profile generation logic to support multiple ABIs where multiple syscall numbers can map to the same syscall. Adds logic into syscalls2 core logic for reading arguments to support multiple ABIs.

Adds n64 and n32 support for MIPS/MIPS64.

Adds a new macro for endian adjustment in OSI_linux inspired by Mark's code in #1320 to make the compiler pick between bswap32/bswap64 depending on the size of the object being flipped.

Adds MIPS64 to the default build list in docker.

@AndrewFasano AndrewFasano force-pushed the mips64osi branch 2 times, most recently from e32183d to 778b934 Compare July 21, 2023 20:16
@AndrewFasano AndrewFasano requested review from jamcleod and removed request for off-by-1-error July 24, 2023 18:13
Also adds some more macro-enabled debug prints
…cal functions

Long term we might need a better design, but this seems to be sufficient
for mips o32/n32/n64 ABIs.

When two callnos map to the same function name (even with different
signatures) remove duplicate handling logic. We may wish to improve this
in the future so users can request a specific variant of a syscall, but
this is just a cleaner version of our existing logic.

Templates changed to clearly show details of multiple callnos/prototypes
or to leave generated code unchanged if there's only a single callno

These changes may cause issues when re-generating signatures for other
architectures, if it happens let me know.
@AndrewFasano AndrewFasano merged commit 6f3362a into dev Aug 10, 2023
26 of 27 checks passed
@AndrewFasano AndrewFasano deleted the mips64osi branch August 10, 2023 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants