Revision: 3103 Author: eliot Date: 2014-10-13 14:24:18 -0700 (Mon, 13 Oct 2014) Log Message: ----------- Add ARMV7 defines for various support files.
Modified Paths: -------------- branches/Cog/platforms/Cross/vm/sqAtomicOps.h branches/Cog/platforms/Cross/vm/sqMemoryFence.h branches/Cog/platforms/unix/vm/sqUnixHeartbeat.c branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/platforms/Cross/vm/sqAtomicOps.h =================================================================== --- branches/Cog/platforms/Cross/vm/sqAtomicOps.h 2014-10-13 20:51:55 UTC (rev 3102) +++ branches/Cog/platforms/Cross/vm/sqAtomicOps.h 2014-10-13 21:24:18 UTC (rev 3103) @@ -137,7 +137,7 @@ # endif /* __SSE2__ */ # else /* TARGET_OS_IS_IPHONE elif x86 variants etc */
-#if defined(__arm__) && defined(__ARM_ARCH_6__) +#if defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)) /* tpr - this is code intended for the Raspberry Pi Raspbian OS * We'll experimentally trust in our MMU to keep 64bit accesses atomic */ #define get64(var) \ @@ -177,7 +177,7 @@ #endif #elif defined TARGET_OS_IS_IPHONE #define sqAtomicAddConst(var,n) OSAtomicAdd32(n,&var) -#elif defined(__arm__) && defined(__ARM_ARCH_6__) +#elif defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)) /* tpr - this is code intended for the Raspberry Pi Raspbian OS */ /* We'll experimentally use the gcc inbuilt functions detailed in * http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html @@ -230,7 +230,7 @@ # define sqCompareAndSwap(var,old,new) OSAtomicCompareAndSwap32(old, new, &var) # define sqCompareAndSwapRes(var,old,new,res) res = var; OSAtomicCompareAndSwap32(old, new, &var)
-#elif defined(__arm__) && defined(__ARM_ARCH_6__) +#elif defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)) /* tpr - this is code intended for the Raspberry Pi Raspbian OS */ /* We'll experimentally use the gcc inbuilt functions detailed in * http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html */
Modified: branches/Cog/platforms/Cross/vm/sqMemoryFence.h =================================================================== --- branches/Cog/platforms/Cross/vm/sqMemoryFence.h 2014-10-13 20:51:55 UTC (rev 3102) +++ branches/Cog/platforms/Cross/vm/sqMemoryFence.h 2014-10-13 21:24:18 UTC (rev 3103) @@ -47,7 +47,7 @@ # define sqLowLevelMFence() asm volatile ("mfence") # endif #else -# if defined(TARGET_OS_IS_IPHONE) || (defined(__arm__) && defined(__ARM_ARCH_6__)) +# if defined(TARGET_OS_IS_IPHONE) || (defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__))) # define sqLowLevelMFence() __sync_synchronize() # elif !defined(sqLowLevelMFence) extern void sqLowLevelMFence(void);
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Mon Oct 13 13:50:53 PDT 2014 + Mon Oct 13 14:24:26 PDT 2014
Modified: branches/Cog/platforms/unix/vm/sqUnixHeartbeat.c =================================================================== --- branches/Cog/platforms/unix/vm/sqUnixHeartbeat.c 2014-10-13 20:51:55 UTC (rev 3102) +++ branches/Cog/platforms/unix/vm/sqUnixHeartbeat.c 2014-10-13 21:24:18 UTC (rev 3103) @@ -164,7 +164,7 @@ || defined(i486) || defined(__i486) || defined (__i486__) \ || defined(intel) || defined(x86) || defined(i86pc) ) __asm__ __volatile__ ("rdtsc" : "=A"(value)); -#elif defined(__arm__) && defined(__ARM_ARCH_6__) +#elif defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)) /* tpr - do nothing for now; needs input from eliot to decide further */ #else # error "no high res clock defined"
Modified: branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c =================================================================== --- branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c 2014-10-13 20:51:55 UTC (rev 3102) +++ branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c 2014-10-13 21:24:18 UTC (rev 3103) @@ -164,7 +164,7 @@ || defined(i486) || defined(__i486) || defined (__i486__) \ || defined(intel) || defined(x86) || defined(i86pc) ) __asm__ __volatile__ ("rdtsc" : "=A"(value)); -#elif defined(__arm__) && defined(__ARM_ARCH_6__) +#elif defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)) /* tpr - do nothing for now; needs input from eliot to decide further */ #else # error "no high res clock defined"
Modified: branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c =================================================================== --- branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c 2014-10-13 20:51:55 UTC (rev 3102) +++ branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c 2014-10-13 21:24:18 UTC (rev 3103) @@ -157,7 +157,7 @@ || defined(i486) || defined(__i486) || defined (__i486__) \ || defined(intel) || defined(x86) || defined(i86pc) ) __asm__ __volatile__ ("rdtsc" : "=A"(value)); -#elif defined(__arm__) && defined(__ARM_ARCH_6__) +#elif defined(__arm__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)) /* tpr - do nothing for now; needs input from eliot to decide further */ #else # error "no high res clock defined"