[lworld] RFR: 8272753: [lworld] "Invalid frame size" assert in frame::repair_sender_sp

Tobias Hartmann thartmann at openjdk.java.net
Fri Aug 20 11:02:06 UTC 2021


Verification code asserts during stack walking when trying to repair the stack of a C2 compiled method with scalarized arguments because the stack increment is invalid. The problem is that `C->output()->sp_inc_offset()` used by `MacroAssembler::verified_entry` does not account for alignment of the frame size and therefore points to the wrong slot. Like we already do in C1, we should simply hard code the slot to right below where `rbp` was saved.

This patch only fixes x86, I've filed [JDK-8272760](https://bugs.openjdk.java.net/browse/JDK-8272760) for Aarch64.

Thanks,
Tobias

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

Commit messages:
 - 8272753: [lworld] "Invalid frame size" assert in frame::repair_sender_sp

Changes: https://git.openjdk.java.net/valhalla/pull/536/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=536&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8272753
  Stats: 70 lines in 5 files changed: 60 ins; 2 del; 8 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/536.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/536/head:pull/536

PR: https://git.openjdk.java.net/valhalla/pull/536


More information about the valhalla-dev mailing list