RFR: Save both IU and FPU state in WB stub around runtime call
Aleksey Shipilev
shade at redhat.com
Tue Nov 20 14:54:38 UTC 2018
On 11/20/18 3:46 PM, Roman Kennke wrote:
>> On 11/20/18 2:19 PM, Roman Kennke wrote:
>>> http://cr.openjdk.java.net/~rkennke/fixwbstub/webrev.00/
>>
>> *) It is unfortunate we have to restore %rax and do the RB part of WB on this path. I don't see an
>> easy way out, though. Please put the comment near RB on rax:
>> // Need to restore the WB result, which have to be the forwarded object.
>
> The alternative would easy but ugly in other ways: do what we do now,
> i.e. push all (GP) registers one after the other, do the FPU parts with
> push_FPU_state() and pop_FPU_state(), and pop the GP registers in
> reverse order, except %rax. What would you prefer?
Both are ugly. RB on %eax seems a bit less ugly.
I think AArch64 makes it non-ugly by doing MacroAssembler::push_call_clobbered_registers, but no
such luck at x86.
-Aleksey
More information about the shenandoah-dev
mailing list