components/gcc5/patches/003-cilk-sparc.patch
author Rich Burridge <rich.burridge@oracle.com>
Tue, 02 May 2017 17:33:26 -0700
changeset 7964 d9801318ed3d
parent 7160 d7b0985e7a1d
permissions -rw-r--r--
25981468 Build ilmbase and openexr with the GNU compilers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     1
#
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     2
# Enable cilk support for Sparc
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     3
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68945
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     4
#
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
     5
diff -ruN gcc-5.4.0/libcilkrts/Makefile.in gcc-5.4.0.new/libcilkrts/Makefile.in
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
     6
--- gcc-5.4.0/libcilkrts/Makefile.in	2016-05-08 04:45:03.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
     7
+++ gcc-5.4.0.new/libcilkrts/Makefile.in	2016-10-25 12:41:02.455042170 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
     8
@@ -215,13 +215,13 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
     9
 AWK = @AWK@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    10
 CC = @CC@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    11
 CCDEPMODE = @CCDEPMODE@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    12
-CFLAGS = @CFLAGS@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    13
+CFLAGS = @CFLAGS@ -D__EXTENSIONS__=1
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    14
 CPP = @CPP@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    15
-CPPFLAGS = @CPPFLAGS@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    16
+CPPFLAGS = @CPPFLAGS@ -D__EXTENSIONS__=1
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    17
 CXX = @CXX@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    18
 CXXCPP = @CXXCPP@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    19
 CXXDEPMODE = @CXXDEPMODE@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    20
-CXXFLAGS = @CXXFLAGS@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    21
+CXXFLAGS = @CXXFLAGS@ -D__EXTENSIONS__=1
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    22
 CYGPATH_W = @CYGPATH_W@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    23
 DEFS = @DEFS@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    24
 DEPDIR = @DEPDIR@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    25
diff -ruN gcc-5.4.0/libcilkrts/configure.ac gcc-5.4.0.new/libcilkrts/configure.ac
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    26
--- gcc-5.4.0/libcilkrts/configure.ac	2015-01-26 14:54:31.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    27
+++ gcc-5.4.0.new/libcilkrts/configure.ac	2016-10-25 13:44:57.812274915 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    28
@@ -134,6 +134,10 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    29
     config_dir="x86"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    30
     ;;
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    31
 
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    32
+  sparc-*-*)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    33
+    config_dir="sparc"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    34
+    ;;
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    35
+
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    36
   *)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    37
     config_dir="generic"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    38
     ;;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    39
diff -ruN gcc-5.4.0/libcilkrts/configure.tgt gcc-5.4.0.new/libcilkrts/configure.tgt
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    40
--- gcc-5.4.0/libcilkrts/configure.tgt	2014-11-13 06:03:17.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    41
+++ gcc-5.4.0.new/libcilkrts/configure.tgt	2016-10-25 12:41:02.447691755 +0000
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    42
@@ -37,6 +37,12 @@
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    43
     ;;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    44
   i?86-*-*)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    45
     ;;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    46
+  sparc-*-*)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    47
+    ;;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    48
+  sparc*-*-*)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    49
+    ;;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    50
+  __sparc*-*-*)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    51
+    ;;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    52
   *-*-*)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    53
     UNSUPPORTED=1
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    54
     ;;
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    55
diff -ruN gcc-5.4.0/libcilkrts/include/internal/abi.h gcc-5.4.0.new/libcilkrts/include/internal/abi.h
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    56
--- gcc-5.4.0/libcilkrts/include/internal/abi.h	2013-10-29 11:37:47.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    57
+++ gcc-5.4.0.new/libcilkrts/include/internal/abi.h	2016-10-25 13:43:14.488675235 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    58
@@ -95,6 +95,21 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    59
 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    60
 #endif  /* defined(_MSC_VER) */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    61
 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    62
