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]

Re: TF type (quad float) not implemented?


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~



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