OpenCores
URL https://opencores.org/ocsvn/zipcpu/zipcpu/trunk

Subversion Repositories zipcpu

[/] [zipcpu/] [trunk/] [sw/] [gcc-zippatch.patch] - Diff between revs 112 and 117

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 112 Rev 117
Line 44... Line 44...
+    unsupported_languages="$unsupported_languages fortran java"
+    unsupported_languages="$unsupported_languages fortran java"
+    ;;
+    ;;
 esac
 esac
 
 
 # If we aren't building newlib, then don't build libgloss, since libgloss
 # If we aren't building newlib, then don't build libgloss, since libgloss
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/cfgexpand.c gcc-5.3.0-zip/gcc/cfgexpand.c
 
--- gcc-5.3.0-original/gcc/cfgexpand.c  2015-07-23 06:39:26.000000000 -0400
 
+++ gcc-5.3.0-zip/gcc/cfgexpand.c       2016-04-01 06:40:17.288326711 -0400
 
@@ -108,6 +108,14 @@
 
 #include "tree-chkp.h"
 
 #include "rtl-chkp.h"
 
 
 
+#ifdef DO_ZIP_DEBUGS
 
+#include <stdio.h>
 
+#define ZIP_DEBUG_LINE(STR,RTX) do{fprintf(stderr,"%s:%d/%s\n",__FILE__,__LINE__,STR); zip_debug_rtx(RTX);} while(0)
 
+extern void    zip_debug_rtx(const_rtx);
 
+#else
 
+#define        ZIP_DEBUG_LINE(STR,RTX)
 
+#endif
 
+
 
 /* Some systems use __main in a way incompatible with its use in gcc, in these
 
    cases use the macros NAME__MAIN to give a quoted symbol and SYMBOL__MAIN to
 
    give the same symbol without quotes for an alternative entry point.  You
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/cgraphbuild.c gcc-5.3.0-zip/gcc/cgraphbuild.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/cgraphbuild.c gcc-5.3.0-zip/gcc/cgraphbuild.c
--- gcc-5.3.0-original/gcc/cgraphbuild.c        2015-01-09 15:18:42.000000000 -0500
--- gcc-5.3.0-original/gcc/cgraphbuild.c        2015-01-09 15:18:42.000000000 -0500
+++ gcc-5.3.0-zip/gcc/cgraphbuild.c     2016-03-24 22:13:24.815287808 -0400
+++ gcc-5.3.0-zip/gcc/cgraphbuild.c     2016-03-24 22:13:24.815287808 -0400
@@ -62,6 +62,13 @@
@@ -62,6 +62,13 @@
 #include "ipa-prop.h"
 #include "ipa-prop.h"
Line 118... Line 136...
+#undef TARGET_OPTION_OPTIMIZATION_TABLE
+#undef TARGET_OPTION_OPTIMIZATION_TABLE
+#define        TARGET_OPTION_OPTIMIZATION_TABLE        zip_option_optimization_table
+#define        TARGET_OPTION_OPTIMIZATION_TABLE        zip_option_optimization_table
+
+
+struct gcc_targetm_common      targetm_common = TARGETM_COMMON_INITIALIZER;
+struct gcc_targetm_common      targetm_common = TARGETM_COMMON_INITIALIZER;
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h gcc-5.3.0-zip/gcc/config/aarch64/aarch64-linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h gcc-5.3.0-zip/gcc/config/aarch64/aarch64-linux.h
--- gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h       2016-03-25 11:55:15.492451356 -0400
--- gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h       2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/aarch64/aarch64-linux.h    2015-07-24 12:00:26.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/aarch64/aarch64-linux.h    2015-07-24 12:00:26.000000000 -0400
@@ -21,7 +21,7 @@
@@ -21,7 +21,7 @@
 #ifndef GCC_AARCH64_LINUX_H
 #ifndef GCC_AARCH64_LINUX_H
 #define GCC_AARCH64_LINUX_H
 #define GCC_AARCH64_LINUX_H
 
 
Line 130... Line 148...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
 
 
 #undef  ASAN_CC1_SPEC
 #undef  ASAN_CC1_SPEC
 #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
 #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/alpha/linux-elf.h gcc-5.3.0-zip/gcc/config/alpha/linux-elf.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/alpha/linux-elf.h gcc-5.3.0-zip/gcc/config/alpha/linux-elf.h
--- gcc-5.3.0-original/gcc/config/alpha/linux-elf.h     2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/alpha/linux-elf.h     2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/alpha/linux-elf.h  2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/alpha/linux-elf.h  2015-01-05 07:33:28.000000000 -0500
@@ -23,8 +23,8 @@
@@ -23,8 +23,8 @@
 #define EXTRA_SPECS \
 #define EXTRA_SPECS \
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 
 
Line 144... Line 162...
+#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
+#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 #if DEFAULT_LIBC == LIBC_UCLIBC
 #if DEFAULT_LIBC == LIBC_UCLIBC
 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 #elif DEFAULT_LIBC == LIBC_GLIBC
 #elif DEFAULT_LIBC == LIBC_GLIBC
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/arm/linux-eabi.h gcc-5.3.0-zip/gcc/config/arm/linux-eabi.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/arm/linux-eabi.h gcc-5.3.0-zip/gcc/config/arm/linux-eabi.h
--- gcc-5.3.0-original/gcc/config/arm/linux-eabi.h      2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/arm/linux-eabi.h      2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/arm/linux-eabi.h   2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/arm/linux-eabi.h   2015-01-05 07:33:28.000000000 -0500
@@ -68,8 +68,8 @@
@@ -68,8 +68,8 @@
    GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
    GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
 
 
 #undef  GLIBC_DYNAMIC_LINKER
 #undef  GLIBC_DYNAMIC_LINKER
Line 158... Line 176...
+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
 #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
 #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
 
 
 #define GLIBC_DYNAMIC_LINKER \
 #define GLIBC_DYNAMIC_LINKER \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/arm/linux-elf.h gcc-5.3.0-zip/gcc/config/arm/linux-elf.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/arm/linux-elf.h gcc-5.3.0-zip/gcc/config/arm/linux-elf.h
--- gcc-5.3.0-original/gcc/config/arm/linux-elf.h       2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/arm/linux-elf.h       2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/arm/linux-elf.h    2015-06-23 05:26:54.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/arm/linux-elf.h    2015-06-23 05:26:54.000000000 -0400
@@ -62,7 +62,7 @@
@@ -62,7 +62,7 @@
 
 
 #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
 #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
 
 
Line 170... Line 188...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
 
 #define LINUX_TARGET_LINK_SPEC  "%{h*} \
 #define LINUX_TARGET_LINK_SPEC  "%{h*} \
    %{static:-Bstatic} \
    %{static:-Bstatic} \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/bfin/linux.h gcc-5.3.0-zip/gcc/config/bfin/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/bfin/linux.h gcc-5.3.0-zip/gcc/config/bfin/linux.h
--- gcc-5.3.0-original/gcc/config/bfin/linux.h  2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/bfin/linux.h  2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/bfin/linux.h       2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/bfin/linux.h       2015-01-05 07:33:28.000000000 -0500
@@ -45,7 +45,7 @@
@@ -45,7 +45,7 @@
   %{shared:-G -Bdynamic} \
   %{shared:-G -Bdynamic} \
   %{!shared: %{!static: \
   %{!shared: %{!static: \
    %{rdynamic:-export-dynamic} \
    %{rdynamic:-export-dynamic} \
Line 182... Line 200...
+   -dynamic-linker /lib/ld-uClibc.so.0} \
+   -dynamic-linker /lib/ld-uClibc.so.0} \
    %{static}} -init __init -fini __fini"
    %{static}} -init __init -fini __fini"
 
 
 #undef TARGET_SUPPORTS_SYNC_CALLS
 #undef TARGET_SUPPORTS_SYNC_CALLS
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/cris/linux.h gcc-5.3.0-zip/gcc/config/cris/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/cris/linux.h gcc-5.3.0-zip/gcc/config/cris/linux.h
--- gcc-5.3.0-original/gcc/config/cris/linux.h  2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/cris/linux.h  2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/cris/linux.h       2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/cris/linux.h       2015-01-05 07:33:28.000000000 -0500
@@ -102,7 +102,7 @@
@@ -102,7 +102,7 @@
 #undef CRIS_DEFAULT_CPU_VERSION
 #undef CRIS_DEFAULT_CPU_VERSION
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 
 
Line 194... Line 212...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
 
 #undef CRIS_LINK_SUBTARGET_SPEC
 #undef CRIS_LINK_SUBTARGET_SPEC
 #define CRIS_LINK_SUBTARGET_SPEC \
 #define CRIS_LINK_SUBTARGET_SPEC \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/freebsd-spec.h gcc-5.3.0-zip/gcc/config/freebsd-spec.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/freebsd-spec.h gcc-5.3.0-zip/gcc/config/freebsd-spec.h
--- gcc-5.3.0-original/gcc/config/freebsd-spec.h        2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/freebsd-spec.h        2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/freebsd-spec.h     2015-06-25 13:53:14.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/freebsd-spec.h     2015-06-25 13:53:14.000000000 -0400
@@ -129,9 +129,9 @@
@@ -129,9 +129,9 @@
 #endif
 #endif
 
 
 #if FBSD_MAJOR < 6
 #if FBSD_MAJOR < 6
Line 209... Line 227...
+#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
+#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
 #endif
 #endif
 
 
 /* NOTE: The freebsd-spec.h header is included also for various
 /* NOTE: The freebsd-spec.h header is included also for various
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/frv/linux.h gcc-5.3.0-zip/gcc/config/frv/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/frv/linux.h gcc-5.3.0-zip/gcc/config/frv/linux.h
--- gcc-5.3.0-original/gcc/config/frv/linux.h   2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/frv/linux.h   2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/frv/linux.h        2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/frv/linux.h        2015-01-05 07:33:28.000000000 -0500
@@ -34,7 +34,7 @@
@@ -34,7 +34,7 @@
 #define ENDFILE_SPEC \
 #define ENDFILE_SPEC \
   "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
   "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 
Line 221... Line 239...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
 
 #undef LINK_SPEC
 #undef LINK_SPEC
 #define LINK_SPEC "\
 #define LINK_SPEC "\
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/gnu.h gcc-5.3.0-zip/gcc/config/i386/gnu.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/gnu.h gcc-5.3.0-zip/gcc/config/i386/gnu.h
--- gcc-5.3.0-original/gcc/config/i386/gnu.h    2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/i386/gnu.h    2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/i386/gnu.h 2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/i386/gnu.h 2015-01-05 07:33:28.000000000 -0500
@@ -22,7 +22,7 @@
@@ -22,7 +22,7 @@
 #define GNU_USER_LINK_EMULATION "elf_i386"
 #define GNU_USER_LINK_EMULATION "elf_i386"
 
 
 #undef GNU_USER_DYNAMIC_LINKER
 #undef GNU_USER_DYNAMIC_LINKER
Line 233... Line 251...
+#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so"
+#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so"
 
 
 #undef STARTFILE_SPEC
 #undef STARTFILE_SPEC
 #if defined HAVE_LD_PIE
 #if defined HAVE_LD_PIE
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu64.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu64.h
--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h 2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h 2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu64.h      2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu64.h      2015-01-05 07:33:28.000000000 -0500
@@ -22,6 +22,6 @@
@@ -22,6 +22,6 @@
 #define GNU_USER_LINK_EMULATION64 "elf_x86_64_fbsd"
 #define GNU_USER_LINK_EMULATION64 "elf_x86_64_fbsd"
 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64_fbsd"
 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64_fbsd"
 
 
Line 246... Line 264...
-#define GLIBC_DYNAMIC_LINKERX32 "/tools/lib/ld-kfreebsd-x32.so.1"
-#define GLIBC_DYNAMIC_LINKERX32 "/tools/lib/ld-kfreebsd-x32.so.1"
+#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1"
+#define GLIBC_DYNAMIC_LINKERX32 "/lib/ld-kfreebsd-x32.so.1"
+#define GLIBC_DYNAMIC_LINKERX32 "/lib/ld-kfreebsd-x32.so.1"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu.h
--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h   2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h   2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu.h        2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu.h        2015-01-05 07:33:28.000000000 -0500
@@ -19,4 +19,4 @@
@@ -19,4 +19,4 @@
 <http://www.gnu.org/licenses/>.  */
 <http://www.gnu.org/licenses/>.  */
 
 
 #define GNU_USER_LINK_EMULATION "elf_i386_fbsd"
 #define GNU_USER_LINK_EMULATION "elf_i386_fbsd"
