Enable the i586-optimized bcopy if the cpu is a "586" and option
I586_OPTIMIZED_BCOPY is configured. Similarly for bzero/I586_OPTIMIZED_BZERO. Fake 586's had better have a hardware FPU with non-broken exception handling (we mask exceptions, but broken exception handling may trap on the instructions that do the masking). I guess this means that the routines won't work on most 386's or FPUless 486's even when they have a h/w FPU.
This commit is contained in:
parent
924a8fa376
commit
cf232f113f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=18837
@ -35,9 +35,11 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Id: machdep.c,v 1.193 1996/06/18 01:22:04 bde Exp
|
||||
* $Id: identcpu.c,v 1.4 1996/08/10 08:04:24 peter Exp $
|
||||
* $Id: identcpu.c,v 1.5 1996/09/06 23:07:02 phk Exp $
|
||||
*/
|
||||
|
||||
#include "opt_temporary.h" /* for I586_OPTIMIZED_B* */
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/sysproto.h>
|
||||
@ -53,9 +55,12 @@
|
||||
#include <machine/md_var.h>
|
||||
|
||||
/* XXX - should be in header file */
|
||||
extern void i486_bzero __P((void *, size_t));
|
||||
extern void i586_bzero __P((void *, size_t));
|
||||
extern void i686_bzero __P((void *, size_t));
|
||||
extern void (*bcopy_vector) __P((const void *from, void *to, size_t len));
|
||||
extern void (*ovbcopy_vector) __P((const void *from, void *to, size_t len));
|
||||
|
||||
void i486_bzero __P((void *buf, size_t len));
|
||||
void i586_bcopy __P((const void *from, void *to, size_t len));
|
||||
void i586_bzero __P((void *buf, size_t len));
|
||||
|
||||
void identifycpu(void); /* XXX should be in different header file */
|
||||
void earlysetcpuclass(void);
|
||||
@ -173,6 +178,13 @@ identifycpu(void)
|
||||
(i586_ctr_freq + 4999) / 1000000,
|
||||
((i586_ctr_freq + 4999) / 10000) % 100);
|
||||
printf("586");
|
||||
#ifdef I586_OPTIMIZED_BCOPY
|
||||
bcopy_vector = i586_bcopy;
|
||||
ovbcopy_vector = i586_bcopy;
|
||||
#endif
|
||||
#ifdef I586_OPTIMIZED_BZERO
|
||||
bzero = i586_bzero;
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
#if defined(I686_CPU)
|
||||
|
@ -35,9 +35,11 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Id: machdep.c,v 1.193 1996/06/18 01:22:04 bde Exp
|
||||
* $Id: identcpu.c,v 1.4 1996/08/10 08:04:24 peter Exp $
|
||||
* $Id: identcpu.c,v 1.5 1996/09/06 23:07:02 phk Exp $
|
||||
*/
|
||||
|
||||
#include "opt_temporary.h" /* for I586_OPTIMIZED_B* */
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/sysproto.h>
|
||||
@ -53,9 +55,12 @@
|
||||
#include <machine/md_var.h>
|
||||
|
||||
/* XXX - should be in header file */
|
||||
extern void i486_bzero __P((void *, size_t));
|
||||
extern void i586_bzero __P((void *, size_t));
|
||||
extern void i686_bzero __P((void *, size_t));
|
||||
extern void (*bcopy_vector) __P((const void *from, void *to, size_t len));
|
||||
extern void (*ovbcopy_vector) __P((const void *from, void *to, size_t len));
|
||||
|
||||
void i486_bzero __P((void *buf, size_t len));
|
||||
void i586_bcopy __P((const void *from, void *to, size_t len));
|
||||
void i586_bzero __P((void *buf, size_t len));
|
||||
|
||||
void identifycpu(void); /* XXX should be in different header file */
|
||||
void earlysetcpuclass(void);
|
||||
@ -173,6 +178,13 @@ identifycpu(void)
|
||||
(i586_ctr_freq + 4999) / 1000000,
|
||||
((i586_ctr_freq + 4999) / 10000) % 100);
|
||||
printf("586");
|
||||
#ifdef I586_OPTIMIZED_BCOPY
|
||||
bcopy_vector = i586_bcopy;
|
||||
ovbcopy_vector = i586_bcopy;
|
||||
#endif
|
||||
#ifdef I586_OPTIMIZED_BZERO
|
||||
bzero = i586_bzero;
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
#if defined(I686_CPU)
|
||||
|
Loading…
Reference in New Issue
Block a user