Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 434 → Rev 435

/kernel/trunk/core/fpu.inc
59,36 → 59,43
mov edi, eax
 
mov ecx, [fpu_owner]
mov eax, [CURRENT_TASK]
cmp ecx, eax
mov esi, [CURRENT_TASK]
cmp ecx, esi
jne .save
.copy:
shl eax, 8
mov esi, [eax+SLOT_BASE+APPDATA.fpu_state]
 
call save_context
jmp .exit
.save:
mov [fpu_owner], esi
 
shl ecx, 8
mov eax, [ecx+SLOT_BASE+APPDATA.fpu_state]
 
call save_context
 
shl esi, 8
mov esi, [esi+SLOT_BASE+APPDATA.fpu_state]
mov ecx, 512/4
cld
rep movsd
fninit
 
.exit:
popfd
pop edi
pop esi
pop ecx
ret
.save:
mov [fpu_owner], eax
 
shl ecx, 8
mov ecx, [ecx+SLOT_BASE+APPDATA.fpu_state]
 
align 4
save_context:
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
fxsave [ecx]
jmp .copy
fxsave [eax]
ret
.no_SSE:
fnsave [ecx]
jmp .copy
fnsave [eax]
ret
 
align 4
fpu_restore:
106,7 → 113,6
jne .copy
 
clts
 
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
/kernel/trunk/core/taskman.inc
967,6 → 967,7
 
mov esi, fpu_data
mov ecx, 512/4
cld
rep movsd
 
cmp ebx,[TASK_COUNT]
/kernel/trunk/kernel.asm
679,10 → 679,10
mov esi,boot_setostask
call boot_log
 
mov eax, fpu_data
mov dword [SLOT_BASE+APPDATA.fpu_state], eax
mov dword [SLOT_BASE+APPDATA.fpu_handler], 0
mov dword [SLOT_BASE+APPDATA.sse_handler], 0
; mov eax, fpu_data
; mov dword [SLOT_BASE+APPDATA.fpu_state], eax
; mov dword [SLOT_BASE+APPDATA.fpu_handler], 0
; mov dword [SLOT_BASE+APPDATA.sse_handler], 0
 
; name for OS/IDLE process