+#if defined(__sparcv9)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    63
+/**
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    64
+ * Subtract SPARC V9 stack bias so the actual stack starts at the allocated
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    65
+ * area.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    66
+ * Hardcode value here to avoid dragging in different O/S headers for an
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    67
+ * architecture constant.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    68
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    69
+#define CILK_ADJUST_SP(SP) ((SP) - 2047)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    70
+#define CILK_UNADJUST_SP(SP) ((SP) + 2047)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    71
+#else
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    72
+#define CILK_ADJUST_SP(SP) SP
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    73
+#define CILK_UNADJUST_SP(SP) SP
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    74
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    75
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    76
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    77
 /* struct tags */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    78
 typedef struct __cilkrts_stack_frame __cilkrts_stack_frame; ///< struct tag for stack frame
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    79
 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    80
diff -ruN gcc-5.4.0/libcilkrts/runtime/cilk_fiber-unix.cpp gcc-5.4.0.new/libcilkrts/runtime/cilk_fiber-unix.cpp
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    81
--- gcc-5.4.0/libcilkrts/runtime/cilk_fiber-unix.cpp	2013-11-08 11:52:27.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    82
+++ gcc-5.4.0.new/libcilkrts/runtime/cilk_fiber-unix.cpp	2016-10-25 13:41:31.863089060 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    83
@@ -210,7 +210,7 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    84
         // enough extra space from the top of the stack we are
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    85
         // switching to for any temporaries required for this run()
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    86
         // function.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    87
-        JMPBUF_SP(m_resume_jmpbuf) = m_stack_base - frame_size;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    88
+        JMPBUF_SP(m_resume_jmpbuf) = CILK_ADJUST_SP(m_stack_base - frame_size);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    89
 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    90
         // GCC doesn't allow us to call __builtin_longjmp in the same function
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    91
         // that calls __builtin_setjmp, so it's been moved into it's own
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    92
diff -ruN gcc-5.4.0/libcilkrts/runtime/config/generic/cilk-abi-vla.c gcc-5.4.0.new/libcilkrts/runtime/config/generic/cilk-abi-vla.c
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    93
--- gcc-5.4.0/libcilkrts/runtime/config/generic/cilk-abi-vla.c	2013-10-29 11:37:47.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
    94
