mirror of git://gcc.gnu.org/git/gcc.git
re PR target/46088 (ICE: SIGSEGV in ix86_binary_operator_ok (i386.c:15025) with -Os -fnon-call-exceptions -fpeel-loops)
PR target/46088 * config/i386/i386.md (*ashl<mode>3_cconly, *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok, change nonimmediate_operand predicate to register_operand. * gcc.dg/pr46088.c: New test. From-SVN: r166635
This commit is contained in:
parent
8fb1546627
commit
94252ac254
|
@ -1,3 +1,10 @@
|
||||||
|
2010-11-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR target/46088
|
||||||
|
* config/i386/i386.md (*ashl<mode>3_cconly,
|
||||||
|
*<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
|
||||||
|
change nonimmediate_operand predicate to register_operand.
|
||||||
|
|
||||||
2010-11-11 Paolo Bonzini <bonzini@gnu.org>
|
2010-11-11 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
* Makefile.in (gengtype-lex.c): Include bconfig.h first.
|
* Makefile.in (gengtype-lex.c): Include bconfig.h first.
|
||||||
|
|
|
@ -9714,7 +9714,7 @@
|
||||||
(define_insn "*ashl<mode>3_cconly"
|
(define_insn "*ashl<mode>3_cconly"
|
||||||
[(set (reg FLAGS_REG)
|
[(set (reg FLAGS_REG)
|
||||||
(compare
|
(compare
|
||||||
(ashift:SWI (match_operand:SWI 1 "nonimmediate_operand" "0")
|
(ashift:SWI (match_operand:SWI 1 "register_operand" "0")
|
||||||
(match_operand:QI 2 "<shift_immediate_operand>" "<S>"))
|
(match_operand:QI 2 "<shift_immediate_operand>" "<S>"))
|
||||||
(const_int 0)))
|
(const_int 0)))
|
||||||
(clobber (match_scratch:SWI 0 "=<r>"))]
|
(clobber (match_scratch:SWI 0 "=<r>"))]
|
||||||
|
@ -9723,8 +9723,7 @@
|
||||||
|| (operands[2] == const1_rtx
|
|| (operands[2] == const1_rtx
|
||||||
&& (TARGET_SHIFT1
|
&& (TARGET_SHIFT1
|
||||||
|| TARGET_DOUBLE_WITH_ADD)))
|
|| TARGET_DOUBLE_WITH_ADD)))
|
||||||
&& ix86_match_ccmode (insn, CCGOCmode)
|
&& ix86_match_ccmode (insn, CCGOCmode)"
|
||||||
&& ix86_binary_operator_ok (ASHIFT, <MODE>mode, operands)"
|
|
||||||
{
|
{
|
||||||
switch (get_attr_type (insn))
|
switch (get_attr_type (insn))
|
||||||
{
|
{
|
||||||
|
@ -10081,7 +10080,7 @@
|
||||||
[(set (reg FLAGS_REG)
|
[(set (reg FLAGS_REG)
|
||||||
(compare
|
(compare
|
||||||
(any_shiftrt:SWI
|
(any_shiftrt:SWI
|
||||||
(match_operand:SWI 1 "nonimmediate_operand" "0")
|
(match_operand:SWI 1 "register_operand" "0")
|
||||||
(match_operand:QI 2 "<shift_immediate_operand>" "<S>"))
|
(match_operand:QI 2 "<shift_immediate_operand>" "<S>"))
|
||||||
(const_int 0)))
|
(const_int 0)))
|
||||||
(clobber (match_scratch:SWI 0 "=<r>"))]
|
(clobber (match_scratch:SWI 0 "=<r>"))]
|
||||||
|
@ -10089,8 +10088,7 @@
|
||||||
|| !TARGET_PARTIAL_FLAG_REG_STALL
|
|| !TARGET_PARTIAL_FLAG_REG_STALL
|
||||||
|| (operands[2] == const1_rtx
|
|| (operands[2] == const1_rtx
|
||||||
&& TARGET_SHIFT1))
|
&& TARGET_SHIFT1))
|
||||||
&& ix86_match_ccmode (insn, CCGOCmode)
|
&& ix86_match_ccmode (insn, CCGOCmode)"
|
||||||
&& ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
|
|
||||||
{
|
{
|
||||||
if (operands[2] == const1_rtx
|
if (operands[2] == const1_rtx
|
||||||
&& (TARGET_SHIFT1 || optimize_function_for_size_p (cfun)))
|
&& (TARGET_SHIFT1 || optimize_function_for_size_p (cfun)))
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2010-11-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR target/46088
|
||||||
|
* gcc.dg/pr46088.c: New test.
|
||||||
|
|
||||||
2010-11-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
2010-11-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
* gfortran.dg/empty_derived_type.f90: New test.
|
* gfortran.dg/empty_derived_type.f90: New test.
|
||||||
|
@ -1016,7 +1021,7 @@
|
||||||
PR target/46253
|
PR target/46253
|
||||||
* gcc.target/i386/pr46253.c: New.
|
* gcc.target/i386/pr46253.c: New.
|
||||||
|
|
||||||
2010-11-02 Steven G. Kargl < kargl@gcc.gnu.org>
|
2010-11-02 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
Tobias Burnus <burnus@net-b.de>
|
Tobias Burnus <burnus@net-b.de>
|
||||||
|
|
||||||
PR fortran/45170
|
PR fortran/45170
|
||||||
|
@ -3107,7 +3112,7 @@
|
||||||
* gfortran.dg/io_constraints_7.f03: New test.
|
* gfortran.dg/io_constraints_7.f03: New test.
|
||||||
* gfortran.dg/newunit_2.f90: New test.
|
* gfortran.dg/newunit_2.f90: New test.
|
||||||
|
|
||||||
2010-09-24 Steven G. Kargl < kargl@gcc.gnu.org>
|
2010-09-24 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
* gfortran.dg/operator_c1202.f90: New test.
|
* gfortran.dg/operator_c1202.f90: New test.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
/* PR target/46088 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-Os -fnon-call-exceptions -fpeel-loops" } */
|
||||||
|
|
||||||
|
extern void bar (void);
|
||||||
|
|
||||||
|
void
|
||||||
|
foo (int i)
|
||||||
|
{
|
||||||
|
if (i >> 3)
|
||||||
|
bar ();
|
||||||
|
}
|
Loading…
Reference in New Issue