/kernel/trunk/core/memory.inc |
---|
1038,6 → 1038,7 |
jnc .no_SSE |
fxsave [eax] |
fninit ;re-init fpu |
ret |
.no_SSE: |
fnsave [eax] |
1055,6 → 1056,7 |
fxrstor [eax] |
ret |
.no_SSE: |
fnclex ;fix possible problems |
frstor [eax] |
ret |
endp |
/kernel/trunk/core/sys32.inc |
---|
236,7 → 236,6 |
frstor [eax] |
restore_ring3_context |
iret |
.init: |
fninit ; ¬ ¥ ã¦ë ¥¬ ᪨஢ ë¥ ¨áª«î票ï |
.ready: |
693,7 → 692,16 |
cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
jne fpu_ok_1 |
mov [fpu_owner],1 |
mov eax, [256+PROC_BASE+0x10] |
bt [cpu_caps], CAPS_FXSR |
jnc .no_SSE |
fxrstor [eax] |
jmp fpu_ok_1 |
.no_SSE: |
fnclex |
frstor [eax] |
fpu_ok_1: |
mov [0xf400],byte 0 ; empty keyboard buffer |
/kernel/trunk/drivers/mixer.asm |
---|
29,12 → 29,8 |
cmp [play_count], 0 |
je .exit |
; mov eax, fpu_state |
; fnsave [eax] |
call FpuSave |
emms |
mov [main_count], 32; |
.l00: |
mov [mix_buff_map], 0x0000FFFF; |
xor eax, eax |
98,6 → 94,7 |
jnz .l00 |
call update_stream |
emms |
call FpuRestore |
ret |
.exit: |