This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: {RFA] PowerPC e500mc64 core support


Edmar,

The support for the processor itself is okay: the scheduling, the cost
model, etc.

The change in rs6000_override_options to set rs6000_align_branches is
indented incorrectly.

The changes to the abs patterns seem superficially okay.

I need to review the rs6000_emit_sISEL function more carefully.

What is not okay are the changes to

 (define_expand "floatdidf2"
 (define_insn "*floatdidf2_fpr"
 (define_expand "fix_truncdfdi2"
 (define_insn "*fix_truncdfdi2_fpr"

Either e500mc64 is a 64 bit processor or not.  Either it sets
MASK_POWERPC64 or not.  Either it operates in the 32 bit subset or
not.  Either it follows the Linux ABI or not.  Either all processors
with E500_SINGLE or E500_DOUBLE feature work this way or not.  It
cannot operate in 32 bit mode "except for this instruction".  If
Freescale really wants to use that instruction in 32 bit mode for
those operations, use custom assembly in libgcc, then it always will
work in future iterations because it always can fall back to default
libgcc without the special instructions.

Creating ABIs that vary with the processor is a road to hell.  If
Freescale wants to do that, it can supply private patches to customers
or through partners because it is going to be incompatible with the
rest of the PowerPC world anyway and require a custom distribution and
toolchain.  Someone should have been thinking ahead more than one
processor generation.

David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]