Loading...
Searching...
No Matches
34#define idppc_altivec 0
39#if (defined _M_IX86 || defined __i386__) && !defined(C_ONLY)
45#if (defined(powerc) || defined(powerpc) || defined(ppc) || \
46 defined(__ppc) || defined(__ppc__)) && !defined(C_ONLY)
49#define idppc_altivec 1
51#define VECCONST_UINT8(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \
52 (vector unsigned char) (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
54#define VECCONST_UINT8(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \
55 (vector unsigned char) {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}
58#define idppc_altivec 0
62#define idppc_altivec 0
65#if defined(__sparc__) && !defined(C_ONLY)
82#define DLL_SUFFIX "-dbg"
87#if defined(TARGET_LOCAL_SYSTEM)
89#elif defined(TARGET_MULTIPLE_ARCHITECTURES)
92# define ARCH_SUFFIX ".multiarch"
94# define ARCH_SUFFIX "." ARCH_STRING
100#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
106#if defined(_WIN64) || defined(__WIN64__)
115#define QCALL __stdcall
117#if defined( _MSC_VER )
118#define OS_STRING "win_msvc64"
119#elif defined __MINGW64__
120#define OS_STRING "win_mingw64"
123#define ID_INLINE __inline
126#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
127# define ARCH_STRING "x86_64"
128#elif defined(__aarch64__) || defined(__ARM64__) || defined (_M_ARM64)
129# define ARCH_STRING "arm64"
130#elif defined _M_ALPHA
131# define ARCH_STRING "AXP"
134#define Q3_LITTLE_ENDIAN
136#define DLL_EXT ".dll"
137#define EXE_EXT ".exe"
139#elif defined(_WIN32) || defined(__WIN32__)
145#define QCALL __stdcall
147#if defined( _MSC_VER )
148#define OS_STRING "win_msvc"
149#elif defined __MINGW32__
150#define OS_STRING "win_mingw"
153#define ID_INLINE __inline
156#if defined( _M_IX86 ) || defined( __i386__ )
157#define ARCH_STRING "x86"
160#define Q3_LITTLE_ENDIAN
162#define DLL_EXT ".dll"
163#define EXE_EXT ".exe"
169#if defined(MACOS_X) || defined(__APPLE_CC__)
176#define OS_STRING "macosx"
177#define ID_INLINE inline
181# define ARCH_STRING "ppc"
182# define Q3_BIG_ENDIAN
183#elif defined __i386__
184# define ARCH_STRING "i386"
185# define Q3_LITTLE_ENDIAN
188#define DLL_EXT ".dylib"
204#define OS_STRING "linux"
205#define ID_INLINE inline
208#if defined(__i386) || defined(__i386__) || defined(_M_IX86)
209# define ARCH_STRING "x86"
210#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
211# define ARCH_STRING "x86_64"
212#elif defined(__PPC64__) || defined(__ppc64__) || defined(__powerpc64__) || defined(_ARCH_PPC64)
214# define ARCH_STRING "ppc64"
216# define ARCH_STRING "ppc64el"
218#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__)
219# define ARCH_STRING "ppc"
220#elif defined __s390__
221# define ARCH_STRING "s390"
222#elif defined __s390x__
223# define ARCH_STRING "s390x"
224#elif defined __ia64__
225# define ARCH_STRING "ia64"
227# define ARCH_STRING "e2k"
228#elif defined __alpha__
229# define ARCH_STRING "alpha"
230#elif defined __sparc__
231# define ARCH_STRING "sparc"
232#elif defined(__aarch64__) || defined(__ARM64__) || defined(_M_ARM64)
233# define ARCH_STRING "arm64"
234#elif defined __arm__ || defined (_M_ARM)
235# if defined(__ARM_PCS_VFP) && (__ARM_PCS_VFP)
236# define ARCH_STRING "armhf"
238# define ARCH_STRING "armel"
240#elif defined __cris__
241# define ARCH_STRING "cris"
242#elif defined __hppa__
243# define ARCH_STRING "hppa"
244#elif defined __mips__
245# define ARCH_STRING "mips"
247# define ARCH_STRING "sh"
249# if __UINTPTR_MAX__ == __UINT64_MAX__
250# define ARCH_STRING "riscv64"
252# define ARCH_STRING "riscv"
257# define Q3_BIG_ENDIAN
259# define Q3_LITTLE_ENDIAN
269#if defined(__APPLE__) || defined(__APPLE_CC__)
271#define OS_STRING "macosx"
272#define ID_INLINE inline
276# define ARCH_STRING "ppc"
277# define Q3_BIG_ENDIAN
278#elif defined __i386__
279# define ARCH_STRING "x86"
280# define Q3_LITTLE_ENDIAN
281#elif defined __x86_64__
284# define ARCH_STRING "x86_64"
285# define Q3_LITTLE_ENDIAN
286#elif defined __aarch64__
287# define ARCH_STRING "arm64"
288# define Q3_LITTLE_ENDIAN
291#define DLL_EXT ".dylib"
298#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
300#include <sys/types.h>
301#include <machine/endian.h>
303#if defined(__FreeBSD__)
304#define OS_STRING "freebsd"
305#elif defined(__OpenBSD__)
306#define OS_STRING "openbsd"
307#elif defined(__NetBSD__)
308#define OS_STRING "netbsd"
311#define ID_INLINE inline
314#if defined(__i386__) || defined(__i386)
315#define ARCH_STRING "x86"
316#elif defined(__amd64__) || defined(__x86_64__)
317#define ARCH_STRING "x86_64"
318#elif defined(__arm__)
319#define ARCH_STRING "arm"
320#elif defined(__aarch64__)
321#define ARCH_STRING "arm64"
322#elif defined(__powerpc__) || defined(__ppc__)
323#define ARCH_STRING "ppc"
324#elif defined(__powerpc64__)
325#define ARCH_STRING "ppc64"
326#elif defined(__sparc64__)
327#define ARCH_STRING "sparc64"
328#elif defined(__mips__)
329#define ARCH_STRING "mips"
330#elif defined(__riscv)
331#if __SIZEOF_POINTER__ == 8
332#define ARCH_STRING "riscv64"
334#define ARCH_STRING "riscv"
337#define ARCH_STRING "unknown"
340#if BYTE_ORDER == BIG_ENDIAN
343#define Q3_LITTLE_ENDIAN
356#include <sys/byteorder.h>
358#define OS_STRING "solaris"
359#define ID_INLINE inline
363#define ARCH_STRING "i386"
365#define ARCH_STRING "sparc"
368#if defined( _BIG_ENDIAN )
370#elif defined( _LITTLE_ENDIAN )
371#define Q3_LITTLE_ENDIAN
383#define OS_STRING "irix"
384#define ID_INLINE __inline
387#define ARCH_STRING "mips"
400#define OS_STRING "emscripten"
401#define ID_INLINE inline
404#define ARCH_STRING "wasm32"
406#define Q3_LITTLE_ENDIAN
408#define DLL_EXT ".wasm"
416#define OS_STRING "q3vm"
420#define ARCH_STRING "bytecode"
422#define DLL_EXT ".qvm"
431#error "Operating system not supported"
437#define ARCH_STRING "unknown"
441#error "ID_INLINE not defined"
445#error "PATH_SEP not defined"
449#error "DLL_EXT not defined"
457void CopyShortSwap(
void* dest,
const void* src);
458void CopyLongSwap(
void* dest,
const void* src);
459short ShortSwap(
short l);
460unsigned short UnsignedShortSwap(
unsigned short l);
462unsigned int UnsignedLongSwap(
unsigned int l);
463float FloatSwap(
const float* f);
464short ShortSwapPtr(
const void* l);
465int LongSwapPtr(
const void* l);
466short ShortNoSwapPtr(
const void* l);
467int LongNoSwapPtr(
const void* l);
468float FloatSwapPtr(
const void* l);
469float FloatNoSwapPtr(
const void* l);
470void SwapValue(
void* dest,
size_t size);
476#if defined( Q3_BIG_ENDIAN ) && defined( Q3_LITTLE_ENDIAN )
477#error "Endianness defined as both big and little"
478#elif defined( Q3_BIG_ENDIAN )
480#define CopyLittleShort(dest, src) CopyShortSwap(dest, src)
481#define CopyLittleLong(dest, src) CopyLongSwap(dest, src)
487#define LittleShort(x) ShortSwap(x)
488#define LittleUnsignedShort(x) UnsignedShortSwap(x)
489#define LittleLong(x) LongSwap(x)
490#define LittleUnsignedLong(x) UnsignedLongSwap(x)
491#define LittleFloat(x) FloatSwap(&x)
492#define LittleShortPtr(x) ShortSwapPtr(&x)
493#define LittleLongPtr(x) LongSwapPtr(&x)
494#define LittleFloatPtr(x) FloatSwapPtr(&x)
495#define LittleSwap(x, size) SwapValue(x, size)
500#define BigShortPtr(x) ShortNoSwapPtr(&x)
501#define BigLongPtr(x) LongNoSwapPtr(&x)
502#define BigSwap(x, size)
504#elif defined( Q3_LITTLE_ENDIAN )
506#define CopyLittleShort(dest, src) Com_Memcpy(dest, src, 2)
507#define CopyLittleLong(dest, src) Com_Memcpy(dest, src, 4)
510#define LittleUnsignedShort
513#define LittleShortPtr(x) ShortNoSwapPtr(&x)
514#define LittleLongPtr(x) LongNoSwapPtr(&x)
515#define LittleFloatPtr(x) FloatNoSwapPtr(&x)
516#define LittleSwap(x, size)
518#define BigShort(x) ShortSwap(x)
519#define BigUnsignedShort(x) UnsignedShortSwap(x)
520#define BigLong(x) LongSwap(x)
521#define BigUnsignedLong(x) UnsignedLongSwap(x)
522#define BigFloat(x) FloatSwap(&x)
523#define BigShortPtr(x) ShortSwapPtr(&x)
524#define BigLongPtr(x) LongSwapPtr(&x)
525#define BigSwap(x, size) SwapValue(x, size)
528#error "Endianness not defined"
533#define PLATFORM_STRING OS_STRING "-" ARCH_STRING
535#define PLATFORM_STRING OS_STRING "-" ARCH_STRING "-debug"