* config/tc-mips.c (macro): For div and udiv, close the

reorder block as soon as possible.
This commit is contained in:
Jeff Law 1998-06-02 20:54:35 +00:00
parent 8e3a0b599f
commit edc8f76e73
2 changed files with 22 additions and 3 deletions

View file

@ -1,3 +1,8 @@
Tue Jun 2 14:52:56 1998 Jeffrey A Law (law@cygnus.com)
* config/tc-mips.c (macro): For div and udiv, close the
reorder block as soon as possible.
Tue Jun 2 15:36:13 1998 Ian Lance Taylor <ian@cygnus.com>
From Matt Semersky <matts@scd.hp.com>:

View file

@ -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;