I think I finally got the root cause and the stage1 compiler is crunching 
through the files without ICE, albeit very slowly :-)  It was a bug in gcc, 
here are my notes:


in gcc/defaults.h:

/* Assume that case vectors are not pc-relative.  */
#ifndef CASE_VECTOR_PC_RELATIVE
#define CASE_VECTOR_PC_RELATIVE 0
#endif

this is included after the target definitions and thus overrides the nextstep.h 
target definition which includes:

#undef CASE_VECTOR_PC_RELATIVE

the code then subsequently breaks in gcc/config/m68k/m68k.md:

#ifdef CASE_VECTOR_PC_RELATIVE
    operands[0] = gen_rtx_PLUS (SImode, pc_rtx,
                                gen_rtx_SIGN_EXTEND (SImode, operands[0]));
#endif

this conditional is always true because of the define in gcc/defaults.h, and 
needs to be replaced by:

#if CASE_VECTOR_PC_RELATIVE != 0
    operands[0] = gen_rtx_PLUS (SImode, pc_rtx,
                                gen_rtx_SIGN_EXTEND (SImode, operands[0]));
#endif


I will report the bug to GCC's Bugzilla.

A HUGE thank you once again to everyone for your help with this!

On 2012-05-23, at 3:21 AM, Andreas Schwab wrote:

> t-rexky <[email protected]> writes:
> 
>> #undef CASE_VECTOR_PC_RELATIVE
> 
> That is missing.
> 
> Andreas.
> 
> -- 
> Andreas Schwab, [email protected]
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
> "And now for something completely different."


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to