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