src/cpu/sparc/vm/assembler_sparc.cpp

changeset 613
6d172e3548cb
parent 559
b130b98db9cf
child 614
1f809e010142
     1.1 --- a/src/cpu/sparc/vm/assembler_sparc.cpp	Thu May 29 14:06:30 2008 -0400
     1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp	Thu Jun 05 17:02:54 2008 -0400
     1.3 @@ -3622,6 +3622,7 @@
     1.4  
     1.5  void MacroAssembler::encode_heap_oop(Register src, Register dst) {
     1.6    assert (UseCompressedOops, "must be compressed");
     1.7 +  verify_oop(src);
     1.8    Label done;
     1.9    if (src == dst) {
    1.10      // optimize for frequent case src == dst
    1.11 @@ -3643,12 +3644,14 @@
    1.12  
    1.13  void MacroAssembler::encode_heap_oop_not_null(Register r) {
    1.14    assert (UseCompressedOops, "must be compressed");
    1.15 +  verify_oop(r);
    1.16    sub(r, G6_heapbase, r);
    1.17    srlx(r, LogMinObjAlignmentInBytes, r);
    1.18  }
    1.19  
    1.20  void MacroAssembler::encode_heap_oop_not_null(Register src, Register dst) {
    1.21    assert (UseCompressedOops, "must be compressed");
    1.22 +  verify_oop(src);
    1.23    sub(src, G6_heapbase, dst);
    1.24    srlx(dst, LogMinObjAlignmentInBytes, dst);
    1.25  }
    1.26 @@ -3661,11 +3664,13 @@
    1.27    bpr(rc_nz, true, Assembler::pt, dst, done);
    1.28    delayed() -> add(dst, G6_heapbase, dst); // annuled if not taken
    1.29    bind(done);
    1.30 +  verify_oop(dst);
    1.31  }
    1.32  
    1.33  void  MacroAssembler::decode_heap_oop_not_null(Register r) {
    1.34    // Do not add assert code to this unless you change vtableStubs_sparc.cpp
    1.35    // pd_code_size_limit.
    1.36 +  // Also do not verify_oop as this is called by verify_oop.
    1.37    assert (UseCompressedOops, "must be compressed");
    1.38    sllx(r, LogMinObjAlignmentInBytes, r);
    1.39    add(r, G6_heapbase, r);
    1.40 @@ -3674,6 +3679,7 @@
    1.41  void  MacroAssembler::decode_heap_oop_not_null(Register src, Register dst) {
    1.42    // Do not add assert code to this unless you change vtableStubs_sparc.cpp
    1.43    // pd_code_size_limit.
    1.44 +  // Also do not verify_oop as this is called by verify_oop.
    1.45    assert (UseCompressedOops, "must be compressed");
    1.46    sllx(src, LogMinObjAlignmentInBytes, dst);
    1.47    add(dst, G6_heapbase, dst);

mercurial