This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
target/7021: __builtin_alpha_zapnot gives ICE
- From: falk dot hueffner at student dot uni-tuebingen dot de
- To: gcc-gnats at gcc dot gnu dot org
- Date: 13 Jun 2002 18:06:06 -0000
- Subject: target/7021: __builtin_alpha_zapnot gives ICE
- Reply-to: falk dot hueffner at student dot uni-tuebingen dot de
>Number: 7021
>Category: target
>Synopsis: __builtin_alpha_zapnot gives ICE
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Thu Jun 13 11:16:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: falk.hueffner@student.uni-tuebingen.de
>Release: CVS 2002-06-13
>Organization:
>Environment:
Alpha PCA56, Debian GNU/Linux
>Description:
__builtin_alpha_zapnot with a non-constant second argument gives an ICE.
It seems the problem is that in the machine description, the second parameter is declared to be in QI mode, while copy_to_mode_reg (called from alpha_expand_builtin) expects DI.
>How-To-Repeat:
% cat zapnot.c
unsigned long f(unsigned long x, unsigned long y) {
return __builtin_alpha_zapnot(x, y);
}
% gcc -c zapnot.c
zapnot.c: In function `f':
zapnot.c:2: Internal compiler error: Internal compiler error in copy_to_mode_reg, at explow.c:711
>Fix:
Using DI mode everywhere in builtin_zapnot* helps, but the QI was supposedly there to tell the compiler that only the low byte matters, which would get lost then.
>Release-Note:
>Audit-Trail:
>Unformatted: