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

[compiler] 128-bit arguments and return values #443

Closed
water111 opened this issue May 11, 2021 · 2 comments
Closed

[compiler] 128-bit arguments and return values #443

water111 opened this issue May 11, 2021 · 2 comments

Comments

@water111
Copy link
Collaborator

The compiler should support 128-bit values in argument and return registers.

By default, the compiler should use the type to determine if an argument/return should be passed in an xmm or a gpr. This will work in all cases we've seen so far, but you could imagine for example a function pointer with type (function object object) that is sometimes called with a 128-bit argument and sometimes not, and sometimes the function being called uses 128-bit arguments and sometimes not. If this ends up happening, we'll have to manually annotate these functions.

Functions should be able to use some declare form to pick xmm/gpr for each argument/return value.
There should be a call form added that allows a function call by pointer and overrides xmm/gpr for each argument/return value.

@water111
Copy link
Collaborator Author

Things to remember to test:

  • inline functions
  • methods
  • immediate lambda
  • bitfield inspects

@water111
Copy link
Collaborator Author

added in #510

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

No branches or pull requests

1 participant