src/hotspot/share/opto/arraycopynode.cpp
changeset 54048 744dc9c33676
parent 52925 9c18c9d839d3
child 55003 bec1bb783c7e
equal deleted inserted replaced
54047:0a9cb99a98a0 54048:744dc9c33676
     1 /*
     1 /*
     2  * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2016, 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.
   158 }
   158 }
   159 
   159 
   160 void ArrayCopyNode::store(BarrierSetC2* bs, PhaseGVN *phase, Node*& ctl, MergeMemNode* mem, Node* adr, const TypePtr* adr_type, Node* val, const Type *type, BasicType bt) {
   160 void ArrayCopyNode::store(BarrierSetC2* bs, PhaseGVN *phase, Node*& ctl, MergeMemNode* mem, Node* adr, const TypePtr* adr_type, Node* val, const Type *type, BasicType bt) {
   161   DecoratorSet decorators = C2_WRITE_ACCESS | IN_HEAP | C2_ARRAY_COPY;
   161   DecoratorSet decorators = C2_WRITE_ACCESS | IN_HEAP | C2_ARRAY_COPY;
   162   if (is_alloc_tightly_coupled()) {
   162   if (is_alloc_tightly_coupled()) {
   163     decorators |= C2_TIGHLY_COUPLED_ALLOC;
   163     decorators |= C2_TIGHTLY_COUPLED_ALLOC;
   164   }
   164   }
   165   C2AccessValuePtr addr(adr, adr_type);
   165   C2AccessValuePtr addr(adr, adr_type);
   166   C2AccessValue value(val, type);
   166   C2AccessValue value(val, type);
   167   C2OptAccess access(*phase, ctl, mem, decorators, bt, adr->in(AddPNode::Base), addr);
   167   C2OptAccess access(*phase, ctl, mem, decorators, bt, adr->in(AddPNode::Base), addr);
   168   bs->store_at(access, value);
   168   bs->store_at(access, value);