Mercurial > hg > truffle
comparison src/cpu/sparc/vm/templateTable_sparc.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 |
comparison
equal
deleted
inserted
replaced
166:aaa1137c5ef4 | 167:feeb96a45707 |
---|---|
3220 __ ld_ptr(RinstanceKlass, Klass::prototype_header_offset_in_bytes() + sizeof(oopDesc), G4_scratch); | 3220 __ ld_ptr(RinstanceKlass, Klass::prototype_header_offset_in_bytes() + sizeof(oopDesc), G4_scratch); |
3221 } else { | 3221 } else { |
3222 __ set((intptr_t)markOopDesc::prototype(), G4_scratch); | 3222 __ set((intptr_t)markOopDesc::prototype(), G4_scratch); |
3223 } | 3223 } |
3224 __ st_ptr(G4_scratch, RallocatedObject, oopDesc::mark_offset_in_bytes()); // mark | 3224 __ st_ptr(G4_scratch, RallocatedObject, oopDesc::mark_offset_in_bytes()); // mark |
3225 __ store_klass(RinstanceKlass, RallocatedObject); // klass | 3225 __ store_klass_gap(G0, RallocatedObject); // klass gap if compressed |
3226 __ store_klass(RinstanceKlass, RallocatedObject); // klass (last for cms) | |
3226 | 3227 |
3227 { | 3228 { |
3228 SkipIfEqual skip_if( | 3229 SkipIfEqual skip_if( |
3229 _masm, G4_scratch, &DTraceAllocProbes, Assembler::zero); | 3230 _masm, G4_scratch, &DTraceAllocProbes, Assembler::zero); |
3230 // Trigger dtrace event | 3231 // Trigger dtrace event |