src/hotspot/share/opto/parse3.cpp
changeset 58273 08a5148e7c4e
parent 55110 17f85a8780d5
child 58679 9c3209ff7550
child 59276 94a84abb873b
equal deleted inserted replaced
58272:e27564cd10e3 58273:08a5148e7c4e
     1 /*
     1 /*
     2  * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   137   bool must_assert_null = false;
   137   bool must_assert_null = false;
   138 
   138 
   139   DecoratorSet decorators = IN_HEAP;
   139   DecoratorSet decorators = IN_HEAP;
   140   decorators |= is_vol ? MO_SEQ_CST : MO_UNORDERED;
   140   decorators |= is_vol ? MO_SEQ_CST : MO_UNORDERED;
   141 
   141 
   142   bool is_obj = bt == T_OBJECT || bt == T_ARRAY;
   142   bool is_obj = is_reference_type(bt);
   143 
   143 
   144   if (is_obj) {
   144   if (is_obj) {
   145     if (!field->type()->is_loaded()) {
   145     if (!field->type()->is_loaded()) {
   146       type = TypeInstPtr::BOTTOM;
   146       type = TypeInstPtr::BOTTOM;
   147       must_assert_null = true;
   147       must_assert_null = true;
   208   Node* val = type2size[bt] == 1 ? pop() : pop_pair();
   208   Node* val = type2size[bt] == 1 ? pop() : pop_pair();
   209 
   209 
   210   DecoratorSet decorators = IN_HEAP;
   210   DecoratorSet decorators = IN_HEAP;
   211   decorators |= is_vol ? MO_SEQ_CST : MO_UNORDERED;
   211   decorators |= is_vol ? MO_SEQ_CST : MO_UNORDERED;
   212 
   212 
   213   bool is_obj = bt == T_OBJECT || bt == T_ARRAY;
   213   bool is_obj = is_reference_type(bt);
   214 
   214 
   215   // Store the value.
   215   // Store the value.
   216   const Type* field_type;
   216   const Type* field_type;
   217   if (!field->type()->is_loaded()) {
   217   if (!field->type()->is_loaded()) {
   218     field_type = TypeInstPtr::BOTTOM;
   218     field_type = TypeInstPtr::BOTTOM;