diff options
author | jpathy <jpathy@mail.nanosouffle.net> | 2013-05-22 23:47:05 +0530 |
---|---|---|
committer | jpathy <jpathy@mail.nanosouffle.net> | 2013-05-22 23:47:05 +0530 |
commit | 81b7451972780743bcd00c963a1c9cb686a3e4ad (patch) | |
tree | b711d0c54fb162dc564373babf100ea6c2c65aa5 /sys/src/9/pc/devarch.c | |
parent | 213bf5089365d00d9d40635bcfe62e197d548c1b (diff) |
sse kernel support (sources)
Diffstat (limited to 'sys/src/9/pc/devarch.c')
-rw-r--r-- | sys/src/9/pc/devarch.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/src/9/pc/devarch.c b/sys/src/9/pc/devarch.c index e877eab5f..be29eab3c 100644 --- a/sys/src/9/pc/devarch.c +++ b/sys/src/9/pc/devarch.c @@ -38,6 +38,11 @@ enum { Qmax = 16, }; + +enum { + CR4Osfxsr = 1 << 9, +}; + enum { /* cpuid standard function codes */ Highstdfunc = 0, /* also returns vendor string */ Procsig, @@ -850,6 +855,15 @@ cpuidentify(void) rdmsr(0x01, &mct); } + if(m->cpuiddx & Fxsr){ /* have sse fp? */ + fpsave = fpssesave; + fprestore = fpsserestore; + putcr4(getcr4() | CR4Osfxsr); + } else { + fpsave = fpx87save; + fprestore = fpx87restore; + } + cputype = t; return t->family; } |