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