Details
-
Bug
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11-shenandoah, 14
-
b21
Description
In current code, we match only one LRB shape:
bool ShenandoahBarrierSetC2::is_shenandoah_lrb_call(Node* call) {
return call->is_CallLeaf() &&
call->as_CallLeaf()->entry_point() == CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier);
}
...which is not the only shape that is emitted by C2 code.
Current bug is somewhat benign, because SBSC2::is_shenandoah_lrb_call is used in C2 verification code only, but it could be catastrophic in future.
bool ShenandoahBarrierSetC2::is_shenandoah_lrb_call(Node* call) {
return call->is_CallLeaf() &&
call->as_CallLeaf()->entry_point() == CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier);
}
...which is not the only shape that is emitted by C2 code.
Current bug is somewhat benign, because SBSC2::is_shenandoah_lrb_call is used in C2 verification code only, but it could be catastrophic in future.
Attachments
Issue Links
- relates to
-
JDK-8231087 Shenandoah: Self-fixing load reference barriers for C1/C2
- Resolved