qcommon: Reverse the sense of NO_VM_COMPILED

Instead of defining NO_VM_COMPILED on the unlimited number of CPU
architectures where we don't have a JIT for QVM bytecode, define
HAVE_VM_COMPILED on the finite number of architectures where we do
(x86, PowerPC, Sparc or 32-bit ARM).

Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
Simon McVittie 2025-08-30 21:12:06 +01:00 committed by Tim Angus
parent 51095c0c0c
commit 3e0b279521
2 changed files with 17 additions and 12 deletions

View File

@ -96,9 +96,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#undef idx64
#define idx64 1
#define ARCH_STRING "x86_64"
#define HAVE_VM_COMPILED
#elif defined(__aarch64__) || defined(__ARM64__) || defined (_M_ARM64)
#define ARCH_STRING "arm64"
#define NO_VM_COMPILED
#endif
#define Q3_LITTLE_ENDIAN
@ -124,9 +124,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#if defined( _M_IX86 ) || defined( __i386__ )
#define ARCH_STRING "x86"
#define HAVE_VM_COMPILED
#elif defined(__arm__) || defined(_M_ARM)
#define ARCH_STRING "arm"
#define NO_VM_COMPILED
#endif
#define Q3_LITTLE_ENDIAN
@ -147,18 +147,20 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifdef __ppc__
#define ARCH_STRING "ppc"
#define Q3_BIG_ENDIAN
#define HAVE_VM_COMPILED
#elif defined __i386__
#define ARCH_STRING "x86"
#define Q3_LITTLE_ENDIAN
#define HAVE_VM_COMPILED
#elif defined __x86_64__
#undef idx64
#define idx64 1
#define ARCH_STRING "x86_64"
#define Q3_LITTLE_ENDIAN
#define HAVE_VM_COMPILED
#elif defined __aarch64__
#define ARCH_STRING "arm64"
#define Q3_LITTLE_ENDIAN
#define NO_VM_COMPILED
#endif
#define DLL_EXT ".dylib"
@ -185,20 +187,23 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#if defined(__x86_64__) || defined(__amd64__)
# define ARCH_STRING "x86_64"
# define HAVE_VM_COMPILED
#elif defined(__i386__)
# define ARCH_STRING "x86"
# define HAVE_VM_COMPILED
#elif defined(__aarch64__)
# define ARCH_STRING "arm64"
# define NO_VM_COMPILED
#elif defined(__arm__)
# define ARCH_STRING "arm"
# define HAVE_VM_COMPILED
#elif defined(__powerpc64__) || defined(__ppc64__)
# define ARCH_STRING "ppc64"
# define HAVE_VM_COMPILED
#elif defined(__powerpc__) || defined(__ppc__)
# define ARCH_STRING "ppc"
# define HAVE_VM_COMPILED
#elif defined(__alpha__)
# define ARCH_STRING "alpha"
# define NO_VM_COMPILED
#endif
#if defined __x86_64__
@ -240,13 +245,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifdef __i386__
#define ARCH_STRING "x86"
#define HAVE_VM_COMPILED
#elif defined __amd64__
#undef idx64
#define idx64 1
#define ARCH_STRING "x86_64"
#define HAVE_VM_COMPILED
#elif defined __axp__
#define ARCH_STRING "alpha"
#define NO_VM_COMPILED
#endif
#if BYTE_ORDER == BIG_ENDIAN
@ -272,8 +278,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifdef __i386__
#define ARCH_STRING "x86"
#define HAVE_VM_COMPILED
#elif defined __sparc
#define ARCH_STRING "sparc"
#define HAVE_VM_COMPILED
#endif
#if defined( _BIG_ENDIAN )
@ -295,7 +303,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define PATH_SEP '/'
#define ARCH_STRING "mips"
#define NO_VM_COMPILED
#define Q3_BIG_ENDIAN // SGI's MIPS are always big endian
@ -312,7 +319,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define PATH_SEP '/'
#define ARCH_STRING "wasm32"
#define NO_VM_COMPILED
#define Q3_LITTLE_ENDIAN
@ -346,7 +352,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
// ARCH_STRING is (mostly) only used for informational purposes, so we allow
// it to be undefined so that more diverse architectures may be compiled
#define ARCH_STRING "unknown"
#define NO_VM_COMPILED
#endif
#ifndef ID_INLINE

View File

@ -653,7 +653,7 @@ vm_t *VM_Create( const char *module, intptr_t (*systemCalls)(intptr_t *),
vm->compiled = qfalse;
#ifdef NO_VM_COMPILED
#ifndef HAVE_VM_COMPILED
if(interpret >= VMI_COMPILED) {
Com_Printf("Architecture doesn't have a bytecode compiler, using interpreter\n");
interpret = VMI_BYTECODE;
@ -838,7 +838,7 @@ intptr_t QDECL VM_Call( vm_t *vm, int callnum, ... )
args[8], args[9], args[10], args[11]);
} else {
#if ( id386 || idsparc ) && !defined __clang__ // calling convention doesn't need conversion in some cases
#ifndef NO_VM_COMPILED
#ifdef HAVE_VM_COMPILED
if ( vm->compiled )
r = VM_CallCompiled( vm, (int*)&callnum );
else
@ -857,7 +857,7 @@ intptr_t QDECL VM_Call( vm_t *vm, int callnum, ... )
a.args[i] = va_arg(ap, int);
}
va_end(ap);
#ifndef NO_VM_COMPILED
#ifdef HAVE_VM_COMPILED
if ( vm->compiled )
r = VM_CallCompiled( vm, &a.callnum );
else