You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
963 B
74 lines
963 B
/*
|
|
wrapper for MMX calls
|
|
Copyright (C) 2000 Martin Vogt
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU Library General Public License as published by
|
|
the Free Software Foundation.
|
|
|
|
For more information look at the file COPYRIGHT in this package
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "mmx.h"
|
|
|
|
static int mmSupport=-1;
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#if defined(MMX_SUPPORT) || defined(INTEL)
|
|
#define HAVE_ACCEL
|
|
#endif
|
|
|
|
|
|
#ifndef HAVE_ACCEL
|
|
int emms() {
|
|
printf("urgs! emms() never should happen\n");
|
|
exit(0);
|
|
}
|
|
|
|
int mm_support() {
|
|
return 0;
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
#ifdef HAVE_ACCEL
|
|
#include <inttypes.h>
|
|
#include "mm_accel.h"
|
|
|
|
|
|
|
|
|
|
int emms() {
|
|
__asm__ ("emms");
|
|
return 1;
|
|
}
|
|
|
|
|
|
int mm_support() {
|
|
|
|
int val;
|
|
|
|
if (mmSupport == -1) {
|
|
|
|
val=mm_accel();
|
|
if (val & MM_ACCEL_X86_MMX) {
|
|
mmSupport=1;
|
|
} else {
|
|
mmSupport=0;
|
|
}
|
|
|
|
}
|
|
/* Return */
|
|
return(mmSupport);
|
|
}
|
|
|
|
|
|
#endif
|