merge
This commit is contained in:
commit
c924edb91d
1 changed files with 10 additions and 9 deletions
|
@ -253,25 +253,26 @@ fpuinit(void)
|
|||
ulong regs[4];
|
||||
|
||||
cr4 = getcr4() | CR4Osfxsr|CR4Oxmmex;
|
||||
putcr4(cr4);
|
||||
fpsave = fpssesave;
|
||||
fprestore = fpsserestore;
|
||||
|
||||
if((m->cpuidcx & (Xsave|Avx)) == (Xsave|Avx) && getconf("*noavx") == nil){
|
||||
cr4 |= CR4Oxsave;
|
||||
putcr4(cr4);
|
||||
m->xcr0 = 7; /* x87, sse, avx */
|
||||
putxcr0(m->xcr0);
|
||||
fpsave = fpxsave;
|
||||
fprestore = fpxrestore;
|
||||
|
||||
cpuid(0xd, 1, regs);
|
||||
if(regs[0] & Xsaveopt)
|
||||
fpsave = fpxsaveopt;
|
||||
if(regs[0] & Xsaves){
|
||||
fpsave = fpxsaves;
|
||||
fprestore = fpxrestores;
|
||||
} else {
|
||||
if(regs[0] & Xsaveopt)
|
||||
fpsave = fpxsaveopt;
|
||||
else
|
||||
fpsave = fpxsave;
|
||||
fprestore = fpxrestore;
|
||||
}
|
||||
} else {
|
||||
putcr4(cr4);
|
||||
fpsave = fpssesave;
|
||||
fprestore = fpsserestore;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue