diff options
| author | Paul Mackerras <paulus@samba.org> | 2004-06-22 05:52:14 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-22 05:52:14 -0700 |
| commit | 7a08473bfee8b94befd7b38333d747290668848a (patch) | |
| tree | 6091f120d68fdc538ba43a922693479a7dec91f8 /include/linux | |
| parent | 6340e7ba74ed8334a6a0505121c995a5baa70d7c (diff) | |
[PATCH] Handle altivec assist exception properly
This is the PPC64 counterpart of the PPC32 Altivec assist exception
handler that went in recently.
On PPC64 machines with Altivec (i.e. machines that use the PPC970 chip,
such as the G5 powermac), the altivec floating-point instructions can
operate in two modes: one where denormalized inputs or outputs are
truncated to zero, and one where they aren't. In the latter mode the
processor can take an exception when it encounters denormalized
floating-point inputs or outputs rather than dealing with them in
hardware.
This patch adds code to deal properly with the exception, by emulating
the instruction that caused the exception. Previously the kernel just
switched the altivec unit into the truncate-to-zero mode, which works
but is a bit gross. Fortunately there are only a limited set of altivec
instructions which can generate the assist exception, so we don't have
to emulate the whole altivec instruction set.
Note that Altivec is Motorola's name for the PowerPC vector/SIMD
instructions; IBM calls the same thing VMX, and currently only IBM makes
64-bit PowerPC CPU chips. Nevertheless, I have used the term Altivec in
the PPC64 code for consistency with the PPC32 code.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
