RFR: 8262355: Support for AVX-512 opmask register allocation. [v2]

Jatin Bhateja jbhateja at openjdk.java.net
Fri Mar 5 10:04:08 UTC 2021


On Tue, 2 Mar 2021 11:43:31 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   8262355: Fix for AARCH64 build failure.
>
> src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp line 505:
> 
>> 503:     caller_saved.Insert(OptoReg::as_OptoReg(r10->as_VMReg()));
>> 504:     caller_saved.Insert(OptoReg::as_OptoReg(r11->as_VMReg()));
>> 505:     if (UseAVX > 2) {
> 
> Similar question here: `ZSaveLiveRegisters` handles GP registers and vector registers differently. Why predicate registers are handled the same way GP registers are and not as vector registers?

Hi Vladimir, 
ZGC load barriers embeds a CALL instruction which is not exposed to compiler, thus opmask registers which are caller saved as per X86 ABI are saved before making the call and later restored back.

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

PR: https://git.openjdk.java.net/jdk/pull/2768


More information about the hotspot-compiler-dev mailing list