haiku/headers/private/kernel/arch/x86
Paweł Dziepak 396b74228e kernel/x86_64: save fpu state at interrupts
The kernel is allowed to use fpu anywhere so we must make sure that
user state is not clobbered by saving fpu state at interrupt entry.
There is no need to do that in case of system calls since all fpu
data registers are caller saved.

We do not need, though, to save the whole fpu state at task swich
(again, thanks to calling convention). Only status and control
registers are preserved. This patch actually adds xmm0-15 register
to clobber list of task swich code, but the only reason of that is
to make sure that nothing bad happens inside the function that
executes that task swich. Inspection of the generated code shows
that no xmm registers are actually saved.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
2014-09-14 19:16:52 +02:00
..
32 os/support: implement atomic_*() using GCC builtin helpers 2014-08-25 23:05:07 +02:00
64 kernel/x86_64: save fpu state at interrupts 2014-09-14 19:16:52 +02:00
apic.h x86: Implement multicast ICIs 2013-12-19 19:35:44 +01:00
apm.h Compile in arch_platform.cpp for x86_64. The apm_init call is disabled for x86_64, APM is 32-bit only. 2012-07-06 14:17:48 +01:00
arch_acpi.h * Add validation of the RSDP checksums. 2011-06-12 22:01:43 +00:00
arch_atomic.h kernel: No need for arch specific ifdefs in arch/atomic.h 2014-01-20 04:09:17 +01:00
arch_cpu.h kernel/x86_64: save fpu state at interrupts 2014-09-14 19:16:52 +02:00
arch_debug.h Implemented threading for x86_64. 2012-07-09 16:43:01 +01:00
arch_hpet.h Some big changes, still not working on my laptop, since hpet interrupts 2009-09-29 08:36:36 +00:00
arch_int.h x86[_64]: Support assigning MSI IRQs to arbitrary CPU 2013-12-20 01:07:08 +01:00
arch_kernel_args.h x86[_64]: Separate bootloader and kernel GDT and IDT logic 2014-01-28 00:44:02 +01:00
arch_kernel.h x86_64: put user stack and team data at top of user address space 2013-04-04 20:54:56 +02:00
arch_smp.h kernel: Allow reassigning IRQs to logical processors 2013-11-18 04:55:25 +01:00
arch_system_info.h x86[_64]: Add support for CPUID sub-leaves 2013-10-01 20:31:18 +02:00
arch_thread_types.h kernel/x86_64: improve context switch implementation 2014-05-06 21:15:55 +02:00
arch_thread.h x86: Debugger can now use dr3 2013-12-17 04:31:29 +01:00
arch_user_debugger.h x86: Debugger can now use dr3 2013-12-17 04:31:29 +01:00
arch_vm_translation_map.h * Removed i386_translation_map_get_pgdir() and adjusted the one place where it 2010-06-08 00:20:34 +00:00
arch_vm_types.h The short story: we now have MTRR support on Intel and AMD CPUs (the latter 2005-12-13 16:34:29 +00:00
arch_vm.h * vm_page::offset is now called cache_offset and is now an uint32 instead of off_t; 2005-12-21 12:38:31 +00:00
bios.h Moved some 32-bit specific stuff to the 32 subdirectory. 2012-07-12 14:23:55 +01:00
descriptors.h x86[_64]: Separate bootloader and kernel GDT and IDT logic 2014-01-28 00:44:02 +01:00
ioapic.h * Don't map the IO-APIC within the bootloader. We don't need it to set up SMP 2011-05-13 16:31:31 +00:00
msi_priv.h MSI: Use the effective APIC id of the boot CPU for the address destination. 2013-07-29 17:36:03 +02:00
msi.h x86[_64]: Support assigning MSI IRQs to arbitrary CPU 2013-12-20 01:07:08 +01:00
pic.h * Implement interrupt source overrides. We install a relay interrupt handler 2011-05-16 12:57:40 +00:00
smp_priv.h Renamed remaining i386_* functions to x86_* for consistency. 2012-07-09 12:14:18 +01:00
timer.h Patch by Dustin Howett which 'modularizes' timers. The best timer is 2008-07-05 20:40:06 +00:00
vesa.h