diff options
author | Tom de Vries <tom@codesourcery.com> | 2014-04-26 16:32:56 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2014-04-26 16:32:56 +0000 |
commit | 4148ef5ff6d4673423d3e5c7c4bb92944d3f7038 (patch) | |
tree | 8245d78875941294705838ecc975fc039072bf6c /gcc | |
parent | 367ab8238a9f1b3fb534f05435c78c6393ff7cb2 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 11 |
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; }) |