hotspot/src/share/vm/utilities/copy.hpp
changeset 360 21d113ecbf6a
parent 1 489c9b5090e2
child 670 ddf3e9583f2f
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
   146     pd_conjoint_jlongs_atomic(from, to, count);
   146     pd_conjoint_jlongs_atomic(from, to, count);
   147   }
   147   }
   148 
   148 
   149   // oops,                  conjoint, atomic on each oop
   149   // oops,                  conjoint, atomic on each oop
   150   static void conjoint_oops_atomic(oop* from, oop* to, size_t count) {
   150   static void conjoint_oops_atomic(oop* from, oop* to, size_t count) {
   151     assert_params_ok(from, to, LogBytesPerOop);
   151     assert_params_ok(from, to, LogBytesPerHeapOop);
   152     assert_non_zero(count);
   152     assert_non_zero(count);
   153     pd_conjoint_oops_atomic(from, to, count);
   153     pd_conjoint_oops_atomic(from, to, count);
       
   154   }
       
   155 
       
   156   // overloaded for UseCompressedOops
       
   157   static void conjoint_oops_atomic(narrowOop* from, narrowOop* to, size_t count) {
       
   158     assert(sizeof(narrowOop) == sizeof(jint), "this cast is wrong");
       
   159     assert_params_ok(from, to, LogBytesPerInt);
       
   160     assert_non_zero(count);
       
   161     pd_conjoint_jints_atomic((jint*)from, (jint*)to, count);
   154   }
   162   }
   155 
   163 
   156   // Copy a span of memory.  If the span is an integral number of aligned
   164   // Copy a span of memory.  If the span is an integral number of aligned
   157   // longs, words, or ints, copy those units atomically.
   165   // longs, words, or ints, copy those units atomically.
   158   // The largest atomic transfer unit is 8 bytes, or the largest power
   166   // The largest atomic transfer unit is 8 bytes, or the largest power
   186     pd_arrayof_conjoint_jlongs(from, to, count);
   194     pd_arrayof_conjoint_jlongs(from, to, count);
   187   }
   195   }
   188 
   196 
   189   // oops,                  conjoint array, atomic on each oop
   197   // oops,                  conjoint array, atomic on each oop
   190   static void arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) {
   198   static void arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) {
   191     assert_params_ok(from, to, LogBytesPerOop);
   199     assert_params_ok(from, to, LogBytesPerHeapOop);
   192     assert_non_zero(count);
   200     assert_non_zero(count);
   193     pd_arrayof_conjoint_oops(from, to, count);
   201     pd_arrayof_conjoint_oops(from, to, count);
   194   }
   202   }
   195 
   203 
   196   // Known overlap methods
   204   // Known overlap methods