3066 case vmIntrinsics::_compareAndSetLong: |
3066 case vmIntrinsics::_compareAndSetLong: |
3067 do_CompareAndSwap(x, longType); |
3067 do_CompareAndSwap(x, longType); |
3068 break; |
3068 break; |
3069 |
3069 |
3070 case vmIntrinsics::_loadFence : |
3070 case vmIntrinsics::_loadFence : |
3071 if (os::is_MP()) __ membar_acquire(); |
3071 __ membar_acquire(); |
3072 break; |
3072 break; |
3073 case vmIntrinsics::_storeFence: |
3073 case vmIntrinsics::_storeFence: |
3074 if (os::is_MP()) __ membar_release(); |
3074 __ membar_release(); |
3075 break; |
3075 break; |
3076 case vmIntrinsics::_fullFence : |
3076 case vmIntrinsics::_fullFence : |
3077 if (os::is_MP()) __ membar(); |
3077 __ membar(); |
3078 break; |
3078 break; |
3079 case vmIntrinsics::_onSpinWait: |
3079 case vmIntrinsics::_onSpinWait: |
3080 __ on_spin_wait(); |
3080 __ on_spin_wait(); |
3081 break; |
3081 break; |
3082 case vmIntrinsics::_Reference_get: |
3082 case vmIntrinsics::_Reference_get: |
3621 } |
3621 } |
3622 return result; |
3622 return result; |
3623 } |
3623 } |
3624 |
3624 |
3625 void LIRGenerator::do_MemBar(MemBar* x) { |
3625 void LIRGenerator::do_MemBar(MemBar* x) { |
3626 if (os::is_MP()) { |
3626 LIR_Code code = x->code(); |
3627 LIR_Code code = x->code(); |
3627 switch(code) { |
3628 switch(code) { |
3628 case lir_membar_acquire : __ membar_acquire(); break; |
3629 case lir_membar_acquire : __ membar_acquire(); break; |
3629 case lir_membar_release : __ membar_release(); break; |
3630 case lir_membar_release : __ membar_release(); break; |
3630 case lir_membar : __ membar(); break; |
3631 case lir_membar : __ membar(); break; |
3631 case lir_membar_loadload : __ membar_loadload(); break; |
3632 case lir_membar_loadload : __ membar_loadload(); break; |
3632 case lir_membar_storestore: __ membar_storestore(); break; |
3633 case lir_membar_storestore: __ membar_storestore(); break; |
3633 case lir_membar_loadstore : __ membar_loadstore(); break; |
3634 case lir_membar_loadstore : __ membar_loadstore(); break; |
3634 case lir_membar_storeload : __ membar_storeload(); break; |
3635 case lir_membar_storeload : __ membar_storeload(); break; |
3635 default : ShouldNotReachHere(); break; |
3636 default : ShouldNotReachHere(); break; |
|
3637 } |
|
3638 } |
3636 } |
3639 } |
3637 } |
3640 |
3638 |
3641 LIR_Opr LIRGenerator::mask_boolean(LIR_Opr array, LIR_Opr value, CodeEmitInfo*& null_check_info) { |
3639 LIR_Opr LIRGenerator::mask_boolean(LIR_Opr array, LIR_Opr value, CodeEmitInfo*& null_check_info) { |
3642 LIR_Opr value_fixed = rlock_byte(T_BYTE); |
3640 LIR_Opr value_fixed = rlock_byte(T_BYTE); |