src/cpu/sparc/vm/assembler_sparc.cpp

changeset 614
1f809e010142
parent 602
feeb96a45707
parent 613
6d172e3548cb
child 631
d1605aabd0a1
child 779
6aae2f9d0294
     1.1 --- a/src/cpu/sparc/vm/assembler_sparc.cpp	Tue Jun 03 15:38:31 2008 -0700
     1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp	Fri Jun 06 13:43:36 2008 -0400
     1.3 @@ -3643,6 +3643,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 @@ -3664,12 +3665,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 @@ -3682,11 +3685,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 @@ -3695,6 +3700,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