Mercurial > hg > graal-jvmci-8
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); |