< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page
*** 5268,17 ***
    verify_heapbase("MacroAssembler::decode_heap_oop: heap base corrupted?");
  #endif
    if (CompressedOops::base() == nullptr) {
      if (CompressedOops::shift() != 0) {
        lsl(d, s, CompressedOops::shift());
!     } else if (d != s) {
        mov(d, s);
      }
    } else {
      Label done;
!     if (d != s)
-       mov(d, s);
      cbz(s, done);
      add(d, rheapbase, s, Assembler::LSL, LogMinObjAlignmentInBytes);
      bind(done);
    }
    verify_oop_msg(d, "broken oop in decode_heap_oop");
--- 5268,16 ---
    verify_heapbase("MacroAssembler::decode_heap_oop: heap base corrupted?");
  #endif
    if (CompressedOops::base() == nullptr) {
      if (CompressedOops::shift() != 0) {
        lsl(d, s, CompressedOops::shift());
!     } else {
        mov(d, s);
      }
    } else {
      Label done;
!     mov(d, s);
      cbz(s, done);
      add(d, rheapbase, s, Assembler::LSL, LogMinObjAlignmentInBytes);
      bind(done);
    }
    verify_oop_msg(d, "broken oop in decode_heap_oop");

*** 5315,13 ***
      } else {
        add(dst, zr, src, Assembler::LSL, LogMinObjAlignmentInBytes);
      }
    } else {
      assert (CompressedOops::base() == nullptr, "sanity");
!     if (dst != src) {
-       mov(dst, src);
-     }
    }
  }
  
  MacroAssembler::KlassDecodeMode MacroAssembler::_klass_decode_mode(KlassDecodeNone);
  
--- 5314,11 ---
      } else {
        add(dst, zr, src, Assembler::LSL, LogMinObjAlignmentInBytes);
      }
    } else {
      assert (CompressedOops::base() == nullptr, "sanity");
!     mov(dst, src);
    }
  }
  
  MacroAssembler::KlassDecodeMode MacroAssembler::_klass_decode_mode(KlassDecodeNone);
  
< prev index next >