RFR: 8139674: aarch64: guarantee failure in TestOptionsWithRanges.java

Roland Westrelin roland.westrelin at oracle.com
Fri Oct 16 09:02:01 UTC 2015


> I don't think removing next line is right:
> 
> -        add(mdp, mdp, to_add);
> 
> it shifts to next metadata cell.

Yes, we shift to the next argument slot. We also do:

off_to_args += to_add;

and then data in the slot is addressed with:

in_bytes(TypeEntriesAtCall::stack_slot_offset(i))-off_to_args

that is relative to the current argument slot.

before the change. After the change, it’s adjusted to:

in_bytes(TypeEntriesAtCall::stack_slot_offset(i))

that is relative to the beginning of the space allocated for all arguments. So I think it’s good.

This said, this:

>> What is happening is that the code in InterpreterMacroAssembler::profile_arguments_type adjusts mdp to point past the arguments and uses negative offsets to index fields at the start of the method data structure.

is not correct I think. We don’t move past the arguments. We move to the beginning of the slot dedicated to the next argument, not past it. The only source of negative offsets I can see is:

1555           ldr(tmp, Address(mdp, in_bytes(TypeEntriesAtCall::cell_count_offset())-off_to_args));

Roland.


More information about the hotspot-compiler-dev mailing list