-#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
-#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/linux64.h gcc-5.3.0-zip/gcc/config/i386/linux64.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/linux64.h gcc-5.3.0-zip/gcc/config/i386/linux64.h
--- gcc-5.3.0-original/gcc/config/i386/linux64.h        2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/i386/linux64.h        2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/i386/linux64.h     2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/i386/linux64.h     2015-01-05 07:33:28.000000000 -0500
@@ -27,6 +27,6 @@
@@ -27,6 +27,6 @@
 #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
 #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
 
 
Line 268... Line 286...
-#define GLIBC_DYNAMIC_LINKERX32 "/tools/libx32/ld-linux-x32.so.2"
-#define GLIBC_DYNAMIC_LINKERX32 "/tools/libx32/ld-linux-x32.so.2"
+#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
+#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/linux.h gcc-5.3.0-zip/gcc/config/i386/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/i386/linux.h gcc-5.3.0-zip/gcc/config/i386/linux.h
--- gcc-5.3.0-original/gcc/config/i386/linux.h  2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/i386/linux.h  2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/i386/linux.h       2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/i386/linux.h       2015-01-05 07:33:28.000000000 -0500
@@ -20,4 +20,4 @@
@@ -20,4 +20,4 @@
 <http://www.gnu.org/licenses/>.  */
 <http://www.gnu.org/licenses/>.  */
 
 
 #define GNU_USER_LINK_EMULATION "elf_i386"
 #define GNU_USER_LINK_EMULATION "elf_i386"
-#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
-#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/ia64/linux.h gcc-5.3.0-zip/gcc/config/ia64/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/ia64/linux.h gcc-5.3.0-zip/gcc/config/ia64/linux.h
--- gcc-5.3.0-original/gcc/config/ia64/linux.h  2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/ia64/linux.h  2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/ia64/linux.h       2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/ia64/linux.h       2015-01-05 07:33:28.000000000 -0500
@@ -55,7 +55,7 @@
@@ -55,7 +55,7 @@
 /* Define this for shared library support because it isn't in the main
 /* Define this for shared library support because it isn't in the main
    linux.h file.  */
    linux.h file.  */
 
 
Line 289... Line 307...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 
 
 #undef LINK_SPEC
 #undef LINK_SPEC
 #define LINK_SPEC "\
 #define LINK_SPEC "\
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/knetbsd-gnu.h gcc-5.3.0-zip/gcc/config/knetbsd-gnu.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/knetbsd-gnu.h gcc-5.3.0-zip/gcc/config/knetbsd-gnu.h
--- gcc-5.3.0-original/gcc/config/knetbsd-gnu.h 2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/knetbsd-gnu.h 2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/knetbsd-gnu.h      2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/knetbsd-gnu.h      2015-01-05 07:33:28.000000000 -0500
@@ -32,4 +32,4 @@
@@ -32,4 +32,4 @@
 
 
 
 
 #undef GNU_USER_DYNAMIC_LINKER
 #undef GNU_USER_DYNAMIC_LINKER
-#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so.1"
-#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so.1"
+#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h gcc-5.3.0-zip/gcc/config/kopensolaris-gnu.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h gcc-5.3.0-zip/gcc/config/kopensolaris-gnu.h
--- gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h    2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h    2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/kopensolaris-gnu.h 2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/kopensolaris-gnu.h 2015-01-05 07:33:28.000000000 -0500
@@ -31,5 +31,4 @@
@@ -31,5 +31,4 @@
   while (0)
   while (0)
 
 
 #undef GNU_USER_DYNAMIC_LINKER
 #undef GNU_USER_DYNAMIC_LINKER
-#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so.1"
-#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so.1"
-
-
+#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/linux.h gcc-5.3.0-zip/gcc/config/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/linux.h gcc-5.3.0-zip/gcc/config/linux.h
--- gcc-5.3.0-original/gcc/config/linux.h       2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/linux.h       2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/linux.h    2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/linux.h    2015-01-05 07:33:28.000000000 -0500
@@ -73,10 +73,10 @@
@@ -73,10 +73,10 @@
    GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
    GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
    GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
    GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
    supporting both 32-bit and 64-bit compilation.  */
    supporting both 32-bit and 64-bit compilation.  */
Line 326... Line 344...
+#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
+#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
 #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
 #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h gcc-5.3.0-zip/gcc/config/lm32/uclinux-elf.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h gcc-5.3.0-zip/gcc/config/lm32/uclinux-elf.h
--- gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h    2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h    2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/lm32/uclinux-elf.h 2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/lm32/uclinux-elf.h 2015-01-05 07:33:28.000000000 -0500
@@ -67,7 +67,7 @@
@@ -67,7 +67,7 @@
    %{shared:-shared} \
    %{shared:-shared} \
    %{symbolic:-Bsymbolic} \
    %{symbolic:-Bsymbolic} \
    %{rdynamic:-export-dynamic} \
    %{rdynamic:-export-dynamic} \
Line 338... Line 356...
+   -dynamic-linker /lib/ld-linux.so.2"
+   -dynamic-linker /lib/ld-linux.so.2"
 
 
 #define TARGET_OS_CPP_BUILTINS() GNU_USER_TARGET_OS_CPP_BUILTINS()
 #define TARGET_OS_CPP_BUILTINS() GNU_USER_TARGET_OS_CPP_BUILTINS()
 
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/m68k/linux.h gcc-5.3.0-zip/gcc/config/m68k/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/m68k/linux.h gcc-5.3.0-zip/gcc/config/m68k/linux.h
--- gcc-5.3.0-original/gcc/config/m68k/linux.h  2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/m68k/linux.h  2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/m68k/linux.h       2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/m68k/linux.h       2015-01-05 07:33:28.000000000 -0500
@@ -71,7 +71,7 @@
@@ -71,7 +71,7 @@
    When the -shared link option is used a final link is not being
    When the -shared link option is used a final link is not being
    done.  */
    done.  */
 
 
Line 350... Line 368...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
 
 #undef LINK_SPEC
 #undef LINK_SPEC
 #define LINK_SPEC "-m m68kelf %{shared} \
 #define LINK_SPEC "-m m68kelf %{shared} \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/microblaze/linux.h gcc-5.3.0-zip/gcc/config/microblaze/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/microblaze/linux.h gcc-5.3.0-zip/gcc/config/microblaze/linux.h
--- gcc-5.3.0-original/gcc/config/microblaze/linux.h    2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/microblaze/linux.h    2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/microblaze/linux.h 2015-05-28 10:08:19.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/microblaze/linux.h 2015-05-28 10:08:19.000000000 -0400
@@ -28,7 +28,7 @@
@@ -28,7 +28,7 @@
 #undef TLS_NEEDS_GOT
 #undef TLS_NEEDS_GOT
 #define TLS_NEEDS_GOT 1
 #define TLS_NEEDS_GOT 1
 
 
Line 362... Line 380...
+#define DYNAMIC_LINKER "/lib/ld.so.1"
+#define DYNAMIC_LINKER "/lib/ld.so.1"
 #undef  SUBTARGET_EXTRA_SPECS
 #undef  SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS \
 #define SUBTARGET_EXTRA_SPECS \
   { "dynamic_linker", DYNAMIC_LINKER }
   { "dynamic_linker", DYNAMIC_LINKER }
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/mips/linux.h gcc-5.3.0-zip/gcc/config/mips/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/mips/linux.h gcc-5.3.0-zip/gcc/config/mips/linux.h
--- gcc-5.3.0-original/gcc/config/mips/linux.h  2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/mips/linux.h  2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/mips/linux.h       2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/mips/linux.h       2015-01-05 07:33:28.000000000 -0500
@@ -22,20 +22,20 @@
@@ -22,20 +22,20 @@
 #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
 #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
 
 
 #define GLIBC_DYNAMIC_LINKER32 \
 #define GLIBC_DYNAMIC_LINKER32 \
Line 392... Line 410...
+  "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
+  "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
 
 
 #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
 #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
 #define GNU_USER_DYNAMIC_LINKERN32 \
 #define GNU_USER_DYNAMIC_LINKERN32 \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/mn10300/linux.h gcc-5.3.0-zip/gcc/config/mn10300/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/mn10300/linux.h gcc-5.3.0-zip/gcc/config/mn10300/linux.h
