diff options
| author | Linus Torvalds <torvalds@evo.osdl.org> | 2005-07-22 16:06:16 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-07-22 16:06:16 -0400 |
| commit | 8ed1383fb7b6685968588141d5934e0e6715e954 (patch) | |
| tree | 7ee8476ec114dbab907e3acf4e8a9d0342bf6751 /arch | |
| parent | b339a18b81a1f6ca1455559594f5df872b9e59f4 (diff) | |
x86: make restore_fpu() use alternative assembler instructions
It's really just a single instruction, conditional on whether the CPU
supports FXSR or not, so implement it as such instead of making it a
function that queries FXSR dynamically.
This means that the instruction just gets automatically rewritten to the
correct one at boot-time.
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/i386/kernel/i387.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/arch/i386/kernel/i387.c b/arch/i386/kernel/i387.c index b817168d9c62..d75524758daf 100644 --- a/arch/i386/kernel/i387.c +++ b/arch/i386/kernel/i387.c | |||
| @@ -82,17 +82,6 @@ void kernel_fpu_begin(void) | |||
| 82 | } | 82 | } |
| 83 | EXPORT_SYMBOL_GPL(kernel_fpu_begin); | 83 | EXPORT_SYMBOL_GPL(kernel_fpu_begin); |
| 84 | 84 | ||
| 85 | void restore_fpu( struct task_struct *tsk ) | ||
| 86 | { | ||
| 87 | if ( cpu_has_fxsr ) { | ||
| 88 | asm volatile( "fxrstor %0" | ||
| 89 | : : "m" (tsk->thread.i387.fxsave) ); | ||
| 90 | } else { | ||
| 91 | asm volatile( "frstor %0" | ||
| 92 | : : "m" (tsk->thread.i387.fsave) ); | ||
| 93 | } | ||
| 94 | } | ||
| 95 | |||
| 96 | /* | 85 | /* |
| 97 | * FPU tag word conversions. | 86 | * FPU tag word conversions. |
| 98 | */ | 87 | */ |
