From: Uros Bizjak Date: Mon, 26 Jan 2015 20:49:22 +0000 (+0100) Subject: backport: re PR target/64795 (too many memory references for `lea') X-Git-Tag: releases/gcc-4.8.5~307 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a48a0ec04abfc6f8147af1302951b840a6b7a547;p=thirdparty%2Fgcc.git backport: re PR target/64795 (too many memory references for `lea') Backport from mainline 2015-01-26 Uros Bizjak PR target/64795 * config/i386/i386.md (*movdi_internal): Also check operand 0 to determine TYPE_LEA operand. (*movsi_internal): Ditto. Backport from mainline 2015-01-23 Uros Bizjak * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for alternative 1. From-SVN: r220134 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 177ffd16f871..a1283d165a54 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2015-01-26 Uros Bizjak + + Backport from mainline + 2015-01-26 Uros Bizjak + + PR target/64795 + * config/i386/i386.md (*movdi_internal): Also check operand 0 + to determine TYPE_LEA operand. + (*movsi_internal): Ditto. + + Backport from mainline + 2015-01-23 Uros Bizjak + + * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for + alternative 1. + 2015-01-15 Martin Liska Backport from mainline @@ -444,7 +460,7 @@ * config/pa/pa.md (trap): New insn. Add "trap" to attribute type. Don't allow trap insn in in_branch_delay, in_nullified_branch_delay or in_call_delay. - + 2014-11-06 Kyrylo Tkachov * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 24e93f9f41a7..372ae63f03d4 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1945,7 +1945,8 @@ (const_string "ssemov") (eq_attr "alternative" "15,16") (const_string "ssecvt") - (match_operand 1 "pic_32bit_operand") + (and (match_operand 0 "register_operand") + (match_operand 1 "pic_32bit_operand")) (const_string "lea") ] (const_string "imov"))) @@ -2171,7 +2172,8 @@ (const_string "sselog1") (eq_attr "alternative" "7,8,9,10,11") (const_string "ssemov") - (match_operand 1 "pic_32bit_operand") + (and (match_operand 0 "register_operand") + (match_operand 1 "pic_32bit_operand")) (const_string "lea") ] (const_string "imov"))) diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index cba540107c50..bc47bb4067ad 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -7369,7 +7369,7 @@ movss\t{%2, %0|%0, %2} movss\t{%2, %0|%0, %2} vmovss\t{%2, %1, %0|%0, %1, %2}" - [(set_attr "isa" "sse2,*,noavx,noavx,avx") + [(set_attr "isa" "sse2,sse2,noavx,noavx,avx") (set_attr "type" "ssemov") (set_attr "prefix" "maybe_vex,maybe_vex,orig,orig,vex") (set_attr "mode" "TI,TI,V4SF,SF,SF")])