Subject: Re: port-sparc/33169
To: None <port-sparc-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: Martin Husemann <martin@duskware.de>
List: netbsd-bugs
Date: 03/30/2006 07:55:02
The following reply was made to PR port-sparc/33169; it has been noted by GNATS.

From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-sparc/33169
Date: Thu, 30 Mar 2006 09:50:46 +0200

 The firefox code in question is (basically):
 
  double v = va_arg(ap, double);
 
 The internal compiler error happens when converting the *ap value to double:
 
 void
 convert_move (to, from, unsignedp)
      rtx to, from;
      int unsignedp;
 {
   enum machine_mode to_mode = GET_MODE (to);
   enum machine_mode from_mode = GET_MODE (from);
   int to_real = GET_MODE_CLASS (to_mode) == MODE_FLOAT;
   int from_real = GET_MODE_CLASS (from_mode) == MODE_FLOAT;
 
 and later on to_real is enforced to be == from_real. I do not know how this
 works (or is supposed to work) with double source and/or target.
 
 Martin