This is the mail archive of the gcc@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: How to configure a bi-arch PowerPC GCC?


Hi!

On Thu, Jul 20, 2017 at 02:46:41PM +0200, Sebastian Huber wrote:
> xgcc -B/build/git-build/b-gcc-git-powerpc-rtems4.12/./gcc/ -mcpu=e6500 
> -m64 -O2 -fpreprocessed -S test-v0.i -o /dev/null 2>&1
> test-v0.i: In function 'f':
> test-v0.i:8:1: error: unrecognizable insn:
>  }
>  ^
> (insn 12 11 13 2 (set (reg:CCFP 126)
>         (compare:CCFP (reg:TF 123)
>             (reg:TF 124))) "test-v0.i":5 -1
>      (nil))
> during RTL pass: vregs
> test-v0.i:8:1: internal compiler error: in extract_insn, at recog.c:2311
> 0x40a233 _fatal_insn(char const*, rtx_def const*, char const*, int, char 
> const*)

So, this instruction is what was expanded, but it is not a valid
instruction for your configuration.

> So, I looked for " __gcc_qsub" in the GCC sources. It seems this is 
> generated by rs6000_init_libfuncs() for some "sub_optab" stuff.

It ends up in libgcc.a, from ibm-ldouble.c .

> I don't know how I can figure out the corresponding GCC sources that are 
> involved here.

In your testcase you use TFmode directly.  This either is the
"double-double" ("IBM128") format, or IEEE 128-bit format (another
option for "long double" is to make it the same as "double").

Using a 64-bit long double has as downside that it is not bigger than
double.

Using double-double has as downsides that we are trying to move away
from it, it has funny rounding, historically it has had quite a few
bugs.

IEEE 128-bit is currently only supported on systems with VSX.  If you
want to use it on other systems you'll have to make emulation support
for it in libgcc -- which then will work on *all* systems.  Maybe
this is a bit much work.


Segher


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