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