RFR: 8266609: AArch64: include FP/LR space in LIR_Assembler::initial_frame_size_in_bytes()
Nick Gasson
ngasson at openjdk.java.net
Thu May 6 10:09:09 UTC 2021
LIR_Assembler::initial_frame_size_in_bytes() returns the frame size
without the additional 2*wordSize needed to store FP/LR (i.e. just the
space required for the C1 locals). When we pass this value to
MacroAssembler build_frame and remove_frame we need to remember to add
back the 2*wordSize. This patch changes initial_frame_size_in_bytes()
to return the full frame size including the space for FP/LR. The PPC
and S390 ports already do this, and it also matches the behaviour of
C->output()->frame_size_in_bytes() in C2.
This change may seem a bit trivial in mainline but the Valhalla lworld
branch makes more calls to build_frame/remove_frame in C1 and keeping
track of whether "framesize" is with or without FP/LR quickly becomes
confusing.
Tested tier1 on AArch64. The only use of this function is as input to
C1_MacroAssembler build_frame() and remove_frame() so seems safe.
-------------
Commit messages:
- 8266609: AArch64: include FP/LR space in LIR_Assembler::initial_frame_size_in_bytes()
Changes: https://git.openjdk.java.net/jdk/pull/3898/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3898&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8266609
Stats: 12 lines in 4 files changed: 2 ins; 4 del; 6 mod
Patch: https://git.openjdk.java.net/jdk/pull/3898.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3898/head:pull/3898
PR: https://git.openjdk.java.net/jdk/pull/3898
More information about the hotspot-dev
mailing list