[aarch64-port-dev ] RFR(S/M): 8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big for insn

Patric Hedlin patric.hedlin at oracle.com
Mon Jul 27 16:11:59 UTC 2020


Thanks for reviewing Andrew.

/Patric

On 2020-07-27 15:24, Andrew Haley wrote:
> Hi,
>
> On 27/07/2020 11:02, Patric Hedlin wrote:
>> I've refreshed the webrev (as discussed off-line), moving
>> legitimize_address() into the stack_slot_address() with additional
>> conditions related to the (well-aligned) frame slot address produced.
>> Use of is_simm9() and is_uimm12() is now using implementation in Assembler.
> That's much nicer. Some minor nits...
>
> Please pass the scratch register to be used as an argument to
> stack_slot_address:
>
> +// Ensure a valid Address (base + offset) to a stack-slot. If stack access is
> +// not encodable as a base + (immediate) offset, generate an explicit address
> +// calculation to hold the address in a temporary register (rscratch1).
> +Address LIR_Assembler::stack_slot_address(int index, uint size, int adjust) {
>
> These consts are too obscure. Please be explicit: either use one of
> the predefined constants that mean the same thing (such as
> BytesPerInt) or if you really want low-level types, sizeof int32_t:
>
> +  uint const c_sz32 = 4;
> +  uint const c_sz64 = 8;
>
> Otherwise OK. It doesn't need another review with these changes.
>
> Thanks.
>



More information about the hotspot-compiler-dev mailing list