--- gcc-5.3.0-original/gcc/config/mn10300/linux.h       2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/mn10300/linux.h       2016-04-02 11:53:47.213604913 -0400
+++ gcc-5.3.0-zip/gcc/config/mn10300/linux.h    2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/mn10300/linux.h    2015-01-05 07:33:28.000000000 -0500
@@ -32,7 +32,7 @@
@@ -32,7 +32,7 @@
 #undef  ASM_SPEC
 #undef  ASM_SPEC
 #define ASM_SPEC ""
 #define ASM_SPEC ""
 
 
Line 404... Line 422...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
 
 #undef  LINK_SPEC
 #undef  LINK_SPEC
 #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
 #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/pa/pa-linux.h gcc-5.3.0-zip/gcc/config/pa/pa-linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/pa/pa-linux.h gcc-5.3.0-zip/gcc/config/pa/pa-linux.h
--- gcc-5.3.0-original/gcc/config/pa/pa-linux.h 2016-03-25 11:55:15.508451270 -0400
--- gcc-5.3.0-original/gcc/config/pa/pa-linux.h 2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/pa/pa-linux.h      2015-09-24 20:04:26.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/pa/pa-linux.h      2015-09-24 20:04:26.000000000 -0400
@@ -37,7 +37,7 @@
@@ -37,7 +37,7 @@
 /* Define this for shared library support because it isn't in the main
 /* Define this for shared library support because it isn't in the main
    linux.h file.  */
    linux.h file.  */
 
 
Line 416... Line 434...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
 
 #undef LINK_SPEC
 #undef LINK_SPEC
 #define LINK_SPEC "\
 #define LINK_SPEC "\
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/rs6000/linux64.h gcc-5.3.0-zip/gcc/config/rs6000/linux64.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/rs6000/linux64.h gcc-5.3.0-zip/gcc/config/rs6000/linux64.h
--- gcc-5.3.0-original/gcc/config/rs6000/linux64.h      2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/rs6000/linux64.h      2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/rs6000/linux64.h   2015-03-09 19:18:57.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/rs6000/linux64.h   2015-03-09 19:18:57.000000000 -0400
@@ -357,14 +357,14 @@
@@ -357,14 +357,14 @@
 #undef LINK_OS_DEFAULT_SPEC
 #undef LINK_OS_DEFAULT_SPEC
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 
 
Line 439... Line 457...
+#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
 #if DEFAULT_LIBC == LIBC_UCLIBC
 #if DEFAULT_LIBC == LIBC_UCLIBC
 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 #elif DEFAULT_LIBC == LIBC_GLIBC
 #elif DEFAULT_LIBC == LIBC_GLIBC
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/rs6000/sysv4.h gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/rs6000/sysv4.h gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h
--- gcc-5.3.0-original/gcc/config/rs6000/sysv4.h        2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/rs6000/sysv4.h        2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h     2015-09-24 09:46:45.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h     2015-09-24 09:46:45.000000000 -0400
@@ -757,8 +757,8 @@
@@ -757,8 +757,8 @@
 
 
 #define LINK_START_LINUX_SPEC ""
 #define LINK_START_LINUX_SPEC ""
 
 
Line 453... Line 471...
+#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
+#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 #if DEFAULT_LIBC == LIBC_UCLIBC
 #if DEFAULT_LIBC == LIBC_UCLIBC
 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
 #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/s390/linux.h gcc-5.3.0-zip/gcc/config/s390/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/s390/linux.h gcc-5.3.0-zip/gcc/config/s390/linux.h
--- gcc-5.3.0-original/gcc/config/s390/linux.h  2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/s390/linux.h  2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/s390/linux.h       2015-05-11 03:14:10.000000000 -0400
+++ gcc-5.3.0-zip/gcc/config/s390/linux.h       2015-05-11 03:14:10.000000000 -0400
@@ -60,8 +60,8 @@
@@ -60,8 +60,8 @@
 #define MULTILIB_DEFAULTS { "m31" }
 #define MULTILIB_DEFAULTS { "m31" }
 #endif
 #endif
 
 
Line 467... Line 485...
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
 
 
 #undef  LINK_SPEC
 #undef  LINK_SPEC
 #define LINK_SPEC \
 #define LINK_SPEC \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/sh/linux.h gcc-5.3.0-zip/gcc/config/sh/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/sh/linux.h gcc-5.3.0-zip/gcc/config/sh/linux.h
--- gcc-5.3.0-original/gcc/config/sh/linux.h    2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/sh/linux.h    2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/sh/linux.h 2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/sh/linux.h 2015-01-05 07:33:28.000000000 -0500
@@ -43,7 +43,7 @@
@@ -43,7 +43,7 @@
 
 
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 
 
Line 479... Line 497...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
 
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/sparc/linux64.h gcc-5.3.0-zip/gcc/config/sparc/linux64.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/sparc/linux64.h gcc-5.3.0-zip/gcc/config/sparc/linux64.h
--- gcc-5.3.0-original/gcc/config/sparc/linux64.h       2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/sparc/linux64.h       2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/sparc/linux64.h    2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/sparc/linux64.h    2015-01-05 07:33:28.000000000 -0500
@@ -84,8 +84,8 @@
@@ -84,8 +84,8 @@
    When the -shared link option is used a final link is not being
    When the -shared link option is used a final link is not being
    done.  */
    done.  */
 
 
Line 502... Line 520...
+#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
+#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
   %{!shared: \
   %{!shared: \
     %{!static: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
       %{rdynamic:-export-dynamic} \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/sparc/linux.h gcc-5.3.0-zip/gcc/config/sparc/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/sparc/linux.h gcc-5.3.0-zip/gcc/config/sparc/linux.h
--- gcc-5.3.0-original/gcc/config/sparc/linux.h 2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/sparc/linux.h 2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/sparc/linux.h      2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/sparc/linux.h      2015-01-05 07:33:28.000000000 -0500
@@ -83,7 +83,7 @@
@@ -83,7 +83,7 @@
    When the -shared link option is used a final link is not being
    When the -shared link option is used a final link is not being
    done.  */
    done.  */
 
 
Line 514... Line 532...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
 
 #undef  LINK_SPEC
 #undef  LINK_SPEC
 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/vax/linux.h gcc-5.3.0-zip/gcc/config/vax/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/vax/linux.h gcc-5.3.0-zip/gcc/config/vax/linux.h
--- gcc-5.3.0-original/gcc/config/vax/linux.h   2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/vax/linux.h   2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/vax/linux.h        2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/vax/linux.h        2015-01-05 07:33:28.000000000 -0500
@@ -41,7 +41,7 @@
@@ -41,7 +41,7 @@
   %{!shared: \
   %{!shared: \
     %{!static: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
       %{rdynamic:-export-dynamic} \
Line 526... Line 544...
+      -dynamic-linker /lib/ld.so.1} \
+      -dynamic-linker /lib/ld.so.1} \
     %{static:-static}}"
     %{static:-static}}"
 
 
 #undef  WCHAR_TYPE
 #undef  WCHAR_TYPE
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/xtensa/linux.h gcc-5.3.0-zip/gcc/config/xtensa/linux.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/xtensa/linux.h gcc-5.3.0-zip/gcc/config/xtensa/linux.h
--- gcc-5.3.0-original/gcc/config/xtensa/linux.h        2016-03-25 11:55:15.512451248 -0400
--- gcc-5.3.0-original/gcc/config/xtensa/linux.h        2016-04-02 11:53:47.217604879 -0400
+++ gcc-5.3.0-zip/gcc/config/xtensa/linux.h     2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/xtensa/linux.h     2015-01-05 07:33:28.000000000 -0500
@@ -44,7 +44,7 @@
@@ -44,7 +44,7 @@
   %{mlongcalls:--longcalls} \
   %{mlongcalls:--longcalls} \
   %{mno-longcalls:--no-longcalls}"
   %{mno-longcalls:--no-longcalls}"
 
 
Line 676... Line 694...
+       # cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+       # cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+
+
+
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/zip/zip.c gcc-5.3.0-zip/gcc/config/zip/zip.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/zip/zip.c gcc-5.3.0-zip/gcc/config/zip/zip.c
--- gcc-5.3.0-original/gcc/config/zip/zip.c     1969-12-31 19:00:00.000000000 -0500
--- gcc-5.3.0-original/gcc/config/zip/zip.c     1969-12-31 19:00:00.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/zip/zip.c  2016-03-24 21:28:04.199373113 -0400
+++ gcc-5.3.0-zip/gcc/config/zip/zip.c  2016-04-01 06:26:30.217272207 -0400
@@ -0,0 +1,2324 @@
@@ -0,0 +1,2341 @@
+////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+//
+//
+// Filename:   zip.c
+// Filename:   zip.c
+//
+//
+// Project:    Zip CPU backend for the GNU Compiler Collection
+// Project:    Zip CPU backend for the GNU Compiler Collection
Line 803... Line 821...
+       void    zip_debug_rtx(const_rtx x);
+       void    zip_debug_rtx(const_rtx x);
+static void    zip_override_options(void);
+static void    zip_override_options(void);
+static bool    zip_can_eliminate(int from ATTRIBUTE_UNUSED, int to);
+static bool    zip_can_eliminate(int from ATTRIBUTE_UNUSED, int to);
+static int     zip_memory_move_cost(machine_mode, reg_class_t, bool);
+static int     zip_memory_move_cost(machine_mode, reg_class_t, bool);
+static rtx     zip_legitimize_address(rtx x, rtx oldx, machine_mode mode);
+static rtx     zip_legitimize_address(rtx x, rtx oldx, machine_mode mode);
 
+static bool    zip_cannot_modify_jumps_p(void);
+
+
+
+
+#define        ALL_DEBUG_OFF   false
+#define        ALL_DEBUG_OFF   false
+#define        ALL_DEBUG_ON    false
+#define        ALL_DEBUG_ON    false
+
+
Line 817... Line 836...
+       ZIP_BUILTIN_SYSCALL,
+       ZIP_BUILTIN_SYSCALL,
+       ZIP_BUILTIN_SAVE_CONTEXT,
+       ZIP_BUILTIN_SAVE_CONTEXT,
+       ZIP_BUILTIN_RESTORE_CONTEXT,
+       ZIP_BUILTIN_RESTORE_CONTEXT,
+       ZIP_BUILTIN_BITREV,
+       ZIP_BUILTIN_BITREV,
+       ZIP_BUILTIN_CC,
+       ZIP_BUILTIN_CC,
 
+       ZIP_BUILTIN_UCC,
+       ZIP_BUILTIN_MAX
+       ZIP_BUILTIN_MAX
+};
+};
+
+
+static GTY (()) tree   zip_builtins[(int)ZIP_BUILTIN_MAX];
+static GTY (()) tree   zip_builtins[(int)ZIP_BUILTIN_MAX];
+static enum insn_code  zip_builtins_icode[(int)ZIP_BUILTIN_MAX];
+static enum insn_code  zip_builtins_icode[(int)ZIP_BUILTIN_MAX];
Line 1341... Line 1361...
+*/
+*/
+
+
+/* Implements the macro INITIAL_ELIMINATION_OFFSET,
+/* Implements the macro INITIAL_ELIMINATION_OFFSET,
+ * return the OFFSET.
+ * return the OFFSET.
+ */
+ */
+/*
 
+int
+int
+zip_initial_elimination_offset(int from, int to) {
+zip_initial_elimination_offset(int from, int to) {
+       int     ret = 0;
+       int     ret = 0;
+       zip_compute_frame();
+       zip_compute_frame();
+
+
+       if (((from) == FRAME_POINTER_REGNUM)&&((to) == STACK_POINTER_REGNUM)) {
+       if (((from) == FRAME_POINTER_REGNUM)&&((to) == STACK_POINTER_REGNUM)) {
+               ret = cfun->machine->sp_fp_offset;
+               ret = cfun->machine->sp_fp_offset;
 
+       } else if (((from)=ARG_POINTER_REGNUM)&&((to)==STACK_POINTER_REGNUM)) {
 
+               ret = cfun->machine->sp_fp_offset;
+       } else if (((from)=ARG_POINTER_REGNUM)&&((to)==FRAME_POINTER_REGNUM)) {
+       } else if (((from)=ARG_POINTER_REGNUM)&&((to)==FRAME_POINTER_REGNUM)) {
+               ret = cfun->machine->local_vars_size;
+               // ret = cfun->machine->local_vars_size;
 
+               ret = 0;
+       } else {
+       } else {
+               abort();
+               abort();
+       }
+       }
+
+
+       return ret;
+       return ret;
+}
+}
+*/
 
