-
Type:
Enhancement
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: repo-valhalla
-
Component/s: hotspot
-
Fix Understood
-
aarch64
See https://github.com/openjdk/valhalla/blob/b1d14c658511cced2a860d9e2741ae89827e25ba/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp#L6040-L6073 for the shape of the stack there.
LR/FP#2 are not reliable:
- rfp can contain an oop, and the GC is only aware it is save in FP#1 and will only update this (afterJDK-8367151)
- only LR#1 is patched when deoptimizing
so we should only use LR/FP#1. LR/FP#2 are only used as spacing. Rather than taking the risk of reading correct-looking values (but possibly not), in debug, we can save some clearly bad values that would never work by accident.
LR/FP#2 are not reliable:
- rfp can contain an oop, and the GC is only aware it is save in FP#1 and will only update this (after
- only LR#1 is patched when deoptimizing
so we should only use LR/FP#1. LR/FP#2 are only used as spacing. Rather than taking the risk of reading correct-looking values (but possibly not), in debug, we can save some clearly bad values that would never work by accident.
- is blocked by
-
JDK-8367151 [lworld] CorrectlyRestoreRfp.java triggers "bad oop found" during deoptimization
-
- Resolved
-