Commit c9e0ce37 by Richard Sandiford Committed by Richard Sandiford

mips.c (mips_output_division): Use the division instruction to fill the delay slot of a zero check.

	* config/mips/mips.c (mips_output_division): Use the division
	instruction to fill the delay slot of a zero check.
	(mips_idiv_insns): Adjust accordingly.

From-SVN: r78712
parent 67283362
2004-03-01 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_output_division): Use the division
instruction to fill the delay slot of a zero check.
(mips_idiv_insns): Adjust accordingly.
2004-03-01 Nathanael Nerode <neroden@gcc.gnu.org> 2004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
* config.gcc: Create a default tmake_file for linux, and use * config.gcc: Create a default tmake_file for linux, and use
......
...@@ -1359,12 +1359,7 @@ mips_idiv_insns (void) ...@@ -1359,12 +1359,7 @@ mips_idiv_insns (void)
count = 1; count = 1;
if (TARGET_CHECK_ZERO_DIV) if (TARGET_CHECK_ZERO_DIV)
{ count += 2;
if (TARGET_MIPS16)
count += 2;
else
count += 3;
}
if (TARGET_FIX_R4000) if (TARGET_FIX_R4000)
count++; count++;
return count; return count;
...@@ -9225,16 +9220,22 @@ mips_output_conditional_branch (rtx insn, rtx *operands, int two_operands_p, ...@@ -9225,16 +9220,22 @@ mips_output_conditional_branch (rtx insn, rtx *operands, int two_operands_p,
const char * const char *
mips_output_division (const char *division, rtx *operands) mips_output_division (const char *division, rtx *operands)
{ {
const char *s = division; const char *s;
s = division;
if (TARGET_CHECK_ZERO_DIV) if (TARGET_CHECK_ZERO_DIV)
{ {
output_asm_insn (s, operands);
if (TARGET_MIPS16) if (TARGET_MIPS16)
s = "bnez\t%2,1f\n\tbreak\t7\n1:"; {
output_asm_insn (s, operands);
s = "bnez\t%2,1f\n\tbreak\t7\n1:";
}
else else
s = "bne\t%2,%.,1f%#\n\tbreak\t7\n1:"; {
output_asm_insn ("%(bne\t%2,%.,1f", operands);
output_asm_insn (s, operands);
s = "break\t7%)\n1:";
}
} }
if (TARGET_FIX_R4000) if (TARGET_FIX_R4000)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment