diff options
-rw-r--r-- | sys/amd64/amd64/fpu.c | 19 | ||||
-rw-r--r-- | sys/amd64/isa/npx.c | 19 | ||||
-rw-r--r-- | sys/i386/isa/npx.c | 19 |
3 files changed, 15 insertions, 42 deletions
diff --git a/sys/amd64/amd64/fpu.c b/sys/amd64/amd64/fpu.c index b073f6b..5e4847f 100644 --- a/sys/amd64/amd64/fpu.c +++ b/sys/amd64/amd64/fpu.c @@ -564,7 +564,7 @@ void npxinit(control) u_short control; { - union savefpu dummy; + static union savefpu dummy; critical_t savecrit; if (!npx_exists) @@ -926,30 +926,21 @@ static void fpusave(addr) union savefpu *addr; { - static struct savexmm svxmm[MAXCPU]; - u_char oncpu = PCPU_GET(cpuid); if (!cpu_fxsr) fnsave(addr); - else { - fxsave(&svxmm[oncpu]); - bcopy(&svxmm[oncpu], addr, sizeof(struct savexmm)); - } + else + fxsave(addr); } static void fpurstor(addr) union savefpu *addr; { - static struct savexmm svxmm[MAXCPU]; - u_char oncpu = PCPU_GET(cpuid); - if (!cpu_fxsr) frstor(addr); - else { - bcopy(addr, &svxmm[oncpu], sizeof (struct savexmm)); - fxrstor(&svxmm[oncpu]); - } + else + fxrstor(addr); } #ifdef I586_CPU_XXX diff --git a/sys/amd64/isa/npx.c b/sys/amd64/isa/npx.c index b073f6b..5e4847f 100644 --- a/sys/amd64/isa/npx.c +++ b/sys/amd64/isa/npx.c @@ -564,7 +564,7 @@ void npxinit(control) u_short control; { - union savefpu dummy; + static union savefpu dummy; critical_t savecrit; if (!npx_exists) @@ -926,30 +926,21 @@ static void fpusave(addr) union savefpu *addr; { - static struct savexmm svxmm[MAXCPU]; - u_char oncpu = PCPU_GET(cpuid); if (!cpu_fxsr) fnsave(addr); - else { - fxsave(&svxmm[oncpu]); - bcopy(&svxmm[oncpu], addr, sizeof(struct savexmm)); - } + else + fxsave(addr); } static void fpurstor(addr) union savefpu *addr; { - static struct savexmm svxmm[MAXCPU]; - u_char oncpu = PCPU_GET(cpuid); - if (!cpu_fxsr) frstor(addr); - else { - bcopy(addr, &svxmm[oncpu], sizeof (struct savexmm)); - fxrstor(&svxmm[oncpu]); - } + else + fxrstor(addr); } #ifdef I586_CPU_XXX diff --git a/sys/i386/isa/npx.c b/sys/i386/isa/npx.c index b073f6b..5e4847f 100644 --- a/sys/i386/isa/npx.c +++ b/sys/i386/isa/npx.c @@ -564,7 +564,7 @@ void npxinit(control) u_short control; { - union savefpu dummy; + static union savefpu dummy; critical_t savecrit; if (!npx_exists) @@ -926,30 +926,21 @@ static void fpusave(addr) union savefpu *addr; { - static struct savexmm svxmm[MAXCPU]; - u_char oncpu = PCPU_GET(cpuid); if (!cpu_fxsr) fnsave(addr); - else { - fxsave(&svxmm[oncpu]); - bcopy(&svxmm[oncpu], addr, sizeof(struct savexmm)); - } + else + fxsave(addr); } static void fpurstor(addr) union savefpu *addr; { - static struct savexmm svxmm[MAXCPU]; - u_char oncpu = PCPU_GET(cpuid); - if (!cpu_fxsr) frstor(addr); - else { - bcopy(addr, &svxmm[oncpu], sizeof (struct savexmm)); - fxrstor(&svxmm[oncpu]); - } + else + fxrstor(addr); } #ifdef I586_CPU_XXX |