[Vm-dev] [commit][3103] Add ARMV7 defines for various support files.

commits at squeakvm.org commits at squeakvm.org
Mon Oct 13 21:24:20 UTC 2014


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"



More information about the Vm-dev mailing list