[foreign-abi] RFR: Add support for a special VaList carrier
Jorn Vernee
jvernee at openjdk.java.net
Wed May 27 16:09:14 UTC 2020
Hi,
This patch adds a special VaList carrier to CSupport that can be used by C linker implementations to pass `va_list`
arguments to upcalls and downcalls.
Currently Windows VaList and SysV VaLists are implemented, but AArach64 not yet.
The API for the Reader and Builder might be a bit strange; the limitation to int, long, and double comes from the
standard argument promotions that are done in C when calling a variadic function. Since we do not not how to promote
any arbitrary value, at least for now the API restricts itself to accepting only types that would not be promoted in C,
leaving any needed conversion up to the user.
For reviewers; I moved CallArranger.TypeClass + classification code to the top level, since it is now shared with the
VaList implementations, so that's where the CallArranger diff comes from.
Thanks,
Jorn
-------------
Commit messages:
- Add support for a special VaList carrier to upcalls and downcalls
Changes: https://git.openjdk.java.net/panama-foreign/pull/184/files
Webrev: https://webrevs.openjdk.java.net/panama-foreign/184/webrev.00
Stats: 1952 lines in 13 files changed: 1667 ins; 270 del; 15 mod
Patch: https://git.openjdk.java.net/panama-foreign/pull/184.diff
Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/184/head:pull/184
PR: https://git.openjdk.java.net/panama-foreign/pull/184
More information about the panama-dev
mailing list