> Please review the following patch which adds virtual thread support for the > value class calling convention. Most of the changes are needed to handle > extended frames, i.e c1 or c2 frames that use more stack space for arguments > than the stack space allocated by the caller. These include changes in freeze > and thaw code, plus changes in the stackChunk walking code where we now need > a similar repair of the caller sp as in the current sender code. In this case > though, we only adjust _unextended_sp and keep the value of _sp. This is > because frames are walked without a full RegisterMap, but we still need to be > able to access the saved fp in the callee for gc purposes. The remaining > changes deal with saving and restoring the extra return registers when > calling thaw. > > Thanks to Tobias for working on the initial changes and for providing the > very useful new test TestVirtualThreads.java, included in this PR, which has > been great for catching many bugs. I also run the changes with the > valhalla-comp-stress job in mach5. It uncovered a couple of extra failures in > TestVirtualThreads.java, but I was able to reproduce them with platform > threads as well (8367151 and 8367258). I also added extra testing for value > classes in existing test Fuzz.java which has proven very useful too. > > Thanks, > Patricio
Patricio Chilano Mateo has updated the pull request incrementally with one additional commit since the last revision: add string to assert in is_in_frame() ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1556/files - new: https://git.openjdk.org/valhalla/pull/1556/files/39669832..e8759568 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1556&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1556&range=00-01 Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1556.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1556/head:pull/1556 PR: https://git.openjdk.org/valhalla/pull/1556
