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

Subversion Repositories zipcpu

[/] [zipcpu/] [trunk/] [sw/] [gcc-zippatch.patch] - Diff between revs 102 and 103

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

Rev 102 Rev 103
Line 101... Line 101...
+#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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h       2016-03-08 04:57:02.962902614 -0500
+++ 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 113... Line 113...
+#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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/alpha/linux-elf.h     2016-03-08 04:57:02.962902614 -0500
+++ 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 127... Line 127...
+#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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/arm/linux-eabi.h      2016-03-08 04:57:02.962902614 -0500
+++ 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 141... Line 141...
+#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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/arm/linux-elf.h       2016-03-08 04:57:02.962902614 -0500
+++ 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 153... Line 153...
+#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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/bfin/linux.h  2016-03-08 04:57:02.962902614 -0500
+++ 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 165... Line 165...
+   -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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/cris/linux.h  2016-03-08 04:57:02.962902614 -0500
+++ 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 177... Line 177...
+#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-02-05 15:18:17.489469806 -0500
--- gcc-5.3.0-original/gcc/config/freebsd-spec.h        2016-03-08 04:57:02.962902614 -0500
+++ 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 192... Line 192...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/frv/linux.h   2016-03-08 04:57:02.962902614 -0500
+++ 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 204... Line 204...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/i386/gnu.h    2016-03-08 04:57:02.962902614 -0500
+++ 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 216... Line 216...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h 2016-03-08 04:57:02.962902614 -0500
+++ 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 229... Line 229...
-#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h   2016-03-08 04:57:02.962902614 -0500
+++ 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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/i386/linux64.h        2016-03-08 04:57:02.962902614 -0500
+++ 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 251... Line 251...
-#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/i386/linux.h  2016-03-08 04:57:02.962902614 -0500
+++ 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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/ia64/linux.h  2016-03-08 04:57:02.962902614 -0500
+++ 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 272... Line 272...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/knetbsd-gnu.h 2016-03-08 04:57:02.962902614 -0500
+++ 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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h    2016-03-08 04:57:02.962902614 -0500
+++ 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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/linux.h       2016-03-08 04:57:02.962902614 -0500
+++ 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 309... Line 309...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h    2016-03-08 04:57:02.962902614 -0500
+++ 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 321... Line 321...
+   -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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/m68k/linux.h  2016-03-08 04:57:02.962902614 -0500
+++ 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 333... Line 333...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/microblaze/linux.h    2016-03-08 04:57:02.962902614 -0500
+++ 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 345... Line 345...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/mips/linux.h  2016-03-08 04:57:02.962902614 -0500
+++ 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 375... Line 375...
+  "%{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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/mn10300/linux.h       2016-03-08 04:57:02.962902614 -0500
+++ 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 387... Line 387...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/pa/pa-linux.h 2016-03-08 04:57:02.962902614 -0500
+++ 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 399... Line 399...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/rs6000/linux64.h      2016-03-08 04:57:02.966902587 -0500
+++ 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 422... Line 422...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/rs6000/sysv4.h        2016-03-08 04:57:02.966902587 -0500
+++ 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 435... Line 435...
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#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/rs6000/sysv4.h.orig gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h.orig
 
--- gcc-5.3.0-original/gcc/config/rs6000/sysv4.h.orig   2015-09-24 09:46:45.000000000 -0400
 
+++ gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h.orig        1969-12-31 19:00:00.000000000 -0500
 
@@ -1,945 +0,0 @@
 
-/* Target definitions for GNU compiler for PowerPC running System V.4
 
-   Copyright (C) 1995-2015 Free Software Foundation, Inc.
 
-   Contributed by Cygnus Support.
 
-
 
-   This file is part of GCC.
 
-
 
-   GCC is free software; you can redistribute it and/or modify it
 
-   under the terms of the GNU General Public License as published
 
-   by the Free Software Foundation; either version 3, or (at your
 
-   option) any later version.
 
-
 
-   GCC is distributed in the hope that it will be useful, but WITHOUT
 
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
 
-   License for more details.
 
-
 
-   Under Section 7 of GPL version 3, you are granted additional
 
-   permissions described in the GCC Runtime Library Exception, version
 
-   3.1, as published by the Free Software Foundation.
 
-
 
-   You should have received a copy of the GNU General Public License and
 
-   a copy of the GCC Runtime Library Exception along with this program;
 
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
-   <http://www.gnu.org/licenses/>.  */
 
-
 
-/* Header files should be C++ aware in general.  */
 
-#undef  NO_IMPLICIT_EXTERN_C
 
-#define NO_IMPLICIT_EXTERN_C
 
-
 
-/* Yes!  We are ELF.  */
 
-#define        TARGET_OBJECT_FORMAT OBJECT_ELF
 
-
 
-/* Default ABI to compile code for.  */
 
-#define DEFAULT_ABI rs6000_current_abi
 
-
 
-/* Default ABI to use.  */
 
-#define RS6000_ABI_NAME "sysv"
 
-
 
-/* Override rs6000.h definition.  */
 
-#undef ASM_DEFAULT_SPEC
 
-#define        ASM_DEFAULT_SPEC "-mppc"
 
-
 
-#define        TARGET_TOC              ((rs6000_isa_flags & OPTION_MASK_64BIT) \
 
-                                || ((rs6000_isa_flags                  \
 
-                                     & (OPTION_MASK_RELOCATABLE        \
 
-                                        | OPTION_MASK_MINIMAL_TOC))    \
 
-                                    && flag_pic > 1)                   \
 
-                                || DEFAULT_ABI != ABI_V4)
 
-
 
-#define        TARGET_BITFIELD_TYPE    (! TARGET_NO_BITFIELD_TYPE)
 
-#define        TARGET_BIG_ENDIAN       (! TARGET_LITTLE_ENDIAN)
 
-#define        TARGET_PROTOTYPE        target_prototype
 
-#define        TARGET_NO_PROTOTYPE     (! TARGET_PROTOTYPE)
 
-#define        TARGET_NO_TOC           (! TARGET_TOC)
 
-#define        TARGET_NO_EABI          (! TARGET_EABI)
 
-#define        TARGET_REGNAMES         rs6000_regnames
 
-
 
-#ifdef HAVE_AS_REL16
 
-#undef TARGET_SECURE_PLT
 
-#define TARGET_SECURE_PLT      secure_plt
 
-#endif
 
-
 
-#define SDATA_DEFAULT_SIZE 8
 
-
 
-/* The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
 
-   get control in TARGET_OPTION_OVERRIDE.  */
 
-
 
-#define SUBTARGET_OVERRIDE_OPTIONS                                     \
 
-do {                                                                   \
 
-  if (!global_options_set.x_g_switch_value)                            \
 
-    g_switch_value = SDATA_DEFAULT_SIZE;                               \
 
-                                                                       \
 
-  if (rs6000_abi_name == NULL)                                         \
 
-    rs6000_abi_name = RS6000_ABI_NAME;                                 \
 
-                                                                       \
 
-  if (!strcmp (rs6000_abi_name, "sysv"))                               \
 
-    rs6000_current_abi = ABI_V4;                                       \
 
-  else if (!strcmp (rs6000_abi_name, "sysv-noeabi"))                   \
 
-    {                                                                  \
 
-      rs6000_current_abi = ABI_V4;                                     \
 
-      rs6000_isa_flags &= ~ OPTION_MASK_EABI;                          \
 
-    }                                                                  \
 
-  else if (!strcmp (rs6000_abi_name, "sysv-eabi")                      \
 
-          || !strcmp (rs6000_abi_name, "eabi"))                        \
 
-    {                                                                  \
 
-      rs6000_current_abi = ABI_V4;                                     \
 
-      rs6000_isa_flags |= OPTION_MASK_EABI;                            \
 
-    }                                                                  \
 
-  else if (!strcmp (rs6000_abi_name, "aixdesc"))                       \
 
-    rs6000_current_abi = ABI_AIX;                                      \
 
-  else if (!strcmp (rs6000_abi_name, "freebsd")                                \
 
-          || !strcmp (rs6000_abi_name, "linux"))                       \
 
-    {                                                                  \
 
-      if (TARGET_64BIT)                                                        \
 
-       rs6000_current_abi = ABI_AIX;                                   \
 
-      else                                                             \
 
-       rs6000_current_abi = ABI_V4;                                    \
 
-    }                                                                  \
 
-  else if (!strcmp (rs6000_abi_name, "netbsd"))                                \
 
-    rs6000_current_abi = ABI_V4;                                       \
 
-  else if (!strcmp (rs6000_abi_name, "openbsd"))                       \
 
-    rs6000_current_abi = ABI_V4;                                       \
 
-  else if (!strcmp (rs6000_abi_name, "i960-old"))                      \
 
-    {                                                                  \
 
-      rs6000_current_abi = ABI_V4;                                     \
 
-      rs6000_isa_flags |= (OPTION_MASK_LITTLE_ENDIAN | OPTION_MASK_EABI); \
 
-      rs6000_isa_flags &= ~OPTION_MASK_STRICT_ALIGN;                   \
 
-      TARGET_NO_BITFIELD_WORD = 1;                                     \
 
-    }                                                                  \
 
-  else                                                                 \
 
-    {                                                                  \
 
-      rs6000_current_abi = ABI_V4;                                     \
 
-      error ("bad value for -mcall-%s", rs6000_abi_name);              \
 
-    }                                                                  \
 
-                                                                       \
 
-  if (rs6000_sdata_name)                                               \
 
-    {                                                                  \
 
-      if (!strcmp (rs6000_sdata_name, "none"))                         \
 
-       rs6000_sdata = SDATA_NONE;                                      \
 
-      else if (!strcmp (rs6000_sdata_name, "data"))                    \
 
-       rs6000_sdata = SDATA_DATA;                                      \
 
-      else if (!strcmp (rs6000_sdata_name, "default"))                 \
 
-       rs6000_sdata = (TARGET_EABI) ? SDATA_EABI : SDATA_SYSV;         \
 
-      else if (!strcmp (rs6000_sdata_name, "sysv"))                    \
 
-       rs6000_sdata = SDATA_SYSV;                                      \
 
-      else if (!strcmp (rs6000_sdata_name, "eabi"))                    \
 
-       rs6000_sdata = SDATA_EABI;                                      \
 
-      else                                                             \
 
-       error ("bad value for -msdata=%s", rs6000_sdata_name);          \
 
-    }                                                                  \
 
-  else if (DEFAULT_ABI == ABI_V4)                                      \
 
-    {                                                                  \
 
-      rs6000_sdata = SDATA_DATA;                                       \
 
-      rs6000_sdata_name = "data";                                      \
 
-    }                                                                  \
 
-  else                                                                 \
 
-    {                                                                  \
 
-      rs6000_sdata = SDATA_NONE;                                       \
 
-      rs6000_sdata_name = "none";                                      \
 
-    }                                                                  \
 
-                                                                       \
 
-  if (TARGET_RELOCATABLE &&                                            \
 
-      (rs6000_sdata == SDATA_EABI || rs6000_sdata == SDATA_SYSV))      \
 
-    {                                                                  \
 
-      rs6000_sdata = SDATA_DATA;                                       \
 
-      error ("-mrelocatable and -msdata=%s are incompatible",          \
 
-            rs6000_sdata_name);                                        \
 
-    }                                                                  \
 
-                                                                       \
 
-  else if (flag_pic && DEFAULT_ABI == ABI_V4                           \
 
-          && (rs6000_sdata == SDATA_EABI                               \
 
-              || rs6000_sdata == SDATA_SYSV))                          \
 
-    {                                                                  \
 
-      rs6000_sdata = SDATA_DATA;                                       \
 
-      error ("-f%s and -msdata=%s are incompatible",                   \
 
-            (flag_pic > 1) ? "PIC" : "pic",                            \
 
-            rs6000_sdata_name);                                        \
 
-    }                                                                  \
 
-                                                                       \
 
-  if ((rs6000_sdata != SDATA_NONE && DEFAULT_ABI != ABI_V4)            \
 
-      || (rs6000_sdata == SDATA_EABI && !TARGET_EABI))                 \
 
-    {                                                                  \
 
-      rs6000_sdata = SDATA_NONE;                                       \
 
-      error ("-msdata=%s and -mcall-%s are incompatible",              \
 
-            rs6000_sdata_name, rs6000_abi_name);                       \
 
-    }                                                                  \
 
-                                                                       \
 
-  targetm.have_srodata_section = rs6000_sdata == SDATA_EABI;           \
 
-                                                                       \
 
-  if (TARGET_RELOCATABLE && !TARGET_MINIMAL_TOC)                       \
 
-    {                                                                  \
 
-      rs6000_isa_flags |= OPTION_MASK_MINIMAL_TOC;                     \
 
-      error ("-mrelocatable and -mno-minimal-toc are incompatible");   \
 
-    }                                                                  \
 
-                                                                       \
 
-  if (TARGET_RELOCATABLE && rs6000_current_abi != ABI_V4)              \
 
-    {                                                                  \
 
-      rs6000_isa_flags &= ~OPTION_MASK_RELOCATABLE;                    \
 
-      error ("-mrelocatable and -mcall-%s are incompatible",           \
 
-            rs6000_abi_name);                                          \
 
-    }                                                                  \
 
-                                                                       \
 
-  if (!TARGET_64BIT && flag_pic > 1 && rs6000_current_abi != ABI_V4)   \
 
-    {                                                                  \
 
-      flag_pic = 0;                                                    \
 
-      error ("-fPIC and -mcall-%s are incompatible",                   \
 
-            rs6000_abi_name);                                          \
 
-    }                                                                  \
 
-                                                                       \
 
-  if (TARGET_SECURE_PLT != secure_plt)                                 \
 
-    {                                                                  \
 
-      error ("-msecure-plt not supported by your assembler");          \
 
-    }                                                                  \
 
-                                                                       \
 
-  /* Treat -fPIC the same as -mrelocatable.  */                                \
 
-  if (flag_pic > 1 && DEFAULT_ABI == ABI_V4)                           \
 
-    {                                                                  \
 
-      rs6000_isa_flags |= OPTION_MASK_RELOCATABLE | OPTION_MASK_MINIMAL_TOC; \
 
-      TARGET_NO_FP_IN_TOC = 1;                                         \
 
-    }                                                                  \
 
-                                                                       \
 
-  else if (TARGET_RELOCATABLE)                                         \
 
-    if (!flag_pic)                                                     \
 
-      flag_pic = 2;                                                    \
 
-} while (0)
 
-
 
-#ifndef RS6000_BI_ARCH
 
-# define SUBSUBTARGET_OVERRIDE_OPTIONS                                 \
 
-do {                                                                   \
 
-  if ((TARGET_DEFAULT ^ rs6000_isa_flags) & OPTION_MASK_64BIT)         \
 
-    error ("-m%s not supported in this configuration",                 \
 
-          (rs6000_isa_flags & OPTION_MASK_64BIT) ? "64" : "32");       \
 
-} while (0)
 
-#endif
 
-
 
-/* Override rs6000.h definition.  */
 
-#undef TARGET_DEFAULT
 
-#define        TARGET_DEFAULT 0
 
-
 
-/* Override rs6000.h definition.  */
 
-#undef PROCESSOR_DEFAULT
 
-#define        PROCESSOR_DEFAULT PROCESSOR_PPC750
 
-
 
-#define FIXED_R2 1
 
-/* System V.4 uses register 13 as a pointer to the small data area,
 
-   so it is not available to the normal user.  */
 
-#define FIXED_R13 1
 
-
 
-/* Override default big endianism definitions in rs6000.h.  */
 
-#undef BYTES_BIG_ENDIAN
 
-#undef WORDS_BIG_ENDIAN
 
-#define        BYTES_BIG_ENDIAN (TARGET_BIG_ENDIAN)
 
-#define        WORDS_BIG_ENDIAN (TARGET_BIG_ENDIAN)
 
-
 
-/* Put jump tables in read-only memory, rather than in .text.  */
 
-#define JUMP_TABLES_IN_TEXT_SECTION 0
 
-
 
-/* Prefix and suffix to use to saving floating point.  */
 
-#define        SAVE_FP_PREFIX "_savefpr_"
 
-#define SAVE_FP_SUFFIX ""
 
-
 
-/* Prefix and suffix to use to restoring floating point.  */
 
-#define        RESTORE_FP_PREFIX "_restfpr_"
 
