1.1 --- a/src/cpu/sparc/vm/vtableStubs_sparc.cpp Wed Mar 11 14:16:13 2009 -0700 1.2 +++ b/src/cpu/sparc/vm/vtableStubs_sparc.cpp Thu Mar 12 10:37:46 2009 -0700 1.3 @@ -221,13 +221,15 @@ 1.4 if (is_vtable_stub) { 1.5 // ld;ld;ld,jmp,nop 1.6 const int basic = 5*BytesPerInstWord + 1.7 - // shift;add for load_klass 1.8 - (UseCompressedOops ? 2*BytesPerInstWord : 0); 1.9 + // shift;add for load_klass (only shift with zero heap based) 1.10 + (UseCompressedOops ? 1.11 + ((Universe::narrow_oop_base() == NULL) ? BytesPerInstWord : 2*BytesPerInstWord) : 0); 1.12 return basic + slop; 1.13 } else { 1.14 const int basic = (28 LP64_ONLY(+ 6)) * BytesPerInstWord + 1.15 - // shift;add for load_klass 1.16 - (UseCompressedOops ? 2*BytesPerInstWord : 0); 1.17 + // shift;add for load_klass (only shift with zero heap based) 1.18 + (UseCompressedOops ? 1.19 + ((Universe::narrow_oop_base() == NULL) ? BytesPerInstWord : 2*BytesPerInstWord) : 0); 1.20 return (basic + slop); 1.21 } 1.22 }