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 }