hotspot/src/share/vm/memory/barrierSet.hpp
changeset 13728 882756847a04
parent 13195 be27e1b6a4b9
child 22859 7b88983393b7
child 22551 9bf46d16dcc6
equal deleted inserted replaced
13727:caf5eb7dd4a7 13728:882756847a04
     1 /*
     1 /*
     2  * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2000, 2012, 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.
    68 
    68 
    69   // These functions indicate whether a particular access of the given
    69   // These functions indicate whether a particular access of the given
    70   // kinds requires a barrier.
    70   // kinds requires a barrier.
    71   virtual bool read_ref_needs_barrier(void* field) = 0;
    71   virtual bool read_ref_needs_barrier(void* field) = 0;
    72   virtual bool read_prim_needs_barrier(HeapWord* field, size_t bytes) = 0;
    72   virtual bool read_prim_needs_barrier(HeapWord* field, size_t bytes) = 0;
    73   virtual bool write_ref_needs_barrier(void* field, oop new_val) = 0;
       
    74   virtual bool write_prim_needs_barrier(HeapWord* field, size_t bytes,
    73   virtual bool write_prim_needs_barrier(HeapWord* field, size_t bytes,
    75                                         juint val1, juint val2) = 0;
    74                                         juint val1, juint val2) = 0;
    76 
    75 
    77   // The first four operations provide a direct implementation of the
    76   // The first four operations provide a direct implementation of the
    78   // barrier set.  An interpreter loop, for example, could call these
    77   // barrier set.  An interpreter loop, for example, could call these