* config/tc-mips.c (macro): For div and udiv, close the
reorder block as soon as possible.
This commit is contained in:
parent
8e3a0b599f
commit
edc8f76e73
2 changed files with 22 additions and 3 deletions
|
@ -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>:
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue