Subject: Re: Possible bug in arm32 strongarm optimisations.
To: David Brownlee <abs@netbsd.org>
From: Mike Pumford <mpumford@black-star.demon.co.uk>
List: port-arm32
Date: 10/27/2000 23:35:44
> {"armv3m", PROCESSOR_NONE, (FL_CO_PROC | FL_FAST_MULT | FL_MODE32
> | FL_MODE26)},
>
> {"strongarm", PROCESSOR_STARM, (FL_FAST_MULT | FL_MODE32 | FL_MODE26
> | FL_ARCH4)},
>
> Hmm... -marmv3m also implies FL_CO_PROC, which by default will
> compile for an FPE. Kernel code is always compiled soft-float,
> does the same apply for NetBSD/arm32 userland?
>
No it looks like the NetBSD GCC always does soft float. I just tried the
following program:
int main(void)
{
double x = 14.3,y = 2.3;
printf("%fx%f=%f\n",x,y,x*y);
return 0;
}
I compiled this with -march=armv3m -mtune=strongarm and it ran without
aborting on my machine. Since I have no FPU and the ARM FPE is not compiled
into my kernel I would guess that GCC does not generate floating point
instructions with these flags enabled. I have a RiscPC kernel compiling with
these options as I write this.
Mike