[foreign-memaccess+abi] RFR: 8312473: Return value corrupted when using CCS + isTrivial

Jorn Vernee jvernee at openjdk.org
Thu Jul 20 20:01:58 UTC 2023


Due to a bug in the downcall linker stub generation, we don't save the return value when capturing call state for trivial calls, and the return value gets corrupted. 

The fix is to simply save the return value when capturing call state, regardless of whether the call is trivial or not. In the case of just trivial calls that don't capture call state, we still don't save the return value around slow path calls for the thread state transition (which is not needed), since we don't generate those thread state transitions in the first first place.

I've updated the capture call state test to also test all the cases in trivial mode.

-------------

Commit messages:
 - return value corrupted when using CCS + isTrivial

Changes: https://git.openjdk.org/panama-foreign/pull/848/files
 Webrev: https://webrevs.openjdk.org/?repo=panama-foreign&pr=848&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8312473
  Stats: 39 lines in 5 files changed: 12 ins; 0 del; 27 mod
  Patch: https://git.openjdk.org/panama-foreign/pull/848.diff
  Fetch: git fetch https://git.openjdk.org/panama-foreign.git pull/848/head:pull/848

PR: https://git.openjdk.org/panama-foreign/pull/848


More information about the panama-dev mailing list