-#define RESTORE_FP_SUFFIX ""
 
-
 
-/* Type used for size_t, as a string used in a declaration.  */
 
-#undef  SIZE_TYPE
 
-#define SIZE_TYPE "unsigned int"
 
-
 
-/* Type used for ptrdiff_t, as a string used in a declaration.  */
 
-#define PTRDIFF_TYPE "int"
 
-
 
-#undef WCHAR_TYPE
 
-#define WCHAR_TYPE "long int"
 
-
 
-#undef WCHAR_TYPE_SIZE
 
-#define WCHAR_TYPE_SIZE 32
 
-
 
-/* Make int foo : 8 not cause structures to be aligned to an int boundary.  */
 
-/* Override elfos.h definition.  */
 
-#undef PCC_BITFIELD_TYPE_MATTERS
 
-#define        PCC_BITFIELD_TYPE_MATTERS (TARGET_BITFIELD_TYPE)
 
-
 
-#undef BITFIELD_NBYTES_LIMITED
 
-#define        BITFIELD_NBYTES_LIMITED (TARGET_NO_BITFIELD_WORD)
 
-
 
-/* Define this macro to be the value 1 if instructions will fail to
 
-   work if given data not on the nominal alignment.  If instructions
 
-   will merely go slower in that case, define this macro as 0.  */
 
-#undef STRICT_ALIGNMENT
 
-#define        STRICT_ALIGNMENT (TARGET_STRICT_ALIGN)
 
-
 
-/* Define this macro if you wish to preserve a certain alignment for
 
-   the stack pointer, greater than what the hardware enforces.  The
 
-   definition is a C expression for the desired alignment (measured
 
-   in bits).  This macro must evaluate to a value equal to or larger
 
-   than STACK_BOUNDARY.
 
-   For the SYSV ABI and variants the alignment of the stack pointer
 
-   is usually controlled manually in rs6000.c. However, to maintain
 
-   alignment across alloca () in all circumstances,
 
-   PREFERRED_STACK_BOUNDARY needs to be set as well.
 
-   This has the additional advantage of allowing a bigger maximum
 
-   alignment of user objects on the stack.  */
 
-
 
-#undef PREFERRED_STACK_BOUNDARY
 
-#define PREFERRED_STACK_BOUNDARY 128
 
-
 
-/* Real stack boundary as mandated by the appropriate ABI.  */
 
-#define ABI_STACK_BOUNDARY \
 
-  ((TARGET_EABI && !TARGET_ALTIVEC && !TARGET_ALTIVEC_ABI) ? 64 : 128)
 
-
 
-/* An expression for the alignment of a structure field FIELD if the
 
-   alignment computed in the usual way is COMPUTED.  */
 
-#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED)                                  \
 
-       (rs6000_special_adjust_field_align_p ((FIELD), (COMPUTED))            \
 
-        ? 128 : COMPUTED)
 
-
 
-#undef  BIGGEST_FIELD_ALIGNMENT
 
-
 
-/* Use ELF style section commands.  */
 
-
 
-#define        TEXT_SECTION_ASM_OP     "\t.section\t\".text\""
 
-
 
-#define        DATA_SECTION_ASM_OP     "\t.section\t\".data\""
 
-
 
-#define        BSS_SECTION_ASM_OP      "\t.section\t\".bss\""
 
-
 
-/* Override elfos.h definition.  */
 
-#undef INIT_SECTION_ASM_OP
 
-#define        INIT_SECTION_ASM_OP "\t.section\t\".init\",\"ax\""
 
-
 
-/* Override elfos.h definition.  */
 
-#undef FINI_SECTION_ASM_OP
 
-#define        FINI_SECTION_ASM_OP "\t.section\t\".fini\",\"ax\""
 
-
 
-#define        TOC_SECTION_ASM_OP "\t.section\t\".got\",\"aw\""
 
-
 
-/* Put PC relative got entries in .got2.  */
 
-#define        MINIMAL_TOC_SECTION_ASM_OP \
 
-  (TARGET_RELOCATABLE || (flag_pic && DEFAULT_ABI == ABI_V4)           \
 
-   ? "\t.section\t\".got2\",\"aw\"" : "\t.section\t\".got1\",\"aw\"")
 
-
 
-#define        SDATA_SECTION_ASM_OP "\t.section\t\".sdata\",\"aw\""
 
-#define        SDATA2_SECTION_ASM_OP "\t.section\t\".sdata2\",\"a\""
 
-#define        SBSS_SECTION_ASM_OP "\t.section\t\".sbss\",\"aw\",@nobits"
 
-
 
-/* Override default elf definitions.  */
 
-#define TARGET_ASM_INIT_SECTIONS rs6000_elf_asm_init_sections
 
-#undef  TARGET_ASM_RELOC_RW_MASK
 
-#define TARGET_ASM_RELOC_RW_MASK rs6000_elf_reloc_rw_mask
 
-#undef TARGET_ASM_SELECT_RTX_SECTION
 
-#define        TARGET_ASM_SELECT_RTX_SECTION rs6000_elf_select_rtx_section
 
-
 
-/* Return nonzero if this entry is to be written into the constant pool
 
-   in a special way.  We do so if this is a SYMBOL_REF, LABEL_REF or a CONST
 
-   containing one of them.  If -mfp-in-toc (the default), we also do
 
-   this for floating-point constants.  We actually can only do this
 
-   if the FP formats of the target and host machines are the same, but
 
-   we can't check that since not every file that uses these target macros
 
-   includes real.h.
 
-
 
-   Unlike AIX, we don't key off of -mminimal-toc, but instead do not
 
-   allow floating point constants in the TOC if -mrelocatable.  */
 
-
 
-#undef ASM_OUTPUT_SPECIAL_POOL_ENTRY_P
 
-#define        ASM_OUTPUT_SPECIAL_POOL_ENTRY_P(X, MODE)                        \
 
-  (TARGET_TOC                                                          \
 
-   && (GET_CODE (X) == SYMBOL_REF                                      \
 
-       || (GET_CODE (X) == CONST && GET_CODE (XEXP (X, 0)) == PLUS     \
 
-          && GET_CODE (XEXP (XEXP (X, 0), 0)) == SYMBOL_REF)           \
 
-       || GET_CODE (X) == LABEL_REF                                    \
 
-       || (GET_CODE (X) == CONST_INT                                   \
 
-          && GET_MODE_BITSIZE (MODE) <= GET_MODE_BITSIZE (Pmode))      \
 
-       || (!TARGET_NO_FP_IN_TOC                                                \
 
-          && !TARGET_RELOCATABLE                                       \
 
-          && GET_CODE (X) == CONST_DOUBLE                              \
 
-          && SCALAR_FLOAT_MODE_P (GET_MODE (X))                        \
 
-          && BITS_PER_WORD == HOST_BITS_PER_INT)))
 
-
 
-/* These macros generate the special .type and .size directives which
 
-   are used to set the corresponding fields of the linker symbol table
 
-   entries in an ELF object file under SVR4.  These macros also output
 
-   the starting labels for the relevant functions/objects.  */
 
-
 
-/* Write the extra assembler code needed to declare a function properly.
 
-   Some svr4 assemblers need to also have something extra said about the
 
-   function's return value.  We allow for that here.  */
 
-
 
-/* Override elfos.h definition.  */
 
-#undef ASM_DECLARE_FUNCTION_NAME
 
-#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)                    \
 
-  rs6000_elf_declare_function_name ((FILE), (NAME), (DECL))
 
-
 
-/* The USER_LABEL_PREFIX stuff is affected by the -fleading-underscore
 
-   flag.  The LOCAL_LABEL_PREFIX variable is used by dbxelf.h.  */
 
-
 
-#define        LOCAL_LABEL_PREFIX "."
 
-#define        USER_LABEL_PREFIX ""
 
-
 
-#define        ASM_OUTPUT_INTERNAL_LABEL_PREFIX(FILE,PREFIX)   \
 
-  asm_fprintf (FILE, "%L%s", PREFIX)
 
-
 
-/* Globalizing directive for a label.  */
 
-#define GLOBAL_ASM_OP "\t.globl "
 
-
 
-/* This says how to output assembler code to declare an
 
-   uninitialized internal linkage data object.  Under SVR4,
 
-   the linker seems to want the alignment of data objects
 
-   to depend on their types.  We do exactly that here.  */
 
-
 
-#define        LOCAL_ASM_OP    "\t.local\t"
 
-
 
-#define        LCOMM_ASM_OP    "\t.lcomm\t"
 
-
 
-/* Describe how to emit uninitialized local items.  */
 
-#define        ASM_OUTPUT_ALIGNED_DECL_LOCAL(FILE, DECL, NAME, SIZE, ALIGN)    \
 
-do {                                                                   \
 
-  if ((DECL) && rs6000_elf_in_small_data_p (DECL))                     \
 
-    {                                                                  \
 
-      switch_to_section (sbss_section);                                        \
 
-      ASM_OUTPUT_ALIGN (FILE, exact_log2 (ALIGN / BITS_PER_UNIT));     \
 
-      ASM_OUTPUT_LABEL (FILE, NAME);                                   \
 
-      ASM_OUTPUT_SKIP (FILE, SIZE);                                    \
 
-      if (!flag_inhibit_size_directive && (SIZE) > 0)                  \
 
-       ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, SIZE);                   \
 
-    }                                                                  \
 
-  else                                                                 \
 
-    {                                                                  \
 
-      fprintf (FILE, "%s", LCOMM_ASM_OP);                              \
 
-      assemble_name ((FILE), (NAME));                                  \
 
-      fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n",         \
 
-              (SIZE), (ALIGN) / BITS_PER_UNIT);                        \
 
-    }                                                                  \
 
-  ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object");                    \
 
-} while (0)
 
-
 
-/* Describe how to emit uninitialized external linkage items.  */
 
-#define        ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)           \
 
-do {                                                                   \
 
-  ASM_OUTPUT_ALIGNED_DECL_LOCAL (FILE, DECL, NAME, SIZE, ALIGN);       \
 
-} while (0)
 
-
 
-#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
 
-/* To support -falign-* switches we need to use .p2align so
 
-   that alignment directives in code sections will be padded
 
-   with no-op instructions, rather than zeroes.  */
 
-#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP)                   \
 
-  if ((LOG) != 0)                                                      \
 
-    {                                                                  \
 
-      if ((MAX_SKIP) == 0)                                             \
 
-       fprintf ((FILE), "\t.p2align %d\n", (LOG));                     \
 
-      else                                                             \
 
-       fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));     \
 
-    }
 
-#endif
 
-
 
-/* This is how to output code to push a register on the stack.
 
-   It need not be very fast code.
 
-
 
-   On the rs6000, we must keep the backchain up to date.  In order
 
-   to simplify things, always allocate 16 bytes for a push (System V
 
-   wants to keep stack aligned to a 16 byte boundary).  */
 
-
 
-#define        ASM_OUTPUT_REG_PUSH(FILE, REGNO)                                \
 
-do {                                                                   \
 
-  if (DEFAULT_ABI == ABI_V4)                                           \
 
-    asm_fprintf (FILE,                                                 \
 
-                "\tstwu %s,-16(%s)\n\tstw %s,12(%s)\n",        \
 
-                reg_names[1], reg_names[1], reg_names[REGNO],          \
 
-                reg_names[1]);                                         \
 
-} while (0)
 
-
 
-/* This is how to output an insn to pop a register from the stack.
 
-   It need not be very fast code.  */
 
-
 
-#define        ASM_OUTPUT_REG_POP(FILE, REGNO)                                 \
 
-do {                                                                   \
 
-  if (DEFAULT_ABI == ABI_V4)                                           \
 
-    asm_fprintf (FILE,                                                 \
 
-                "\tlwz %s,12(%s)\n\taddi %s,%s,16\n",  \
 
-                reg_names[REGNO], reg_names[1], reg_names[1],          \
 
-                reg_names[1]);                                         \
 
-} while (0)
 
-
 
-extern int fixuplabelno;
 
-
 
-/* Handle constructors specially for -mrelocatable.  */
 
-#define TARGET_ASM_CONSTRUCTOR  rs6000_elf_asm_out_constructor
 
-#define TARGET_ASM_DESTRUCTOR   rs6000_elf_asm_out_destructor
 
-
 
-/* This is the end of what might become sysv4.h.  */
 
-
 
-/* Use DWARF 2 debugging information by default.  */
 
-#undef  PREFERRED_DEBUGGING_TYPE
 
-#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
 
-
 
-/* Historically we have also supported stabs debugging.  */
 
-#define DBX_DEBUGGING_INFO 1
 
-
 
-#define TARGET_ENCODE_SECTION_INFO  rs6000_elf_encode_section_info
 
-#define TARGET_IN_SMALL_DATA_P  rs6000_elf_in_small_data_p
 
-
 
-/* The ELF version doesn't encode [DS] or whatever at the end of symbols.  */
 
-
 
-#define        RS6000_OUTPUT_BASENAME(FILE, NAME)      \
 
-    assemble_name (FILE, NAME)
 
-
 
-/* We have to output the stabs for the function name *first*, before
 
-   outputting its label.  */
 
-
 
-#define        DBX_FUNCTION_FIRST
 
-
 
-/* This is the end of what might become sysv4dbx.h.  */
 
-
 
-#define TARGET_OS_SYSV_CPP_BUILTINS()          \
 
-  do                                           \
 
-    {                                          \
 
-      if (rs6000_isa_flags_explicit            \
 
-         & OPTION_MASK_RELOCATABLE)            \
 
-       builtin_define ("_RELOCATABLE");        \
 
-    }                                          \
 
-  while (0)
 
-
 
-#ifndef        TARGET_OS_CPP_BUILTINS
 
-#define TARGET_OS_CPP_BUILTINS()               \
 
-  do                                           \
 
-    {                                          \
 
-      builtin_define_std ("PPC");              \
 
-      builtin_define_std ("unix");             \
 
-      builtin_define ("__svr4__");             \
 
-      builtin_assert ("system=unix");          \
 
-      builtin_assert ("system=svr4");          \
 
-      builtin_assert ("cpu=powerpc");          \
 
-      builtin_assert ("machine=powerpc");      \
 
-      TARGET_OS_SYSV_CPP_BUILTINS ();          \
 
-    }                                          \
 
-  while (0)
 
-#endif
 
-
 
-/* Select one of BIG_OPT, LITTLE_OPT or DEFAULT_OPT depending
 
-   on various -mbig, -mlittle and -mcall- options.  */
 
-#define ENDIAN_SELECT(BIG_OPT, LITTLE_OPT, DEFAULT_OPT)        \
 
-"%{mlittle|mlittle-endian:"    LITTLE_OPT ";"  \
 
-  "mbig|mbig-endian:"          BIG_OPT    ";"  \
 
-  "mcall-i960-old:"            LITTLE_OPT ";"  \
 
-  ":"                          DEFAULT_OPT "}"
 
-
 
-#define DEFAULT_ASM_ENDIAN " -mbig"
 
-
 
-#undef ASM_SPEC
 
-#define        ASM_SPEC "%(asm_cpu) \
 
-%{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}} \
 
-%{mrelocatable} %{mrelocatable-lib} %{fpic|fpie|fPIC|fPIE:-K PIC} \
 
-%{memb|msdata=eabi: -memb}" \
 
-ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
 
-
 
-#ifndef CC1_SECURE_PLT_DEFAULT_SPEC
 
-#define CC1_SECURE_PLT_DEFAULT_SPEC ""
 
-#endif
 
-
 
-/* Pass -G xxx to the compiler.  */
 
-#undef CC1_SPEC
 
-#define        CC1_SPEC "%{G*} %(cc1_cpu)" \
 
-"%{meabi: %{!mcall-*: -mcall-sysv }} \
 
-%{!meabi: %{!mno-eabi: \
 
-    %{mrelocatable: -meabi } \
 
-    %{mcall-freebsd: -mno-eabi } \
 
-    %{mcall-i960-old: -meabi } \
 
-    %{mcall-linux: -mno-eabi } \
 
-    %{mcall-netbsd: -mno-eabi } \
 
-    %{mcall-openbsd: -mno-eabi }}} \
 
-%{msdata: -msdata=default} \
 
-%{mno-sdata: -msdata=none} \
 
-%{!mbss-plt: %{!msecure-plt: %(cc1_secure_plt_default)}} \
 
-%{profile: -p}"
 
-
 
-/* Default starting address if specified.  */
 
-#define LINK_START_SPEC "\
 
-%{mads         : %(link_start_ads)         ; \
 
-  myellowknife : %(link_start_yellowknife) ; \
 
-  mmvme        : %(link_start_mvme)        ; \
 
-  msim         : %(link_start_sim)         ; \
 
-  mcall-freebsd: %(link_start_freebsd)     ; \
 
-  mcall-linux  : %(link_start_linux)       ; \
 
-  mcall-netbsd : %(link_start_netbsd)      ; \
 
-  mcall-openbsd: %(link_start_openbsd)     ; \
 
-               : %(link_start_default)     }"
 
-
 
-#define LINK_START_DEFAULT_SPEC ""
 
-
 
-#undef LINK_SPEC
 
-#define        LINK_SPEC "\
 
-%{h*} %{v:-V} %{!msdata=none:%{G*}} %{msdata=none:-G0} \
 
-%{R*} \
 
-%(link_shlib) \
 
-%{!T*: %(link_start) } \
 
-%(link_os)"
 
-
 
-/* Shared libraries are not default.  */
 
-#define LINK_SHLIB_SPEC "\
 
-%{!mshlib: %{!shared: %{!symbolic: -dn -Bstatic}}} \
 
-%{static: } \
 
-%{shared:-G -dy -z text } \
 
-%{symbolic:-Bsymbolic -G -dy -z text }"
 
-
 
-/* Any specific OS flags.  */
 
-#define LINK_OS_SPEC "\
 
-%{mads         : %(link_os_ads)         ; \
 
-  myellowknife : %(link_os_yellowknife) ; \
 
-  mmvme        : %(link_os_mvme)        ; \
 
-  msim         : %(link_os_sim)         ; \
 
-  mcall-freebsd: %(link_os_freebsd)     ; \
 
-  mcall-linux  : %(link_os_linux)       ; \
 
-  mcall-netbsd : %(link_os_netbsd)      ; \
 
-  mcall-openbsd: %(link_os_openbsd)     ; \
 
-               : %(link_os_default)     }"
 
-
 
-#define LINK_OS_DEFAULT_SPEC ""
 
-
 
-#define DRIVER_SELF_SPECS "%{mfpu=none: %<mfpu=* \
 
-       %<msingle-float %<mdouble-float}"
 
-
 
-/* Override rs6000.h definition.  */
 
-#undef CPP_SPEC
 
-#define        CPP_SPEC "%{posix: -D_POSIX_SOURCE} \
 
-%{mads         : %(cpp_os_ads)         ; \
 
-  myellowknife : %(cpp_os_yellowknife) ; \
 
-  mmvme        : %(cpp_os_mvme)        ; \
 
-  msim         : %(cpp_os_sim)         ; \
 
-  mcall-freebsd: %(cpp_os_freebsd)     ; \
 
-  mcall-linux  : %(cpp_os_linux)       ; \
 
-  mcall-netbsd : %(cpp_os_netbsd)      ; \
 
-  mcall-openbsd: %(cpp_os_openbsd)     ; \
 
-               : %(cpp_os_default)     }"
 
-
 
-#define        CPP_OS_DEFAULT_SPEC ""
 
-
 
-#undef STARTFILE_SPEC
 
-#define        STARTFILE_SPEC "\
 
-%{mads         : %(startfile_ads)         ; \
 
-  myellowknife : %(startfile_yellowknife) ; \
 
-  mmvme        : %(startfile_mvme)        ; \
 
-  msim         : %(startfile_sim)         ; \
 
-  mcall-freebsd: %(startfile_freebsd)     ; \
 
-  mcall-linux  : %(startfile_linux)       ; \
 
-  mcall-netbsd : %(startfile_netbsd)      ; \
 
-  mcall-openbsd: %(startfile_openbsd)     ; \
 
-               : %(startfile_default)     }"
 
-
 
-#define        STARTFILE_DEFAULT_SPEC "ecrti.o%s crtbegin.o%s"
 
-
 
-#undef LIB_SPEC
 
-#define        LIB_SPEC "\
 
-%{mads         : %(lib_ads)         ; \
 
-  myellowknife : %(lib_yellowknife) ; \
 
-  mmvme        : %(lib_mvme)        ; \
 
-  msim         : %(lib_sim)         ; \
 
-  mcall-freebsd: %(lib_freebsd)     ; \
 
-  mcall-linux  : %(lib_linux)       ; \
 
-  mcall-netbsd : %(lib_netbsd)      ; \
 
-  mcall-openbsd: %(lib_openbsd)     ; \
 
-               : %(lib_default)     }"
 
-
 
-#define LIB_DEFAULT_SPEC "-lc"
 
-
 
-#undef ENDFILE_SPEC
 
-#define        ENDFILE_SPEC "\
 
-%{mads         : %(endfile_ads)         ; \
 
-  myellowknife : %(endfile_yellowknife) ; \
 
-  mmvme        : %(endfile_mvme)        ; \
 
-  msim         : %(endfile_sim)         ; \
 
-  mcall-freebsd: %(endfile_freebsd)     ; \
 
-  mcall-linux  : %(endfile_linux)       ; \
 
-  mcall-netbsd : %(endfile_netbsd)      ; \
 
-  mcall-openbsd: %(endfile_openbsd)     ; \
 
-               : %(crtsavres_default) %(endfile_default)     }"
 
-
 
-#define CRTSAVRES_DEFAULT_SPEC ""
 
-
 
-#define        ENDFILE_DEFAULT_SPEC "crtend.o%s ecrtn.o%s"
 
-
 
-/* Motorola ADS support.  */
 
-#define LIB_ADS_SPEC "--start-group -lads -lc --end-group"
 
-
 
-#define        STARTFILE_ADS_SPEC "ecrti.o%s crt0.o%s crtbegin.o%s"
 
-
 
-#define        ENDFILE_ADS_SPEC "crtend.o%s ecrtn.o%s"
 
-
 
-#define LINK_START_ADS_SPEC "-T ads.ld%s"
 
-
 
-#define LINK_OS_ADS_SPEC ""
 
-
 
-#define CPP_OS_ADS_SPEC ""
 
-
 
-/* Motorola Yellowknife support.  */
 
-#define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group"
 
-
 
-#define        STARTFILE_YELLOWKNIFE_SPEC "ecrti.o%s crt0.o%s crtbegin.o%s"
 
-
 
-#define        ENDFILE_YELLOWKNIFE_SPEC "crtend.o%s ecrtn.o%s"
 
-
 
-#define LINK_START_YELLOWKNIFE_SPEC "-T yellowknife.ld%s"
 
-
 
-#define LINK_OS_YELLOWKNIFE_SPEC ""
 
-
 
-#define CPP_OS_YELLOWKNIFE_SPEC ""
 
-
 
-/* Motorola MVME support.  */
 
-#define LIB_MVME_SPEC "--start-group -lmvme -lc --end-group"
 
-
 
-#define        STARTFILE_MVME_SPEC "ecrti.o%s crt0.o%s crtbegin.o%s"
 
-
 
-#define        ENDFILE_MVME_SPEC "crtend.o%s ecrtn.o%s"
 
-
 
-#define LINK_START_MVME_SPEC "-Ttext 0x40000"
 
-
 
-#define LINK_OS_MVME_SPEC ""
 
-
 
-#define CPP_OS_MVME_SPEC ""
 
-
 
-/* PowerPC simulator based on netbsd system calls support.  */
 
-#define LIB_SIM_SPEC "--start-group -lsim -lc --end-group"
 
-
 
-#define        STARTFILE_SIM_SPEC "ecrti.o%s sim-crt0.o%s crtbegin.o%s"
 
-
 
-#define        ENDFILE_SIM_SPEC "crtend.o%s ecrtn.o%s"
 
-
 
-#define LINK_START_SIM_SPEC ""
 
-
 
-#define LINK_OS_SIM_SPEC "-m elf32ppcsim"
 
-
 
-#define CPP_OS_SIM_SPEC ""
 
-
 
-/* FreeBSD support.  */
 
-
 
-#define CPP_OS_FREEBSD_SPEC    "\
 
-  -D__PPC__ -D__ppc__ -D__PowerPC__ -D__powerpc__ \
 
-  -Acpu=powerpc -Amachine=powerpc"
 
-
 
-#define        STARTFILE_FREEBSD_SPEC  FBSD_STARTFILE_SPEC
 
-#define ENDFILE_FREEBSD_SPEC   FBSD_ENDFILE_SPEC
 
-#define LIB_FREEBSD_SPEC       FBSD_LIB_SPEC
 
-#define LINK_START_FREEBSD_SPEC        ""
 
-
 
-#define LINK_OS_FREEBSD_SPEC "\
 
-  %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
 
-  %{v:-V} \
 
-  %{assert*} %{R*} %{rpath*} %{defsym*} \
 
-  %{shared:-Bshareable %{h*} %{soname*}} \
 
-  %{!shared: \
 
-    %{!static: \
 
-      %{rdynamic: -export-dynamic} \
 
-      -dynamic-linker %(fbsd_dynamic_linker) } \
 
-    %{static:-Bstatic}} \
 
-  %{symbolic:-Bsymbolic}"
 
-
 
-/* GNU/Linux support.  */
 
-#define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } \
 
-%{!mnewlib: %{pthread:-lpthread} %{shared:-lc} \
 
-%{!shared: %{profile:-lc_p} %{!profile:-lc}}}"
 
-
 
-#ifdef HAVE_LD_PIE
 
-#define        STARTFILE_LINUX_SPEC "\
 
-%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
 
-%{mnewlib:ecrti.o%s;:crti.o%s} \
 
-%{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
-#else
 
-#define        STARTFILE_LINUX_SPEC "\
 
-%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}} \
 
-%{mnewlib:ecrti.o%s;:crti.o%s} \
 
