summaryrefslogtreecommitdiff
path: root/kernel/cpu/fpu.c
blob: cafe6e51e5d9af215492055845fd7051c9e955a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <lib.h>

#include "fpu.h"

void fpu_init(void)
{
	size_t cr4;
	uint16_t cw = 0x37F;
	__asm__ volatile("mov %%cr4, %0" : "=r"(cr4));
	cr4 |= 0x200;
	__asm__ volatile("mov %0, %%cr4" ::"r"(cr4));
	__asm__ volatile("fldcw %0" ::"m"(cw));
}