+++ gcc-5.4.0.new/libcilkrts/runtime/config/generic/cilk-abi-vla.c	2016-10-25 12:41:02.448086870 +0000
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    95
@@ -103,5 +103,5 @@
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    96
 
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    97
     // Just free the allocated memory to the heap since we don't know
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    98
     // how to expand/contract the calling frame
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    99
-    vla_internal_heap_free(t, full_size);
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   100
+    vla_internal_heap_free(sf, full_size);
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   101
 }
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   102
diff -ruN gcc-5.4.0/libcilkrts/runtime/config/generic/os-unix-sysdep.c gcc-5.4.0.new/libcilkrts/runtime/config/generic/os-unix-sysdep.c
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   103
--- gcc-5.4.0/libcilkrts/runtime/config/generic/os-unix-sysdep.c	2013-10-29 11:37:47.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   104
+++ gcc-5.4.0.new/libcilkrts/runtime/config/generic/os-unix-sysdep.c	2016-10-25 12:41:02.448439275 +0000
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   105
@@ -43,22 +43,55 @@
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   106
 #include "os.h"
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   107
 #include "sysdep.h"
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   108
 
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   109
+#if defined(__sparc) || defined(__sparc__)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   110
+# include <sys/times.h>
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   111
+# include <limits.h>
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   112
+#endif
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   113
+
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   114
 /*
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   115
  * The cycle counter is used for debugging.  This funciton is only called if
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   116
  * CILK_PROFILE is defined when the runtime is built.
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   117
  */
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   118
 COMMON_SYSDEP unsigned long long __cilkrts_getticks(void)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   119
 {
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   120
+#if defined(__sparc) || defined(__sparc__)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   121
+  struct tms t;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   122
+
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   123
+  if (times(&t) != (clock_t) -1)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   124
+    return (unsigned long long) (t.tms_utime + t.tms_stime);
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   125
+
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   126
+  return 0ULL;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   127
+#else
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   128
 #   warning "unimplemented cycle counter"
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   129
     return 0;
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   130
+#endif
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   131
+}
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   132
+
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   133
+#if defined(__sparc) || defined(__sparc__)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   134
+#include "os-fence.h"
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   135
+/*
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   136
+ * SPARC V9 __cilkrts_fence implementation
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   137
+ */
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   138
+COMMON_SYSDEP void __cilkrts_fence(void)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   139
+{
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   140
+  __asm__ __volatile__ ("membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad" ::: "memory");
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   141
 }
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   142
+#endif
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   143
 
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   144
 /*
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   145
  * A "short pause" - called from the Cilk runtime's spinloops.
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   146
  */
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   147
 COMMON_SYSDEP void __cilkrts_short_pause(void)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   148
 {
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   149
+#if defined(__sparc) || defined(__sparc__)
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   150
+  /* spin around for 8 cycles */
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   151
+  __asm__ __volatile__("rd %ccr, %g0");
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   152
+  __asm__ __volatile__("rd %ccr, %g0");
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   153
+  __asm__ __volatile__("rd %ccr, %g0");
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   154
+  __asm__ __volatile__("rd %ccr, %g0");
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   155
+#else
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   156
 #   warning __cilkrts_short_pause empty
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   157
+#endif
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   158
 }
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   159
 
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   160
 /*
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   161
diff -ruN gcc-5.4.0/libcilkrts/runtime/config/sparc/cilk-abi-vla.c gcc-5.4.0.new/libcilkrts/runtime/config/sparc/cilk-abi-vla.c
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   162
--- gcc-5.4.0/libcilkrts/runtime/config/sparc/cilk-abi-vla.c	1969-12-31 16:00:00.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   163
+++ gcc-5.4.0.new/libcilkrts/runtime/config/sparc/cilk-abi-vla.c	2016-10-25 12:55:40.503713470 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   164
@@ -0,0 +1,104 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   165
+/* cilk-abi-vla.cpp                  -*-C++-*-
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   166
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   167
+ *************************************************************************
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   168
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   169
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   170
+ *  Copyright (C) 2013, Intel Corporation
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   171
+ *  All rights reserved.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   172
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   173
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   174
+ *  Redistribution and use in source and binary forms, with or without
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   175
+ *  modification, are permitted provided that the following conditions
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   176
+ *  are met:
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   177
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   178
+ *    * Redistributions of source code must retain the above copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   179
+ *      notice, this list of conditions and the following disclaimer.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   180
+ *    * Redistributions in binary form must reproduce the above copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   181
+ *      notice, this list of conditions and the following disclaimer in
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   182
+ *      the documentation and/or other materials provided with the
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   183
+ *      distribution.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   184
+ *    * Neither the name of Intel Corporation nor the names of its
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   185
+ *      contributors may be used to endorse or promote products derived
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   186
+ *      from this software without specific prior written permission.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   187
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   188
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   189
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   190
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   191
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   192
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   193
+ *  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   194
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   195
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   196
+ *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   197
+ *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   198
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   199
+ *  WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   200
+ *  POSSIBILITY OF SUCH DAMAGE.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   201
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   202
+ **************************************************************************/
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   203
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   204
+/*
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   205
+ * Implementation of Variable Length Array (VLA) ABI.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   206
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   207
+ * The compiler calls these functions to allocate Variable Length Arrays
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   208
+ * at runtime.  The compiler must guarantee that __cilkrts_stack_free() is
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   209
+ * called to cleanup any memory allocated by __cilkrts_stack_alloc().
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   210
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   211
+ * This generic implementation always allocates the memory from the heap.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   212
+ * Optimally, the implementation should expand the frame of the calling
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   213
+ * function if possible, since that will be faster.  See the x86 version
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   214
+ * for one possible implementation.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   215
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   216
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   217
+#include <assert.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   218
+#include <stdlib.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   219
+#include <stdint.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   220
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   221
+#include "internal/abi.h"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   222
+#include "cilk-abi-vla-internal.h"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   223
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   224
+// Allocate space for a variable length array
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   225
+CILK_ABI(__cilkrts_void_ptr)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   226
+__cilkrts_stack_alloc(
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   227
+    __cilkrts_stack_frame *sf,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   228
+    size_t size,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   229
+    size_t distance_from_sp_to_alloca_area,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   230
+    uint32_t align,     // align is always >= minimum stack alignment and
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   231
+                        // >= ptr_size as well, and must be a power of 2.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   232
+    uint32_t needs_tag  // non-zero if the pointer being returned needs to
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   233
+                        // be tagged
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   234
+)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   235
+{
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   236
+    // full_size will be a multiple of align, and contains
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   237
+    // enough extra space to allocate a marker.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   238
+    size_t full_size = (size + align - 1) & ~(align - 1);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   239
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   240
+    // Allocate memory from the heap.  The compiler is responsible
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   241
+    // for guaranteeing us a chance to free it before the function
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   242
+    // exits
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   243
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   244
+    return (void *)vla_internal_heap_alloc(sf, full_size, align);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   245
+}
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   246
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   247
+// Free the space allocated for a variable length array.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   248
+CILK_ABI(void)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   249
+__cilkrts_stack_free(
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   250
+    __cilkrts_stack_frame *sf,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   251
+    void *p,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   252
+    size_t size,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   253
+    size_t distance_from_sp_to_alloca_area,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   254
+    uint32_t align, // same requirements as for align in allocation,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   255
+                    // and must match alignment that was passed when
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   256
+                    // doing the allocation 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   257
+    uint32_t known_from_stack  // non-zero if this is known to be allocated
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   258
+                               // on the stack, and therefore has no tag
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   259
+)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   260
+{
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   261
+    // full_size will be a multiple of align, and contains
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   262
+    // enough extra space to allocate a marker if one was needed.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   263
+    size_t full_size = (size + align - 1) & ~(align - 1);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   264
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   265
+    // Just free the allocated memory to the heap since we don't know
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   266
+    // how to expand/contract the calling frame
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   267
+    vla_internal_heap_free(sf, full_size);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   268
+}
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   269
diff -ruN gcc-5.4.0/libcilkrts/runtime/config/sparc/os-fence.h gcc-5.4.0.new/libcilkrts/runtime/config/sparc/os-fence.h
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   270
--- gcc-5.4.0/libcilkrts/runtime/config/sparc/os-fence.h	1969-12-31 16:00:00.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   271
+++ gcc-5.4.0.new/libcilkrts/runtime/config/sparc/os-fence.h	2016-10-25 12:49:20.080270815 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   272
@@ -0,0 +1,53 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   273
+/* os.h                  -*-C++-*-
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   274
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   275
+ *************************************************************************
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   276
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   277
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   278
+ *  Copyright (C) 2009-2013, Intel Corporation
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   279
+ *  All rights reserved.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   280
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   281
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   282
+ *  Redistribution and use in source and binary forms, with or without
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   283
+ *  modification, are permitted provided that the following conditions
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   284
+ *  are met:
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   285
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   286
+ *    * Redistributions of source code must retain the above copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   287
+ *      notice, this list of conditions and the following disclaimer.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   288
+ *    * Redistributions in binary form must reproduce the above copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   289
+ *      notice, this list of conditions and the following disclaimer in
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   290
+ *      the documentation and/or other materials provided with the
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   291
+ *      distribution.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   292
+ *    * Neither the name of Intel Corporation nor the names of its
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   293
+ *      contributors may be used to endorse or promote products derived
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   294
+ *      from this software without specific prior written permission.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   295
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   296
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   297
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   298
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   299
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   300
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   301
+ *  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   302
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   303
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   304
+ *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   305
+ *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   306
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   307
+ *  WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   308
+ *  POSSIBILITY OF SUCH DAMAGE.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   309
+ **************************************************************************/
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   310
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   311
+/* gcc before 4.4 does not implement __sync_synchronize properly */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   312
+#if (__GNUC__ * 10 + __GNUC_MINOR__ > 43)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   313
+#   define HAVE_SYNC_INTRINSICS 1
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   314
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   315
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   316
+/*
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   317
+ * void __cilkrts_fence(void)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   318
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   319
+#ifdef HAVE_SYNC_INTRINSICS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   320
+#   define __cilkrts_fence() __sync_synchronize()
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   321
+#elif defined __GNUC__
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   322
+#   define __cilkrts_fence() __asm__ volatile ("membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad" ::: "memory")
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   323
+#else
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   324
+COMMON_SYSDEP void __cilkrts_fence(void);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   325
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   326
diff -ruN gcc-5.4.0/libcilkrts/runtime/config/sparc/os-unix-sysdep.c gcc-5.4.0.new/libcilkrts/runtime/config/sparc/os-unix-sysdep.c
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   327
--- gcc-5.4.0/libcilkrts/runtime/config/sparc/os-unix-sysdep.c	1969-12-31 16:00:00.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   328
+++ gcc-5.4.0.new/libcilkrts/runtime/config/sparc/os-unix-sysdep.c	2016-10-25 12:54:40.358602560 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   329
@@ -0,0 +1,82 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   330
+/* os-unix-sysdep.c                  -*-C-*-
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   331
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   332
+ *************************************************************************
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   333
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   334
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   335
+ *  Copyright (C) 2009-2013, Intel Corporation
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   336
+ *  All rights reserved.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   337
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   338
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   339
+ *  Redistribution and use in source and binary forms, with or without
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   340
+ *  modification, are permitted provided that the following conditions
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   341
+ *  are met:
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   342
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   343
+ *    * Redistributions of source code must retain the above copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   344
+ *      notice, this list of conditions and the following disclaimer.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   345
+ *    * Redistributions in binary form must reproduce the above copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   346
+ *      notice, this list of conditions and the following disclaimer in
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   347
+ *      the documentation and/or other materials provided with the
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   348
+ *      distribution.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   349
+ *    * Neither the name of Intel Corporation nor the names of its
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   350
+ *      contributors may be used to endorse or promote products derived
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   351
+ *      from this software without specific prior written permission.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   352
+ *  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   353
+ *  @copyright
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   354
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   355
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   356
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   357
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   358
+ *  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   359
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   360
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   361
+ *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   362
+ *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   363
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   364
+ *  WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   365
+ *  POSSIBILITY OF SUCH DAMAGE.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   366
+ *************************************************************************
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   367
+ *
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   368
+ * This file contains system-specific code for sparc-based systems
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   369
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   370
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   371
+#include "os.h"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   372
+#include "sysdep.h"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   373
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   374
+/*
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   375
+ * The cycle counter is used for debugging.  This funciton is only called if
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   376
+ * CILK_PROFILE is defined when the runtime is built.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   377
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   378
+COMMON_SYSDEP unsigned long long __cilkrts_getticks(void)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   379
+{
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   380
+  unsigned long long tick;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   381
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   382
+#ifdef __sparcv9
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   383
+  asm __volatile__("rd %%tick, %0" : "=r" (tick));
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   384
+#else
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   385
+  asm __volatile__("rd %%tick, %L0\n"
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   386
+                   "srlx %L0, 32, %H0" : "=r" (tick));
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   387
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   388
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   389
+  return tick;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   390
+}
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   391
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   392
+/*
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   393
+ * A "short pause" - called from the Cilk runtime's spinloops.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   394
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   395
+COMMON_SYSDEP void __cilkrts_short_pause(void)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   396
+{
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   397
+  /* spin around for 8 cycles */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   398
+  __asm__ __volatile__("rd %ccr, %g0");
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   399
+  __asm__ __volatile__("rd %ccr, %g0");
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   400
+  __asm__ __volatile__("rd %ccr, %g0");
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   401
+  __asm__ __volatile__("rd %ccr, %g0");
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   402
+}
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   403
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   404
+/*
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   405
+ * Interlocked exchange - used to implement the Cilk runtime's spinloops
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   406
+ */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   407
+COMMON_SYSDEP int __cilkrts_xchg(volatile int *ptr, int x)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   408
+{
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   409
+    x = __sync_lock_test_and_set(ptr, x);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   410
+    return x;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   411
+}
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   412
diff -ruN gcc-5.4.0/libcilkrts/runtime/jmpbuf.h gcc-5.4.0.new/libcilkrts/runtime/jmpbuf.h
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   413
--- gcc-5.4.0/libcilkrts/runtime/jmpbuf.h	2013-10-29 11:37:47.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   414
+++ gcc-5.4.0.new/libcilkrts/runtime/jmpbuf.h	2016-10-25 13:37:43.110335065 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   415
@@ -109,7 +109,7 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   416
  */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   417
 inline char *__cilkrts_get_sp(__cilkrts_stack_frame *sf)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   418
 {
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   419
-    return (char *)SP(sf);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   420
+    return (char *)CILK_ADJUST_SP(SP(sf));
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   421
 }
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   422
 
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   423
 /**
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   424
diff -ruN gcc-5.4.0/libcilkrts/runtime/sysdep-unix.c gcc-5.4.0.new/libcilkrts/runtime/sysdep-unix.c
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   425
--- gcc-5.4.0/libcilkrts/runtime/sysdep-unix.c	2013-10-30 15:51:29.000000000 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   426
+++ gcc-5.4.0.new/libcilkrts/runtime/sysdep-unix.c	2016-10-25 13:24:22.075041275 +0000
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   427
@@ -81,6 +81,10 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   428
 #include <pthread.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   429
 #include <unistd.h>
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   430
 
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   431
+#if defined(sun) || defined(__sun) || defined(__sun__)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   432
+#include <strings.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   433
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   434
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   435
 #if defined HAVE_ALLOCA_H
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   436
 # include <alloca.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   437
 #elif defined __GNUC__
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   438
@@ -110,6 +114,14 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   439
 #   define MAP_ANONYMOUS MAP_ANON
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   440
 #endif
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   441
 
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   442
+#if defined(sun) || defined(__sun) || defined(__sun__)
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   443
+#include <sys/resource.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   444
+#include <dlfcn.h>
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   445
+#ifndef MAP_ANONYMOUS
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   446
+#define MAP_ANONYMOUS MAP_ANON
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   447
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   448
+#endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   449
+
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   450
 #ifdef  __VXWORKS__
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   451
 #   include <vxWorks.h>   
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   452
 #   include <vxCpuLib.h>  
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   453
@@ -498,7 +510,7 @@
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   454
 
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   455
     CILK_ASSERT(fiber);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   456
     void* sp = (void*)get_sp_for_executing_sf(cilk_fiber_get_stack_base(fiber), ff, sf);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   457
-    SP(sf) = sp;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   458
+    SP(sf) = CILK_ADJUST_SP(sp);
5342
e55d87e99ecd PSARC/2015/499 GCC v5.3, v4.9.3, and more
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   459
 
7160
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   460
     /* Debugging: make sure stack is accessible. */
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   461
     ((volatile char *)sp)[-1];
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   462
@@ -528,7 +540,7 @@
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   463
 #endif
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   464
 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   465
     // Set the stack pointer.
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   466
-    SP(sf) = new_sp;
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   467
+    SP(sf) = CILK_ADJUST_SP(new_sp);
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   468
 
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   469
 #ifdef RESTORE_X86_FP_STATE
d7b0985e7a1d 24952704 gcc5 cilkplus tests dump core
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 6859
diff changeset
   470
     if (CILK_FRAME_VERSION_VALUE(sf->flags) >= 1) {