From c613485929e503ef9b71bdc226e9b504f3640e03 Mon Sep 17 00:00:00 2001 From: tma Date: Sun, 6 Nov 2005 00:29:59 +0000 Subject: * Tidy-up of q_platform.h * Introduced Q3_BIG_ENDIAN and Q3_LITTLE_ENDIAN #defines * Changed some stricmp to Q_stricmp so that #define stricmp strcasecmp could be removed git-svn-id: svn://svn.icculus.org/quake3/trunk@287 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/qcommon/vm_interpreted.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'code/qcommon/vm_interpreted.c') diff --git a/code/qcommon/vm_interpreted.c b/code/qcommon/vm_interpreted.c index 1d180aa..4a9ff5b 100644 --- a/code/qcommon/vm_interpreted.c +++ b/code/qcommon/vm_interpreted.c @@ -113,16 +113,26 @@ static char *opnames[256] = { #endif #if idppc - #if defined(__GNUC__) - static ID_INLINE unsigned int loadWord(void *addr) { - unsigned int word; - - asm("lwbrx %0,0,%1" : "=r" (word) : "r" (addr)); - return word; - } - #else - #define loadWord(addr) __lwbrx(addr,0) - #endif + +//FIXME: these, um... look the same to me +#if defined(__GNUC__) +static ID_INLINE unsigned int loadWord(void *addr) { + unsigned int word; + + asm("lwbrx %0,0,%1" : "=r" (word) : "r" (addr)); + return word; +} +#else +static ID_INLINE unsigned int __lwbrx(register void *addr, + register int offset) { + register unsigned int word; + + asm("lwbrx %0,%2,%1" : "=r" (word) : "r" (addr), "b" (offset)); + return word; +} +#define loadWord(addr) __lwbrx(addr,0) +#endif + #else static ID_INLINE int loadWord(void *addr) { int word; -- cgit v1.2.3