src/cpu/x86/vm/assembler_x86.cpp

changeset 1333
60fea60a6db5
parent 1280
df6caf649ff7
child 1421
62001a362ce9
     1.1 --- a/src/cpu/x86/vm/assembler_x86.cpp	Tue Jul 28 09:02:30 2009 +0200
     1.2 +++ b/src/cpu/x86/vm/assembler_x86.cpp	Thu Jul 30 16:05:56 2009 -0700
     1.3 @@ -8335,15 +8335,13 @@
     1.4    // Cannot assert, unverified entry point counts instructions (see .ad file)
     1.5    // vtableStubs also counts instructions in pd_code_size_limit.
     1.6    // Also do not verify_oop as this is called by verify_oop.
     1.7 -  if (Universe::narrow_oop_base() == NULL) {
     1.8 -    if (Universe::narrow_oop_shift() != 0) {
     1.9 -      assert (LogMinObjAlignmentInBytes == Universe::narrow_oop_shift(), "decode alg wrong");
    1.10 -      shlq(r, LogMinObjAlignmentInBytes);
    1.11 -    }
    1.12 +  if (Universe::narrow_oop_shift() != 0) {
    1.13 +    assert (Address::times_8 == LogMinObjAlignmentInBytes &&
    1.14 +            Address::times_8 == Universe::narrow_oop_shift(), "decode alg wrong");
    1.15 +    // Don't use Shift since it modifies flags.
    1.16 +    leaq(r, Address(r12_heapbase, r, Address::times_8, 0));
    1.17    } else {
    1.18 -      assert (Address::times_8 == LogMinObjAlignmentInBytes &&
    1.19 -              Address::times_8 == Universe::narrow_oop_shift(), "decode alg wrong");
    1.20 -    leaq(r, Address(r12_heapbase, r, Address::times_8, 0));
    1.21 +    assert (Universe::narrow_oop_base() == NULL, "sanity");
    1.22    }
    1.23  }
    1.24  
    1.25 @@ -8358,6 +8356,7 @@
    1.26              Address::times_8 == Universe::narrow_oop_shift(), "decode alg wrong");
    1.27      leaq(dst, Address(r12_heapbase, src, Address::times_8, 0));
    1.28    } else if (dst != src) {
    1.29 +    assert (Universe::narrow_oop_base() == NULL, "sanity");
    1.30      movq(dst, src);
    1.31    }
    1.32  }

mercurial