RFR: 8286596: AArch64: -XX:UseBranchProtection=pac-ret crashes after JDK-8284161

Nick Gasson ngasson at openjdk.java.net
Thu May 12 15:00:16 UTC 2022


`RegisterSaver::restore_live_registers()` used to call `__ leave()` but after the Loom integration it directly pops LR/FP from the stack.  With `-XX:UseBranchProtection=pac-ret` we need a call to `__ authenticate_return_address()` here to insert the AUTIA instruction to check and strip the PAC code from the saved LR.

Tested `java -XX:UseBranchProtection=pac-ret -version` on a machine that supports PAC, plus tier1.  Note that some additional fixes will be required to support virtual threads with PAC enabled.

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

Commit messages:
 - 8286596: AArch64: -XX:UseBranchProtection=pac-ret crashes after JDK-8284161

Changes: https://git.openjdk.java.net/jdk/pull/8682/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8682&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8286596
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8682.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8682/head:pull/8682

PR: https://git.openjdk.java.net/jdk/pull/8682


More information about the hotspot-compiler-dev mailing list