Subject: Re: options FPE/ARMFPE?
To: Hubert Feyrer <feyrer@rfhs8012.fh-regensburg.de>
From: Mark Brinicombe <mark@causality.com>
List: port-arm32
Date: 10/04/1998 19:29:31
On Sun, 4 Oct 1998, Hubert Feyrer wrote:

> 
> Hi,
> 
> syncing my kernel config files, I wondered what the following options do:
> 
> # FPA options
> #options 	FPE		# Single precision FPE
> #options 	ARMFPE		# ARM Ltd FPE
> 
> Maybe someone can add these (and whatever else is missing >:) to
> options.4? Would be cool!
> 
> And while here: does option FFS_EI work on the shark? It's not in the
> SHARK config file...
Hi,
  Ok both these options are deprecated. In fact the FPE option is dead
(only the SHARK config still has it for some reason).

All current ARM processors do not have hardware FP instructions as
standard. FP instructions are implemented via co-processor instructions.
Co-processors where produced (FPA-10 and FPA-11) but these are not widely
used. In fact for machines that NetBSD supports there are literally a
handful of CPU cards in existance that support fitting a co-processor.
The excpetion is the ARM7500FE processor which is used in Acorn A7000+
machines. This processor has a FPA built in along with a memory
controller, video controller etc.

All StrongARM processors lack hardware floating point and the
co-processor interface to add one externally.

The FPE option was for a single precision floating point instruction
emulator that was used to get some initaial FP on NetBSD/arm32 about 3.5
years ago. This code has now been removed from the tree. This was replaced
with the ARMFPE which is a floating point emulator based on ARM Ltd's
floating point emulator.

However implementing soft-float is far more efficicent that taking
undefined instruction traps, disassmebling the instruction and emulating
it etc. In fact ARM themselves have gone in the direction of a soft-float
library for performance reasons.

If hardware FP was available e.g. ARM7500FE based systems then the
softfloat code in libc could be replaced with a version that used the
hardware co-processor instructions. Note: Even with hardware FP support
only the basic arithmetic ops are supported in hardware. Things like Trig
etc still require software emulation.

Hope this makes tings slighly clearer.

Cheers,
				Mark