On Mon, 11 May 2026 16:58:55 GMT, Andrew Haley <[email protected]> wrote:
>> src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp line 1910: >> >>> 1908: assert(ret_addr_offset == __ offset(), "embedded return address not >>> allowed"); >>> 1909: add_call_info_here(op->info()); >>> 1910: __ restore_profile_rng(); >> >> All right, this handles Java calls. What about `rt_call`-s? They clobber >> `xmm14/xmm15` that we are using for `UseVregsForProfileCapture` too, since >> they are caller-save. > > Good point. > x86 has _no_ callee-saved fp/vector registers. Because of that, we need to > save and restore xmm14/xmm15 around all runtime calls, which generates a > tonne of instructions and horribly bloats everything. In addition that moves > many well-known offsets in the runtime code,which adds more things we'd have > to change. > For that reason I'm going to remove `UseVregsForProfileCapture`. It's just > too much for this experimental PR. Agreed. Looks like doing save-in-vector is more hassle than it is worth. I would be happy if we just not yank the register for tier1 code. tier2/3 code can suffer with one fewer GP register. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/28541#discussion_r3220721810
