src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp
changeset 57777 90ead0febf56
parent 57565 01bca26734bb
child 57811 947252a54b98
equal deleted inserted replaced
57774:21dccfac0ec5 57777:90ead0febf56
    80   }
    80   }
    81 
    81 
    82   // Load object header
    82   // Load object header
    83   ldr(hdr, Address(obj, hdr_offset));
    83   ldr(hdr, Address(obj, hdr_offset));
    84   // and mark it as unlocked
    84   // and mark it as unlocked
    85   orr(hdr, hdr, markOopDesc::unlocked_value);
    85   orr(hdr, hdr, markWord::unlocked_value);
    86   // save unlocked object header into the displaced header location on the stack
    86   // save unlocked object header into the displaced header location on the stack
    87   str(hdr, Address(disp_hdr, 0));
    87   str(hdr, Address(disp_hdr, 0));
    88   // test if object header is still the same (i.e. unlocked), and if so, store the
    88   // test if object header is still the same (i.e. unlocked), and if so, store the
    89   // displaced header address in the object header - if it is not the same, get the
    89   // displaced header address in the object header - if it is not the same, get the
    90   // object header instead
    90   // object header instead
   174   if (UseBiasedLocking && !len->is_valid()) {
   174   if (UseBiasedLocking && !len->is_valid()) {
   175     assert_different_registers(obj, klass, len, t1, t2);
   175     assert_different_registers(obj, klass, len, t1, t2);
   176     ldr(t1, Address(klass, Klass::prototype_header_offset()));
   176     ldr(t1, Address(klass, Klass::prototype_header_offset()));
   177   } else {
   177   } else {
   178     // This assumes that all prototype bits fit in an int32_t
   178     // This assumes that all prototype bits fit in an int32_t
   179     mov(t1, (int32_t)(intptr_t)markOopDesc::prototype());
   179     mov(t1, (int32_t)(intptr_t)markWord::prototype().value());
   180   }
   180   }
   181   str(t1, Address(obj, oopDesc::mark_offset_in_bytes()));
   181   str(t1, Address(obj, oopDesc::mark_offset_in_bytes()));
   182 
   182 
   183   if (UseCompressedClassPointers) { // Take care not to kill klass
   183   if (UseCompressedClassPointers) { // Take care not to kill klass
   184     encode_klass_not_null(t1, klass);
   184     encode_klass_not_null(t1, klass);