+
+
+/* Return non-zero if the function argument described by TYPE is to be passed
+/* Return non-zero if the function argument described by TYPE is to be passed
+ * by reference.
+ * by reference.
+ */
+ */
+/*
+/*
Line 1751... Line 1772...
+#ifdef HAVE_zip_cc
+#ifdef HAVE_zip_cc
+  def_builtin("zip_cc", CODE_FOR_zip_cc, ZIP_BUILTIN_CC,
+  def_builtin("zip_cc", CODE_FOR_zip_cc, ZIP_BUILTIN_CC,
+       build_function_type_list(unsigned_type_node, NULL_TREE));
+       build_function_type_list(unsigned_type_node, NULL_TREE));
+#endif
+#endif
+
+
 
+#ifdef HAVE_zip_ucc
 
+  def_builtin("zip_ucc", CODE_FOR_zip_ucc, ZIP_BUILTIN_UCC,
 
+       build_function_type_list(unsigned_type_node, NULL_TREE));
 
+#endif
 
+
+}
+}
+
+
+static tree
+static tree
+zip_builtin_decl(unsigned zip_builtin_code, bool initialize_p ATTRIBUTE_UNUSED)
+zip_builtin_decl(unsigned zip_builtin_code, bool initialize_p ATTRIBUTE_UNUSED)
+{
+{
Line 1794... Line 1820...
+               }
+               }
+               op[0] = expand_normal(arg);
+               op[0] = expand_normal(arg);
+               if (!target)
+               if (!target)
+                       target = gen_reg_rtx(SImode);
+                       target = gen_reg_rtx(SImode);
+               pat = GEN_FCN(icode)(target, op[0]);
+               pat = GEN_FCN(icode)(target, op[0]);
+       } else if (code == ZIP_BUILTIN_CC) {
+       } else if ((code == ZIP_BUILTIN_CC)||(code == ZIP_BUILTIN_UCC)) {
+               if (!target)
+               if (!target)
+                       target = gen_reg_rtx(SImode);
+                       target = gen_reg_rtx(SImode);
+               pat = GEN_FCN(icode)(target);
+               pat = GEN_FCN(icode)(target);
+       } else // RTU, HALT, IDLE
+       } else // RTU, HALT, IDLE
+               pat = GEN_FCN(icode)();
+               pat = GEN_FCN(icode)();
Line 1902... Line 1928...
+               return;
+               return;
+       } else if (GET_CODE(x) > NUM_RTX_CODE) {
+       } else if (GET_CODE(x) > NUM_RTX_CODE) {
+               char    buf[64];
+               char    buf[64];
+               sprintf(buf, "(BAD-RTX-CODE %d)", GET_CODE(x));
+               sprintf(buf, "(BAD-RTX-CODE %d)", GET_CODE(x));
+               zip_debug_print(pfx, lvl, buf);
+               zip_debug_print(pfx, lvl, buf);
 
+               gcc_assert(0 && "Bad RTX Code");
+               return;
+               return;
+       } switch(GET_CODE(x)) { // rtl.def
+       } switch(GET_CODE(x)) { // rtl.def
+       case PARALLEL: zip_debug_print(pfx, lvl, "(PARALLEL");
+       case PARALLEL: zip_debug_print(pfx, lvl, "(PARALLEL");
+               debug_rtx(x); break;
+               debug_rtx(x); break;
+       case INT_LIST: zip_debug_print(pfx, lvl, "(INT-LIST"); break;
+       case INT_LIST: zip_debug_print(pfx, lvl, "(INT-LIST"); break;
Line 1920... Line 1947...
+                       zip_debug_rtx_1(tmp_rtx, lvl+1);
+                       zip_debug_rtx_1(tmp_rtx, lvl+1);
+               }}
+               }}
+               */
+               */
+               zip_debug_rtx_1(pfx, PATTERN(x), lvl+1);
+               zip_debug_rtx_1(pfx, PATTERN(x), lvl+1);
+               zip_debug_print(pfx, lvl, ")");
+               zip_debug_print(pfx, lvl, ")");
 
+               debug_rtx(x);
+               break;
+               break;
+       case JUMP_INSN: zip_debug_print(pfx, lvl, "(JUMP-INSN");
+       case JUMP_INSN: zip_debug_print(pfx, lvl, "(JUMP-INSN");
+               zip_debug_rtx_1(pfx, PATTERN(x), lvl+1);
+               zip_debug_rtx_1(pfx, PATTERN(x), lvl+1);
+               zip_debug_print(pfx, lvl, ")");
+               zip_debug_print(pfx, lvl, ")");
+               /*
+               /*
Line 1972... Line 2000...
+                       sprintf(buf, "(CODE_LABEL *.L%d)", CODE_LABEL_NUMBER(x));
+                       sprintf(buf, "(CODE_LABEL *.L%d)", CODE_LABEL_NUMBER(x));
+                       zip_debug_print_m(pfx, lvl, buf, GET_MODE(x));
+                       zip_debug_print_m(pfx, lvl, buf, GET_MODE(x));
+               } break;
+               } break;
+       case SET:
+       case SET:
+               zip_debug_print_m(pfx, lvl, "(SET", GET_MODE(x));
+               zip_debug_print_m(pfx, lvl, "(SET", GET_MODE(x));
+               zip_debug_rtx_1(pfx, XEXP(x,0),lvl+1);
+               zip_debug_rtx_1(pfx, SET_DEST(x),lvl+1);
+               zip_debug_rtx_1(pfx, XEXP(x,1),lvl+1);
+               zip_debug_rtx_1(pfx, SET_SRC(x),lvl+1);
+               zip_debug_print(pfx, lvl, ")");
+               zip_debug_print(pfx, lvl, ")");
 
+               debug_rtx(x);
+               break;
+               break;
+       case REG:
+       case REG:
+               if (REGNO(x) == zip_PC)
+               if (REGNO(x) == zip_PC)
+                       zip_debug_print(pfx, lvl, "(PC)");
+                       zip_debug_print(pfx, lvl, "(PC)");
+               else if (REGNO(x) == zip_CC)
+               else if (REGNO(x) == zip_CC)
Line 3002... Line 3031...
+       return rv;
+       return rv;
+}
+}
+
+
+// #warning "How do we tell the compiler LDI label is expensive as 2 ops"?
+// #warning "How do we tell the compiler LDI label is expensive as 2 ops"?
+
+
 
+static bool    zip_cannot_modify_jumps_p(void) {
 
+       // Let's try their suggested approach, keeping us from modifying jumps
 
+       // after reload.  This should also allow our peephole2 optimizations
 
+       // to adjust things back to what they need to be if necessary.
 
+       return (reload_completed || reload_in_progress);
 
+}
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/zip/zip.h gcc-5.3.0-zip/gcc/config/zip/zip.h
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/zip/zip.h gcc-5.3.0-zip/gcc/config/zip/zip.h
--- gcc-5.3.0-original/gcc/config/zip/zip.h     1969-12-31 19:00:00.000000000 -0500
--- gcc-5.3.0-original/gcc/config/zip/zip.h     1969-12-31 19:00:00.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/zip/zip.h  2016-03-19 12:03:33.888255495 -0400
+++ gcc-5.3.0-zip/gcc/config/zip/zip.h  2016-04-01 06:33:55.090614401 -0400
@@ -0,0 +1,3889 @@
@@ -0,0 +1,3898 @@
+////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+//
+//
+// Filename:   gcc/config/zip/zip.h
+// Filename:   gcc/config/zip/zip.h
+//
+//
+// Project:    Zip CPU backend for the GNU Compiler Collection
+// Project:    Zip CPU backend for the GNU Compiler Collection
Line 4778... Line 4813...
+ * register number TO.  This target hook need only be defined if ELIMINABLE_REGS
+ * register number TO.  This target hook need only be defined if ELIMINABLE_REGS
+ * is defined, and will usually return true since most of the cases preventing
+ * is defined, and will usually return true since most of the cases preventing
+ * register elimination are things that the compiler  already knows about.
+ * register elimination are things that the compiler  already knows about.
+ *
+ *
+ * ZipCPU ... does the compiler  know about my decision as to whether or not
+ * ZipCPU ... does the compiler  know about my decision as to whether or not
+ * the frame pointer was needed?  The m68k code suggests it does not ...
+ * the frame pointer was needed?  Yes it does, but it's kept separately.  We'll
 
+ * just say everything can be eliminated.
+ */
+ */
+#define TARGET_CAN_ELIMINATE   zip_can_eliminate
+#define TARGET_CAN_ELIMINATE   zip_can_eliminate
+
+
+/* INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) ... This macro is similar to
+/* INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) ... This macro is similar to
+ * INITIAL_FRAME_POINTER_OFFSET.  It specifies the initial difference between
+ * INITIAL_FRAME_POINTER_OFFSET.  It specifies the initial difference between
+ * the specified pair of registers.  This macro must be defined if
+ * the specified pair of registers.  This macro must be defined if
+ * ELIMINABLE_REGS is defined.
+ * ELIMINABLE_REGS is defined.
+ *
+ *
+ * ZipCPU---Is there a default we can use?
+ * ZipCPU---We had at one time set this to a default offset of 0.  This didn't
 
+ * work.  It turns out that this is not only the *initial* elimination offset,
 
+ * but also the offset along the way.  Hence, when a variable needs to be
 
+ * spilled to the stack, this offset must change.  Reload goes and checks for
 
+ * this, and adjusts registers if the offset has changed.  Hence, without this,
 
+ * we get negative (i.e. illegal) stack offsets.
+ */
+ */
+#define        INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)    (OFFSET)=0
 
+/*
 
+#define        INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)            \
+#define        INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)            \
+       do { (OFFSET) = zip_initial_elimination_offset((FROM), (TO)); } \
+       do { (OFFSET) = zip_initial_elimination_offset((FROM), (TO)); } \
+       while(0)                                        \
+       while(0)                                        \
+*/
 
+
+
+/* 17.09.06 Passing function arguments on the stack */
+/* 17.09.06 Passing function arguments on the stack */
+
+
+/* TARGET_PROMOTE_PROTOTYPES ... Returns true if an argument declared in a
+/* TARGET_PROMOTE_PROTOTYPES ... Returns true if an argument declared in a
+ * prototype as an integral type smaller than int should actually be
+ * prototype as an integral type smaller than int should actually be
Line 6596... Line 6634...
+ * require a register for every jump such as the SHmedia ISA of SH5, this point
+ * require a register for every jump such as the SHmedia ISA of SH5, this point
+ * would typically be reload, so thiss target hook should be defined to a
+ * would typically be reload, so thiss target hook should be defined to a
+ * function such as:
+ * function such as:
+ *
+ *
+ * ZipCPU --- I don't get what this is for.
+ * ZipCPU --- I don't get what this is for.
 
+ *     Actually, in hind sight, ZipCPU needs this.  Without this, the
 
+ * compiler will try to reorder basic blocks, shuffling logic around and so
 
+ * fortch, preventing our comparison optimizations from being used.  By setting
 
+ * this function appropriately, we can prevent it from reversing conditions into
 
+ * conditions we don't support.
+ */
+ */
 
+#define        TARGET_CANNOT_MODIFY_JUMPS_P    zip_cannot_modify_jumps_p
+
+
+/* TARGET_BRANCH_TARGET_REGISTER_CLASS ... This target hook returns a register
+/* TARGET_BRANCH_TARGET_REGISTER_CLASS ... This target hook returns a register
+ * class for which branch target register optimizations should be applied.  All
+ * class for which branch target register optimizations should be applied.  All
+ * registers in this class should be usable interchangably.  After reload,
+ * registers in this class should be usable interchangably.  After reload,
+ * registers in this class will be re-allocated and loads will be hoisted out of
+ * registers in this class will be re-allocated and loads will be hoisted out of
Line 6897... Line 6941...
+
+
+#endif /* GCC_ZIP_H */
+#endif /* GCC_ZIP_H */
+
+
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/zip/zip.md gcc-5.3.0-zip/gcc/config/zip/zip.md
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/config/zip/zip.md gcc-5.3.0-zip/gcc/config/zip/zip.md
--- gcc-5.3.0-original/gcc/config/zip/zip.md    1969-12-31 19:00:00.000000000 -0500
--- gcc-5.3.0-original/gcc/config/zip/zip.md    1969-12-31 19:00:00.000000000 -0500
+++ gcc-5.3.0-zip/gcc/config/zip/zip.md 2016-03-24 21:23:15.776993706 -0400
+++ gcc-5.3.0-zip/gcc/config/zip/zip.md 2016-04-01 19:21:20.490611131 -0400
@@ -0,0 +1,1963 @@
@@ -0,0 +1,2122 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;
+;; Filename:   zip.md
+;; Filename:   zip.md
+;;
+;;
+;; Project:    Zip CPU -- a small, lightweight, RISC CPU soft core
+;; Project:    Zip CPU -- a small, lightweight, RISC CPU soft core
Line 6974... Line 7018...
+       (UNSPEC_IDLE            3)
+       (UNSPEC_IDLE            3)
+       (UNSPEC_SYSCALL         4)
+       (UNSPEC_SYSCALL         4)
+       (UNSPEC_SAVE_CONTEXT    5)
+       (UNSPEC_SAVE_CONTEXT    5)
+       (UNSPEC_RESTORE_CONTEXT 6)
+       (UNSPEC_RESTORE_CONTEXT 6)
+       (UNSPEC_BITREV          7)
+       (UNSPEC_BITREV          7)
+       (UNSPEC_GETCC           8)
+       (UNSPEC_GETUCC           8)
+       (UNSPEC_LDILO           9)
+       (UNSPEC_GETCC            9)
 
+       (UNSPEC_LDILO           10)
+       ])
+       ])
+;
+;
+;
+;
+; Registers by name
+; Registers by name
+(define_constants
+(define_constants
Line 7618... Line 7663...
+       ""
+       ""
+       "XOR    -1,%0"
+       "XOR    -1,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+;
+;
+;
+;
 
+;(define_extract "ssadsi"
 
+;      [(set (cc0) (compare (match_operand:SI 1 "register_operand" "+r")
 
+;                      (match_operand:SI 2 "register_operand" "+r")))
 
+;      (cond_exec (lt (cc0) (const_int 0))
 
+;         (set (match_dup:SI 2) (xor:SI (match_dup:SI 1) (match_dup:SI 2))))
 
+;      (cond_exec (lt (cc0) (const_int 0))
 
+;         (set (match_dup:SI 2) (xor:SI (match_dup:SI 2) (match_dup:SI 1))))
 
+;      (cond_exec (lt (cc0) (const_int 0))
 
+;         (set (match_dup:SI 2) (xor:SI (match_dup:SI 1) (match_dup:SI 2))))
 
+;      (set (match_dup:SI 2) (subtract (match_dup:SI 1) (match_dup:SI 2)))
 
+;      (set (match_operand:SI 3 "register_operand" "=r") (add:SI (match_dup:SI 2) (match_dup:SI 3)))
 
+;              ]
 
+;      "")
 
+;(define_expand "usadsi"
 
+;      [(set (cc0) (compare (match_operand:SI 1 "register_operand" "+r")
 
+;                      (match_operand:SI 2 "register_operand" "+r")))
 
+;      (cond_exec (ltu (cc0) (const_int 0))
 
+;         (set (match_dup:SI 2) (xor:SI (match_dup:SI 1) (match_dup:SI 2))))
 
+;      (cond_exec (ltu (cc0) (const_int 0))
 
+;         (set (match_dup:SI 2) (xor:SI (match_dup:SI 2) (match_dup:SI 1))))
 
+;      (cond_exec (ltu (cc0) (const_int 0))
 
+;         (set (match_dup:SI 2) (xor:SI (match_dup:SI 1) (match_dup:SI 2))))
 
+;      (set (match_dup:SI 2) (subtract (match_dup:SI 1) (match_dup:SI 2)))
 
+;      (set (match_operand:SI 3 "register_operand" "=r") (add:SI (match_dup:SI 2) (match_dup:SI 3)))
 
+;              ]
 
+;      "")
 
+;
 
+;
+;
+;
+;
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;
+;; General arithmetic instructions -- double words
+;; General arithmetic instructions -- double words
Line 7786... Line 7859...
+(define_expand "paritydi2"
+(define_expand "paritydi2"
+       [(set (match_operand:SI 0 "register_operand" "=r")
+       [(set (match_operand:SI 0 "register_operand" "=r")
+               (popcount (match_operand:DI 1 "register_operand" "r")))
+               (popcount (match_operand:DI 1 "register_operand" "r")))
+       (set (match_dup 0) (and:SI (match_dup 0) (const_int -2)))
+       (set (match_dup 0) (and:SI (match_dup 0) (const_int -2)))
+       ])
+       ])
 
+;(define_insn "extendsidi2"
 
+;      [(set (match_operand:DI 0 "register_operand" "=r")
 
+;              (sign_extend:DI (match_operand:SI 0 "register_operand" "r")))]
 
+;      ""
 
+;      "TEST\t%1\nMOV\t%1,%L0\nCLR\t%L1\nLDI.LT\t-1,%L1"
 
+;      [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
 
+;(define_insn "mulsidi3"
 
+;      [(set (match_operand:DI 0 "register_operand" "=r")
 
+;              (mult:SI (match_operand:SI 1 "register_operand" "%r")
 
+;                      (match_operand:SI 2 "register_operand" "r")))
 
+;      (clobber (match_scratch:SI 3 "=r"))]
 
+;      ; "(R0 != R1)&&(R0 != R2)&&(R0!=R3)&&(R1!=R2)&&(R1=R3)&&(R2!=R3)"
 
+;      ""
 
+;      "MOV    %1,%L0
 
+;      MPYS    %2,%L0                  ; L0 = R2 * R1
 
+;      MOV     %1,%3                   ; R3 = R1
 
+;      ROL     16,%3                   ; R3 = (R1 <<< 16)
 
+;      MPYS    %2,%3                   ; R3 = (R1 <<< 16) * R2
 
+;      ROL     16,%3                   ; R3 = upper bits of (R1<<<16)*R2
 
+;      AND     0x0ffff,%3
 
+;      ADD     %3,%L0                  ; L0 = L0 + R3 = L0  + (R1>>16)*R2
 
+;      MOV     %2,%3
 
+;      ROL     16,%3
 
+;      MPYS    %1,%3
 
+;      ROL     16,%3
 
+;      AND     0x0ffff,%3
 
+;      ADD     %3,%0"
 
+;      [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
 
+
+;
+;
+; Still missing DI instructions for smin:DI, smax:DI, movdicc, adddicc,
+; Still missing DI instructions for smin:DI, smax:DI, movdicc, adddicc,
+;      mult:di, div:di, divu:di
+;      mult:di, div:di, divu:di
+;
+;
+;
+;
Line 7852... Line 7954...
+       ""
+       ""
+       "CMP\t%1,%0"
+       "CMP\t%1,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "cmp<mode>_off"
+(define_insn "cmp<mode>_off"
+       [(set (cc0) (compare (match_operand:ZI 0 "register_operand" "r")
+       [(set (cc0) (compare (match_operand:ZI 0 "register_operand" "r")
+               (plus:ZI (match_operand:ZI 1 "register_operand" "r")
+               (plus (match_operand:ZI 1 "register_operand" "r")
+                       (match_operand:ZI 2 "const_int_operand" "N"))))]
+                       (match_operand 2 "const_int_operand" "N"))))]
+       ""
+       ""
+       "CMP\t%2+%1,%0"
+       "CMP\t%2+%1,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "test<mode>"
+(define_insn "test<mode>"
+       [(set (cc0) (compare (and:ZI (match_operand:ZI 0 "register_operand" "r")
+       [(set (cc0) (compare (and:ZI (match_operand:ZI 0 "register_operand" "r")
Line 8126... Line 8228...
+                       [(cc0) (const_int 0)])
+                       [(cc0) (const_int 0)])
+                       (label_ref (match_operand 3 "" ""))
+                       (label_ref (match_operand 3 "" ""))
+                       (pc)))]
+                       (pc)))]
+       ""
+       ""
+       {
+       {
+               // extern void zip_debug_rtx(const_rtx);
+               extern void zip_debug_rtx_pfx(const char *, const_rtx);
+               //; Two branches give us no end of difficulty when implementing.
+               //; Two branches give us no end of difficulty when implementing.
+               //; Let's check for these two branch codes, and swap the
+               //; Let's check for these two branch codes, and swap the
+               //; comparison to simplify them.
+               //; comparison to simplify them.
+               // fprintf(stderr, "CBRANCH\n");
+               // fprintf(stderr, "CBRANCH\n");
+               // zip_debug_rtx(operands[0]);
+               // zip_debug_rtx_pfx("- CMP: ", operands[0]);
+               // zip_debug_rtx(operands[1]);
+               // zip_debug_rtx_pfx("- A  : ", operands[1]);
+               // zip_debug_rtx(operands[2]);
+               // zip_debug_rtx_pfx("- B  : ", operands[2]);
+               // zip_debug_rtx(operands[3]);
+               // zip_debug_rtx_pfx("- JMP: ", operands[3]);
 
+               //; Can we do better if we reverse some compares?
+               if ((GET_CODE(operands[0])==GTU)&&(REG_P(operands[2]))) {
+               if ((GET_CODE(operands[0])==GTU)&&(REG_P(operands[2]))) {
+                       // fprintf(stderr, "CBRANCH:(GTU,?,REG,?)\n");
+                       // fprintf(stderr, "CBRANCH:(GTU,?,REG,?)\n");
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
+                               gen_rtx_COMPARE(VOIDmode, operands[2], operands[1])));
+                               gen_rtx_COMPARE(VOIDmode, operands[2], operands[1])));
+                       emit_jump_insn(gen_cbranch_jmp_ltu(operands[3]));
+                       emit_jump_insn(gen_cbranch_jmp_ltu(operands[3]));
Line 8147... Line 8250...
+                       // fprintf(stderr, "CBRANCH:(GEU,?,REG,?)\n");
+                       // fprintf(stderr, "CBRANCH:(GEU,?,REG,?)\n");
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
+                               gen_rtx_COMPARE(VOIDmode, operands[2], operands[1])));
+                               gen_rtx_COMPARE(VOIDmode, operands[2], operands[1])));
+                       emit_jump_insn(gen_cbranch_jmp_leu(operands[3]));
+                       emit_jump_insn(gen_cbranch_jmp_leu(operands[3]));
+                       DONE;
+                       DONE;
 
+               } else if ((GET_CODE(operands[0])==LE)&&(REG_P(operands[2]))) {
 
+                       // fprintf(stderr, "CBRANCH:(LE,?,REG,?)\n");
 
+                       //; Swap operands, turn into a GTE compare
 
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
 
+                               gen_rtx_COMPARE(VOIDmode, operands[2], operands[1])));
 
+                       emit_jump_insn(gen_cbranch_jmp_ge(operands[3]));
 
+                       DONE;
+               } // ; Otherwise ... just handle the branch normally
+               } // ; Otherwise ... just handle the branch normally
+
+
+               //; Except ... we can do better for some instructions, such as
+               //; Except ... we can do better for some instructions, such as
+               //; LE.  While we could exchange CMP Rx,Ry into -1(Rx),Ry, it
+               //; LE.  While we could exchange CMP Rx,Ry into -1(Rx),Ry, it
+               //; would be difficult to explain to users why MIN_INT didn't
+               //; would be difficult to explain to users why MIN_INT didn't
+               //; compare properly.  Hence we only adjust constant integers.
+               //; compare properly.  Hence we only adjust constant integers.
+               //;
+               //;
+               if ((GET_CODE(operands[0])==LE)
+               if ((GET_CODE(operands[0])==LE)
+                               &&(CONST_INT_P(operands[2]))
+                               &&(CONST_INT_P(operands[2]))
+                               &&(INTVAL(operands[2])>(1<<17)-2)) {
+                               &&(INTVAL(operands[2])<(1<<17)-2)) {
+                       // fprintf(stderr, "CBRANCH:(LE,?,#,?)\n");
+                       // fprintf(stderr, "CBRANCH:(LE,?,#,?)\n");
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
+                       emit_insn(gen_rtx_SET(VOIDmode, cc0_rtx,
+                               gen_rtx_COMPARE(VOIDmode, operands[1],
+                               gen_rtx_COMPARE(VOIDmode, operands[1],
+                                       GEN_INT(INTVAL(operands[2])+1))));
+                                       GEN_INT(INTVAL(operands[2])+1))));
+                       emit_jump_insn(gen_cbranch_jmp_lt(operands[3]));
+                       emit_jump_insn(gen_cbranch_jmp_lt(operands[3]));
Line 8527... Line 8637...
+       [(set_attr "ccresult" "unknown")])
+       [(set_attr "ccresult" "unknown")])
+;
+;
+;
+;
+; Operator "save_context"
+; Operator "save_context"
+;
+;
+;      operand 0 missing output reload ... ?
+;      Okay, so we're not really reading and writing operand 0, %0, however
 
+;      if we don't list it as a "+r" register, the compiler may allocate it
 
+;      among the other registers, thus we clobber it in the middle of the
 
+;      operation before the task is complete.
+;
+;
+(define_insn "zip_save_context"
+(define_insn "zip_save_context"
+       [(parallel [
+       [(unspec_volatile
+               (unspec_volatile
+                       [ (match_operand:SI 0 "register_operand" "+r") ]
+                       [ (match_operand:SI 0 "register_operand" "r") ]
 
+                       UNSPEC_SAVE_CONTEXT)
+                       UNSPEC_SAVE_CONTEXT)
+               (clobber (match_scratch:SI 1 "=r"))
+               (clobber (match_scratch:SI 1 "=r"))
+               (clobber (match_scratch:SI 2 "=r"))
+               (clobber (match_scratch:SI 2 "=r"))
+               (clobber (match_scratch:SI 3 "=r"))
+               (clobber (match_scratch:SI 3 "=r"))
+               (clobber (match_scratch:SI 4 "=r"))
+               (clobber (match_scratch:SI 4 "=r"))]
+               (use (match_dup 0))])]
 
+       "(!ZIP_USER)"
+       "(!ZIP_USER)"
+       "MOV\tuR0,%1
+       "MOV\tuR0,%1
+       MOV\tuR1,%2
+       MOV\tuR1,%2
+       MOV\tuR2,%3
+       MOV\tuR2,%3
+       MOV\tuR3,%4
+       MOV\tuR3,%4
Line 8573... Line 8684...
+       STO\t%1,12(%0)
+       STO\t%1,12(%0)
+       STO\t%2,13(%0)
+       STO\t%2,13(%0)
+       STO\t%3,14(%0)
+       STO\t%3,14(%0)
+       STO\t%4,15(%0)"
+       STO\t%4,15(%0)"
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
 
+;
 
+; See the comment above about why operand 0, %0, *must* be a "+r" operand,
 
+; even though we don't really read (or change) its value throughout this
 
+; operation.
 
+;
+(define_insn "zip_restore_context"
+(define_insn "zip_restore_context"
+       [(unspec_volatile [
+       [(unspec_volatile [
+               (match_operand:SI 0 "register_operand" "r")] UNSPEC_RESTORE_CONTEXT)
+               (match_operand:SI 0 "register_operand" "+r")] UNSPEC_RESTORE_CONTEXT)
+               ; (match_scratch:SI 1 "r")
 
+               ; (match_scratch:SI 2 "r")
 
+               ; (match_scratch:SI 3 "r")
 
+               ; (match_scratch:SI 4 "r")] 6)
 
+       (clobber (match_scratch:SI 1 "=r"))
+       (clobber (match_scratch:SI 1 "=r"))
+       (clobber (match_scratch:SI 2 "=r"))
+       (clobber (match_scratch:SI 2 "=r"))
+       (clobber (match_scratch:SI 3 "=r"))
+       (clobber (match_scratch:SI 3 "=r"))
+       (clobber (match_scratch:SI 4 "=r"))
+       (clobber (match_scratch:SI 4 "=r"))]
+       (use (match_dup 0))]
 
+       "(!ZIP_USER)"
+       "(!ZIP_USER)"
+       "LOD\t0(%0),%1
+       "LOD\t0(%0),%1
+       LOD\t1(%0),%2
+       LOD\t1(%0),%2
+       LOD\t2(%0),%3
+       LOD\t2(%0),%3
+       LOD\t3(%0),%4
+       LOD\t3(%0),%4
Line 8632... Line 8743...
+       [(set (match_operand:SI 0 "register_operand" "=r")
+       [(set (match_operand:SI 0 "register_operand" "=r")
+               (unspec:SI [(reg:SI CC_REG)] UNSPEC_GETCC))]
+               (unspec:SI [(reg:SI CC_REG)] UNSPEC_GETCC))]
+       ""
+       ""
+       "MOV\tCC,%0"
+       "MOV\tCC,%0"
+       [(set_attr "ccresult" "unchanged")])
+       [(set_attr "ccresult" "unchanged")])
 
