re PR target/39633 ([avr] loop bug: missing 8-bit comparison (*cmpqi))
gcc/ PR target/39633 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only offsets 1..5 set cc0 in a usable way. testsuite/ PR target/39633 * gcc.target/avr/torture/pr39633.c: New test case. From-SVN: r176141
This commit is contained in:
parent
0e65e6311b
commit
7e4ec472ee
|
@ -1,3 +1,9 @@
|
|||
2011-07-11 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
PR target/39633
|
||||
* config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
|
||||
offsets 1..5 set cc0 in a usable way.
|
||||
|
||||
2011-07-11 Romain Geissler <romain.geissler@gmail.com>
|
||||
|
||||
* tree.h (call_expr_arg): Remove.
|
||||
|
|
|
@ -1479,9 +1479,8 @@ notice_update_cc (rtx body ATTRIBUTE_UNUSED, rtx insn)
|
|||
{
|
||||
rtx x = XEXP (src, 1);
|
||||
|
||||
if (GET_CODE (x) == CONST_INT
|
||||
&& INTVAL (x) > 0
|
||||
&& INTVAL (x) != 6)
|
||||
if (CONST_INT_P (x)
|
||||
&& IN_RANGE (INTVAL (x), 1, 5))
|
||||
{
|
||||
cc_status.value1 = SET_DEST (set);
|
||||
cc_status.flags |= CC_OVERFLOW_UNUSABLE;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-07-11 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
PR target/39633
|
||||
* gcc.target/avr/torture/pr39633.c: New test case.
|
||||
|
||||
2011-07-11 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/18918
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
/* { dg-do run } */
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
char c = 42;
|
||||
|
||||
void __attribute__((noinline,noclone))
|
||||
pr39633 (char a)
|
||||
{
|
||||
a >>= 7;
|
||||
if (a)
|
||||
c = a;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
pr39633 (6);
|
||||
|
||||
if (c != 42)
|
||||
abort();
|
||||
|
||||
exit(0);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue