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: Calls to qp float lib out of sparcv9 head compiler


Richard Henderson <rth@redhat.com> writes:

> On Wed, Feb 27, 2002 at 03:49:32PM +0100, Olivier Hainque wrote:
> >  As the sparc64 support has evolved a lot recently, are there known reasons
> >  for this to still be enforced ?
> 
> Not that I'm aware of.

 OK, thanks. 

 After removing this bit (forcing 128 long doubles for -m64) and making
 long doubles 64bit for VxWorks, the following code

     static int sizeof_long_double = sizeof(long double);
     static int sizeof_unsigned_long_long = sizeof(unsigned long long);

     int main (void)
     {      
        long double X = 1.0;

        unsigned long long V2 = (unsigned long long) (X);

        return 0;
     }

 still yields :

     sizeof_long_double:
             .long   8
     sizeof_unsigned_long_long:
             .long   8
     main:
             ...
             call    _Qp_dtoq, 0
             ...
             call    _Qp_qtoux, 0
              nop

 AFAICS, this is because expand_fix finds ...

      (define_expand "fixuns_trunctfdi2"
       ...
       "TARGET_FPU && TARGET_ARCH64 && ! TARGET_HARD_QUAD"
       "
      {
        ...
        emit_library_call_value (gen_rtx (SYMBOL_REF, Pmode, \"_Qp_qtoux\"),
                                 operands[0], 0, DImode, 1,
                                 XEXP (slot0, 0), Pmode);
        DONE;
      }")

 Unfortunately, the _Qp_ functions are not available on VxWorks.

 Would there be a simple way to take this into account ?

 Thanks in advance for your help,

 Kind Regards,

 Olivier


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