+(define_insn "zip_ucc"
 
+       [(set (match_operand:SI 0 "register_operand" "=r")
 
+               (unspec_volatile:SI [(reg:SI CC_REG)] UNSPEC_GETUCC))]
 
+       ""
 
+       "MOV\tuCC,%0"
 
+       [(set_attr "ccresult" "unchanged")])
+(define_insn "zip_cc_sto"
+(define_insn "zip_cc_sto"
+       [(set (mem:SI (match_operand:SI 0 "register_operand" "r"))
+       [(set (mem:SI (match_operand:SI 0 "register_operand" "r"))
+               (unspec:SI [(reg:SI CC_REG)] UNSPEC_GETCC))]
+               (unspec_volatile:SI [(reg:SI CC_REG)] UNSPEC_GETCC))]
+       ""
+       ""
+       "STO\tCC,(%0)"
+       "STO\tCC,(%0)"
+       [(set_attr "ccresult" "unchanged")])
+       [(set_attr "ccresult" "unchanged")])
+(define_insn "zip_cc_sto_off"
+(define_insn "zip_cc_sto_off"
+       [(set (mem:SI (plus:SI
+       [(set (mem:SI (plus:SI
+                       (match_operand:SI 0 "register_operand" "r")
+                       (match_operand:SI 0 "register_operand" "r")
+                       (match_operand:SI 1 "const_int_operand" "N")))
+                       (match_operand:SI 1 "const_int_operand" "N")))
+               (unspec:SI [(reg:SI CC_REG)] UNSPEC_GETCC))]
+               (unspec_volatile:SI [(reg:SI CC_REG)] UNSPEC_GETCC))]
+       ""
+       ""
+       "STO\tCC,%1(%0)"
+       "STO\tCC,%1(%0)"
+       [(set_attr "ccresult" "unchanged")])
+       [(set_attr "ccresult" "unchanged")])
+(define_insn "ldilo"
+(define_insn "ldilo"
+       [(set (match_operand:SI 0 "register_operand" "=r")
+       [(set (match_operand:SI 0 "register_operand" "=r")
Line 8854... Line 8971...
+;      XOR     -1,%0
+;      XOR     -1,%0
+;      ADD     1,%0
+;      ADD     1,%0
+;      BV      %2"
+;      BV      %2"
+;      "")
+;      "")
+
+
 
+(define_peephole2
 
+       [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
 
+               (match_operand:SI 1 "register_operand" "")))
 
+       (set (pc) (if_then_else (gtu (cc0) (const_int 0))
 
+                       (label_ref (match_operand 2 "" ""))
 
+                       (pc)))]
 
+       ""
 
+       [(set (cc0) (compare (match_dup 1) (match_dup 0)))
 
+       (set (pc) (if_then_else (ltu (cc0) (const_int 0))
 
+                       (label_ref (match_dup 2))
 
+                       (pc)))]
 
+       "")
 
+(define_peephole2
 
+       [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
 
+               (match_operand:SI 1 "register_operand" "")))
 
+       (set (pc) (if_then_else (geu (cc0) (const_int 0))
 
+                       (label_ref (match_operand 2 "" ""))
 
+                       (pc)))]
 
+       ""
 
+       [(set (cc0) (compare (match_dup 1) (plus (match_dup 0) (const_int 1))))
 
+       (set (pc) (if_then_else (ltu (cc0) (const_int 0))
 
+                       (label_ref (match_dup 2))
 
+                       (pc)))]
 
+       "")
 
+(define_peephole2
 
+       [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
 
+               (match_operand:SI 1 "register_operand" "")))
 
+       (set (pc) (if_then_else (ge (cc0) (const_int 0))
 
+                       (label_ref (match_operand 2 "" ""))
 
+                       (pc)))]
 
+       ""
 
+       [(set (cc0) (compare (match_dup 1) (match_dup 0)))
 
+       (set (pc) (if_then_else (le (cc0) (const_int 0))
 
+                       (label_ref (match_dup 2))
 
+                       (pc)))]
 
+       "")
 
+(define_peephole2
 
+       [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
 
+               (match_operand:SI 1 "register_operand" "")))
 
+       (set (pc) (if_then_else (leu (cc0) (const_int 0))
 
+                       (label_ref (match_operand 2 "" ""))
 
+                       (pc)))]
 
+       ""
 
+       [(set (cc0) (compare (match_dup 0) (plus (match_dup 1) (const_int 1))))
 
+       (set (pc) (if_then_else (ltu (cc0) (const_int 0))
 
+                       (label_ref (match_dup 2))
 
+                       (pc)))]
 
+       "")
 
+;
 
+; I need to revisit these peephole optimizations when I can come up with another
 
+; way of adding one to the constant integer.  The approach listed below just
 
+; ... doesn't work.
 
+;
 
+;(define_peephole2
 
+;      [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
 
+;              (match_operand:SI 1 "const_int_operand" "")))
 
+;      (set (pc) (if_then_else (le (cc0) (const_int 0))
 
+;                      (label_ref (match_operand 2 "" ""))
 
+;                      (pc)))]
 
+;      "(INTVAL(operands[1])<((1<<17)-2))"
 
+;      [(set (cc0) (compare (match_dup 0) (plus (match_dup 1) (const_int 1))))
 
+;      (set (pc) (if_then_else (lt (cc0) (const_int 0))
 
+;                      (label_ref (match_dup 2))
 
+;                      (pc)))]
 
+;      "")
 
+;(define_peephole2
 
+;      [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
 
+;              (match_operand:SI 1 "const_int_operand" "")))
 
+;      (set (pc) (if_then_else (leu (cc0) (const_int 0))
 
+;                      (label_ref (match_operand 2 "" ""))
 
+;                      (pc)))]
 
+;      "(INTVAL(operands[1])<((1<<17)-2))"
 
+;      [(set (cc0) (compare (match_dup 0) (plus (match_dup 1) (const_int 1))))
 
+;      (set (pc) (if_then_else (lt (cc0) (const_int 0))
 
+;                      (label_ref (match_dup 2))
 
+;                      (pc)))]
 
+;      "")
 
+;
 
+;
 
+;
 
+; Need a peephole optimizer (not peephole2) for
 
+;      [(call ...
 
+;      (set (pc) (label))]
 
+;      To result with
 
+;      "MOV\tlabel,R0
 
+;      JMP\tsubroutine"
+;
+;
+; STILL MISSING:
+; STILL MISSING:
+;      SYSCALL(ID)
+;      SYSCALL(ID)
+;              MOV %ID,R0
+;              MOV %ID,R0
+;              CLR     CC
+;              CLR     CC
Line 9334... Line 9537...
+
+
+End of file on the terminal!
+End of file on the terminal!
+
+
+./include/gcc-common.texi:11:  ==> Fatal error occurred, no output PDF file pro
+./include/gcc-common.texi:11:  ==> Fatal error occurred, no output PDF file pro
+duced!
+duced!
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/emit-rtl.c gcc-5.3.0-zip/gcc/emit-rtl.c
 
--- gcc-5.3.0-original/gcc/emit-rtl.c   2015-08-05 07:20:59.000000000 -0400
 
+++ gcc-5.3.0-zip/gcc/emit-rtl.c        2016-04-01 06:40:42.812171791 -0400
 
@@ -81,6 +81,15 @@
 
 #include "builtins.h"
 
 #include "rtl-iter.h"
 
 
 
+// #define     DO_ZIP_DEBUGS
 
+#include <stdio.h>
 
+#ifdef DO_ZIP_DEBUGS
 
+#define        ZIP_DEBUG_LINE(STR,RTX) do { fprintf(stderr, "%s:%d/%s\n",__FILE__,__LINE__,STR); zip_debug_rtx(RTX); } while(0)
 
+extern void    zip_debug_rtx(const_rtx);
 
+#else
 
+#define        ZIP_DEBUG_LINE(STR,RTX)
 
+#endif
 
+
 
 struct target_rtl default_target_rtl;
 
 #if SWITCHABLE_TARGET
 
 struct target_rtl *this_target_rtl = &default_target_rtl;
 
@@ -2925,6 +2934,8 @@
 
   int copied = 0;
 
   int length;
 
 
 
+ZIP_DEBUG_LINE("Copy RTX if shared",*orig1);
 
+
 
   /* Repeat is used to turn tail-recursion into iteration.  */
 
 repeat:
 
   x = *orig1;
 
@@ -2979,6 +2990,8 @@
 
       break;
 
     }
 
 
 
+ZIP_DEBUG_LINE("Before RTX_FLAG",x);
 
+
 
   /* This rtx may not be shared.  If it has already been seen,
 
      replace it with a copy of itself.  */
 
 
 
@@ -2989,6 +3002,8 @@
 
     }
 
   RTX_FLAG (x, used) = 1;
 
 
 
+ZIP_DEBUG_LINE("Post RTX_FLAG",x);
 
