aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2014-04-26 16:32:56 +0000
committerTom de Vries <vries@gcc.gnu.org>2014-04-26 16:32:56 +0000
commit4148ef5ff6d4673423d3e5c7c4bb92944d3f7038 (patch)
tree8245d78875941294705838ecc975fc039072bf6c /gcc
parent367ab8238a9f1b3fb534f05435c78c6393ff7cb2 (diff)
downloadgcc-4148ef5ff6d4673423d3e5c7c4bb92944d3f7038.zip
gcc-4148ef5ff6d4673423d3e5c7c4bb92944d3f7038.tar.gz
gcc-4148ef5ff6d4673423d3e5c7c4bb92944d3f7038.tar.bz2
Fix out-of-bounds array accesses in ldexpxf3.
2014-04-26 Tom de Vries <tom@codesourcery.com> * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds array accesses. From-SVN: r209824
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.md11
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ccb7964..26325e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-04-26 Tom de Vries <tom@codesourcery.com>
+
+ * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
+ array accesses.
+
2014-04-25 Cary Coutant <ccoutant@google.com>
PR debug/60929
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 7db117c..fde0a93 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -14427,15 +14427,16 @@
"TARGET_USE_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
{
+ rtx tmp1, tmp2;
if (optimize_insn_for_size_p ())
FAIL;
- operands[3] = gen_reg_rtx (XFmode);
- operands[4] = gen_reg_rtx (XFmode);
+ tmp1 = gen_reg_rtx (XFmode);
+ tmp2 = gen_reg_rtx (XFmode);
- emit_insn (gen_floatsixf2 (operands[3], operands[2]));
- emit_insn (gen_fscalexf4_i387 (operands[0], operands[4],
- operands[1], operands[3]));
+ emit_insn (gen_floatsixf2 (tmp1, operands[2]));
+ emit_insn (gen_fscalexf4_i387 (operands[0], tmp2,
+ operands[1], tmp1));
DONE;
})