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)
84#define DLL_SUFFIX "-dbg"
89#if defined(TARGET_LOCAL_SYSTEM)
91#elif defined(TARGET_MULTIPLE_ARCHITECTURES)
94# define ARCH_SUFFIX ".multiarch"
96# define ARCH_SUFFIX "." ARCH_STRING
102#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
108#if defined(_WIN64) || defined(__WIN64__)
117#define QCALL __stdcall
119#if defined( _MSC_VER )
120#define OS_STRING "win_msvc64"
121#elif defined __MINGW64__
122#define OS_STRING "win_mingw64"
125#define ID_INLINE __inline
128#if defined(_WIN64) || defined( __WIN64__ )
129#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
130# define ARCH_STRING "x86_64"
131#elif defined(__aarch64__) || defined(__ARM64__) || defined (_M_ARM64)
132# define ARCH_STRING "arm64"
134#elif defined _M_ALPHA
135# define ARCH_STRING "AXP"
138#define Q3_LITTLE_ENDIAN
140#define DLL_EXT ".dll"
141#define EXE_EXT ".exe"
143#elif defined(_WIN32) || defined(__WIN32__)
149#define QCALL __stdcall
151#if defined( _MSC_VER )
152#define OS_STRING "win_msvc"
153#elif defined __MINGW32__
154#define OS_STRING "win_mingw"
157#define ID_INLINE __inline
160#if defined( _M_IX86 ) || defined( __i386__ )
161#define ARCH_STRING "x86"
162#elif defined _M_ALPHA
163#define ARCH_STRING "AXP"
166#define Q3_LITTLE_ENDIAN
168#define DLL_EXT ".dll"
169#define EXE_EXT ".exe"
175#if defined(MACOS_X) || defined(__APPLE_CC__)
182#define OS_STRING "macosx"
183#define ID_INLINE inline
187# define ARCH_STRING "ppc"
188# define Q3_BIG_ENDIAN
189#elif defined __i386__
190# define ARCH_STRING "i386"
191# define Q3_LITTLE_ENDIAN
194#define DLL_EXT ".dylib"
210#define OS_STRING "linux"
211#define ID_INLINE inline
214#if defined(__i386) || defined(__i386__) || defined(_M_IX86)
215# define ARCH_STRING "x86"
216#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
217# define ARCH_STRING "x86_64"
218#elif defined(__PPC64__) || defined(__ppc64__) || defined(__powerpc64__) || defined(_ARCH_PPC64)
220# define ARCH_STRING "ppc64"
222# define ARCH_STRING "ppc64el"
224#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__)
225# define ARCH_STRING "ppc"
226#elif defined __s390__
227# define ARCH_STRING "s390"
228#elif defined __s390x__
229# define ARCH_STRING "s390x"
230#elif defined __ia64__
231# define ARCH_STRING "ia64"
233# define ARCH_STRING "e2k"
234#elif defined __alpha__
235# define ARCH_STRING "alpha"
236#elif defined __sparc__
237# define ARCH_STRING "sparc"
238#elif defined(__aarch64__) || defined(__ARM64__) || defined(_M_ARM64)
239# define ARCH_STRING "arm64"
240#elif defined __arm__ || defined (_M_ARM)
241# if defined(__ARM_PCS_VFP) && (__ARM_PCS_VFP)
242# define ARCH_STRING "armhf"
244# define ARCH_STRING "armel"
246#elif defined __cris__
247# define ARCH_STRING "cris"
248#elif defined __hppa__
249# define ARCH_STRING "hppa"
250#elif defined __mips__
251# define ARCH_STRING "mips"
253# define ARCH_STRING "sh"
255# if __UINTPTR_MAX__ == __UINT64_MAX__
256# define ARCH_STRING "riscv64"
258# define ARCH_STRING "riscv"
263# define Q3_BIG_ENDIAN
265# define Q3_LITTLE_ENDIAN
275#if defined(__APPLE__) || defined(__APPLE_CC__)
277#define OS_STRING "macosx"
278#define ID_INLINE inline
282# define ARCH_STRING "ppc"
283# define Q3_BIG_ENDIAN
284#elif defined __i386__
285# define ARCH_STRING "x86"
286# define Q3_LITTLE_ENDIAN
287#elif defined __x86_64__
290# define ARCH_STRING "x86_64"
291# define Q3_LITTLE_ENDIAN
292#elif defined __aarch64__
293# define ARCH_STRING "arm64"
294# define Q3_LITTLE_ENDIAN
295#ifndef NO_VM_COMPILED
296# define NO_VM_COMPILED
300#define DLL_EXT ".dylib"
307#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
309#include <sys/types.h>
310#include <machine/endian.h>
312#if defined(__FreeBSD__)
313#define OS_STRING "freebsd"
314#elif defined(__OpenBSD__)
315#define OS_STRING "openbsd"
316#elif defined(__NetBSD__)
317#define OS_STRING "netbsd"
320#define ID_INLINE inline
323#if defined(__i386__) || defined(__i386)
324#define ARCH_STRING "x86"
325#elif defined(__amd64__) || defined(__x86_64__)
326#define ARCH_STRING "x86_64"
327#elif defined(__arm__)
328#define ARCH_STRING "arm"
329#elif defined(__aarch64__)
330#define ARCH_STRING "arm64"
331#elif defined(__powerpc__) || defined(__ppc__)
332#define ARCH_STRING "ppc"
333#elif defined(__powerpc64__)
334#define ARCH_STRING "ppc64"
335#elif defined(__sparc64__)
336#define ARCH_STRING "sparc64"
337#elif defined(__mips__)
338#define ARCH_STRING "mips"
339#elif defined(__riscv)
340#if __SIZEOF_POINTER__ == 8
341#define ARCH_STRING "riscv64"
343#define ARCH_STRING "riscv"
346#define ARCH_STRING "unknown"
349#if BYTE_ORDER == BIG_ENDIAN
352#define Q3_LITTLE_ENDIAN
365#include <sys/byteorder.h>
367#define OS_STRING "solaris"
368#define ID_INLINE inline
372#define ARCH_STRING "i386"
374#define ARCH_STRING "sparc"
377#if defined( _BIG_ENDIAN )
379#elif defined( _LITTLE_ENDIAN )
380#define Q3_LITTLE_ENDIAN
392#define OS_STRING "irix"
393#define ID_INLINE __inline
396#define ARCH_STRING "mips"
409#define OS_STRING "emscripten"
410#define ID_INLINE inline
413#define ARCH_STRING "wasm32"
415#define Q3_LITTLE_ENDIAN
417#define DLL_EXT ".wasm"
425#define OS_STRING "q3vm"
429#define ARCH_STRING "bytecode"
431#define DLL_EXT ".qvm"
438#if !defined( OS_STRING )
439#error "Operating system not supported"
442#if !defined( ARCH_STRING )
443#error "Architecture not supported"
447#error "ID_INLINE not defined"
451#error "PATH_SEP not defined"
455#error "DLL_EXT not defined"
459void CopyShortSwap(
void* dest,
const void* src);
460void CopyLongSwap(
void* dest,
const void* src);
461short ShortSwap(
short l);
462unsigned short UnsignedShortSwap(
unsigned short l);
464unsigned int UnsignedLongSwap(
unsigned int l);
465float FloatSwap(
const float* f);
466short ShortSwapPtr(
const void* l);
467int LongSwapPtr(
const void* l);
468short ShortNoSwapPtr(
const void* l);
469int LongNoSwapPtr(
const void* l);
470float FloatSwapPtr(
const void* l);
471float FloatNoSwapPtr(
const void* l);
472void SwapValue(
void* dest,
size_t size);
474#if defined( Q3_BIG_ENDIAN ) && defined( Q3_LITTLE_ENDIAN )
475#error "Endianness defined as both big and little"
476#elif defined( Q3_BIG_ENDIAN )
478#define CopyLittleShort(dest, src) CopyShortSwap(dest, src)
479#define CopyLittleLong(dest, src) CopyLongSwap(dest, src)
485#define LittleShort(x) ShortSwap(x)
486#define LittleUnsignedShort(x) UnsignedShortSwap(x)
487#define LittleLong(x) LongSwap(x)
488#define LittleUnsignedLong(x) UnsignedLongSwap(x)
489#define LittleFloat(x) FloatSwap(&x)
490#define LittleShortPtr(x) ShortSwapPtr(&x)
491#define LittleLongPtr(x) LongSwapPtr(&x)
492#define LittleFloatPtr(x) FloatSwapPtr(&x)
493#define LittleSwap(x, size) SwapValue(x, size)
498#define BigShortPtr(x) ShortNoSwapPtr(&x)
499#define BigLongPtr(x) LongNoSwapPtr(&x)
500#define BigSwap(x, size)
502#elif defined( Q3_LITTLE_ENDIAN )
504#define CopyLittleShort(dest, src) Com_Memcpy(dest, src, 2)
505#define CopyLittleLong(dest, src) Com_Memcpy(dest, src, 4)
508#define LittleUnsignedShort
511#define LittleShortPtr(x) ShortNoSwapPtr(&x)
512#define LittleLongPtr(x) LongNoSwapPtr(&x)
513#define LittleFloatPtr(x) FloatNoSwapPtr(&x)
514#define LittleSwap(x, size)
516#define BigShort(x) ShortSwap(x)
517#define BigUnsignedShort(x) UnsignedShortSwap(x)
518#define BigLong(x) LongSwap(x)
519#define BigUnsignedLong(x) UnsignedLongSwap(x)
520#define BigFloat(x) FloatSwap(&x)
521#define BigShortPtr(x) ShortSwapPtr(&x)
522#define BigLongPtr(x) LongSwapPtr(&x)
523#define BigSwap(x, size) SwapValue(x, size)
526#error "Endianness not defined"
531#define PLATFORM_STRING OS_STRING "-" ARCH_STRING
533#define PLATFORM_STRING OS_STRING "-" ARCH_STRING "-debug"