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