src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
branchepsilon-gc-branch
changeset 56448 76d86de267b9
parent 56406 e629240491c7
parent 49754 ee93c1087584
child 56578 e8414c8ead61
equal deleted inserted replaced
56422:b09629f4b243 56448:76d86de267b9
   843     }
   843     }
   844     if (aligned) {
   844     if (aligned) {
   845       decorators |= ARRAYCOPY_ALIGNED;
   845       decorators |= ARRAYCOPY_ALIGNED;
   846     }
   846     }
   847 
   847 
   848     BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler();
   848     BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
   849     bs->arraycopy_prologue(_masm, decorators, t, from, to, count);
   849     bs->arraycopy_prologue(_masm, decorators, t, from, to, count);
   850 
   850 
   851     __ subptr(to, from); // to --> to_from
   851     __ subptr(to, from); // to --> to_from
   852     __ cmpl(count, 2<<shift); // Short arrays (< 8 bytes) copy by element
   852     __ cmpl(count, 2<<shift); // Short arrays (< 8 bytes) copy by element
   853     __ jcc(Assembler::below, L_copy_4_bytes); // use unsigned cmp
   853     __ jcc(Assembler::below, L_copy_4_bytes); // use unsigned cmp
  1032     }
  1032     }
  1033     if (aligned) {
  1033     if (aligned) {
  1034       decorators |= ARRAYCOPY_ALIGNED;
  1034       decorators |= ARRAYCOPY_ALIGNED;
  1035     }
  1035     }
  1036 
  1036 
  1037     BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler();
  1037     BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
  1038     bs->arraycopy_prologue(_masm, decorators, t, from, to, count);
  1038     bs->arraycopy_prologue(_masm, decorators, t, from, to, count);
  1039 
  1039 
  1040     // copy from high to low
  1040     // copy from high to low
  1041     __ cmpl(count, 2<<shift); // Short arrays (< 8 bytes) copy by element
  1041     __ cmpl(count, 2<<shift); // Short arrays (< 8 bytes) copy by element
  1042     __ jcc(Assembler::below, L_copy_4_bytes); // use unsigned cmp
  1042     __ jcc(Assembler::below, L_copy_4_bytes); // use unsigned cmp
  1387     if (dest_uninitialized) {
  1387     if (dest_uninitialized) {
  1388       decorators |= AS_DEST_NOT_INITIALIZED;
  1388       decorators |= AS_DEST_NOT_INITIALIZED;
  1389     }
  1389     }
  1390 
  1390 
  1391     BasicType type = T_OBJECT;
  1391     BasicType type = T_OBJECT;
  1392     BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler();
  1392     BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
  1393     bs->arraycopy_prologue(_masm, decorators, type, from, to, count);
  1393     bs->arraycopy_prologue(_masm, decorators, type, from, to, count);
  1394 
  1394 
  1395     // Copy from low to high addresses, indexed from the end of each array.
  1395     // Copy from low to high addresses, indexed from the end of each array.
  1396     __ lea(end_from, end_from_addr);
  1396     __ lea(end_from, end_from_addr);
  1397     __ lea(end_to,   end_to_addr);
  1397     __ lea(end_to,   end_to_addr);