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

Reply via email to