Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 167 → Rev 168

/kernel/trunk/kernel.asm
120,7 → 120,7
 
; CR0 Flags - Protected mode and Paging
 
mov ecx, 0x00000021
mov ecx, CR0_PE
 
; Enabling 32 bit protected mode
 
400,7 → 400,7
mov cr3, eax
 
mov eax,cr0
or eax,0x80000000
or eax,CR0_PG
mov cr0,eax
 
call init_kernel_heap
447,25 → 447,48
mov ecx, 16
rep movsb
 
clts
fninit
 
bt [cpu_caps], CAPS_FXSR
jnc .no_FXSR
 
stdcall kernel_alloc, 512*256
mov [fpu_data], eax
 
mov ebx, cr4
or ebx, CR4_OSFXSR
mov ecx, cr0
or ebx, CR4_OSFXSR+CR4_OSXMMEXPT
mov cr4, ebx
jmp .clts
 
and ecx, not (CR0_MP+CR0_EM)
or ecx, CR0_NE
mov cr0, ecx
 
mov dword [esp-4], SSE_INIT
ldmxcsr [esp-4]
 
xorps xmm0, xmm0
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
xorps xmm6, xmm6
xorps xmm7, xmm7
 
jmp .set_cr
.no_FXSR:
stdcall kernel_alloc, 112*256
mov [fpu_data], eax
mov ebx, cr4
mov ecx, cr0
and ebx, not (CR4_OSFXSR+CR4_OSXMMEXPT)
and ecx, not CR0_EM
or ecx, CR0_MP+CR0_NE
mov cr0, ecx
mov cr4, ebx
.clts:
clts
fninit
 
.set_cr:
mov edi, irq_tab
xor eax, eax
mov ecx, 16