diff options
author | Steve Ellcey <sellcey@imgtec.com> | 2016-01-29 16:29:58 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2016-01-29 16:29:58 +0000 |
commit | 87a5ab58c5ffe762d4ff8f76daa41846cdffa472 (patch) | |
tree | 4fefacfdaa6161f57d1093c48115fde5a6358e55 | |
parent | 33e89989f63ba5148362ecbdaed7d6c62e74e8ea (diff) | |
download | gcc-87a5ab58c5ffe762d4ff8f76daa41846cdffa472.zip gcc-87a5ab58c5ffe762d4ff8f76daa41846cdffa472.tar.gz gcc-87a5ab58c5ffe762d4ff8f76daa41846cdffa472.tar.bz2 |
re PR target/65604 (MIPS -fno-delayed-branch generates incorrect code with -mcheck-zero-division)
PR target/65604
* config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
From-SVN: r232985
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 14 |
2 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f99842..2450e4f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-01-29 Steve Ellcey <sellcey@imgtec.com> + + PR target/65604 + * config/mips/mips.c (mips_output_division): Check flag_delayed_branch. + 2016-01-29 Jakub Jelinek <jakub@redhat.com> PR target/69551 diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 84fbc97..9ec2dcb 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -13712,9 +13712,17 @@ mips_output_division (const char *division, rtx *operands) } else { - output_asm_insn ("%(bne\t%2,%.,1f", operands); - output_asm_insn (s, operands); - s = "break\t7%)\n1:"; + if (flag_delayed_branch) + { + output_asm_insn ("%(bne\t%2,%.,1f", operands); + output_asm_insn (s, operands); + s = "break\t7%)\n1:"; + } + else + { + output_asm_insn (s, operands); + s = "bne\t%2,%.,1f\n\tnop\n\tbreak\t7\n1:"; + } } } return s; |