Problem updating 2yr old port

Christian Grössler chris@groessler.org
Tue Dec 28 01:03:00 GMT 2010


On 28.12.10 00:22, Ian Lance Taylor wrote:
> Christian Grössler<chris@groessler.org>  writes:
>
>> Looking at the history of optabs.c, the MODE_CC test was introduced when merging the cond-optab branch
>> to main. I didn't find a description of the cond-optab branch and what it was supposed to do.
>
> This is the description of the now-merged cond-optab branch, from
> http://gcc.gnu.org/ml/gcc/2009-04/msg00211.html :
>
>      This branch is to clean up and simplify the implementation of
>      conditional operations (branches, stores, moves, etc.) in expand and
>      in the machine descriptions.  Patches should be marked with the tag
>      [cond-optab] in the subject line.  The branch is maintained by Paolo
>      Bonzini.  Pending further testing, the branch is ready to be merged
>      into mainline and only bug and documentation fixes should be
>      committed.
>
> As I recall the basic idea was to generate all conditional branches via
> the cbranchMODE4 pattern rather than using separate compare and branch
> patterns.

Yeah, so I seem to need to add a cbranchMODE4 pattern. I tried it, but it didn't help.
Probably because I'm not fit enough yet to write a proper pattern (I copied one from
ia64 and modified it to see if it gets picked up, but it didn't happen).


> I couldn't figure out which assertion you hit so I'm not sure what else
> to say.  A const_int is always VOIDmode, and there should be no problem
> comparing a value to a const_int.

Sorry, the line numbers in the ICE are wrong, since I added some debug messages.
The abort happens here in prepare_cmp_insn():

       /* Handle a libcall just for the mode we are using.  */
       libfunc = optab_libfunc (cmp_optab, mode);
       gcc_assert (libfunc);    <------ HERE


regards,
chris



More information about the Gcc mailing list