TF type (quad float) not implemented?

Dylan_S_Cuthbert@hq.scei.sony.co.jp Dylan_S_Cuthbert@hq.scei.sony.co.jp
Fri Jun 16 02:08:00 GMT 2000


Unfortunately, the type I'm trying to define doesn't fit into the current set of
machine modes, and TFmode was the closest.  The type I'm trying to define is a
128 bit value consisting of 4 32 bit floats. (which aren't seen by the compiler)

If I define it as a long double then I seem to get errors because it isn't
really a single floating point value and I don't want to start trying to work
out how to cater for it in that direction anyway - its a much simpler type.

How should I be defining this type/mode?

Its definition is:

size: 128 bits
registers;  a completely different hardware register set is used by this mode
general type: float
arithmetic operations: none
access: 128 bit store/load/move supported
        transfer to-fro TImode is supported (128 bit)
        transfer to-fro memory is supported (128 bit)

I duplicated the intTI_type_node areas within c-decl.c and similar files, I
inserted a floatTF_type_node.

This allows me to use "typedef float vector_128 __attribute__ ((mode(TF)));"
with the correct results.

I added "L" into the C9x name-mangling to support this type (this is most likely
entirely wrong, someone please tell me how to "properly" implement this).  I
also added a mips specific register restraint "j" in order to be able to use the
new type.

All the above works fine, (after a few modifications to the .md file and
call_value/movtf etc.) but I'd really like to get away without any of the
modifications to gcc's source, leaving only machine description modifications,
so now tell me what I *should* have done please!

Best Regards

Dylan Cuthbert






Richard Henderson <rth@cygnus.com> 2000/06/16 01:30:21 AM

$B08@h(B: Dylan S Cuthbert/SCEI@SCEI
cc:   gcc@gcc.gnu.org
$B7oL>(B: Re: TF type (quad float) not implemented?

On Thu, Jun 15, 2000 at 11:47:07PM +0900, Dylan_S_Cuthbert wrote:
> Or maybe within the source is it only referred to as a long double or
> something like that?

Yes.

> So, with the current version of gcc, how do I specify in my machine
> description files that I want to be able to use a type of mode TF?

#define LONG_DOUBLE_TYPE_SIZE  128


r~




More information about the Gcc mailing list