-%{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
-#endif
 
-
 
-#define        ENDFILE_LINUX_SPEC "\
 
-%{shared|pie:crtendS.o%s;:crtend.o%s} \
 
-%{mnewlib:ecrtn.o%s;:crtn.o%s}"
 
-
 
-#define LINK_START_LINUX_SPEC ""
 
-
 
-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 
-#if DEFAULT_LIBC == LIBC_UCLIBC
 
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 
-#elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
 
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
 
-#else
 
-#error "Unsupported DEFAULT_LIBC"
 
-#endif
 
-#define GNU_USER_DYNAMIC_LINKER \
 
-  CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
 
-
 
-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 
-  %{rdynamic:-export-dynamic} \
 
-  -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
 
-
 
-#if defined(HAVE_LD_EH_FRAME_HDR)
 
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 
-#endif
 
-
 
-#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
 
-%{!undef:                                                        \
 
-  %{!ansi:                                                       \
 
-    %{!std=*:-Dunix -D__unix -Dlinux -D__linux}                          \
 
-    %{std=gnu*:-Dunix -D__unix -Dlinux -D__linux}}}              \
 
--Asystem=linux -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"
 
-
 
-/* NetBSD support.  */
 
-#define LIB_NETBSD_SPEC "\
 
--lc"
 
-
 
-#define        STARTFILE_NETBSD_SPEC "\
 
-ncrti.o%s crt0.o%s \
 
-%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
 
-
 
-#define ENDFILE_NETBSD_SPEC "\
 
-%{!shared:crtend.o%s} %{shared:crtendS.o%s} \
 
-ncrtn.o%s"
 
-
 
-#define LINK_START_NETBSD_SPEC "\
 
-"
 
-
 
-#define LINK_OS_NETBSD_SPEC "\
 
-%{!shared: %{!static: \
 
-  %{rdynamic:-export-dynamic} \
 
-  -dynamic-linker /usr/libexec/ld.elf_so}}"
 
-
 
-#define CPP_OS_NETBSD_SPEC "\
 
--D__powerpc__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__"
 
-
 
-/* OpenBSD support.  */
 
-#ifndef        LIB_OPENBSD_SPEC
 
-#define LIB_OPENBSD_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
 
-#endif
 
-
 
-#ifndef        STARTFILE_OPENBSD_SPEC
 
-#define        STARTFILE_OPENBSD_SPEC "\
 
-%{!shared: %{pg:gcrt0.o%s} %{!pg:%{p:gcrt0.o%s} %{!p:crt0.o%s}}} \
 
-%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
 
-#endif
 
-
 
-#ifndef        ENDFILE_OPENBSD_SPEC
 
-#define        ENDFILE_OPENBSD_SPEC "\
 
-%{!shared:crtend.o%s} %{shared:crtendS.o%s}"
 
-#endif
 
-
 
-#ifndef LINK_START_OPENBSD_SPEC
 
-#define LINK_START_OPENBSD_SPEC "-Ttext 0x400074"
 
-#endif
 
-
 
-#ifndef LINK_OS_OPENBSD_SPEC
 
-#define LINK_OS_OPENBSD_SPEC ""
 
-#endif
 
-
 
-#ifndef CPP_OS_OPENBSD_SPEC
 
-#define CPP_OS_OPENBSD_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
 
-#endif
 
-
 
-/* Define any extra SPECS that the compiler needs to generate.  */
 
-/* Override rs6000.h definition.  */
 
-#undef SUBTARGET_EXTRA_SPECS
 
-#define        SUBTARGET_EXTRA_SPECS                                           \
 
-  { "crtsavres_default",       CRTSAVRES_DEFAULT_SPEC },               \
 
-  { "lib_ads",                 LIB_ADS_SPEC },                         \
 
-  { "lib_yellowknife",         LIB_YELLOWKNIFE_SPEC },                 \
 
-  { "lib_mvme",                        LIB_MVME_SPEC },                        \
 
-  { "lib_sim",                 LIB_SIM_SPEC },                         \
 
-  { "lib_freebsd",             LIB_FREEBSD_SPEC },                     \
 
-  { "lib_linux",               LIB_LINUX_SPEC },                       \
 
-  { "lib_netbsd",              LIB_NETBSD_SPEC },                      \
 
-  { "lib_openbsd",             LIB_OPENBSD_SPEC },                     \
 
-  { "lib_default",             LIB_DEFAULT_SPEC },                     \
 
-  { "startfile_ads",           STARTFILE_ADS_SPEC },                   \
 
-  { "startfile_yellowknife",   STARTFILE_YELLOWKNIFE_SPEC },           \
 
-  { "startfile_mvme",          STARTFILE_MVME_SPEC },                  \
 
-  { "startfile_sim",           STARTFILE_SIM_SPEC },                   \
 
-  { "startfile_freebsd",       STARTFILE_FREEBSD_SPEC },               \
 
-  { "startfile_linux",         STARTFILE_LINUX_SPEC },                 \
 
-  { "startfile_netbsd",                STARTFILE_NETBSD_SPEC },                \
 
-  { "startfile_openbsd",       STARTFILE_OPENBSD_SPEC },               \
 
-  { "startfile_default",       STARTFILE_DEFAULT_SPEC },               \
 
-  { "endfile_ads",             ENDFILE_ADS_SPEC },                     \
 
-  { "endfile_yellowknife",     ENDFILE_YELLOWKNIFE_SPEC },             \
 
-  { "endfile_mvme",            ENDFILE_MVME_SPEC },                    \
 
-  { "endfile_sim",             ENDFILE_SIM_SPEC },                     \
 
-  { "endfile_freebsd",         ENDFILE_FREEBSD_SPEC },                 \
 
-  { "endfile_linux",           ENDFILE_LINUX_SPEC },                   \
 
-  { "endfile_netbsd",          ENDFILE_NETBSD_SPEC },                  \
 
-  { "endfile_openbsd",         ENDFILE_OPENBSD_SPEC },                 \
 
-  { "endfile_default",         ENDFILE_DEFAULT_SPEC },                 \
 
-  { "link_shlib",              LINK_SHLIB_SPEC },                      \
 
-  { "link_start",              LINK_START_SPEC },                      \
 
-  { "link_start_ads",          LINK_START_ADS_SPEC },                  \
 
-  { "link_start_yellowknife",  LINK_START_YELLOWKNIFE_SPEC },          \
 
-  { "link_start_mvme",         LINK_START_MVME_SPEC },                 \
 
-  { "link_start_sim",          LINK_START_SIM_SPEC },                  \
 
-  { "link_start_freebsd",      LINK_START_FREEBSD_SPEC },              \
 
-  { "link_start_linux",                LINK_START_LINUX_SPEC },                \
 
-  { "link_start_netbsd",       LINK_START_NETBSD_SPEC },               \
 
-  { "link_start_openbsd",      LINK_START_OPENBSD_SPEC },              \
 
-  { "link_start_default",      LINK_START_DEFAULT_SPEC },              \
 
-  { "link_os",                 LINK_OS_SPEC },                         \
 
-  { "link_os_ads",             LINK_OS_ADS_SPEC },                     \
 
-  { "link_os_yellowknife",     LINK_OS_YELLOWKNIFE_SPEC },             \
 
-  { "link_os_mvme",            LINK_OS_MVME_SPEC },                    \
 
-  { "link_os_sim",             LINK_OS_SIM_SPEC },                     \
 
-  { "link_os_freebsd",         LINK_OS_FREEBSD_SPEC },                 \
 
-  { "link_os_linux",           LINK_OS_LINUX_SPEC },                   \
 
-  { "link_os_netbsd",          LINK_OS_NETBSD_SPEC },                  \
 
-  { "link_os_openbsd",         LINK_OS_OPENBSD_SPEC },                 \
 
-  { "link_os_default",         LINK_OS_DEFAULT_SPEC },                 \
 
-  { "cc1_secure_plt_default",  CC1_SECURE_PLT_DEFAULT_SPEC },          \
 
-  { "cpp_os_ads",              CPP_OS_ADS_SPEC },                      \
 
-  { "cpp_os_yellowknife",      CPP_OS_YELLOWKNIFE_SPEC },              \
 
-  { "cpp_os_mvme",             CPP_OS_MVME_SPEC },                     \
 
-  { "cpp_os_sim",              CPP_OS_SIM_SPEC },                      \
 
-  { "cpp_os_freebsd",          CPP_OS_FREEBSD_SPEC },                  \
 
-  { "cpp_os_linux",            CPP_OS_LINUX_SPEC },                    \
 
-  { "cpp_os_netbsd",           CPP_OS_NETBSD_SPEC },                   \
 
-  { "cpp_os_openbsd",          CPP_OS_OPENBSD_SPEC },                  \
 
-  { "cpp_os_default",          CPP_OS_DEFAULT_SPEC },                  \
 
-  { "fbsd_dynamic_linker",     FBSD_DYNAMIC_LINKER },                  \
 
-  SUBSUBTARGET_EXTRA_SPECS
 
-
 
-#define        SUBSUBTARGET_EXTRA_SPECS
 
-
 
-/* Define this macro as a C expression for the initializer of an
 
-   array of string to tell the driver program which options are
 
-   defaults for this target and thus do not need to be handled
 
-   specially when using `MULTILIB_OPTIONS'.
 
-
 
-   Do not define this macro if `MULTILIB_OPTIONS' is not defined in
 
-   the target makefile fragment or if none of the options listed in
 
-   `MULTILIB_OPTIONS' are set by default.  *Note Target Fragment::.  */
 
-
 
-#define        MULTILIB_DEFAULTS { "mbig", "mcall-sysv" }
 
-
 
-/* Define this macro if the code for function profiling should come
 
-   before the function prologue.  Normally, the profiling code comes
 
-   after.  */
 
-#define PROFILE_BEFORE_PROLOGUE 1
 
-
 
-/* Function name to call to do profiling.  */
 
-#define RS6000_MCOUNT "_mcount"
 
-
 
-/* Select a format to encode pointers in exception handling data.  CODE
 
-   is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
 
-   true if the symbol may be affected by dynamic relocations.  */
 
-#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)                           \
 
-  ((flag_pic || TARGET_RELOCATABLE)                                         \
 
-   ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
 
-   : DW_EH_PE_absptr)
 
-
 
-#define DOUBLE_INT_ASM_OP "\t.quad\t"
 
-
 
-/* Generate entries in .fixup for relocatable addresses.  */
 
-#define RELOCATABLE_NEEDS_FIXUP 1
 
-
 
-#define TARGET_ASM_FILE_END rs6000_elf_file_end
 
-
 
-#undef TARGET_ASAN_SHADOW_OFFSET
 
-#define TARGET_ASAN_SHADOW_OFFSET rs6000_asan_shadow_offset
 
-
 
-/* This target uses the sysv4.opt file.  */
 
-#define TARGET_USES_SYSV4_OPT 1
 
-
 
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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/s390/linux.h  2016-03-08 04:57:02.966902587 -0500
+++ 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 1399... Line 450...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/sh/linux.h    2016-03-08 04:57:02.966902587 -0500
+++ 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 1411... Line 462...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/sparc/linux64.h       2016-03-08 04:57:02.966902587 -0500
+++ 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 1434... Line 485...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/sparc/linux.h 2016-03-08 04:57:02.966902587 -0500
+++ 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 1446... Line 497...
+#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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/vax/linux.h   2016-03-08 04:57:02.966902587 -0500
+++ 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 1458... Line 509...
+      -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-02-05 15:18:17.493469779 -0500
--- gcc-5.3.0-original/gcc/config/xtensa/linux.h        2016-03-08 04:57:02.966902587 -0500
+++ 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 1608... Line 659...
+       # 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-05 20:33:58.899277709 -0500
+++ gcc-5.3.0-zip/gcc/config/zip/zip.c  2016-03-08 04:27:14.906499512 -0500
@@ -0,0 +1,2160 @@
@@ -0,0 +1,2175 @@
+////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+//
+//
+// 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 1735... Line 786...
+static bool    zip_can_eliminate(int from ATTRIBUTE_UNUSED, int to);
+static bool    zip_can_eliminate(int from ATTRIBUTE_UNUSED, int to);
+// static      void    zip_canonicalize_comparison(int *, rtx *, rtx *, bool);
+// static      void    zip_canonicalize_comparison(int *, rtx *, rtx *, bool);
+static int     zip_memory_move_cost(machine_mode, reg_class_t, bool);
+static int     zip_memory_move_cost(machine_mode, reg_class_t, bool);
+
+
+
+
+#define        ALL_DEBUG_OFF   true
+#define        ALL_DEBUG_OFF   false
+#define        ALL_DEBUG_ON    false
+#define        ALL_DEBUG_ON    false
+
+
+enum ZIP_BUILTIN_ID_CODE {
+enum ZIP_BUILTIN_ID_CODE {
+       ZIP_BUILTIN_RTU,
+       ZIP_BUILTIN_RTU,
+       ZIP_BUILTIN_HALT,
+       ZIP_BUILTIN_HALT,
Line 1985... Line 1036...
+       // arguments in our frame or not.  Once this fails, let's look
+       // arguments in our frame or not.  Once this fails, let's look
+       // at what the problem was and then whether or not we can detect
+       // at what the problem was and then whether or not we can detect
+       // it.
+       // it.
+       //
+       //
+       // Use a GCC global to determine our answer
+       // Use a GCC global to determine our answer
 
+       if (cfun->calls_alloca)
 
+               return true;
+       return (frame_pointer_needed);
+       return (frame_pointer_needed);
+//     return (cfun->calls_alloca);
 
+/*
+/*
+       fprintf(stderr, "ZIP_FRAME_POINTER_REQUIRED()\n");
+       fprintf(stderr, "ZIP_FRAME_POINTER_REQUIRED()\n");
+       if (frame_pointer_needed) {
+       if (frame_pointer_needed) {
+               fprintf(stderr, "FRAME_POINTER_NEEDED is true\n");
+               fprintf(stderr, "FRAME_POINTER_NEEDED is true\n");
+               zip_debug_rtx(frame_pointer_rtx);
+               zip_debug_rtx(frame_pointer_rtx);
Line 2105... Line 1157...
+       rtx     insn;
+       rtx     insn;
+
+
+       const bool      dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF);
+       const bool      dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF);
+       zip_compute_frame();
+       zip_compute_frame();
+
+
 
+       if (dbg)  fprintf(stderr, "Computing Prologue instructions\n");
+       if (cfun->machine->size_for_adjusting_sp != 0) {
+       if (cfun->machine->size_for_adjusting_sp != 0) {
+               insn = emit_insn(gen_subsi3(stack_pointer_rtx,
+               insn = emit_insn(gen_subsi3(stack_pointer_rtx,
+                               stack_pointer_rtx,
+                               stack_pointer_rtx,
+                       gen_int_mode(cfun->machine->size_for_adjusting_sp,
+                       gen_int_mode(cfun->machine->size_for_adjusting_sp,
+                               SImode)));
+                               SImode)));
Line 2128... Line 1181...
+                                               +offset++, true)),
+                                               +offset++, true)),
+                                       gen_rtx_REG(SImode, regno)));
+                                       gen_rtx_REG(SImode, regno)));
+                               RTX_FRAME_RELATED_P(insn) = 1;
+                               RTX_FRAME_RELATED_P(insn) = 1;
+                       }
+                       }
+               }
+               }
 
+               if (dbg)  fprintf(stderr, "%d registers saved%s\n", offset,
 
+                       (crtl->saves_all_registers)?", should be all of them":", less than all");
+       }
+       }
+
+
+       if (cfun->machine->fp_needed) {
+       if (cfun->machine->fp_needed) {
+               if (dbg) zip_debug_rtx(stack_pointer_rtx);
+               if (dbg) zip_debug_rtx(stack_pointer_rtx);
+               if (dbg) zip_debug_rtx(frame_pointer_rtx);
+               if (dbg) zip_debug_rtx(frame_pointer_rtx);
+               insn = emit_insn(gen_movsi_reg_off(frame_pointer_rtx,
+               insn = emit_insn(gen_movsi_reg_off(frame_pointer_rtx,
+                               stack_pointer_rtx, gen_int_mode(
+                               stack_pointer_rtx, gen_int_mode(
+                                               cfun->machine->sp_fp_offset,
+                                               cfun->machine->sp_fp_offset,
+                                               SImode)));
+                                               SImode)));
+               RTX_FRAME_RELATED_P(insn) = 1;
+               RTX_FRAME_RELATED_P(insn) = 1;
 
+               if (dbg)  fprintf(stderr, "sp_fp_offset is %d\n", cfun->machine->sp_fp_offset);
+       }
+       }
+}
+}
+
+
+bool
+bool
+zip_use_return_insn(void)
+zip_use_return_insn(void)
Line 3067... Line 2123...
+
+
+
+
+static bool
+static bool
+zip_legitimate_operand_address(const_rtx x, bool strict)
+zip_legitimate_operand_address(const_rtx x, bool strict)
+{
+{
+       const bool      dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF);
+       const bool      dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF);
+
+
+       if (dbg) fprintf(stderr, "ZIP-LEGITIMATE-OPERAND-ADDRESS\n");
+       if (dbg) fprintf(stderr, "ZIP-LEGITIMATE-OPERAND-ADDRESS\n");
+       if (dbg) zip_debug_rtx_pfx("Test: ", x);
+       if (dbg) zip_debug_rtx_pfx("Test: ", x);
+
+
+       /*
+       /*
Line 3114... Line 2170...
+                       return false;
+                       return false;
+               } if ((GET_CODE(XEXP(x, 1)) == CONST_INT)
+               } if ((GET_CODE(XEXP(x, 1)) == CONST_INT)
+                       &&(INTVAL(XEXP(x, 1)) <= zip_max_anchor_offset)
+                       &&(INTVAL(XEXP(x, 1)) <= zip_max_anchor_offset)
+                       &&(INTVAL(XEXP(x, 1)) >= zip_min_anchor_offset)) {
+                       &&(INTVAL(XEXP(x, 1)) >= zip_min_anchor_offset)) {
+                       if (dbg) fprintf(stderr, "ZIP-LEGITIMATE-OPERAND-ADDRESS -> YES! (reg+int)\n");
+                       if (dbg) fprintf(stderr, "ZIP-LEGITIMATE-OPERAND-ADDRESS -> YES! (reg+int)\n");
 
+                       // if((INTVAL(XEXP(x,1))<0)&&(REGNO(XEXP(x,0))==zip_SP))
 
+                               // gcc_unreachable();
+                       return true;
+                       return true;
+               } if ((GET_CODE(XEXP(x, 1)) == LABEL_REF)
+               } if ((GET_CODE(XEXP(x, 1)) == LABEL_REF)
+                       ||(GET_CODE(XEXP(x, 1)) == SYMBOL_REF)) {
+                       ||(GET_CODE(XEXP(x, 1)) == SYMBOL_REF)) {
+                       // While we can technically support this, the problem
+                       // While we can technically support this, the problem
+                       // is that the symbol address could be anywhere, and we
+                       // is that the symbol address could be anywhere, and we
Line 3335... Line 2393...
+*/
+*/
+
+
+#define        SREG_P(RTX) ((REG_P(RTX))||(SUBREG_P(RTX)))
+#define        SREG_P(RTX) ((REG_P(RTX))||(SUBREG_P(RTX)))
+
+
+bool   zip_gen_move_rtl(rtx dst, rtx src) {
+bool   zip_gen_move_rtl(rtx dst, rtx src) {
+       const bool      dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF);
+       const bool      dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF);
+
+
+       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE\n");
+       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE\n");
+       if (dbg) zip_debug_rtx_pfx("FROM: ", src);
+       if (dbg) zip_debug_rtx_pfx("FROM: ", src);
+       if (dbg) zip_debug_rtx_pfx("TO  : ", dst);
+       if (dbg) zip_debug_rtx_pfx("TO  : ", dst);
+       if (dbg) fprintf(stderr, "PSEUDOs: %s\n", can_create_pseudo_p()?"true":"false");
+       if (dbg) fprintf(stderr, "PSEUDOs: %s\n", can_create_pseudo_p()?"true":"false");
Line 3349... Line 2407...
+               emit_insn(gen_movsi_reg(dst, src));
+               emit_insn(gen_movsi_reg(dst, src));
+       } else if ((MEM_P(dst))&&(MEM_P(XEXP(dst,0)))) {
+       } else if ((MEM_P(dst))&&(MEM_P(XEXP(dst,0)))) {
+               if (can_create_pseudo_p()) {
+               if (can_create_pseudo_p()) {
+                       rtx     tmp = gen_reg_rtx(Pmode);
+                       rtx     tmp = gen_reg_rtx(Pmode);
+                       zip_gen_move_rtl(tmp, XEXP(dst,0));
+                       zip_gen_move_rtl(tmp, XEXP(dst,0));
 
+                       // mark_reg_pointer(tmp,0);
+                       zip_gen_move_rtl(gen_rtx_MEM(GET_MODE(src), tmp), src);
+                       zip_gen_move_rtl(gen_rtx_MEM(GET_MODE(src), tmp), src);
+               } else {
+               } else {
+                       fprintf(stderr, "ZIP:Cannot move into mem w/o pseudo\n");
+                       fprintf(stderr, "ZIP:Cannot move into mem w/o pseudo\n");
+                       return false;
+                       return false;
+               }
+               }
+       } else if ((MEM_P(src))&&(MEM_P(XEXP(src,0)))) {
+       } else if ((MEM_P(src))&&(MEM_P(XEXP(src,0)))) {
+               if (can_create_pseudo_p()) {
+               if (can_create_pseudo_p()) {
+                       rtx     tmp = gen_reg_rtx(Pmode);
+                       rtx     tmp = gen_reg_rtx(Pmode);
+                       zip_gen_move_rtl(tmp, XEXP(src,0));
+                       zip_gen_move_rtl(tmp, XEXP(src,0));
 
+                       // mark_reg_pointer(tmp,0);
+                       zip_gen_move_rtl(dst, gen_rtx_MEM(GET_MODE(src), tmp));
+                       zip_gen_move_rtl(dst, gen_rtx_MEM(GET_MODE(src), tmp));
+               } else {
+               } else {
+                       fprintf(stderr, "ZIP: Cannot move from mem(mem(ptr)) w/o pseudo\n");
+                       fprintf(stderr, "ZIP: Cannot move from mem(mem(ptr)) w/o pseudo\n");
+                       return false;
+                       return false;
+               }
+               }
Line 3404... Line 2464...
+               // Memory load
+               // Memory load
+               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD\n");
+               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD\n");
+               if (zip_legitimate_operand_address(XEXP(src, 0), false)) {
+               if (zip_legitimate_operand_address(XEXP(src, 0), false)) {
+                       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/SIMPLE-LOD(ADDR)\n");
+                       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/SIMPLE-LOD(ADDR)\n");
+                       if (dbg) zip_debug_rtx_pfx("Smple-Addr: ", src);
+                       if (dbg) zip_debug_rtx_pfx("Smple-Addr: ", src);
+                       if (REG_P(XEXP(src,0)))
+                       // if (REG_P(XEXP(src,0)))
+                               mark_reg_pointer(XEXP(src,0),0);
+                               // mark_reg_pointer(XEXP(src,0),0);
+                       else if ((GET_CODE(XEXP(src,0))==PLUS)
+                       // else if ((GET_CODE(XEXP(src,0))==PLUS)
+                                       &&(REG_P(XEXP(XEXP(src,0),0))))
+                                       // &&(REG_P(XEXP(XEXP(src,0),0))))
+                               mark_reg_pointer(XEXP(XEXP(src,0),0),0);
+                               // mark_reg_pointer(XEXP(XEXP(src,0),0),0);
+                       emit_insn(gen_movsi_lod(dst, src));
+                       emit_insn(gen_movsi_lod(dst, src));
+               } else if (zip_const_address_operand(XEXP(src,0))) {
+               } else if (zip_const_address_operand(XEXP(src,0))) {
+                       if (can_create_pseudo_p()) {
+                       if (can_create_pseudo_p()) {
+                               rtx     tmp;
+                               rtx     tmp;
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD(CONST-ADDR)\n");
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD(CONST-ADDR)\n");
+                               tmp = gen_reg_rtx(Pmode);
+                               tmp = gen_reg_rtx(Pmode);
+                               mark_reg_pointer(tmp,0);
 
+                               emit_insn(gen_movsi_ldi(tmp, XEXP(src,0)));
+                               emit_insn(gen_movsi_ldi(tmp, XEXP(src,0)));
 
+                               // mark_reg_pointer(tmp,0);
+                               emit_insn(gen_movsi_lod(dst, gen_rtx_MEM(GET_MODE(src),tmp)));
+                               emit_insn(gen_movsi_lod(dst, gen_rtx_MEM(GET_MODE(src),tmp)));
+                       } else {
+                       } else {
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD(CONST-ADDR,SELF)\n");
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD(CONST-ADDR,SELF)\n");
+                               emit_insn(gen_movsi_ldi(dst, XEXP(src,0)));
+                               emit_insn(gen_movsi_ldi(dst, XEXP(src,0)));
+                               emit_insn(gen_movsi_lod(dst, gen_rtx_MEM(GET_MODE(src),dst)));
+                               emit_insn(gen_movsi_lod(dst, gen_rtx_MEM(GET_MODE(src),dst)));
Line 3432... Line 2492...
+               // Memory store
+               // Memory store
+               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO\n");
+               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO\n");
+               if (zip_legitimate_operand_address(XEXP(dst, 0), false)) {
+               if (zip_legitimate_operand_address(XEXP(dst, 0), false)) {
+                       // If it's a legitimate address already, do nothing mor
+                       // If it's a legitimate address already, do nothing mor
+                       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO(Legit Addr)--EMIT\n");
+                       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO(Legit Addr)--EMIT\n");
 
+                       // if (REG_P(XEXP(dst,0)))
 
+                               // mark_reg_pointer(XEXP(dst,0),0);
 
+                       // else if ((GET_CODE(XEXP(dst,0))==PLUS)
 
+                                       // &&(REG_P(XEXP(XEXP(dst,0),0))))
 
+                               // mark_reg_pointer(XEXP(XEXP(dst,0),0),0);
+                       emit_insn(gen_movsi_sto(dst, src));
+                       emit_insn(gen_movsi_sto(dst, src));
+               } else if (zip_const_address_operand(XEXP(dst,0))) {
+               } else if (zip_const_address_operand(XEXP(dst,0))) {
+                       rtx     tmp;
+                       rtx     tmp;
+
+
+                       if (can_create_pseudo_p()) {
+                       if (can_create_pseudo_p()) {
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO(Const Addr,Reg) -- EMIT\n");
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO(Const Addr,Reg) -- EMIT\n");
+                               // Otherwise we need to load the memory address
+                               // Otherwise we need to load the memory address
+                               // into a register
+                               // into a register
+                               tmp = gen_reg_rtx(Pmode);
+                               tmp = gen_reg_rtx(Pmode);
+                               mark_reg_pointer(tmp,0);
+                               // mark_reg_pointer(tmp,0);
+                               emit_insn(gen_movsi_ldi(tmp, XEXP(dst,0)));
+                               emit_insn(gen_movsi_ldi(tmp, XEXP(dst,0)));
+                               //
+                               //
+                               // Then we can do our load
+                               // Then we can do our load
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO -- emit\n");
+                               if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/STO -- emit\n");
+                               emit_insn(gen_movsi_sto(gen_rtx_MEM(GET_MODE(src), tmp), src));
+                               emit_insn(gen_movsi_sto(gen_rtx_MEM(GET_MODE(src), tmp), src));
Line 3509... Line 2574...
+       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE -- DONE\n");
+       if (dbg) fprintf(stderr, "ZIP-GEN-MOVE -- DONE\n");
+       return true;
+       return true;
+}
+}
+
+
+const char *zip_set_zero_or_one(rtx condition, rtx dst) {
+const char *zip_set_zero_or_one(rtx condition, rtx dst) {
+       const bool      dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF);
+       const bool      dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF);
+       if (dbg) fprintf(stderr, "ZIP::SET-ZERO-OR-ONE\n");
+       if (dbg) fprintf(stderr, "ZIP::SET-ZERO-OR-ONE\n");
+       if (dbg) zip_debug_rtx_pfx("CND", condition);
+       if (dbg) zip_debug_rtx_pfx("CND", condition);
+       if (dbg) zip_debug_rtx_pfx("REG", dst);
+       if (dbg) zip_debug_rtx_pfx("REG", dst);
+       switch(GET_CODE(condition)) {
+       switch(GET_CODE(condition)) {
+       case EQ:        return "LDI\t0,%0\n\tLDILO.Z\t1,%0";
+       case EQ:        return "LDI\t0,%0\n\tLDILO.Z\t1,%0";
Line 3602... Line 2667...
+                       return NULL;
+                       return NULL;
+       } return result;
+       } return result;
+}
+}
+
+
+const char *zip_movsicc(rtx dst, rtx condition, rtx iftrue, rtx iffalse) {
+const char *zip_movsicc(rtx dst, rtx condition, rtx iftrue, rtx iffalse) {
+       const bool      dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF);
+       const bool      dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF);
+       if (dbg) fprintf(stderr, "ZIP::MOVSICC\n");
+       if (dbg) fprintf(stderr, "ZIP::MOVSICC\n");
+       if (dbg) zip_debug_rtx_pfx("DST", dst);
+       if (dbg) zip_debug_rtx_pfx("DST", dst);
+       if (dbg) zip_debug_rtx_pfx("CND", condition);
+       if (dbg) zip_debug_rtx_pfx("CND", condition);
+       if (dbg) zip_debug_rtx_pfx("TRU", iftrue);
+       if (dbg) zip_debug_rtx_pfx("TRU", iftrue);
+       if (dbg) zip_debug_rtx_pfx("FAL", iffalse);
+       if (dbg) zip_debug_rtx_pfx("FAL", iffalse);
Line 3762... Line 2827...
+               }
+               }
+       }
+       }
+*/
+*/
+}
+}
+
+
+static int     zip_memory_move_cost(machine_mode mode, reg_class_t ATTRIBUTE_UNUSED, bool in) {
+static int     zip_memory_move_cost(machine_mode mode, reg_class_t ATTRIBUTE_UNUSED, bool in ATTRIBUTE_UNUSED) {
+       int     rv = 14;
+       int     rv = 14;
+       if ((mode == DImode)||(mode == DFmode))
+       if ((mode == DImode)||(mode == DFmode))
+               rv += 2;
+               rv += 2;
+       return rv;
+       return rv;
+}
+}
+
+
 
+// #warning "How do we tell the compiler LDI label is expensive as 2 ops"?
+
+
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-05 12:28:06.303411350 -0500
+++ gcc-5.3.0-zip/gcc/config/zip/zip.h  2016-03-07 20:19:32.623843475 -0500
@@ -0,0 +1,3667 @@
@@ -0,0 +1,3707 @@
+////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+//
+//
+// 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 3847... Line 2913...
+#define        ENDFILE_SPEC    ""
+#define        ENDFILE_SPEC    ""
+
+
+#undef LIB_SPEC
+#undef LIB_SPEC
+#define        LIB_SPEC        "%{!g:-lc} %{g:-lg} -lzip"
+#define        LIB_SPEC        "%{!g:-lc} %{g:-lg} -lzip"
+
+
 
+// #define     zip_FP_PSEUDO   16
+#define        zip_PC  15
+#define        zip_PC  15
+#define        zip_CC  14
+#define        zip_CC  14
+#define        zip_SP  13
+#define        zip_SP  13
+#define        zip_FP  12
+#define        zip_FP  12
+#define        zip_GOT 11
+#define        zip_GOT 11
Line 4052... Line 3119...
+ * support all of these bells and whistles when full functionality is even
+ * support all of these bells and whistles when full functionality is even
+ * achieved.  Therefore, we won't support these modes.  However, we can't just
+ * achieved.  Therefore, we won't support these modes.  However, we can't just
+ * set this to zero, so let's come back to this.
+ * set this to zero, so let's come back to this.
+ */
+ */
+// #warning "Wrong answer encoded to date"
+// #warning "Wrong answer encoded to date"
+// #undef      TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P(X)
+// #undef      TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P
+// #define     TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P(X) 0
+// #define     TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P(X) 0
+
+
+/* 17.04 Defining data structures for per-function information */
+/* 17.04 Defining data structures for per-function information */
+
+
+/* INIT_EXPANDERS ... Macro called to initialize any target specific
+/* INIT_EXPANDERS ... Macro called to initialize any target specific
Line 4261... Line 3328...
+ * ZipCPU--let's go with the default behavior.
+ * ZipCPU--let's go with the default behavior.
+ */
+ */
+#define        DEFAULT_SIGNED_CHAR     1
+#define        DEFAULT_SIGNED_CHAR     1
+
+
+/* TARGET_DEFAULT_SHORT_ENUMS(VOID) ... This target hook should return true if
+/* TARGET_DEFAULT_SHORT_ENUMS(VOID) ... This target hook should return true if
+ * the compiler should give an enum type onyl as many bytes as it takes to
+ * the compiler should give an enum type only as many bytes as it takes to
+ * represent the range of possible values of that type.  It should return
+ * represent the range of possible values of that type.  It should return
+ * false if all enum types should be allocated like int.
+ * false if all enum types should be allocated like int.
+ *
+ *
+ * The default is to return false.  This is what the ZipCPU needs, so we won't
+ * The default is to return false.  This is what the ZipCPU needs, so we won't
+ * override it.
+ * override it.
Line 4312... Line 3379...
+
+
+/* WINT_TYPE ... A C expression for a string describing the name of the data
+/* WINT_TYPE ... A C expression for a string describing the name of the data
+ * type to use for wide characters passed to printf and returned from getwc.
+ * type to use for wide characters passed to printf and returned from getwc.
+ * The typedef name wint_t is defined using the contents of the string.  See
+ * The typedef name wint_t is defined using the contents of the string.  See
+ *
+ *
+ * If you don't define this macro, the default is "unsigned int"--also best
+ * ZipCPU -- If you don't define this macro, the default is "unsigned int"--also
+ * for us again.
+ * best for us again.
+ */
+ */
+
+
+/* INTMAX_TYPE ... A C expression for a string describing the name of the
+/* INTMAX_TYPE ... A C expression for a string describing the name of the
+ * data type that can represent any value of any standard or extended signed
+ * data type that can represent any value of any standard or extended signed
+ * integer type.  The typedef name intmax_t is defined using the contents of
+ * integer type.  The typedef name intmax_t is defined using the contents of
Line 4416... Line 3483...
+ * with it.
+ * with it.
+ */
+ */
+#ifdef DEFINE_USER_REGS
+#ifdef DEFINE_USER_REGS
+#define        FIRST_PSEUDO_REGISTER   32
+#define        FIRST_PSEUDO_REGISTER   32
+#else
+#else
 
+#  ifdef       zip_FP_PSEUDO
 
+#    define    FIRST_PSEUDO_REGISTER   (zip_FP_PSEUDO+1)
 
+#  else
+#define        FIRST_PSEUDO_REGISTER   16
+#define        FIRST_PSEUDO_REGISTER   16
+#endif
+#endif
 
+#endif
+
+
+/* FIXED_REGISTERS ... An initializer that says which registers are used for
+/* FIXED_REGISTERS ... An initializer that says which registers are used for
+ * fixed purposes all throughout the compiled code and are therefore not
+ * fixed purposes all throughout the compiled code and are therefore not
+ * available for general allocation.  These would include the stack pointer, the
+ * available for general allocation.  These would include the stack pointer, the
+ * frame pointer (except on machines where that can be used as a general
+ * frame pointer (except on machines where that can be used as a general
Line 4441... Line 3512...
+ *     PC      The program counter
+ *     PC      The program counter
+ *
+ *
+ * Other registers, such as FP (the frame pointer) or GBL (the global offset
+ * Other registers, such as FP (the frame pointer) or GBL (the global offset
+ * table pointer) are registers that we hope will not be so fixed.
+ * table pointer) are registers that we hope will not be so fixed.
+ */
+ */
 
+#ifdef zip_FP_PSEUDO
 
+#  define      FIXED_REGISTERS         { 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1 }
 
+#else
+#define        FIXED_REGISTERS         { 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1 }
+#define        FIXED_REGISTERS         { 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1 }
 
+#endif
+
+
+/* CALL_USED_REGISTERS ... like FIXED_REGISTERS but has 1 for each register
+/* CALL_USED_REGISTERS ... like FIXED_REGISTERS but has 1 for each register
+ * that is clobbered (in general) by function calls as well as for fixed
+ * that is clobbered (in general) by function calls as well as for fixed
+ * registers.  This macro therefore identifies the registers that are not
+ * registers.  This macro therefore identifies the registers that are not
+ * available for general allocation of values that must live across function
+ * available for general allocation of values that must live across function
Line 4456... Line 3531...
+ * used within the function.
+ * used within the function.
+ *
+ *
+ * On the Zip CPU, we must save R0 (the return address), and (let's pick) any
+ * On the Zip CPU, we must save R0 (the return address), and (let's pick) any
+ * register above R5.
+ * register above R5.
+ */
+ */
 
+#ifdef zip_FP_PSEUDO
 
+#  define      CALL_USED_REGISTERS     { 0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1 }
 
+#else
+#define        CALL_USED_REGISTERS     { 0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1 }
+#define        CALL_USED_REGISTERS     { 0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1 }
 
+#endif
+
+
+/* CALL_REALLY_USED_REGISTERS ...  optional macro that, if not defined, defaults
+/* CALL_REALLY_USED_REGISTERS ...  optional macro that, if not defined, defaults
+ * to the value of CALL_USED_REGISTERS.
+ * to the value of CALL_USED_REGISTERS.
+ */
+ */
+
+
+/* HARD_REGNO_CALL_PART_CLOBBERED(REGNO,MODE) ... A C expression that is nonzero
+/* HARD_REGNO_CALL_PART_CLOBBERED(REGNO,MODE) ... A C expression that is nonzero
+ * if it is not permissible to store a value of mode MODE in hard register REGNO
+ * if it is not permissible to store a value of mode MODE in hard register REGNO
+ * across a call without some part of it being clobbbered.  For most machines,
+ * across a call without some part of it being clobbbered.  For most machines,
+ * this macro need not be defined.  It is only required for machines that do
+ * this macro need not be defined.  It is only required for machines that do
+ * not preserve the eentire contents of a register across a call.
+ * not preserve the entire contents of a register across a call.
+ *
+ *
+ * In the Zip CPU, we clobber R0 with our return address during a call, so let's
+ * In the Zip CPU, we clobber R0 with our return address during a call, so let's
+ * make sure this gets included here.
+ * make sure this gets included here.
+ */
+ */
+#define        HARD_REGNO_CALL_PART_CLOBBERED(REGNO,MODE)      (REGNO==0)
+#define        HARD_REGNO_CALL_PART_CLOBBERED(REGNO,MODE)      (REGNO==0)
Line 4513... Line 3592...
+
+
+/* REG_ALLOC_ORDER ... If defined, an initializer for a vector of integers,
+/* REG_ALLOC_ORDER ... If defined, an initializer for a vector of integers,
+ * containing the number of hard registers in the order in which GCC should
+ * containing the number of hard registers in the order in which GCC should
+ * prefer to use them (from most preferred to least.
+ * prefer to use them (from most preferred to least.
+ *
+ *
+ * If this macro is not definedd, registers are used lowest numbered first (all
+ * If this macro is not defined, registers are used lowest numbered first (all
+ * else being equal).
+ * else being equal).
+ *
+ *
+ * Since the default is the ZipCPU desired case, we won't define this here.
+ * Since the default is the ZipCPU desired case, we won't define this here.
+ */
+ */
+
+
Line 4577... Line 3656...
+ * ZipCPU ---
+ * ZipCPU ---
+ */
+ */
+// #define     REGMODE_NATURAL_SIZE(MODE)      (((MODE)==DImode)?2:1)
+// #define     REGMODE_NATURAL_SIZE(MODE)      (((MODE)==DImode)?2:1)
+
+
+/* HARD_REGNO_MODE_OK ... A C expression that is nonzero if it is permissible
+/* HARD_REGNO_MODE_OK ... A C expression that is nonzero if it is permissible
+ * to store a value of mode MODE in a hard regsiter number REGNO (or in several
+ * to store a value of mode MODE in a hard register number REGNO (or in several
+ * registers starting with that one).  For a machine where all registers are
+ * registers starting with that one).  For a machine where all registers are
+ * equivalent, a suitable definition is '1'.  You need not include code to check
+ * equivalent, a suitable definition is '1'.  You need not include code to check
+ * for the numbers of fixed registers, because the allocation mechanism
+ * for the numbers of fixed registers, because the allocation mechanism
+ * considered them to be always occupied.
+ * considered them to be always occupied.
+ *
+ *
+ * ZipCPU --- As long as you are already avoiding the fixed registers, the
+ * ZipCPU --- As long as you are already avoiding the fixed registers, the
+ * suitable default definition mentioned above should be sufficient.
+ * suitable default definition mentioned above should be sufficient.
+ */
+ */
+#undef HARD_REGNO_MODE_OK
+#undef HARD_REGNO_MODE_OK
+#define        HARD_REGNO_MODE_OK(R,M) 1
+#define        HARD_REGNO_MODE_OK(R,M) (R<zip_CC)
+
+
+/* HARD_REGNO_RENAME_OK(FROM,TO) ... A C expression that is nonzero if it is
+/* HARD_REGNO_RENAME_OK(FROM,TO) ... A C expression that is nonzero if it is
+ * okay to rename a hard register FROM to another hard register TO.  One common
+ * okay to rename a hard register FROM to another hard register TO.  One common
+ * use of this macro is to prevernt renaming of a register to another register
+ * use of this macro is to prevernt renaming of a register to another register
+ * that is not saved by a prologue in an interrupt handler.  The default is
+ * that is not saved by a prologue in an interrupt handler.  The default is
Line 4674... Line 3753...
+ *
+ *
+ * When the machine has more than 32 registers ... that's not us.
+ * When the machine has more than 32 registers ... that's not us.
+ *
+ *
+ * ZipCPU --- This is straight forward, three register classes, etc.
+ * ZipCPU --- This is straight forward, three register classes, etc.
+ */
+ */
 
+#ifdef zip_FP_PSEUDO
 
+#define        REG_CLASS_CONTENTS { { 0x00000}, {0x13fff}, {0x1ffff} }
 
+#else
+#define        REG_CLASS_CONTENTS { { 0x00000}, {0x03fff}, {0x0ffff} }
+#define        REG_CLASS_CONTENTS { { 0x00000}, {0x03fff}, {0x0ffff} }
 
+#endif
+
+
+#ifdef DEFINE_USER_REGS
+#ifdef DEFINE_USER_REGS
+#define        REG_CLASS_NAMES { "NO_REGS", "GENERAL_REGS", "USER_REGS", "ALL_REGS" }
+#define        REG_CLASS_NAMES { "NO_REGS", "GENERAL_REGS", "USER_REGS", "ALL_REGS" }
+#define        REG_CLASS_CONTENTS { { 0x00000},{0x03fff},{0x0ffff0000},{0x0ffffffff} }
+#define        REG_CLASS_CONTENTS { { 0x00000},{0x03fff},{0x0ffff0000},{0x0ffffffff} }
+#define        FIXED_REGISTERS         { 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
+#define        FIXED_REGISTERS         { 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
Line 4689... Line 3772...
+ * containing hard register REGNO.  In general there is more than one such
+ * containing hard register REGNO.  In general there is more than one such
+ * class;  Choose a class which is minimal, meaning that no smaller class also
+ * class;  Choose a class which is minimal, meaning that no smaller class also
+ * contains the register.
+ * contains the register.
+ */
+ */
+#undef REGNO_REG_CLASS
+#undef REGNO_REG_CLASS
 
+#ifdef zip_FP_PSEUDO
 
+#define        REGNO_REG_CLASS(R)      (is_ZIP_REG(R)?((((R)<=13)||((R)==zip_FP_PSEUDO))?GENERAL_REGS:ALL_REGS):NO_REGS)
 
+#else
+#define        REGNO_REG_CLASS(R)      (is_ZIP_REG(R)?((R<=13)?GENERAL_REGS:ALL_REGS):NO_REGS)
+#define        REGNO_REG_CLASS(R)      (is_ZIP_REG(R)?((R<=13)?GENERAL_REGS:ALL_REGS):NO_REGS)
 
+#endif
+
+
+/* BASE_REG_CLASS ... A macro whose definition is the name of the class to which
+/* BASE_REG_CLASS ... A macro whose definition is the name of the class to which
+ * a valid base register must belong.  A base register is one used in an address
+ * a valid base register must belong.  A base register is one used in an address
+ * which is the register value plus a displacement.
+ * which is the register value plus a displacement.
+ */
+ */
Line 4928... Line 4015...
+
+
+/* FRAME_GROWS_DOWNWARD ... Define this macro to nonzero if the addresses of
+/* FRAME_GROWS_DOWNWARD ... Define this macro to nonzero if the addresses of
+ * local variable slots are at negative offsets from the frame pointer.
+ * local variable slots are at negative offsets from the frame pointer.
+ *
+ *
+ * ZipCPU --- If the frame pointer is defined as the stack pointer upon the
+ * ZipCPU --- If the frame pointer is defined as the stack pointer upon the
+ * start of function execution, and that stack pointer grows downward, than
+ * start of function execution, and that stack pointer grows downward, then
+ * this should be the case as well.
+ * this should be the case as well.
+ */
+ */
+#undef FRAME_GROWS_DOWNWARD
+#undef FRAME_GROWS_DOWNWARD
+#define        FRAME_GROWS_DOWNWARD    1
+#define        FRAME_GROWS_DOWNWARD    1
+// #define     FRAME_GROWS_DOWNWARD    0        // This was ECO32's value
+// #define     FRAME_GROWS_DOWNWARD    0        // This was ECO32's value
Line 5207... Line 4294...
+ *
+ *
+ * ZipCPU --- While I'd like to dump this pointer, since I don't really see
+ * ZipCPU --- While I'd like to dump this pointer, since I don't really see
+ * a need for it, alloca() requires it.  Therefore let's assine a register to
+ * a need for it, alloca() requires it.  Therefore let's assine a register to
+ * this purpose and watch what the compiler does with it.
+ * this purpose and watch what the compiler does with it.
+ */
+ */
 
+#ifdef zip_FP_PSEUDO
 
+#define        FRAME_POINTER_REGNUM    zip_FP_PSEUDO
 
+#else
+#define        FRAME_POINTER_REGNUM    zip_FP
+#define        FRAME_POINTER_REGNUM    zip_FP
 
+#endif
+
+
+/* HARD_FRAME_POINTER_REGNUM ... On some machines the offset between the frame
+/* HARD_FRAME_POINTER_REGNUM ... On some machines the offset between the frame
+ * pointer and starting offset of the automatic variables is not known until
+ * pointer and starting offset of the automatic variables is not known until
+ * after register allocation has been done (for example, because the saved
+ * after register allocation has been done (for example, because the saved
+ * registers are between these two locations).  On those machines, define
+ * registers are between these two locations).  On those machines, define
Line 5221... Line 4312...
+ *
+ *
+ * Do not define this macro if it would be the same as FRAME_POINTER_REGNUM
+ * Do not define this macro if it would be the same as FRAME_POINTER_REGNUM
+ *
+ *
+ * ZipCPU --- we do not define this macro.
+ * ZipCPU --- we do not define this macro.
+ */
+ */
+//#define HARD_FRAME_POINTER_REGNUM    zip_FP
+#if (zip_FP == FRAME_POINTER_REGNUM)
 
+#define HARD_FRAME_POINTER_REGNUM      zip_FP
 
+#endif
+
+
+/* ARG_POINTER_REGNUM ... The register number of the arg pointer register, which
+/* ARG_POINTER_REGNUM ... The register number of the arg pointer register, which
+ * is used to access the function's argument list.  On some machines, this is
+ * is used to access the function's argument list.  On some machines, this is
+ * the same as the frame pointer register.  On some machines, the hardware
+ * the same as the frame pointer register.  On some machines, the hardware
+ * determines which register this is.  On other machines, you can choose any
+ * determines which register this is.  On other machines, you can choose any
Line 5236... Line 4329...
+ * ZipCPU --- We really don't want to lose another register to something
+ * ZipCPU --- We really don't want to lose another register to something
+ * pointless, so let's set this to be the frame pointer register.  Especially
+ * pointless, so let's set this to be the frame pointer register.  Especially
+ * given the ZipCPU's ease of accessing things via offsets of registers, this
+ * given the ZipCPU's ease of accessing things via offsets of registers, this
+ * should work for a rather large stack frame.
+ * should work for a rather large stack frame.
+ */
+ */
+#define ARG_POINTER_REGNUM     zip_FP
+#define ARG_POINTER_REGNUM     FRAME_POINTER_REGNUM
+
+
+/* HARD_FRAME_POINTER_IS_FRAME_POINTER ... define this to be a preprocessor
+/* HARD_FRAME_POINTER_IS_FRAME_POINTER ... define this to be a preprocessor
+ * constant that is nonzero if hard_frame_pointer_rtx and frame_pointer_rtx
+ * constant that is nonzero if hard_frame_pointer_rtx and frame_pointer_rtx
+ * should be the same.  The default definition is sufficient for us.
+ * should be the same.  The default definition is sufficient for us.
+ */
+ */
Line 5402... Line 4495...
+ * depending on whether or not the frame pointer has been eliminated.
+ * depending on whether or not the frame pointer has been eliminated.
+ *
+ *
+ * ZipCPU we'll take their suggestion and define this as:
+ * ZipCPU we'll take their suggestion and define this as:
+ */
+ */
+#undef ELIMINABLE_REGS
+#undef ELIMINABLE_REGS
 
+#ifdef zip_FP_PSEUDO
 
+#define        ELIMINABLE_REGS \
 
+        {{ ARG_POINTER_REGNUM, STACK_POINTER_REGNUM},          \
 
+         { ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM},     \
 
+         { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM},        \
 
+         { FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
 
+#else
 
+# if (ARG_POINTER_REGNUM == FRAME_POINTER_REGNUM)
 
+#  define      ELIMINABLE_REGS \
 
+        {{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
 
+# else
+#define        ELIMINABLE_REGS \
+#define        ELIMINABLE_REGS \
+       {{ ARG_POINTER_REGNUM, STACK_POINTER_REGNUM },  \
+       {{ ARG_POINTER_REGNUM, STACK_POINTER_REGNUM },  \
+        { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM },  \
+        { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM },  \
+        { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
+        { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
 
+# endif
 
+#endif
+
+
+/* bool TARGET_CAN_ELIMINATE(FROM,TO) ... This target function should return
+/* bool TARGET_CAN_ELIMINATE(FROM,TO) ... This target function should return
+ * true if the compiler is allowed to try to replace register number FROM with
+ * true if the compiler is allowed to try to replace register number FROM with
+ * 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
Line 6921... Line 6027...
+ * BRANCH_COST defined.  However, BRANCH_COST is defined as conditionally to
+ * BRANCH_COST defined.  However, BRANCH_COST is defined as conditionally to
+ * something else, so let's keep looking into this.
+ * something else, so let's keep looking into this.
+ */
+ */
+
+
+/* IFCVT_MODIFY_TESTS(CEINFO,TRUE,FALSE) ... Used if the target needs to
+/* IFCVT_MODIFY_TESTS(CEINFO,TRUE,FALSE) ... Used if the target needs to
+ * perform machine-dependent modifications on hte conditionals used for turning
+ * perform machine-dependent modifications on the conditionals used for turning
+ * basic blocks into conditionally executed code.  CEINFO points to a data
+ * basic blocks into conditionally executed code.  CEINFO points to a data
+ * structure, struct ce_if_block, which contains information about the currently
+ * structure, struct ce_if_block, which contains information about the currently
+ * processed blocks.  TRUE and FALSE are the tests that are used for
+ * processed blocks.  TRUE and FALSE are the tests that are used for
+ * converting the then-block and the else-block, respectively.  Set either TRUE
+ * converting the then-block and the else-block, respectively.  Set either TRUE
+ * or FALSE to a null pointer if the tests cannot be converted.
+ * or FALSE to a null pointer if the tests cannot be converted.
Line 7443... Line 6549...
+
+
+#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-05 20:46:16.437972832 -0500
+++ gcc-5.3.0-zip/gcc/config/zip/zip.md 2016-03-07 18:21:44.060561458 -0500
@@ -0,0 +1,1696 @@
@@ -0,0 +1,1736 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;
+;; 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 7664... Line 6770...
+               (plus:ZI (match_operand:ZI 1 "register_operand" "r")
+               (plus:ZI (match_operand:ZI 1 "register_operand" "r")
+                       (match_operand:ZI 2 "const_int_operand" "M")))]
+                       (match_operand:ZI 2 "const_int_operand" "M")))]
+       ""
+       ""
+       "MOV    %2(%1),%0"
+       "MOV    %2(%1),%0"
+       [(set_attr "ccresult" "unchanged")])
+       [(set_attr "ccresult" "unchanged")])
+(define_insn "mov<mode>_lod"   ; Load from memory
+;(define_insn "mov<mode>_lod"  ; Load from memory
 
+;      [(set (match_operand:ZI 0 "register_operand" "=r")
 
+;              (match_operand:ZI 1 "zip_memory_operand_p" "Q"))]
 
+;      ""
 
+;      "LOD    %1,%0"
 
+;      [(set_attr "ccresult" "unchanged")])
 
+;(define_insn "mov<mode>_sto"  ; Store into memory
 
+;      [(set (match_operand:ZI 0 "zip_memory_operand_p" "=Q")
 
+;              (match_operand:ZI 1 "register_operand" "r"))]
 
+;      ""
 
+;      "STO    %1,%0"
 
+;      [(set_attr "ccresult" "unchanged")])
 
+(define_expand "mov<mode>_lod" ; Load from memory
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (match_operand:ZI 1 "zip_memory_operand_p" "Q"))]
+               (match_operand:ZI 1 "zip_memory_operand_p" "Q"))]
 
+       "")
 
+(define_insn "*movsi_lod"
 
+       [(set (match_operand:SI 0 "register_operand" "=r")
 
+               (mem:SI (match_operand:SI 1 "register_operand" "r")))]
+       ""
+       ""
+       "LOD    %1,%0"
+       "LOD\t%1,%0"
+       [(set_attr "ccresult" "unchanged")])
+       [(set_attr "predicable" "yes") (set_attr "ccresult" "unchanged")])
+(define_insn "mov<mode>_sto"   ; Store into memory
+(define_insn "*movsi_lod_off"
 
+       [(set (match_operand:SI 0 "register_operand" "=r")
 
+               (mem:SI (plus:SI (match_operand:SI 1 "register_operand" "r")
 
+                       (match_operand:SI 2 "const_int_operand" "N"))))]
 
+       ""
 
+       "LOD\t%2(%1),%0"
 
+       [(set_attr "predicable" "yes") (set_attr "ccresult" "unchanged")])
 
+(define_expand "mov<mode>_sto" ; Store into memory
+       [(set (match_operand:ZI 0 "zip_memory_operand_p" "=Q")
+       [(set (match_operand:ZI 0 "zip_memory_operand_p" "=Q")
+               (match_operand:ZI 1 "register_operand" "r"))]
+               (match_operand:ZI 1 "register_operand" "r"))]
 
+       "")
 
+(define_insn "*movsi_sto"
 
+       [(set (mem:SI (match_operand:SI 0 "register_operand" "r"))
 
+               (match_operand:SI 1 "register_operand" "r"))]
+       ""
+       ""
+       "STO    %1,%0"
+       "STO\t%1,(%0)"
+       [(set_attr "ccresult" "unchanged")])
+       [(set_attr "predicable" "yes") (set_attr "ccresult" "unchanged")])
 
+(define_insn "*movsi_sto_off"
 
+       [(set (mem:SI (plus:SI
 
+                       (match_operand:SI 0 "register_operand" "r")
 
+                       (match_operand:SI 1 "const_int_operand" "N")))
 
+               (match_operand:SI 2 "register_operand" "r"))]
 
+       ""
 
+       "STO\t%2,%1(%0)"
 
+       [(set_attr "predicable" "yes") (set_attr "ccresult" "unchanged")])
+(define_insn "mov<mode>_ldi"   ; Load immediate
+(define_insn "mov<mode>_ldi"   ; Load immediate
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (match_operand:ZI 1 "immediate_operand" "ipU"))]
+               (match_operand:ZI 1 "immediate_operand" "ipU"))]
+       ""
+       ""
+       "LDI    %1,%0"
+       "LDI    %1,%0"
Line 7716... Line 6857...
+;
+;
+;
+;
+;
+;
+(define_insn "add<mode>3" ; Fastest/best instruction always goes first
+(define_insn "add<mode>3" ; Fastest/best instruction always goes first
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (plus:ZI (match_operand:ZI 1 "general_operand" "0")
+               (plus:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (match_operand:ZI 2 "general_operand" "rO")))
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))
+       ]
+       ]
+       ""
+       ""
+       "ADD    %2,%0"
+       "ADD    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "add<mode>3_off" ; Fastest/best instruction always goes first
+(define_insn "add<mode>3_off" ; Fastest/best instruction always goes first
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (plus:ZI (match_operand:ZI 1 "general_operand" "0")
+               (plus:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (plus:ZI (match_operand:ZI 2 "general_operand" "r")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                               (match_operand:ZI 3 "const_int_operand" "N"))))
+                               (match_operand:ZI 3 "const_int_operand" "N"))))
+       ]
+       ]
+       ""
+       ""
+       "ADD    %3+%2,%0"
+       "ADD    %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+;
+;
+;
+;
+;
+;
+(define_insn "sub<mode>3"
+(define_expand "sub<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (minus:ZI (match_operand:ZI 1 "general_operand" "0")
+               (minus:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (match_operand:ZI 2 "general_operand" "rO")))
+                       (match_operand:ZI 2 "nonmemory_operand" "")))
 
+       ])
 
+(define_insn "*subsi3"
 
+       [(set (match_operand:ZI 0 "register_operand" "=r")
 
+               (minus:ZI (match_operand:ZI 1 "register_operand" "0")
 
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))
+       ]
+       ]
+       ""
+       ""
+       "SUB    %2,%0"
+       "SUB    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "sub<mode>3_off"
+(define_insn "sub<mode>3_off"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (minus:ZI (match_operand:ZI 1 "general_operand" "0")
+               (minus:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (plus:ZI (match_operand:ZI 2 "general_operand" "%r")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "%r")
+                               (match_operand:ZI 3 "const_int_operand" "N"))))
+                               (match_operand:ZI 3 "const_int_operand" "N"))))
+       ]
+       ]
+       ""
+       ""
+       "SUB    %3+%2,%0"
+       "SUB    %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
Line 7776... Line 6922...
+       ADD     %3,%0"
+       ADD     %3,%0"
+       [(set_attr "ccresult" "unknown")])
+       [(set_attr "ccresult" "unknown")])
+
+
+(define_insn "div<mode>3"
+(define_insn "div<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (div:ZI (match_operand:ZI 1 "general_operand" "0")
+               (div:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (match_operand:ZI 2 "general_operand" "rO")))]
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))]
+       ""
+       ""
+       "DIVS   %2,%0"
+       "DIVS   %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "div<mode>3_off"
+(define_insn "div<mode>3_off"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (div:ZI (match_operand:ZI 1 "general_operand" "0")
+               (div:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (plus:ZI (match_operand:ZI 2 "general_operand" "r")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                               (match_operand:ZI 3 "const_int_operand" "N"))))]
+                               (match_operand:ZI 3 "const_int_operand" "N"))))]
+       ""
+       ""
+       "DIVS   %3+%2,%0"
+       "DIVS   %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "udiv<mode>3"
+(define_insn "udiv<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (udiv:ZI (match_operand:ZI 1 "general_operand" "0")
+               (udiv:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (match_operand:ZI 2 "general_operand" "rO")))]
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))]
+       ""
+       ""
+       "DIVU   %2,%0"
+       "DIVU   %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "udiv<mode>3_off"
+(define_insn "udiv<mode>3_off"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (udiv:ZI (match_operand:ZI 1 "general_operand" "0")
+               (udiv:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (plus:ZI (match_operand:ZI 2 "general_operand" "r")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                               (match_operand:ZI 3 "const_int_operand" "N"))))]
+                               (match_operand:ZI 3 "const_int_operand" "N"))))]
+       ""
+       ""
+       "DIVU   %3+%2,%0"
+       "DIVU   %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+;;
+;;
Line 7847... Line 6993...
+       MOV.LT  %2,%0"
+       MOV.LT  %2,%0"
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
+(define_insn "and<mode>3"
+(define_insn "and<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (and:ZI (match_operand:ZI 1 "register_operand" "%0")
+               (and:ZI (match_operand:ZI 1 "register_operand" "%0")
+                       (match_operand:ZI 2 "general_operand" "rO")))
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))
+       ]
+       ]
+       ""
+       ""
+       "AND    %2,%0"
+       "AND    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "and<mode>3_off"
+(define_insn "and<mode>3_off"
Line 7864... Line 7010...
+       "AND    %3+%2,%0"
+       "AND    %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "ior<mode>3"
+(define_insn "ior<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (ior:ZI (match_operand:ZI 1 "register_operand" "%0")
+               (ior:ZI (match_operand:ZI 1 "register_operand" "%0")
+                       (match_operand:ZI 2 "general_operand" "rO")))
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))
+       ]
+       ]
+       ""
+       ""
+       "OR     %2,%0"
+       "OR     %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "ior<mode>3_off"
+(define_insn "ior<mode>3_off"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (ior:ZI (match_operand:ZI 1 "register_operand" "0")
+               (ior:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                               (match_operand:ZI 3 "general_operand" "N"))))
+                               (match_operand:ZI 3 "nonmemory_operand" "N"))))
+       ]
+       ]
+       ""
+       ""
+       "OR     %3+%2,%0"
+       "OR     %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "xor<mode>3"
+(define_insn "xor<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (xor:ZI (match_operand:ZI 1 "register_operand" "%0")
+               (xor:ZI (match_operand:ZI 1 "register_operand" "%0")
+                       (match_operand:ZI 2 "general_operand" "rO")))
+                       (match_operand:ZI 2 "nonmemory_operand" "rO")))
+       ]
+       ]
+       ""
+       ""
+       "XOR    %2,%0"
+       "XOR    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "xor<mode>3_off"
+(define_insn "xor<mode>3_off"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (xor:ZI (match_operand:ZI 1 "register_operand" "0")
+               (xor:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                       (plus:ZI (match_operand:ZI 2 "register_operand" "r")
+                               (match_operand:ZI 3 "general_operand" "N"))))
+                               (match_operand:ZI 3 "nonmemory_operand" "N"))))
+       ]
+       ]
+       ""
+       ""
+       "XOR    %3+%2,%0"
+       "XOR    %3+%2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+;(define_insn "addv<mode>4"
+;(define_insn "addv<mode>4"
Line 7926... Line 7072...
+;;     ... ???)
+;;     ... ???)
+;;
+;;
+(define_insn "ashr<mode>3"
+(define_insn "ashr<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (ashiftrt:ZI (match_operand:ZI 1 "register_operand" "0")
+               (ashiftrt:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (match_operand:ZI 2 "general_operand" "rR")))]
+                       (match_operand:ZI 2 "nonmemory_operand" "rR")))]
+       ""
+       ""
+       "ASR    %2,%0"
+       "ASR    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "lshr<mode>3"
+(define_insn "lshr<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
Line 7940... Line 7086...
+       "LSR    %2,%0"
+       "LSR    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+(define_insn "rotl<mode>3"
+(define_insn "rotl<mode>3"
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+       [(set (match_operand:ZI 0 "register_operand" "=r")
+               (rotate:ZI (match_operand:ZI 1 "register_operand" "0")
+               (rotate:ZI (match_operand:ZI 1 "register_operand" "0")
+                       (match_operand:ZI 2 "general_operand" "rR")))]
+                       (match_operand:ZI 2 "nonmemory_operand" "rR")))]
+       ""
+       ""
+       "ROL    %2,%0"
+       "ROL    %2,%0"
+       [(set_attr "ccresult" "set")])
+       [(set_attr "ccresult" "set")])
+;
+;
+(define_insn "neg<mode>2"
+(define_insn "neg<mode>2"
Line 7993... Line 7139...
+;
+;
+;
+;
+;
+;
+(define_insn "adddi3" ; Fastest/best instruction always goes first
+(define_insn "adddi3" ; Fastest/best instruction always goes first
+       [(set (match_operand:DI 0 "register_operand" "=r")
+       [(set (match_operand:DI 0 "register_operand" "=r")
+               (plus:DI (match_operand:DI 1 "general_operand" "0")
+               (plus:DI (match_operand:DI 1 "register_operand" "0")
+                       (match_operand:DI 2 "register_operand" "r")))
+                       (match_operand:DI 2 "register_operand" "r")))
+       ]
+       ]
+       ""
+       ""
+       "ADD    %L2,%L0\n\tADD.C\t1,%H0\n\tADD\t%H2,%H0"
+       "ADD    %L2,%L0\n\tADD.C\t1,%H0\n\tADD\t%H2,%H0"
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
+;
+;
+(define_insn "subdi3"
+(define_insn "subdi3"
+       [(set (match_operand:DI 0 "register_operand" "=r")
+       [(set (match_operand:DI 0 "register_operand" "=r")
+               (minus:DI (match_operand:DI 1 "general_operand" "0")
+               (minus:DI (match_operand:DI 1 "register_operand" "0")
+                       (match_operand:DI 2 "register_operand" "r")))
+                       (match_operand:DI 2 "register_operand" "r")))
+       ]
+       ]
+       ""
+       ""
+       "SUB    %L2,%L0\n\tSUB.C\t1,%H0\n\tSUB\t%H2,%H0"
+       "SUB    %L2,%L0\n\tSUB.C\t1,%H0\n\tSUB\t%H2,%H0"
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
+       [(set_attr "predicable" "no") (set_attr "ccresult" "unknown")])
Line 8456... Line 7602...
+                       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]));
+                       DONE;
+                       DONE;
+               } else if((GET_CODE(operands[0])==GEU)&&(REG_P(operands[2]))) {
+               } else if((GET_CODE(operands[0])==GEU)&&(REG_P(operands[2]))) {
+                       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;
+               } // ; Otherwise ... just handle the branch normally
+               } // ; Otherwise ... just handle the branch normally
Line 9619... Line 8765...
+
+
+./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/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-05 10:47:57.804889921 -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.
    The normal operating mode is to pass FALSE for this parameter.  */
    The normal operating mode is to pass FALSE for this parameter.  */
 
 
+#include "print-tree.h"
+#include "print-tree.h"
Line 9832... Line 8978...
            case SImode:
            case SImode:
              {
              {
                if (type == long_integer_type_node)
                if (type == long_integer_type_node)
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/postreload.c gcc-5.3.0-zip/gcc/postreload.c
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/gcc/postreload.c gcc-5.3.0-zip/gcc/postreload.c
--- gcc-5.3.0-original/gcc/postreload.c 2015-07-17 09:50:38.000000000 -0400
--- gcc-5.3.0-original/gcc/postreload.c 2015-07-17 09:50:38.000000000 -0400
+++ gcc-5.3.0-zip/gcc/postreload.c      2016-03-05 20:42:53.707428238 -0500
+++ gcc-5.3.0-zip/gcc/postreload.c      2016-03-07 18:24:22.263499116 -0500
@@ -71,6 +71,13 @@
@@ -71,6 +71,13 @@
 #include "df.h"
 #include "df.h"
 #include "dbgcnt.h"
 #include "dbgcnt.h"
 
 
+#ifdef DO_ZIP_DEBUGS
+#ifdef DO_ZIP_DEBUGS
Line 9929... Line 9075...
 
 
+       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/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-03-07 18:25:12.311162959 -0500
 
@@ -2271,11 +2271,11 @@
 
               && spill_stack_slot_width[from_reg] >= total_size
 
               && (GET_MODE_SIZE (GET_MODE (spill_stack_slot[from_reg]))
 
                   >= inherent_size)
 
-              && MEM_ALIGN (spill_stack_slot[from_reg]) >= min_align)
 
+              && MEM_ALIGN (spill_stack_slot[from_reg]) >= min_align) {
 
        x = spill_stack_slot[from_reg];
 
 
 
       /* Allocate a bigger slot.  */
 
-      else
 
+      } else
 
        {
 
          /* Compute maximum size needed, both for inherent size
 
             and for total size.  */
 
@@ -3477,11 +3477,14 @@
 
   /* Eliminate all eliminable registers occurring in operands that
 
      can be handled by reload.  */
 
   extract_insn (insn);
 
+
 
   for (i = 0; i < recog_data.n_operands; i++)
 
     {
 
       orig_operand[i] = recog_data.operand[i];
 
       substed_operand[i] = recog_data.operand[i];
 
 
 
+       if (insn_data[icode].operand[i].eliminable)
 
+
 
       /* For an asm statement, every operand is eliminable.  */
 
       if (insn_is_asm || insn_data[icode].operand[i].eliminable)
 
        {
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-02-19 08:15:17.546189655 -0500
+++ gcc-5.3.0-zip/gcc/reload.c  2016-02-19 08:15:17.546189655 -0500
@@ -2707,8 +2707,17 @@
@@ -2707,8 +2707,17 @@
     no_output_reloads = 1;
     no_output_reloads = 1;
Line 10146... Line 9324...
+        config_path="bsd posix"
+        config_path="bsd posix"
+        ;;
+        ;;
 
 
   *)
   *)
        ;;
        ;;
diff -Naur '--exclude=*.swp' gcc-5.3.0-original/.rej gcc-5.3.0-zip/.rej
 
--- gcc-5.3.0-original/.rej     2016-02-05 15:14:37.982942298 -0500
 
+++ gcc-5.3.0-zip/.rej  1969-12-31 19:00:00.000000000 -0500
 
@@ -1,389 +0,0 @@
 
---- gcc-5.2.0.orig/gcc/config/aarch64/aarch64-linux.h  2015-05-12 08:49:59.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/aarch64/aarch64-linux.h       2015-10-17 20:29:44.970812436 +0000
 
-@@ -21,7 +21,7 @@
 
- #ifndef GCC_AARCH64_LINUX_H
 
- #define GCC_AARCH64_LINUX_H
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
 
-
 
- #undef  ASAN_CC1_SPEC
 
- #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
 
---- gcc-5.2.0.orig/gcc/config/alpha/linux-elf.h        2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/alpha/linux-elf.h     2015-10-17 20:28:41.529210187 +0000
 
-@@ -23,8 +23,8 @@
 
- #define EXTRA_SPECS \
 
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 
-
 
--#define GLIBC_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 
-+#define GLIBC_DYNAMIC_LINKER  "/tools/lib/ld-linux.so.2"
 
-+#define UCLIBC_DYNAMIC_LINKER "/tools/lib/ld-uClibc.so.0"
 
- #if DEFAULT_LIBC == LIBC_UCLIBC
 
- #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 
- #elif DEFAULT_LIBC == LIBC_GLIBC
 
---- gcc-5.2.0.orig/gcc/config/arm/linux-eabi.h 2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/arm/linux-eabi.h      2015-10-17 20:28:41.529210187 +0000
 
-@@ -68,8 +68,8 @@
 
-    GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
 
-
 
- #undef  GLIBC_DYNAMIC_LINKER
 
--#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
 
--#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
 
-+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/tools/lib/ld-linux.so.3"
 
-+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/tools/lib/ld-linux-armhf.so.3"
 
- #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
 
-
 
- #define GLIBC_DYNAMIC_LINKER \
 
---- gcc-5.2.0.orig/gcc/config/arm/linux-elf.h  2015-06-23 09:26:54.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/arm/linux-elf.h       2015-10-17 20:28:41.529210187 +0000
 
-@@ -62,7 +62,7 @@
 
-
 
- #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
 
-
 
- #define LINUX_TARGET_LINK_SPEC  "%{h*} \
 
-    %{static:-Bstatic} \
 
---- gcc-5.2.0.orig/gcc/config/bfin/linux.h     2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/bfin/linux.h  2015-10-17 20:28:41.529210187 +0000
 
-@@ -45,7 +45,7 @@
 
-   %{shared:-G -Bdynamic} \
 
-   %{!shared: %{!static: \
 
-    %{rdynamic:-export-dynamic} \
 
--   -dynamic-linker /lib/ld-uClibc.so.0} \
 
-+   -dynamic-linker /tools/lib/ld-uClibc.so.0} \
 
-    %{static}} -init __init -fini __fini"
 
-
 
- #undef TARGET_SUPPORTS_SYNC_CALLS
 
---- gcc-5.2.0.orig/gcc/config/cris/linux.h     2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/cris/linux.h  2015-10-17 20:28:41.529210187 +0000
 
-@@ -102,7 +102,7 @@
 
- #undef CRIS_DEFAULT_CPU_VERSION
 
- #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-
 
- #undef CRIS_LINK_SUBTARGET_SPEC
 
- #define CRIS_LINK_SUBTARGET_SPEC \
 
---- gcc-5.2.0.orig/gcc/config/freebsd-spec.h   2015-06-25 17:53:14.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/freebsd-spec.h        2015-10-17 20:28:41.529210187 +0000
 
-@@ -129,9 +129,9 @@
 
- #endif
 
-
 
- #if FBSD_MAJOR < 6
 
--#define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
 
-+#define FBSD_DYNAMIC_LINKER "/tools/libexec/ld-elf.so.1"
 
- #else
 
--#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
 
-+#define FBSD_DYNAMIC_LINKER "/tools/libexec/ld-elf.so.1"
 
- #endif
 
-
 
- /* NOTE: The freebsd-spec.h header is included also for various
 
---- gcc-5.2.0.orig/gcc/config/frv/linux.h      2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/frv/linux.h   2015-10-17 20:28:41.529210187 +0000
 
-@@ -34,7 +34,7 @@
 
- #define ENDFILE_SPEC \
 
-   "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-
 
- #undef LINK_SPEC
 
- #define LINK_SPEC "\
 
---- gcc-5.2.0.orig/gcc/config/i386/gnu.h       2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/i386/gnu.h    2015-10-17 20:28:41.529210187 +0000
 
-@@ -22,7 +22,7 @@
 
- #define GNU_USER_LINK_EMULATION "elf_i386"
 
-
 
- #undef GNU_USER_DYNAMIC_LINKER
 
--#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so"
 
-+#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so"
 
-
 
- #undef        STARTFILE_SPEC
 
- #if defined HAVE_LD_PIE
 
---- gcc-5.2.0.orig/gcc/config/i386/kfreebsd-gnu.h      2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/i386/kfreebsd-gnu.h   2015-10-17 20:28:41.529210187 +0000
 
-@@ -19,4 +19,4 @@
 
- <http://www.gnu.org/licenses/>.  */
 
-
 
- #define GNU_USER_LINK_EMULATION "elf_i386_fbsd"
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
---- gcc-5.2.0.orig/gcc/config/i386/kfreebsd-gnu64.h    2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/i386/kfreebsd-gnu64.h 2015-10-17 20:28:41.529210187 +0000
 
-@@ -22,6 +22,6 @@
 
- #define GNU_USER_LINK_EMULATION64 "elf_x86_64_fbsd"
 
- #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64_fbsd"
 
-
 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.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_LINKER32 "/tools/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER64 "/tools/lib/ld-kfreebsd-x86-64.so.1"
 
-+#define GLIBC_DYNAMIC_LINKERX32 "/tools/lib/ld-kfreebsd-x32.so.1"
 
---- gcc-5.2.0.orig/gcc/config/i386/linux.h     2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/i386/linux.h  2015-10-17 20:28:41.529210187 +0000
 
-@@ -20,4 +20,4 @@
 
- <http://www.gnu.org/licenses/>.  */
 
-
 
- #define GNU_USER_LINK_EMULATION "elf_i386"
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
 
---- gcc-5.2.0.orig/gcc/config/i386/linux64.h   2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/i386/linux64.h        2015-10-17 20:28:41.529210187 +0000
 
-@@ -27,6 +27,6 @@
 
- #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
 
- #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
 
-
 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.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_LINKER32 "/tools/lib/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER64 "/tools/lib64/ld-linux-x86-64.so.2"
 
-+#define GLIBC_DYNAMIC_LINKERX32 "/tools/libx32/ld-linux-x32.so.2"
 
---- gcc-5.2.0.orig/gcc/config/ia64/linux.h     2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/ia64/linux.h  2015-10-17 20:28:41.529210187 +0000
 
-@@ -55,7 +55,7 @@
 
- /* Define this for shared library support because it isn't in the main
 
-    linux.h file.  */
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux-ia64.so.2"
 
-
 
- #undef LINK_SPEC
 
- #define LINK_SPEC "\
 
---- gcc-5.2.0.orig/gcc/config/knetbsd-gnu.h    2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/knetbsd-gnu.h 2015-10-17 20:28:41.529210187 +0000
 
-@@ -32,4 +32,4 @@
 
-
 
-
 
- #undef GNU_USER_DYNAMIC_LINKER
 
--#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
---- gcc-5.2.0.orig/gcc/config/kopensolaris-gnu.h       2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/kopensolaris-gnu.h    2015-10-17 20:28:41.529210187 +0000
 
-@@ -31,4 +31,5 @@
 
-   while (0)
 
-
 
- #undef GNU_USER_DYNAMIC_LINKER
 
--#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GNU_USER_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-+
 
---- gcc-5.2.0.orig/gcc/config/linux.h  2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/linux.h       2015-10-17 20:28:41.529210187 +0000
 
-@@ -73,10 +73,10 @@
 
-    GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
 
-    GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
 
-    supporting both 32-bit and 64-bit compilation.  */
 
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 
--#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
 
--#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
 
--#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
 
-+#define UCLIBC_DYNAMIC_LINKER "/tools/lib/ld-uClibc.so.0"
 
-+#define UCLIBC_DYNAMIC_LINKER32 "/tools/lib/ld-uClibc.so.0"
 
-+#define UCLIBC_DYNAMIC_LINKER64 "/tools/lib/ld64-uClibc.so.0"
 
-+#define UCLIBC_DYNAMIC_LINKERX32 "/tools/lib/ldx32-uClibc.so.0"
 
- #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
 
- #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
 
- #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
 
---- gcc-5.2.0.orig/gcc/config/lm32/uclinux-elf.h       2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/lm32/uclinux-elf.h    2015-10-17 20:28:41.529210187 +0000
 
-@@ -67,7 +67,7 @@
 
-    %{shared:-shared} \
 
-    %{symbolic:-Bsymbolic} \
 
-    %{rdynamic:-export-dynamic} \
 
--   -dynamic-linker /lib/ld-linux.so.2"
 
-+   -dynamic-linker /tools/lib/ld-linux.so.2"
 
-
 
- #define TARGET_OS_CPP_BUILTINS() GNU_USER_TARGET_OS_CPP_BUILTINS()
 
-
 
---- gcc-5.2.0.orig/gcc/config/m68k/linux.h     2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/m68k/linux.h  2015-10-17 20:28:41.533210287 +0000
 
-@@ -71,7 +71,7 @@
 
-    When the -shared link option is used a final link is not being
 
-    done.  */
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-
 
- #undef LINK_SPEC
 
- #define LINK_SPEC "-m m68kelf %{shared} \
 
---- gcc-5.2.0.orig/gcc/config/microblaze/linux.h       2015-05-28 14:08:19.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/microblaze/linux.h    2015-10-17 20:28:41.533210287 +0000
 
-@@ -28,7 +28,7 @@
 
- #undef TLS_NEEDS_GOT
 
- #define TLS_NEEDS_GOT 1
 
-
 
--#define DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
- #undef  SUBTARGET_EXTRA_SPECS
 
- #define SUBTARGET_EXTRA_SPECS \
 
-   { "dynamic_linker", DYNAMIC_LINKER }
 
---- gcc-5.2.0.orig/gcc/config/mips/linux.h     2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/mips/linux.h  2015-10-17 20:30:30.887975439 +0000
 
-@@ -22,20 +22,20 @@
 
- #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
 
-
 
- #define GLIBC_DYNAMIC_LINKER32 \
 
--  "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
 
-+  "%{mnan=2008:/tools/lib/ld-linux-mipsn8.so.1;:/tools/lib/ld.so.1}"
 
- #define GLIBC_DYNAMIC_LINKER64 \
 
--  "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
 
-+  "%{mnan=2008:/tools/lib64/ld-linux-mipsn8.so.1;:/tools/lib64/ld.so.1}"
 
- #define GLIBC_DYNAMIC_LINKERN32 \
 
--  "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
 
-+  "%{mnan=2008:/tools/lib32/ld-linux-mipsn8.so.1;:/tools/lib32/ld.so.1}"
 
-
 
- #undef UCLIBC_DYNAMIC_LINKER32
 
- #define UCLIBC_DYNAMIC_LINKER32 \
 
--  "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
 
-+  "%{mnan=2008:/tools/lib/ld-uClibc-mipsn8.so.0;:/tools/lib/ld-uClibc.so.0}"
 
- #undef UCLIBC_DYNAMIC_LINKER64
 
- #define UCLIBC_DYNAMIC_LINKER64 \
 
--  "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
 
-+  "%{mnan=2008:/tools/lib/ld64-uClibc-mipsn8.so.0;:/tools/lib/ld64-uClibc.so.0}"
 
- #define UCLIBC_DYNAMIC_LINKERN32 \
 
--  "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
 
-+  "%{mnan=2008:/tools/lib32/ld-uClibc-mipsn8.so.0;:/tools/lib32/ld-uClibc.so.0}"
 
-
 
- #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
 
- #define GNU_USER_DYNAMIC_LINKERN32 \
 
---- gcc-5.2.0.orig/gcc/config/mn10300/linux.h  2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/mn10300/linux.h       2015-10-17 20:29:02.941750373 +0000
 
-@@ -32,7 +32,7 @@
 
- #undef  ASM_SPEC
 
- #define ASM_SPEC ""
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-
 
- #undef  LINK_SPEC
 
- #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
 
---- gcc-5.2.0.orig/gcc/config/pa/pa-linux.h    2015-05-28 14:07:55.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/pa/pa-linux.h 2015-10-17 20:29:02.941750373 +0000
 
-@@ -37,7 +37,7 @@
 
- /* Define this for shared library support because it isn't in the main
 
-    linux.h file.  */
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-
 
- #undef LINK_SPEC
 
- #define LINK_SPEC "\
 
---- gcc-5.2.0.orig/gcc/config/rs6000/linux64.h 2015-03-09 23:18:57.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/rs6000/linux64.h      2015-10-17 20:29:02.941750373 +0000
 
-@@ -357,14 +357,14 @@
 
- #undef        LINK_OS_DEFAULT_SPEC
 
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 
-
 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER32 "/tools/lib/ld.so.1"
 
- #ifdef LINUX64_DEFAULT_ABI_ELFv2
 
--#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:/lib64/ld64.so.1;:/lib64/ld64.so.2}"
 
-+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:/tools/lib64/ld64.so.1;:/tools/lib64/ld64.so.2}"
 
- #else
 
--#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/lib64/ld64.so.2;:/lib64/ld64.so.1}"
 
-+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/tools/lib64/ld64.so.2;:/tools/lib64/ld64.so.1}"
 
- #endif
 
--#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
 
--#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
 
-+#define UCLIBC_DYNAMIC_LINKER32 "/tools/lib/ld-uClibc.so.0"
 
-+#define UCLIBC_DYNAMIC_LINKER64 "/tools/lib/ld64-uClibc.so.0"
 
- #if DEFAULT_LIBC == LIBC_UCLIBC
 
- #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 
- #elif DEFAULT_LIBC == LIBC_GLIBC
 
---- gcc-5.2.0.orig/gcc/config/rs6000/sysv4.h   2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/rs6000/sysv4.h        2015-10-17 20:29:02.941750373 +0000
 
-@@ -762,8 +762,8 @@
 
-
 
- #define LINK_START_LINUX_SPEC ""
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-+#define UCLIBC_DYNAMIC_LINKER "/tools/lib/ld-uClibc.so.0"
 
- #if DEFAULT_LIBC == LIBC_UCLIBC
 
- #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
 
- #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
 
---- gcc-5.2.0.orig/gcc/config/s390/linux.h     2015-05-11 07:14:10.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/s390/linux.h  2015-10-17 20:29:02.941750373 +0000
 
-@@ -60,8 +60,8 @@
 
- #define MULTILIB_DEFAULTS { "m31" }
 
- #endif
 
-
 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
 
--#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER32 "/tools/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER64 "/tools/lib/ld64.so.1"
 
-
 
- #undef  LINK_SPEC
 
- #define LINK_SPEC \
 
---- gcc-5.2.0.orig/gcc/config/sh/linux.h       2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/sh/linux.h    2015-10-17 20:29:02.941750373 +0000
 
-@@ -43,7 +43,7 @@
 
-
 
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
 
-
 
- #undef SUBTARGET_LINK_EMUL_SUFFIX
 
- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 
---- gcc-5.2.0.orig/gcc/config/sparc/linux.h    2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/sparc/linux.h 2015-10-17 20:29:02.941750373 +0000
 
-@@ -83,7 +83,7 @@
 
-    When the -shared link option is used a final link is not being
 
-    done.  */
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
 
-
 
- #undef  LINK_SPEC
 
- #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
 
---- gcc-5.2.0.orig/gcc/config/sparc/linux64.h  2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/sparc/linux64.h       2015-10-17 20:29:02.941750373 +0000
 
-@@ -84,8 +84,8 @@
 
-    When the -shared link option is used a final link is not being
 
-    done.  */
 
-
 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
 
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER32 "/tools/lib/ld-linux.so.2"
 
-+#define GLIBC_DYNAMIC_LINKER64 "/tools/lib64/ld-linux.so.2"
 
-
 
- #ifdef SPARC_BI_ARCH
 
-
 
-@@ -193,7 +193,7 @@
 
- #else /* !SPARC_BI_ARCH */
 
-
 
- #undef LINK_SPEC
 
--#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
 
-+#define LINK_SPEC "-m elf64_sparc -Y P,%R/tools/lib64 %{shared:-shared} \
 
-   %{!shared: \
 
-     %{!static: \
 
-       %{rdynamic:-export-dynamic} \
 
---- gcc-5.2.0.orig/gcc/config/vax/linux.h      2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/vax/linux.h   2015-10-17 20:29:02.941750373 +0000
 
-@@ -41,7 +41,7 @@
 
-   %{!shared: \
 
-     %{!static: \
 
-       %{rdynamic:-export-dynamic} \
 
--      -dynamic-linker /lib/ld.so.1} \
 
-+      -dynamic-linker /tools/lib/ld.so.1} \
 
-     %{static:-static}}"
 
-
 
- #undef  WCHAR_TYPE
 
---- gcc-5.2.0.orig/gcc/config/xtensa/linux.h   2015-01-05 12:33:28.000000000 +0000
 
-+++ gcc-5.2.0/gcc/config/xtensa/linux.h        2015-10-17 20:29:02.941750373 +0000
 
-@@ -44,7 +44,7 @@
 
-   %{mlongcalls:--longcalls} \
 
-   %{mno-longcalls:--no-longcalls}"
 
-
 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 
-+#define GLIBC_DYNAMIC_LINKER "/tools/lib/ld.so.1"
 
-
 
- #undef LINK_SPEC
 
- #define LINK_SPEC \
 
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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