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

implement non-trivial argument passing semantics #1148

Closed
ivg opened this issue Jun 23, 2020 · 1 comment
Closed

implement non-trivial argument passing semantics #1148

ivg opened this issue Jun 23, 2020 · 1 comment
Assignees
Labels

Comments

@ivg
Copy link
Member

ivg commented Jun 23, 2020

As #1147 shows we have a long-standing problem with argument passing semantics and we can have cases when the values passed to the call-return method are not the values that are used by the actual binary code.

We have two places in the Primus code where values produced by the body of functions are reflected back to the physical locations used by the binary code. The first place is the Primus Lisp interpreter, where the problem is limited (we support some argument passing semantics, but obviously not all). The other place left unattended for a long time and it wasn't supporting any argument passing except passing directly through a register.

The task is to unify this code and implement more (see also this commit). It should be basically the responsibility of the interpreter (not Lisp interpreter) that the values stored in the arguments are the values that affect the binary code.

@ivg ivg added the primus label Jun 23, 2020
@ivg ivg self-assigned this Jun 23, 2020
@ivg
Copy link
Member Author

ivg commented Jun 9, 2022

fixed in #1498

@ivg ivg closed this as completed Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant