This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: TF type (quad float) not implemented?
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: TF type (quad float) not implemented?
- From: Dylan_S_Cuthbert at hq dot scei dot sony dot co dot jp
- Date: Fri, 16 Jun 2000 18:06:04 +0900
- cc: gcc at gcc dot gnu dot org
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
宛先: Dylan S Cuthbert/SCEI@SCEI
cc: gcc@gcc.gnu.org
件名: 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~