1
0
mirror of https://github.com/openbsd/src.git synced 2026-06-18 07:13:36 +02:00

Add more barriers for proper basic block computation.

This commit is contained in:
miod
2025-09-14 19:35:21 +00:00
parent e9fd4d2821
commit b7aed249da
+5
View File
@@ -2805,6 +2805,7 @@
if (TARGET_CHECK_ZERO_DIV)
emit_insn (gen_tcnd_divide_by_zero (op2, join_label));
emit_jump_insn (gen_jump (join_label));
emit_barrier ();
emit_label (label1); /* constant / positive */
emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, op2));
@@ -2836,6 +2837,7 @@
emit_insn (gen_negsi2 (op0, op0));
emit_jump_insn (gen_jump (join_label));
emit_barrier ();
emit_label (label1); /* positive / constant */
emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, op2));
@@ -2872,6 +2874,7 @@
emit_barrier ();
}
emit_jump_insn (gen_jump (join_label));
emit_barrier ();
emit_label (label2); /* pos.-or-0 / neg.-or-0 */
emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, neg_op2));
@@ -2884,6 +2887,7 @@
emit_insn (gen_negsi2 (op0, op0));
emit_jump_insn (gen_jump (join_label));
emit_barrier ();
emit_label (label1);
emit_insn (gen_negsi2 (neg_op1, op1));
@@ -2893,6 +2897,7 @@
emit_move_insn (op0, gen_rtx_UDIV (SImode, neg_op1, op2));
emit_insn (gen_negsi2 (op0, op0));
emit_jump_insn (gen_jump (join_label));
emit_barrier ();
emit_label (label3); /* positive-or-0 / positive */
emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, op2));