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:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user