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