Currently, the VM treats method handle call sites in a special way. As a method handle is assumed to change the SP of its caller, the caller's SP is saved to a convenient location (e.g., a callee-saved register). The special treatment of method handle invocations adds complexity to the VM, as not only call sites, but also deoptimization handlers and stack walking must distinguish method handle call sites from other call sites.
JDK-8068945 investigated this issue on x86. Method handle invocations do not alter the SP of their caller, therefore saving/restoring the SP can be disabled on x86.
The goal of this enhancement is to investigate the way method handle invocations work on all other supported platforms. If method handle invocations do not change their caller's SP on any supported platform, the special treatment of method handle invocations can be removed that will result in somewhat simplified VM code.
The goal of this enhancement is to investigate the way method handle invocations work on all other supported platforms. If method handle invocations do not change their caller's SP on any supported platform, the special treatment of method handle invocations can be removed that will result in somewhat simplified VM code.
- relates to
-
JDK-8068945 Use RBP register as proper frame pointer in JIT compiled code on x86
- Resolved