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

Core: Implement the x64 calling convention resolver (msvc/gcc) #333

Merged
merged 1 commit into from
Sep 2, 2024

Conversation

Alluseri
Copy link
Contributor

@Alluseri Alluseri commented Sep 2, 2024

I gave up on GCC ABI so this isn't perfect, but I left enough comments to (hopefully) make it clear for future myself. Waiting for a more elegant way to deal with true structs in Cpp2IL.Core.

Also made minor improvements in the x86 (I swear it must be called x64) instruction set.

// If that's not possible, uncomment the binary type checks.
// This *will* break everything on x32.

const int ptrSize = 8;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Also available as: AppContext.Binary.PointerSize

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I know. X64 explicitly states the pointer size is going to be 8 bytes, so I hardcoded it as a constant to avoid unnecessary property gets and because declaring ptrSize outside of the resolution method would look better than if it was inside of it.

@SamboyCoding SamboyCoding merged commit b2c8663 into SamboyCoding:development Sep 2, 2024
5 of 6 checks passed
@coveralls
Copy link

coveralls commented Sep 2, 2024

Pull Request Test Coverage Report for Build 10660949996

Details

  • 0 of 109 (0.0%) changed or added relevant lines in 2 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.3%) to 28.835%

Changes Missing Coverage Covered Lines Changed/Added Lines %
Cpp2IL.Core/InstructionSets/X86InstructionSet.cs 0 26 0.0%
Cpp2IL.Core/Utils/X64CallingConventionResolver.cs 0 83 0.0%
Totals Coverage Status
Change from base Build 10654575026: -0.3%
Covered Lines: 3314
Relevant Lines: 9856

💛 - Coveralls

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.

4 participants