hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
changeset 15482 470d0b0c09f1
parent 14626 0cf4eccf130f
child 17000 11bf92e571a2
child 16997 d5dfdf746abd
equal deleted inserted replaced
15224:0f9e3436040d 15482:470d0b0c09f1
    33 #include "oops/oop.inline.hpp"
    33 #include "oops/oop.inline.hpp"
    34 #include "prims/methodHandles.hpp"
    34 #include "prims/methodHandles.hpp"
    35 #include "runtime/sharedRuntime.hpp"
    35 #include "runtime/sharedRuntime.hpp"
    36 #include "runtime/stubRoutines.hpp"
    36 #include "runtime/stubRoutines.hpp"
    37 #include "runtime/synchronizer.hpp"
    37 #include "runtime/synchronizer.hpp"
       
    38 #include "utilities/macros.hpp"
    38 
    39 
    39 #ifndef CC_INTERP
    40 #ifndef CC_INTERP
    40 
    41 
    41 #define __ _masm->
    42 #define __ _masm->
    42 
    43 
   134                          Register val,
   135                          Register val,
   135                          BarrierSet::Name barrier,
   136                          BarrierSet::Name barrier,
   136                          bool precise) {
   137                          bool precise) {
   137   assert(val == noreg || val == rax, "parameter is just for looks");
   138   assert(val == noreg || val == rax, "parameter is just for looks");
   138   switch (barrier) {
   139   switch (barrier) {
   139 #ifndef SERIALGC
   140 #if INCLUDE_ALL_GCS
   140     case BarrierSet::G1SATBCT:
   141     case BarrierSet::G1SATBCT:
   141     case BarrierSet::G1SATBCTLogging:
   142     case BarrierSet::G1SATBCTLogging:
   142       {
   143       {
   143         // flatten object address if needed
   144         // flatten object address if needed
   144         if (obj.index() == noreg && obj.disp() == 0) {
   145         if (obj.index() == noreg && obj.disp() == 0) {
   165                                    rbx /* tmp2 */);
   166                                    rbx /* tmp2 */);
   166         }
   167         }
   167 
   168 
   168       }
   169       }
   169       break;
   170       break;
   170 #endif // SERIALGC
   171 #endif // INCLUDE_ALL_GCS
   171     case BarrierSet::CardTableModRef:
   172     case BarrierSet::CardTableModRef:
   172     case BarrierSet::CardTableExtension:
   173     case BarrierSet::CardTableExtension:
   173       {
   174       {
   174         if (val == noreg) {
   175         if (val == noreg) {
   175           __ store_heap_oop_null(obj);
   176           __ store_heap_oop_null(obj);