forked from KolibriOS/kolibrios
1)fixed bug with wrong lfb size on some old videocards
2)set fpu/sse to default state for new thread 3)added driver sceletone git-svn-id: svn://kolibrios.org@214 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
GREEDY_KERNEL equ 0; 1
|
||||
GREEDY_KERNEL equ 0
|
||||
|
||||
|
||||
struc APP_HEADER_00
|
||||
@@ -604,29 +604,34 @@ align 4
|
||||
proc add_app_parameters stdcall,slot:dword,img_base:dword,\
|
||||
cmd_line:dword, app_path:dword, flags:dword
|
||||
|
||||
mov eax,[slot]
|
||||
mov edi, [slot]
|
||||
mov esi, [fpu_data]
|
||||
bt [cpu_caps], CAPS_FXSR
|
||||
jnc .no_SSE
|
||||
shl eax, 8
|
||||
mov ebx, eax
|
||||
add eax, eax
|
||||
add eax, [fpu_data]
|
||||
mov [ebx+PROC_BASE+APPDATA.fpu_state], eax
|
||||
mov [ebx+PROC_BASE+APPDATA.fpu_handler], 0
|
||||
mov [ebx+PROC_BASE+APPDATA.sse_handler], 0
|
||||
jmp .m1
|
||||
|
||||
shl edi, 8
|
||||
mov eax, edi
|
||||
lea edi, [esi+edi*2]
|
||||
mov [eax+PROC_BASE+APPDATA.fpu_state], edi
|
||||
mov [eax+PROC_BASE+APPDATA.fpu_handler], 0
|
||||
mov [eax+PROC_BASE+APPDATA.sse_handler], 0
|
||||
mov ecx, 512/4
|
||||
jmp @F
|
||||
.no_SSE:
|
||||
mov ecx, eax
|
||||
mov ebx, eax
|
||||
shl eax, 7
|
||||
mov eax, edi
|
||||
shl eax, 8
|
||||
mov ebx, edi
|
||||
shl edi, 7
|
||||
shl ebx, 4
|
||||
sub eax, ebx ;eax*=112
|
||||
add eax, [fpu_data]
|
||||
shl ecx, 8
|
||||
mov [ecx+PROC_BASE+APPDATA.fpu_state], eax
|
||||
mov [ecx+PROC_BASE+APPDATA.fpu_handler], 0
|
||||
mov [ecx+PROC_BASE+APPDATA.sse_handler], 0
|
||||
.m1:
|
||||
sub edi, ebx ;edi*=112
|
||||
add edi, esi
|
||||
mov [eax+PROC_BASE+APPDATA.fpu_state], edi
|
||||
mov [eax+PROC_BASE+APPDATA.fpu_handler], 0
|
||||
mov [eax+PROC_BASE+APPDATA.sse_handler], 0
|
||||
mov ecx, 112/4
|
||||
@@:
|
||||
rep movsd
|
||||
|
||||
mov ebx,[slot]
|
||||
cmp ebx,[TASK_COUNT]
|
||||
jle .noinc
|
||||
|
Reference in New Issue
Block a user