Hi,

I read in the Documentation Section, that Minix 3 does not yet support
native Floating Point, MMX, 3DNow etc. Instructions. Someone states,
that it would increase RAM required to store corresponding registers on
task switches.
As far as Minix 3 is a very modular system, why don't you use the
following components:
- a FP Scheduling Process (single instance)
- a FP,MMX,etc. Executing Process (one for each CPU core and bind to
this CPU core)

The Scheduling Process gets a request for a 'floating point' job (this
job's description should look the same on all native platforms - e.g.
x86, 386, PowerPC, AMD64). It looks for a free executing process and
asks that process for execution. The execution process interprets the
job description and executes native FP, MMX, whatever instructions. When
finished it send back the results to the scheduling process, that then
sends back the result to the requesting process.

No state needs to be stored at any task switch, because only one process
per CPU would execute native FP instructions. Systems with no native FP
support could have one or more emulating execution process(es).

Compiling floating point statements on different platforms would result
in the same code - no compiler changes are required in this part of code.

I believe, that the time needed for communication between these
processes plus time for native execution may be faster than emulating
those commands on platforms that have native FP support.


Kind regards
Jörg