This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ICE - Compiling gzip fails
- To: Andreas Jaeger <aj at suse dot de>, patches at x86-64 dot org, gcc-patches at gcc dot gnu dot org
- Subject: Re: ICE - Compiling gzip fails
- From: Jan Hubicka <jh at suse dot cz>
- Date: Sun, 24 Jun 2001 21:21:22 +0200
- Cc: Jan Hubicka <jh at suse dot cz>, gcc-bugs at gcc dot gnu dot org
- References: <u8sngp6cco.fsf@gromit.moeb>
>
> Compilation of gzip fails with the current CVS sources fails with:
>
> /usr/src/SpecTests/sandbox/i686/install-200106241210/bin/gcc -c -o spec.o -O2 -march=athlon -malign-double spec.c
> spec.c: In function `spec_random_load':
> spec.c:130: Unrecognizable insn:
> (insn 89 88 91 (set (zero_extract:SI (reg:HI 75)
> (const_int 8 [0x8])
> (const_int 8 [0x8]))
> (const_int 12 [0xc])) -1 (insn_list 88 (nil))
> (nil))
> spec.c:130: Internal compiler error in extract_insn, at recog.c:2173
Hi,
The movsi_insv misses immediate operand, even when there is no purpose for
doing so. I've fixed it before sending the original patch, but forgot
about that :(
I am installing it as obvious, as bootstrap on -march=athlon is broken
and this should be easy enought.
Bootstrapped on the Athlon
Sun Jun 24 21:18:11 CEST 2001 Jan Hubicka <jh@suse.cz>
* (movsi_insv_1, movsi_insv_1_rex64): Allow immediate operand.
Index: i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.277
diff -c -3 -p -r1.277 i386.md
*** i386.md 2001/06/23 17:41:33 1.277
--- i386.md 2001/06/24 19:17:23
***************
*** 2317,2323 ****
[(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
(const_int 8)
(const_int 8))
! (match_operand:SI 1 "nonimmediate_operand" "Qm"))]
"!TARGET_64BIT"
"mov{b}\\t{%b1, %h0|%h0, %b1}"
[(set_attr "type" "imov")
--- 2317,2323 ----
[(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
(const_int 8)
(const_int 8))
! (match_operand:SI 1 "general_operand" "Qmi"))]
"!TARGET_64BIT"
"mov{b}\\t{%b1, %h0|%h0, %b1}"
[(set_attr "type" "imov")
***************
*** 2327,2333 ****
[(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
(const_int 8)
(const_int 8))
! (match_operand:SI 1 "register_operand" "Q"))]
"TARGET_64BIT"
"mov{b}\\t{%b1, %h0|%h0, %b1}"
[(set_attr "type" "imov")
--- 2327,2333 ----
[(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
(const_int 8)
(const_int 8))
! (match_operand:SI 1 "nonmemory_operand" "Qi"))]
"TARGET_64BIT"
"mov{b}\\t{%b1, %h0|%h0, %b1}"
[(set_attr "type" "imov")