|
@@ -1,6 +1,6 @@
|
|
|
-diff -Nur gcc-5.2.0.orig/gcc/config/tilegx/linux.h gcc-5.2.0/gcc/config/tilegx/linux.h
|
|
|
---- gcc-5.2.0.orig/gcc/config/tilegx/linux.h 2015-01-05 13:33:28.000000000 +0100
|
|
|
-+++ gcc-5.2.0/gcc/config/tilegx/linux.h 2015-12-02 15:13:59.563521746 +0100
|
|
|
+diff -Nur gcc-5.3.0.orig/gcc/config/tilegx/linux.h gcc-5.3.0/gcc/config/tilegx/linux.h
|
|
|
+--- gcc-5.3.0.orig/gcc/config/tilegx/linux.h 2015-01-05 13:33:28.000000000 +0100
|
|
|
++++ gcc-5.3.0/gcc/config/tilegx/linux.h 2016-01-25 12:53:51.975221940 +0100
|
|
|
@@ -55,8 +55,6 @@
|
|
|
/* For __clear_cache in libgcc2.c. */
|
|
|
#ifdef IN_LIBGCC2
|
|
@@ -10,9 +10,21 @@ diff -Nur gcc-5.2.0.orig/gcc/config/tilegx/linux.h gcc-5.2.0/gcc/config/tilegx/l
|
|
|
/* Use the minimum page size of 4K. Alternatively we can call
|
|
|
getpagesize() but it introduces a libc dependence. */
|
|
|
#undef CLEAR_INSN_CACHE
|
|
|
-diff -Nur gcc-5.2.0.orig/libgcc/config/tilepro/atomic.h gcc-5.2.0/libgcc/config/tilepro/atomic.h
|
|
|
---- gcc-5.2.0.orig/libgcc/config/tilepro/atomic.h 2015-01-05 13:33:28.000000000 +0100
|
|
|
-+++ gcc-5.2.0/libgcc/config/tilepro/atomic.h 2015-12-02 15:41:08.868942210 +0100
|
|
|
+diff -Nur gcc-5.3.0.orig/gcc/config/tilepro/linux.h gcc-5.3.0/gcc/config/tilepro/linux.h
|
|
|
+--- gcc-5.3.0.orig/gcc/config/tilepro/linux.h 2015-01-05 13:33:28.000000000 +0100
|
|
|
++++ gcc-5.3.0/gcc/config/tilepro/linux.h 2016-01-25 12:56:33.687363200 +0100
|
|
|
+@@ -47,8 +47,6 @@
|
|
|
+ /* For __clear_cache in libgcc2.c. */
|
|
|
+ #ifdef IN_LIBGCC2
|
|
|
+
|
|
|
+-#include <arch/icache.h>
|
|
|
+-
|
|
|
+ /* Use the minimum page size of 4K. Alternatively we can call getpagesize()
|
|
|
+ but it introduces a libc dependence. */
|
|
|
+ #undef CLEAR_INSN_CACHE
|
|
|
+diff -Nur gcc-5.3.0.orig/libgcc/config/tilepro/atomic.h gcc-5.3.0/libgcc/config/tilepro/atomic.h
|
|
|
+--- gcc-5.3.0.orig/libgcc/config/tilepro/atomic.h 2015-01-05 13:33:28.000000000 +0100
|
|
|
++++ gcc-5.3.0/libgcc/config/tilepro/atomic.h 2016-01-25 13:16:09.116389975 +0100
|
|
|
@@ -46,6 +46,11 @@
|
|
|
The "exchange" and "compare and exchange" macros may also take
|
|
|
pointer values. We use the pseudo-type "VAL" in the documentation
|
|
@@ -25,17 +37,22 @@ diff -Nur gcc-5.2.0.orig/libgcc/config/tilepro/atomic.h gcc-5.2.0/libgcc/config/
|
|
|
#else
|
|
|
/* Atomic instruction macros
|
|
|
|
|
|
-@@ -92,13 +97,6 @@
|
|
|
+@@ -90,14 +95,12 @@
|
|
|
+ syscall, as is the 64-bit compare-and-exchange. The other 64-bit
|
|
|
+ routines are implemented by looping over the 64-bit
|
|
|
compare-and-exchange routine, so may be potentially less efficient. */
|
|
|
- #endif
|
|
|
+-#endif
|
|
|
|
|
|
-#ifdef __tilegx__
|
|
|
-#include <arch/spr_def.h>
|
|
|
-#else
|
|
|
-#include <asm/unistd.h>
|
|
|
-#endif
|
|
|
--
|
|
|
--
|
|
|
++#define __NR_FAST_cmpxchg -1
|
|
|
++#define __NR_FAST_atomic_update -2
|
|
|
++#define __NR_FAST_cmpxchg64 -3
|
|
|
+
|
|
|
++#endif
|
|
|
+
|
|
|
/* 32-bit integer compare-and-exchange. */
|
|
|
static __inline __attribute__ ((always_inline))
|
|
|
- int arch_atomic_val_compare_and_exchange_4 (volatile int *mem,
|