components/gcc49/patches/022-libcilkrts-os-unix-sysdep.c.patch
changeset 6923 338aea22bf22
parent 6922 499ba999c1ee
child 6924 e8aaad6b5075
--- a/components/gcc49/patches/022-libcilkrts-os-unix-sysdep.c.patch	Tue Jul 05 09:31:58 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-# Stefan Teleman <[email protected]>
-# Port of CilkPlus (libcilkrts) to SPARC andd Solaris.
-# Internal patch. SPARC specific:
-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68945
---- libcilkrts/runtime/config/generic/os-unix-sysdep.c	2013-10-29 11:37:47.000000000 -0700
-+++ libcilkrts/runtime/config/generic/os-unix-sysdep.c	2015-08-06 10:27:40.088975924 -0700
-@@ -43,22 +43,55 @@
- #include "os.h"
- #include "sysdep.h"
- 
-+#if defined(__sparc) || defined(__sparc__)
-+# include <sys/times.h>
-+# include <limits.h>
-+#endif
-+
- /*
-  * The cycle counter is used for debugging.  This funciton is only called if
-  * CILK_PROFILE is defined when the runtime is built.
-  */
- COMMON_SYSDEP unsigned long long __cilkrts_getticks(void)
- {
-+#if defined(__sparc) || defined(__sparc__)
-+  struct tms t;
-+
-+  if (times(&t) != (clock_t) -1)
-+    return (unsigned long long) (t.tms_utime + t.tms_stime);
-+
-+  return 0ULL;
-+#else
- #   warning "unimplemented cycle counter"
-     return 0;
-+#endif
-+}
-+
-+#if defined(__sparc) || defined(__sparc__)
-+#include "os-fence.h"
-+/*
-+ * SPARC V9 __cilkrts_fence implementation
-+ */
-+COMMON_SYSDEP void __cilkrts_fence(void)
-+{
-+  __asm__ __volatile__ ("membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad" ::: "memory");
- }
-+#endif
- 
- /*
-  * A "short pause" - called from the Cilk runtime's spinloops.
-  */
- COMMON_SYSDEP void __cilkrts_short_pause(void)
- {
-+#if defined(__sparc) || defined(__sparc__)
-+  /* spin around for 8 cycles */
-+  __asm__ __volatile__("rd %ccr, %g0");
-+  __asm__ __volatile__("rd %ccr, %g0");
-+  __asm__ __volatile__("rd %ccr, %g0");
-+  __asm__ __volatile__("rd %ccr, %g0");
-+#else
- #   warning __cilkrts_short_pause empty
-+#endif
- }
- 
- /*