Mercurial > hg > truffle
comparison src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @ 4966:701a83c86f28
7120481: storeStore barrier in constructor with final field
Summary: Issue storestore barrier before constructor return if the constructor write final field.
Reviewed-by: dholmes, jrose, roland, coleenp
Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
author | jiangli |
---|---|
date | Tue, 21 Feb 2012 13:14:55 -0500 |
parents | 898522ae3c32 |
children | 8f972594effc |
comparison
equal
deleted
inserted
replaced
4965:d79f8393df2b | 4966:701a83c86f28 |
---|---|
3229 | 3229 |
3230 void LIR_Assembler::membar_release() { | 3230 void LIR_Assembler::membar_release() { |
3231 // no-op on TSO | 3231 // no-op on TSO |
3232 } | 3232 } |
3233 | 3233 |
3234 void LIR_Assembler::membar_loadload() { | |
3235 // no-op | |
3236 //__ membar(Assembler::Membar_mask_bits(Assembler::loadload)); | |
3237 } | |
3238 | |
3239 void LIR_Assembler::membar_storestore() { | |
3240 // no-op | |
3241 //__ membar(Assembler::Membar_mask_bits(Assembler::storestore)); | |
3242 } | |
3243 | |
3244 void LIR_Assembler::membar_loadstore() { | |
3245 // no-op | |
3246 //__ membar(Assembler::Membar_mask_bits(Assembler::loadstore)); | |
3247 } | |
3248 | |
3249 void LIR_Assembler::membar_storeload() { | |
3250 __ membar(Assembler::Membar_mask_bits(Assembler::StoreLoad)); | |
3251 } | |
3252 | |
3253 | |
3234 // Pack two sequential registers containing 32 bit values | 3254 // Pack two sequential registers containing 32 bit values |
3235 // into a single 64 bit register. | 3255 // into a single 64 bit register. |
3236 // src and src->successor() are packed into dst | 3256 // src and src->successor() are packed into dst |
3237 // src and dst may be the same register. | 3257 // src and dst may be the same register. |
3238 // Note: src is destroyed | 3258 // Note: src is destroyed |