RFR: fix shenandoah store checks and implicit null checks on aarch64
Andrew Haley
aph at redhat.com
Thu Jun 22 16:46:36 UTC 2017
On 22/06/17 17:11, Roland Westrelin wrote:
>
>> Presumably this isn't a patchable address, so it's emitted as a simple
>> integer constant? If it's of the correct type, we should output it as
>> mov(reg, address). This will not change size.
>
> It's a patch I worked on a while back so I don't have all the details
> fresh in my mind but in MacroAssembler::stop()
>
> mov(c_rarg0, (address)msg);
>
> would call:
>
> inline void mov(Register dst, address addr)
> {
> mov_immediate64(dst, (u_int64_t)addr);
> }
>
> and MacroAssembler::mov_immediate64() is quite a bit more involved than
> a simple mov.
>
> Anyway, I don't like my change so I welcome any other suggestion.
Ah, yes, I see. I'd change stop() to use
mov(c_rarg0, Address((address)msg));
which is a proper relocatable address.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the shenandoah-dev
mailing list