From edc8f76e73316b8c23b29e7e75eb4aa486d65f46 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 2 Jun 1998 20:54:35 +0000 Subject: * config/tc-mips.c (macro): For div and udiv, close the reorder block as soon as possible. --- gas/config/tc-mips.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'gas/config') diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 8dcd4b0..869fdf2 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -3998,13 +3998,22 @@ macro (ip) (int) BFD_RELOC_HI16); } if (mips_trap) - macro_build ((char *) NULL, &icnt, NULL, "teq", "s,t", sreg, AT); + { + macro_build ((char *) NULL, &icnt, NULL, "teq", "s,t", sreg, AT); + /* We want to close the noreorder block as soon as possible, so + that later insns are available for delay slot filling. */ + --mips_opts.noreorder; + } else { expr1.X_add_number = 8; macro_build ((char *) NULL, &icnt, &expr1, "bne", "s,t,p", sreg, AT); macro_build ((char *) NULL, &icnt, NULL, "nop", "", 0); + /* We want to close the noreorder block as soon as possible, so + that later insns are available for delay slot filling. */ + --mips_opts.noreorder; + /* start-sanitize-r5900 */ if (mips_5900) macro_build ((char *) NULL, &icnt, NULL, "break", "B", 6); @@ -4012,7 +4021,6 @@ macro (ip) /* end-sanitize-r5900 */ macro_build ((char *) NULL, &icnt, NULL, "break", "c", 6); } - --mips_opts.noreorder; macro_build ((char *) NULL, &icnt, NULL, s, "d", dreg); break; @@ -4121,12 +4129,19 @@ macro (ip) { macro_build ((char *) NULL, &icnt, NULL, "teq", "s,t", treg, 0); macro_build ((char *) NULL, &icnt, NULL, s, "z,s,t", sreg, treg); + /* We want to close the noreorder block as soon as possible, so + that later insns are available for delay slot filling. */ + --mips_opts.noreorder; } else { expr1.X_add_number = 8; macro_build ((char *) NULL, &icnt, &expr1, "bne", "s,t,p", treg, 0); macro_build ((char *) NULL, &icnt, NULL, s, "z,s,t", sreg, treg); + + /* We want to close the noreorder block as soon as possible, so + that later insns are available for delay slot filling. */ + --mips_opts.noreorder; /* start-sanitize-r5900 */ if (mips_5900) macro_build ((char *) NULL, &icnt, NULL, "break", "B", 7); @@ -4134,7 +4149,6 @@ macro (ip) /* end-sanitize-r5900 */ macro_build ((char *) NULL, &icnt, NULL, "break", "c", 7); } - --mips_opts.noreorder; macro_build ((char *) NULL, &icnt, NULL, s2, "d", dreg); return; -- cgit v1.1