aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2002-07-30 19:24:54 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2002-07-30 19:24:54 +0000
commit9bd7d9360092f31dd487b6e1fa441ae1bc144203 (patch)
tree97385af02684dad8ba6cf0526c18db0faa7ac853
parent2fda49774f178145b87bc2081c69c58c39747d1c (diff)
downloadfsf-binutils-gdb-9bd7d9360092f31dd487b6e1fa441ae1bc144203.zip
fsf-binutils-gdb-9bd7d9360092f31dd487b6e1fa441ae1bc144203.tar.gz
fsf-binutils-gdb-9bd7d9360092f31dd487b6e1fa441ae1bc144203.tar.bz2
* config/tc-mips.c (macro): Use codes 6 and 7 in trap instructions
used in division/multiply macro expansions similarly to how they are used in the variants with break instructions. (macro2): Likewise.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-mips.c18
2 files changed, 16 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a865720..e6b985b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2002-07-30 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
+
+ * config/tc-mips.c (macro): Use codes 6 and 7 in trap instructions
+ used in division/multiply macro expansions similarly to how they
+ are used in the variants with break instructions.
+ (macro2): Likewise.
+
2002-07-30 Graeme Peterson <gp@qnx.com>
* configure.in: Add support for arm-*-nto target.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 64175c5..d66469e 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -4231,7 +4231,7 @@ macro (ip)
as_warn (_("Divide by zero."));
if (mips_trap)
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
- "s,t", 0, 0);
+ "s,t,q", 0, 0, 7);
else
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "break",
"c", 7);
@@ -4244,7 +4244,7 @@ macro (ip)
if (mips_trap)
{
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
- "s,t", treg, 0);
+ "s,t,q", treg, 0, 7);
macro_build ((char *) NULL, &icnt, (expressionS *) NULL,
dbl ? "ddiv" : "div", "z,s,t", sreg, treg);
}
@@ -4280,7 +4280,7 @@ macro (ip)
if (mips_trap)
{
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
- "s,t", sreg, AT);
+ "s,t,q", sreg, AT, 6);
/* We want to close the noreorder block as soon as possible, so
that later insns are available for delay slot filling. */
--mips_opts.noreorder;
@@ -4343,7 +4343,7 @@ macro (ip)
as_warn (_("Divide by zero."));
if (mips_trap)
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
- "s,t", 0, 0);
+ "s,t,q", 0, 0, 7);
else
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "break",
"c", 7);
@@ -4399,7 +4399,7 @@ macro (ip)
if (mips_trap)
{
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
- "s,t", treg, 0);
+ "s,t,q", treg, 0, 7);
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, "z,s,t",
sreg, treg);
/* We want to close the noreorder block as soon as possible, so
@@ -6548,8 +6548,8 @@ macro2 (ip)
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "mfhi", "d",
AT);
if (mips_trap)
- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne", "s,t",
- dreg, AT);
+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne",
+ "s,t,q", dreg, AT, 6);
else
{
expr1.X_add_number = 8;
@@ -6587,8 +6587,8 @@ macro2 (ip)
macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "mflo", "d",
dreg);
if (mips_trap)
- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne", "s,t",
- AT, 0);
+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne",
+ "s,t,q", AT, 0, 6);
else
{
expr1.X_add_number = 8;