RFR: 8203353: Fixup inferred decorators in the interpreter

coleen.phillimore at Oracle.com coleen.phillimore at Oracle.com
Thu May 31 17:21:16 UTC 2018


http://cr.openjdk.java.net/~eosterlund/8203353/webrev.00/src/hotspot/cpu/x86/macroAssembler_x86.cpp.frames.html

6334 void MacroAssembler::access_store_at(BasicType type, DecoratorSet decorators, Address dst, Register src,
6335                                      Register tmp1, Register tmp2) {
6336   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
6337 decorators = AccessInternal::decorator_fixup(decorators);
6338   bool as_raw = (decorators & AS_RAW) != 0;
6339   if (as_raw) {
6340     bs->BarrierSetAssembler::store_at(this, decorators, type, dst, src, tmp1, tmp2);
6341   } else {
6342     bs->store_at(this, decorators, type, dst, src, tmp1, tmp2);
6343   }
6344 }

This is a very strange function.  From the macroAssembler, how are we to 
know that the cases in this if statement are different?  It seems like 
this distinction should be made in BarrierSetAssembler class.   It also 
seems like whatever decorator fixup should also happen inside the 
BarrierSetAssembler, because the placement of these calls to fixup the 
decorators seems unknowable.

thanks,
Coleen

On 5/31/18 10:23 AM, Erik Österlund wrote:
> Hi Roman,
>
> Thanks for the review!
>
> /Erik
>
> On 2018-05-31 15:40, Roman Kennke wrote:
>>> Hi,
>>>
>>> All subsystems that the access API touches, except the interpreter,
>>> infers a set of decorators according to rules specified in
>>> accessDecorators.hpp. These are typically sane defaults for things like
>>> reference strength, memory ordering, as well as inferring that
>>> IN_HEAP_ARRAY is IN_HEAP, and IN_CONCURRENT_ROOT is IN_ROOT. The
>>> interpreter should do that too.
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~eosterlund/8203353/webrev.00/
>>>
>>> Bug:
>>> https://bugs.openjdk.java.net/browse/JDK-8203353
>>
>> Hi Erik, this seems reasonable and patch looks good. Thanks!
>> Roman
>>
>



More information about the hotspot-dev mailing list