/kernel/trunk/core/fpu.inc |
---|
34,15 → 34,19 |
xor ecx, ecx |
cpuid |
mov [xsave_area_size], ebx |
cmp ebx, fpu_data_size |
ja $ |
test eax, XCR0_AVX512 |
jz @f |
call init_avx512 |
xsave [fpu_data] |
ret |
@@: |
test eax, XCR0_AVX |
jz @f |
call init_avx |
xsave [fpu_data] |
ret |
@@: |
test eax, XCR0_SSE |
/kernel/trunk/core/taskman.inc |
---|
924,7 → 924,9 |
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx |
mov esi, fpu_data |
mov ecx, 512/4 |
mov ecx, [xsave_area_size] |
add ecx, 3 |
shr ecx, 2 |
rep movsd |
cmp ebx, [TASK_COUNT] |
/kernel/trunk/data32.inc |
---|
336,7 → 336,8 |
cur_saved_data: |
rb 4096 |
fpu_data: |
rb 512 |
rb 1024 |
fpu_data_size = $ - fpu_data |
draw_data: |
rb 32*256 |
BPSLine_calc_area rd 1440 |
/kernel/trunk/kernel.asm |
---|
1116,8 → 1116,9 |
mov dword [edx+APPDATA.terminate_protection], 1 ; make unkillable |
mov esi, fpu_data |
mov ecx, 512/4 |
cld |
mov ecx, [xsave_area_size] |
add ecx, 3 |
shr ecx, 2 |
rep movsd |
lea eax, [edx+APP_OBJ_OFFSET] |