8233500: Shenandoah: Shenandoah load barrier should save registers before calling keep alive barrier on x86
Reviewed-by: rkennke
This commit is contained in:
parent
2a36577e68
commit
598ec40995
@ -511,6 +511,7 @@ void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet d
|
|||||||
|
|
||||||
// 3: apply keep-alive barrier if needed
|
// 3: apply keep-alive barrier if needed
|
||||||
if (ShenandoahBarrierSet::need_keep_alive_barrier(decorators, type)) {
|
if (ShenandoahBarrierSet::need_keep_alive_barrier(decorators, type)) {
|
||||||
|
__ push_IU_state();
|
||||||
const Register thread = NOT_LP64(tmp_thread) LP64_ONLY(r15_thread);
|
const Register thread = NOT_LP64(tmp_thread) LP64_ONLY(r15_thread);
|
||||||
assert_different_registers(dst, tmp1, tmp_thread);
|
assert_different_registers(dst, tmp1, tmp_thread);
|
||||||
NOT_LP64(__ get_thread(thread));
|
NOT_LP64(__ get_thread(thread));
|
||||||
@ -523,6 +524,7 @@ void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet d
|
|||||||
tmp1 /* tmp */,
|
tmp1 /* tmp */,
|
||||||
true /* tosca_live */,
|
true /* tosca_live */,
|
||||||
true /* expand_call */);
|
true /* expand_call */);
|
||||||
|
__ pop_IU_state();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user