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