comparison src/cpu/x86/vm/c1_LIRAssembler_x86.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 3576af4cb939
comparison
equal deleted inserted replaced
4965:d79f8393df2b 4966:701a83c86f28
3711 void LIR_Assembler::membar_release() { 3711 void LIR_Assembler::membar_release() {
3712 // No x86 machines currently require store fences 3712 // No x86 machines currently require store fences
3713 // __ store_fence(); 3713 // __ store_fence();
3714 } 3714 }
3715 3715
3716 void LIR_Assembler::membar_loadload() {
3717 // no-op
3718 //__ membar(Assembler::Membar_mask_bits(Assembler::loadload));
3719 }
3720
3721 void LIR_Assembler::membar_storestore() {
3722 // no-op
3723 //__ membar(Assembler::Membar_mask_bits(Assembler::storestore));
3724 }
3725
3726 void LIR_Assembler::membar_loadstore() {
3727 // no-op
3728 //__ membar(Assembler::Membar_mask_bits(Assembler::loadstore));
3729 }
3730
3731 void LIR_Assembler::membar_storeload() {
3732 __ membar(Assembler::Membar_mask_bits(Assembler::StoreLoad));
3733 }
3734
3716 void LIR_Assembler::get_thread(LIR_Opr result_reg) { 3735 void LIR_Assembler::get_thread(LIR_Opr result_reg) {
3717 assert(result_reg->is_register(), "check"); 3736 assert(result_reg->is_register(), "check");
3718 #ifdef _LP64 3737 #ifdef _LP64
3719 // __ get_thread(result_reg->as_register_lo()); 3738 // __ get_thread(result_reg->as_register_lo());
3720 __ mov(result_reg->as_register(), r15_thread); 3739 __ mov(result_reg->as_register(), r15_thread);