+
 
   /* Now scan the subexpressions recursively.
 
      We can store any replaced subexpressions directly into X
 
      since we know X is not shared!  Any vectors in X
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/expr.c gcc-5.3.0-zip/gcc/expr.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/expr.c gcc-5.3.0-zip/gcc/expr.c
--- gcc-5.3.0-original/gcc/expr.c       2015-04-07 10:34:06.000000000 -0400
--- gcc-5.3.0-original/gcc/expr.c       2015-04-07 10:34:06.000000000 -0400
+++ gcc-5.3.0-zip/gcc/expr.c    2016-03-08 04:07:01.426335724 -0500
+++ gcc-5.3.0-zip/gcc/expr.c    2016-03-08 04:07:01.426335724 -0500
@@ -7999,6 +7999,8 @@
@@ -7999,6 +7999,8 @@
    the back of the caller.
    the back of the caller.
Line 9348... Line 9597...
 rtx
 rtx
 expand_expr_real (tree exp, rtx target, machine_mode tmode,
 expand_expr_real (tree exp, rtx target, machine_mode tmode,
                  enum expand_modifier modifier, rtx *alt_rtl,
                  enum expand_modifier modifier, rtx *alt_rtl,
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/final.c gcc-5.3.0-zip/gcc/final.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/final.c gcc-5.3.0-zip/gcc/final.c
--- gcc-5.3.0-original/gcc/final.c      2015-01-15 08:28:42.000000000 -0500
--- gcc-5.3.0-original/gcc/final.c      2015-01-15 08:28:42.000000000 -0500
+++ gcc-5.3.0-zip/gcc/final.c   2016-03-24 22:12:00.263845620 -0400
+++ gcc-5.3.0-zip/gcc/final.c   2016-03-29 08:41:03.919647461 -0400
@@ -109,6 +109,14 @@
@@ -109,6 +109,14 @@
 #include "wide-int-print.h"
 #include "wide-int-print.h"
 #include "rtl-iter.h"
 #include "rtl-iter.h"
 
 
+
+
Line 9455... Line 9704...
+               // m->alignment,
+               // m->alignment,
+               m->name);
+               m->name);
 
 
   print_closer ();
   print_closer ();
 }
 }
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/jump.c gcc-5.3.0-zip/gcc/jump.c
 
--- gcc-5.3.0-original/gcc/jump.c       2015-01-27 04:19:30.000000000 -0500
 
+++ gcc-5.3.0-zip/gcc/jump.c    2016-04-01 06:41:10.724002408 -0400
 
@@ -80,6 +80,14 @@
 
 #include "target.h"
 
 #include "rtl-iter.h"
 
 
 
+// #define     DO_ZIP_DEBUGS
 
+#ifdef DO_ZIP_DEBUGS
 
+#include <stdio.h>
 
+#define        ZIP_DEBUG_LINE(STR,RTX) do{fprintf(stderr,"%s:%d/%s\n",__FILE__,__LINE__,STR); zip_debug_rtx(RTX); }while(0)
 
+extern void zip_debug_rtx(const_rtx);
 
+#else
 
+#define        ZIP_DEBUG_LINE(STR,RTX)
 
+#endif
 
 /* Optimize jump y; x: ... y: jumpif... x?
 
    Don't know if it is worth bothering with.  */
 
 /* Optimize two cases of conditional jump to conditional jump?
 
@@ -1136,6 +1144,7 @@
 
   int i;
 
   const char *fmt;
 
 
 
+ZIP_DEBUG_LINE("Mark jump label",insn);
 
   switch (code)
 
     {
 
     case PC:
 
@@ -1248,6 +1257,8 @@
 
       break;
 
     }
 
 
 
+ZIP_DEBUG_LINE("Post case",insn);
 
+
 
   fmt = GET_RTX_FORMAT (code);
 
 
 
   /* The primary target of a tablejump is the label of the ADDR_VEC,
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/machmode.def gcc-5.3.0-zip/gcc/machmode.def
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/machmode.def gcc-5.3.0-zip/gcc/machmode.def
--- gcc-5.3.0-original/gcc/machmode.def 2015-01-05 07:33:28.000000000 -0500
--- gcc-5.3.0-original/gcc/machmode.def 2015-01-05 07:33:28.000000000 -0500
+++ gcc-5.3.0-zip/gcc/machmode.def      2016-03-08 11:56:45.375491523 -0500
+++ gcc-5.3.0-zip/gcc/machmode.def      2016-03-08 11:56:45.375491523 -0500
@@ -184,11 +184,11 @@
@@ -184,11 +184,11 @@
    larger types, then corresponding modes must be added here.  The
    larger types, then corresponding modes must be added here.  The
Line 9697... Line 9981...
 
 
+       ZIP_DEBUG_LINE("Simplify-Operands - C", insn);
+       ZIP_DEBUG_LINE("Simplify-Operands - C", insn);
   return apply_change_group ();
   return apply_change_group ();
 }
 }
 
 
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/recog.c gcc-5.3.0-zip/gcc/recog.c
 
--- gcc-5.3.0-original/gcc/recog.c      2015-03-20 02:07:30.000000000 -0400
 
+++ gcc-5.3.0-zip/gcc/recog.c   2016-03-29 08:44:33.142234843 -0400
 
@@ -68,6 +68,15 @@
 
 #include "df.h"
 
 #include "insn-codes.h"
 
 
 
+// #define     DO_ZIP_DEBUGS
 
+#ifdef DO_ZIP_DEBUGS
 
+extern void    zip_debug_rtx(const_rtx);
 
+#define        ZIP_DEBUG_LINE(STR,RTX) do { fprintf(stderr, "%s:%d/%s\n", __FILE__,__LINE__,STR); zip_debug_rtx(RTX); } while(0)
 
+#else
 
+#define        ZIP_DEBUG_LINE(STR,RTX)
 
+#endif
 
+
 
+
 
 #ifndef STACK_PUSH_CODE
 
 #ifdef STACK_GROWS_DOWNWARD
 
 #define STACK_PUSH_CODE PRE_DEC
 
@@ -3671,7 +3680,6 @@
 
            break;
 
 
 
          /* The buffer filled to the current maximum, so try to match.  */
 
-
 
          pos = peep2_buf_position (peep2_current + peep2_current_count);
 
          peep2_insn_data[pos].insn = PEEP2_EOB;
 
          COPY_REG_SET (peep2_insn_data[pos].live_before, live);
 
@@ -3704,6 +3712,7 @@
 
     rebuild_jump_labels (get_insns ());
 
   if (peep2_do_cleanup_cfg)
 
     cleanup_cfg (CLEANUP_CFG_CHANGED);
 
+
 
 }
 
 #endif /* HAVE_peephole2 */
 
 
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/reload1.c gcc-5.3.0-zip/gcc/reload1.c
 
--- gcc-5.3.0-original/gcc/reload1.c    2015-01-15 08:28:42.000000000 -0500
 
+++ gcc-5.3.0-zip/gcc/reload1.c 2016-04-01 06:34:13.138506735 -0400
 
@@ -72,6 +72,14 @@
 
 #include "dumpfile.h"
 
 #include "rtl-iter.h"
 
 
 
+// #define     DO_ZIP_DEBUGS
 
+#ifdef DO_ZIP_DEBUGS
 
+extern void    zip_debug_rtx(const_rtx);
 
+#define        ZIP_DEBUG_LINE(STR,RTX) do { fprintf(stderr, "%s:%d/%s\n", __FILE__,__LINE__,STR); zip_debug_rtx(RTX); } while(0)
 
+#else
 
+#define        ZIP_DEBUG_LINE(STR,RTX)
 
+#endif
 
+
 
 /* This file contains the reload pass of the compiler, which is
 
    run after register allocation has been done.  It checks that
 
    each insn is valid (operands required to be in registers really
 
@@ -794,6 +802,18 @@
 
   basic_block bb;
 
   bool inserted;
 
 
 
+#ifdef DO_ZIP_DEBUGS
 
+  {
 
+       int     total_count = 0, current_count = 0;
 
+       for (insn = first; insn; insn = NEXT_INSN (insn))
 
+               total_count++;
 
+       for (insn = first; insn; insn = NEXT_INSN (insn)) {
 
+               fprintf(stderr, "B %3d/%3d", current_count++, total_count);
 
+               zip_debug_rtx(insn);
 
+       }
 
+  }
 
+#endif
 
+
 
   /* Make sure even insns with volatile mem refs are recognizable.  */
 
   init_recog ();
 
 
 
@@ -1366,6 +1386,18 @@
 
 
 
   reload_completed = !failure;
 
 
 
+#ifdef DO_ZIP_DEBUGS
 
+  {
 
+       int     total_count = 0, current_count = 0;
 
+       for (insn = first; insn; insn = NEXT_INSN (insn))
 
+               total_count++;
 
+       for (insn = first; insn; insn = NEXT_INSN (insn)) {
 
+               fprintf(stderr, "A %3d/%3d", current_count++, total_count);
 
+               zip_debug_rtx(insn);
 
+       }
 
+  }
 
+#endif
 
+
 
   return need_dce;
 
 }
 
 
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/reload.c gcc-5.3.0-zip/gcc/reload.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/reload.c gcc-5.3.0-zip/gcc/reload.c
--- gcc-5.3.0-original/gcc/reload.c     2015-01-15 08:28:42.000000000 -0500
--- gcc-5.3.0-original/gcc/reload.c     2015-01-15 08:28:42.000000000 -0500
+++ gcc-5.3.0-zip/gcc/reload.c  2016-03-19 12:28:30.592811127 -0400
+++ gcc-5.3.0-zip/gcc/reload.c  2016-03-19 12:28:30.592811127 -0400
@@ -2707,8 +2707,17 @@
@@ -2707,8 +2707,17 @@
     no_output_reloads = 1;
     no_output_reloads = 1;
Line 9832... Line 10207...
       cmpxchg >>= (64 / BITS_PER_MARKER - n->range) * BITS_PER_MARKER;
       cmpxchg >>= (64 / BITS_PER_MARKER - n->range) * BITS_PER_MARKER;
       cmpnop &= mask;
       cmpnop &= mask;
     }
     }
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/var-tracking.c gcc-5.3.0-zip/gcc/var-tracking.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/var-tracking.c gcc-5.3.0-zip/gcc/var-tracking.c
--- gcc-5.3.0-original/gcc/var-tracking.c       2015-03-26 09:19:00.000000000 -0400
--- gcc-5.3.0-original/gcc/var-tracking.c       2015-03-26 09:19:00.000000000 -0400
+++ gcc-5.3.0-zip/gcc/var-tracking.c    2016-03-19 09:31:12.636242911 -0400
+++ gcc-5.3.0-zip/gcc/var-tracking.c    2016-03-31 18:55:03.584197958 -0400
@@ -143,6 +143,13 @@
@@ -143,6 +143,13 @@
 #include "rtl-iter.h"
 #include "rtl-iter.h"
 #include "fibonacci_heap.h"
 #include "fibonacci_heap.h"
 
 
+#ifdef DO_ZIP_DEBUG
+#ifdef DO_ZIP_DEBUGS
+#include <stdio.h>
+#include <stdio.h>
+extern void zip_debug_rtx(const_rtx);
+extern void zip_debug_rtx(const_rtx);
+#define ZIP_DEBUG_LINE(STR,RTX) do {fprintf(stderr,"%s:%d/%s\n",__FILE__,__LINE__,STR); zip_debug_rtx(RTX); } while(0)
+#define ZIP_DEBUG_LINE(STR,RTX) do {fprintf(stderr,"%s:%d/%s\n",__FILE__,__LINE__,STR); zip_debug_rtx(RTX); } while(0)
+#else
+#else
+#define ZIP_DEBUG_LINE(STR,RTX)
+#define ZIP_DEBUG_LINE(STR,RTX)

powered by: WebSVN 2.1.0

© copyright 1999-2022 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.