Subject: Re: soft float

From: Russell King <[email-masked]>
Date: Fri, 24 Jul 1998 09:20:29 +0100 (BST)

There will be a version of the FPE available (once I find the time to really
hack the modutils to put certain bugs back in).  Unfortunately, at the moment,
the FPEmulator module is highly kernel specific - I hope to fix this next week.

> Alternatively, if someone can provide me with some knowledge as to what
> the required FP interfaces are (I don't have time to read the source) I
> can make a proper, more efficient version of the emulator available that

In what way is the Acorn one not a 'proper' emulator?

I believed (and have been told) that the Acorn FPE is highly optimised for
the StrongARM - in what way is your emulator more efficient?

> handles multiple register sets better (see the one in NetBSD, which
> could potentially be ported over although it only works in a full 32-bit
> mode).

How exactly are task switches handled?

--
Russell King ([email-masked])

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]

---

From: Phil Norman <[email-masked]>
Date: Fri, 24 Jul 1998 11:35:29 +0100 (BST)

> the FPEmulator module is highly kernel specific - I hope to fix this next week.

s/bugs/bug fixes/ ?

-- 
Linux: A penguin which jumps through Windows and leaps over Gates.

Phil Norman, mailing from Oregan Networks.
email:	[email-masked]
URL:	http://newton.ex.ac.uk/general/ug/norman

---

From: Philip Blundell <[email-masked]>
Date: Fri, 24 Jul 1998 14:35:10 +0100

>> hack the modutils to put certain bugs back in).
>
>s/bugs/bug fixes/ ?

No, he means what he says.  The current modutils is, apparently, too smart for 
its own good and won't let you load a module on a kernel it thinks isn't 
compatible.  This needs nobbling for the FPEmulator unfortunately.

p.

---

From: "Neil A. Carson" <[email-masked]>
Date: Fri, 24 Jul 1998 17:24:07 +0100

> the FPEmulator module is highly kernel specific - I hope to fix this next week.

Great!

> the StrongARM - in what way is your emulator more efficient?

As far as I know, it doesn't make use of the StrongARM's extended
multiply, but this may change---do an objdump | grep or something like
that. Also, in the past Acorn's emulator used to engineer a switch from
32-bit undefine mode to 26-bit supervisor mode on entering the undefined
vector which took some time. Also, using 26 bit code adds some
instruction overhead a bit in the main body. So, when I did the emulator
I configured it to assume a 32-bit mode, left out the 26-bit legacy
support and sat it straight on the undefined vector.

> How exactly are task switches handled?

The ARM FP Emulator core (which is basically what Acorn's is, with a
veneer on it) is buildable in many, many different ways. In a mode that
Acorn don't use, it can be defined to run in a 'multitasking' mode,
whereby it eliminates the necessity for sfm/lfm instructions on context
switches. Instead, it keeps track of its own register sets internally
and dynamically allocates/deallocates them as necessary and just
provides the calling OS with a context handle instead.

All of these could be hacked in to the Acorn binaries (eg by using the
equivalent of one whole RMA instance of the FPE per task, but this is
wasteful), but the way ARM themselves have done it is much neater.

	Regards,

	Neil

-- 
Neil A. Carson