freebsd-nq/sys/ia64
Marcel Moolenaar 0d9ae4e24e Further work-out the handling of the high FP registers. The most
important change is in cpu_switch() where we disable the high FP
registers for the thread that we switch-out if the CPU currently
has its high FP registers. This avoids that the high FP registers
remain enabled for the thread even when the CPU has unloaded them
or the thread migrated to another processor.
Likewise, when we switch-in a thread of that has its high FP
registers on the CPU, we enable them. This avoids an otherwise
harmless, but unnecessary trap to have them enabled.

The code that handles the disabled high FP trap (in trap()) has
been turned into a critical section for the most part to avoid
being preempted. If there's a race, we bail out and have the
processor trap again if necessary.

Avoid using the generic ia64_highfp_save() function when the
context is predictable. The function adds unnecessary overhead.
Don't use ia64_highfp_load() for the same reason. The function
is now unused and can be removed.

These changes make the lazy context switching of the high FP
registers in an UP kernel functional.
2003-11-12 01:26:02 +00:00
..
acpica Move the definitions for ACPI MADT table entries not present in the ACPICA 2003-09-10 06:32:27 +00:00
compile Don't need the .keep_me files. Obrien and I committed past each other. 2001-07-01 23:35:44 +00:00
conf Remove the atkbd, psm, sc and vga devices. Most ia64 boxes out there 2003-11-08 23:19:13 +00:00
disasm Remove two unused fields in the operand structure (o_read & o_write). 2003-10-24 02:05:53 +00:00
ia32 Regen. 2003-11-07 20:30:30 +00:00
ia64 Further work-out the handling of the high FP registers. The most 2003-11-12 01:26:02 +00:00
include Use get_mcontext() to construct the signal context in sendsig() and 2003-11-09 22:17:36 +00:00
isa Mega busdma API commit. 2003-07-01 15:52:06 +00:00
pci Delete legacy pcib code - we can't possibly work without acpi on ia64. 2001-10-06 10:09:57 +00:00