RFR: 8296170: Refactor stack-locking path in C2_MacroAssembler::fast_unlock() [v4]
Roman Kennke
rkennke at openjdk.org
Wed Nov 16 18:19:19 UTC 2022
> The code in C2_MacroAssembler::fast_unlock() has several (minor) issues:
> - The stack-locking path for x86_32 is not under UseHeavyMonitors - it would be executed even when stack-locking is disabled.
> - The stack-locking paths are the same for x86_32 and x86_64 - they can be merged into a common path.
> - In x86_32 path, we call get_thread(boxReg) which is totally bogus because we clear boxReg right afterwards with xorptr(boxReg, boxReg).
> - In x86_32 path, the CheckSucc label is identical to the DONE label, and in-fact CheckSucc is only ever really used in the x86_64 path and can be moved there.
>
> Testing:
> - [x] tier1 (x86_32, x86_64)
> - [x] tier2 (x86_32, x86_64)
Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
- Merge branch 'master' into JDK-8296170
- Remove comments about DONE_LABEL being a hot target
- Merge remote-tracking branch 'upstream/master' into JDK-8296170
- 8296170: Refactor stack-locking path in C2_MacroAssembler::fast_unlock()
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/10936/files
- new: https://git.openjdk.org/jdk/pull/10936/files/153353ac..a75c36b2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=10936&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=10936&range=02-03
Stats: 8530 lines in 368 files changed: 5074 ins; 2001 del; 1455 mod
Patch: https://git.openjdk.org/jdk/pull/10936.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10936/head:pull/10936
PR: https://git.openjdk.org/jdk/pull/10936
More information about the hotspot-compiler-dev
mailing list