Mercurial > hg > truffle
diff src/cpu/x86/vm/templateTable_x86_64.cpp @ 167:feeb96a45707
6696264: assert("narrow oop can never be zero") for GCBasher & ParNewGC
Summary: decouple set_klass() with zeroing the gap when compressed.
Reviewed-by: kvn, ysr, jrose
author | coleenp |
---|---|
date | Wed, 28 May 2008 21:06:24 -0700 |
parents | ba764ed4b6f2 |
children | d1605aabd0a1 6aae2f9d0294 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateTable_x86_64.cpp Wed May 28 12:42:34 2008 -0700 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp Wed May 28 21:06:24 2008 -0700 @@ -3163,7 +3163,9 @@ __ movptr(Address(rax, oopDesc::mark_offset_in_bytes()), (intptr_t) markOopDesc::prototype()); // header (address 0x1) } - __ store_klass(rax, rsi); // klass + __ xorl(rcx, rcx); // use zero reg to clear memory (shorter code) + __ store_klass_gap(rax, rcx); // zero klass gap for compressed oops + __ store_klass(rax, rsi); // store klass last __ jmp(done); }