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

Subversion Repositories zipcpu

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /zipcpu/trunk
    from Rev 103 to Rev 102
    Reverse comparison

Rev 103 → Rev 102

/sw/gcc-script.sh File deleted
/sw/gcc-5.3.0.tar.bz2 Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
sw/gcc-5.3.0.tar.bz2 Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: sw/gcc-zippatch.patch =================================================================== --- sw/gcc-zippatch.patch (revision 103) +++ sw/gcc-zippatch.patch (revision 102) @@ -103,7 +103,7 @@ + +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 ---- gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/aarch64/aarch64-linux.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/aarch64/aarch64-linux.h 2015-07-24 12:00:26.000000000 -0400 @@ -21,7 +21,7 @@ #ifndef GCC_AARCH64_LINUX_H @@ -115,7 +115,7 @@ #undef ASAN_CC1_SPEC #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 ---- gcc-5.3.0-original/gcc/config/alpha/linux-elf.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/alpha/linux-elf.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/alpha/linux-elf.h 2015-01-05 07:33:28.000000000 -0500 @@ -23,8 +23,8 @@ #define EXTRA_SPECS \ @@ -129,7 +129,7 @@ #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" #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 ---- gcc-5.3.0-original/gcc/config/arm/linux-eabi.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/arm/linux-eabi.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/arm/linux-eabi.h 2015-01-05 07:33:28.000000000 -0500 @@ -68,8 +68,8 @@ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ @@ -143,7 +143,7 @@ #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 ---- gcc-5.3.0-original/gcc/config/arm/linux-elf.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/arm/linux-elf.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/arm/linux-elf.h 2015-06-23 05:26:54.000000000 -0400 @@ -62,7 +62,7 @@ @@ -155,7 +155,7 @@ #define LINUX_TARGET_LINK_SPEC "%{h*} \ %{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 ---- gcc-5.3.0-original/gcc/config/bfin/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/bfin/linux.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/bfin/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -45,7 +45,7 @@ %{shared:-G -Bdynamic} \ @@ -167,7 +167,7 @@ #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 ---- gcc-5.3.0-original/gcc/config/cris/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/cris/linux.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/cris/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -102,7 +102,7 @@ #undef CRIS_DEFAULT_CPU_VERSION @@ -179,7 +179,7 @@ #undef 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 ---- gcc-5.3.0-original/gcc/config/freebsd-spec.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/freebsd-spec.h 2016-02-05 15:18:17.489469806 -0500 +++ gcc-5.3.0-zip/gcc/config/freebsd-spec.h 2015-06-25 13:53:14.000000000 -0400 @@ -129,9 +129,9 @@ #endif @@ -194,7 +194,7 @@ /* 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 ---- gcc-5.3.0-original/gcc/config/frv/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/frv/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/frv/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -34,7 +34,7 @@ #define ENDFILE_SPEC \ @@ -206,7 +206,7 @@ #undef 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 ---- gcc-5.3.0-original/gcc/config/i386/gnu.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/i386/gnu.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/i386/gnu.h 2015-01-05 07:33:28.000000000 -0500 @@ -22,7 +22,7 @@ #define GNU_USER_LINK_EMULATION "elf_i386" @@ -218,7 +218,7 @@ #undef STARTFILE_SPEC #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 ---- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu64.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu64.h 2015-01-05 07:33:28.000000000 -0500 @@ -22,6 +22,6 @@ #define GNU_USER_LINK_EMULATION64 "elf_x86_64_fbsd" @@ -231,7 +231,7 @@ +#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.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 ---- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/i386/kfreebsd-gnu.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/i386/kfreebsd-gnu.h 2015-01-05 07:33:28.000000000 -0500 @@ -19,4 +19,4 @@ . */ @@ -240,7 +240,7 @@ -#define GLIBC_DYNAMIC_LINKER "/tools/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 ---- gcc-5.3.0-original/gcc/config/i386/linux64.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/i386/linux64.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/i386/linux64.h 2015-01-05 07:33:28.000000000 -0500 @@ -27,6 +27,6 @@ #define GNU_USER_LINK_EMULATION64 "elf_x86_64" @@ -253,7 +253,7 @@ +#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.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 ---- gcc-5.3.0-original/gcc/config/i386/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/i386/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/i386/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -20,4 +20,4 @@ . */ @@ -262,7 +262,7 @@ -#define GLIBC_DYNAMIC_LINKER "/tools/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 ---- gcc-5.3.0-original/gcc/config/ia64/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/ia64/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/ia64/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -55,7 +55,7 @@ /* Define this for shared library support because it isn't in the main @@ -274,7 +274,7 @@ #undef 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 ---- gcc-5.3.0-original/gcc/config/knetbsd-gnu.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/knetbsd-gnu.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/knetbsd-gnu.h 2015-01-05 07:33:28.000000000 -0500 @@ -32,4 +32,4 @@ @@ -283,7 +283,7 @@ -#define GNU_USER_DYNAMIC_LINKER "/tools/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 ---- gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/kopensolaris-gnu.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/kopensolaris-gnu.h 2015-01-05 07:33:28.000000000 -0500 @@ -31,5 +31,4 @@ while (0) @@ -293,7 +293,7 @@ - +#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 ---- gcc-5.3.0-original/gcc/config/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -73,10 +73,10 @@ GLIBC_DYNAMIC_LINKER must be defined for each target using them, or @@ -311,7 +311,7 @@ #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker" #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 ---- gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/lm32/uclinux-elf.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/lm32/uclinux-elf.h 2015-01-05 07:33:28.000000000 -0500 @@ -67,7 +67,7 @@ %{shared:-shared} \ @@ -323,7 +323,7 @@ #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 ---- gcc-5.3.0-original/gcc/config/m68k/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/m68k/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/m68k/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -71,7 +71,7 @@ When the -shared link option is used a final link is not being @@ -335,7 +335,7 @@ #undef LINK_SPEC #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 ---- gcc-5.3.0-original/gcc/config/microblaze/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/microblaze/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/microblaze/linux.h 2015-05-28 10:08:19.000000000 -0400 @@ -28,7 +28,7 @@ #undef TLS_NEEDS_GOT @@ -347,7 +347,7 @@ #define SUBTARGET_EXTRA_SPECS \ { "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 ---- gcc-5.3.0-original/gcc/config/mips/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/mips/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/mips/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -22,20 +22,20 @@ #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" @@ -377,7 +377,7 @@ #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" #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 ---- gcc-5.3.0-original/gcc/config/mn10300/linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/mn10300/linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/mn10300/linux.h 2015-01-05 07:33:28.000000000 -0500 @@ -32,7 +32,7 @@ #undef ASM_SPEC @@ -389,7 +389,7 @@ #undef LINK_SPEC #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 ---- gcc-5.3.0-original/gcc/config/pa/pa-linux.h 2016-03-08 04:57:02.962902614 -0500 +--- gcc-5.3.0-original/gcc/config/pa/pa-linux.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/pa/pa-linux.h 2015-09-24 20:04:26.000000000 -0400 @@ -37,7 +37,7 @@ /* Define this for shared library support because it isn't in the main @@ -401,7 +401,7 @@ #undef 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 ---- gcc-5.3.0-original/gcc/config/rs6000/linux64.h 2016-03-08 04:57:02.966902587 -0500 +--- gcc-5.3.0-original/gcc/config/rs6000/linux64.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/rs6000/linux64.h 2015-03-09 19:18:57.000000000 -0400 @@ -357,14 +357,14 @@ #undef LINK_OS_DEFAULT_SPEC @@ -424,7 +424,7 @@ #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" #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 ---- gcc-5.3.0-original/gcc/config/rs6000/sysv4.h 2016-03-08 04:57:02.966902587 -0500 +--- gcc-5.3.0-original/gcc/config/rs6000/sysv4.h 2016-02-05 15:18:17.493469779 -0500 +++ gcc-5.3.0-zip/gcc/config/rs6000/sysv4.h 2015-09-24 09:46:45.000000000 -0400 @@ -757,8 +757,8 @@ @@ -437,8 +437,957 @@ #if DEFAULT_LIBC == LIBC_UCLIBC #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" #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 +- . */ +- +-/* 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: %calls_alloca) -+ return true; + return (frame_pointer_needed); ++// return (cfun->calls_alloca); +/* + fprintf(stderr, "ZIP_FRAME_POINTER_REQUIRED()\n"); + if (frame_pointer_needed) { @@ -1159,7 +2107,6 @@ + const bool dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF); + zip_compute_frame(); + -+ if (dbg) fprintf(stderr, "Computing Prologue instructions\n"); + if (cfun->machine->size_for_adjusting_sp != 0) { + insn = emit_insn(gen_subsi3(stack_pointer_rtx, + stack_pointer_rtx, @@ -1183,8 +2130,6 @@ + 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) { @@ -1195,7 +2140,6 @@ + cfun->machine->sp_fp_offset, + SImode))); + RTX_FRAME_RELATED_P(insn) = 1; -+ if (dbg) fprintf(stderr, "sp_fp_offset is %d\n", cfun->machine->sp_fp_offset); + } +} + @@ -2125,7 +3069,7 @@ +static bool +zip_legitimate_operand_address(const_rtx x, bool strict) +{ -+ const bool dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF); ++ const bool dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF); + + if (dbg) fprintf(stderr, "ZIP-LEGITIMATE-OPERAND-ADDRESS\n"); + if (dbg) zip_debug_rtx_pfx("Test: ", x); @@ -2172,8 +3116,6 @@ + &&(INTVAL(XEXP(x, 1)) <= zip_max_anchor_offset) + &&(INTVAL(XEXP(x, 1)) >= zip_min_anchor_offset)) { + 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; + } if ((GET_CODE(XEXP(x, 1)) == LABEL_REF) + ||(GET_CODE(XEXP(x, 1)) == SYMBOL_REF)) { @@ -2395,7 +3337,7 @@ +#define SREG_P(RTX) ((REG_P(RTX))||(SUBREG_P(RTX))) + +bool zip_gen_move_rtl(rtx dst, rtx src) { -+ const bool dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF); ++ const bool dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF); + + if (dbg) fprintf(stderr, "ZIP-GEN-MOVE\n"); + if (dbg) zip_debug_rtx_pfx("FROM: ", src); @@ -2409,7 +3351,6 @@ + if (can_create_pseudo_p()) { + rtx tmp = gen_reg_rtx(Pmode); + 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); + } else { + fprintf(stderr, "ZIP:Cannot move into mem w/o pseudo\n"); @@ -2419,7 +3360,6 @@ + if (can_create_pseudo_p()) { + rtx tmp = gen_reg_rtx(Pmode); + 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)); + } else { + fprintf(stderr, "ZIP: Cannot move from mem(mem(ptr)) w/o pseudo\n"); @@ -2466,11 +3406,11 @@ + if (zip_legitimate_operand_address(XEXP(src, 0), false)) { + if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/SIMPLE-LOD(ADDR)\n"); + if (dbg) zip_debug_rtx_pfx("Smple-Addr: ", src); -+ // if (REG_P(XEXP(src,0))) -+ // mark_reg_pointer(XEXP(src,0),0); -+ // else if ((GET_CODE(XEXP(src,0))==PLUS) -+ // &&(REG_P(XEXP(XEXP(src,0),0)))) -+ // mark_reg_pointer(XEXP(XEXP(src,0),0),0); ++ if (REG_P(XEXP(src,0))) ++ mark_reg_pointer(XEXP(src,0),0); ++ else if ((GET_CODE(XEXP(src,0))==PLUS) ++ &&(REG_P(XEXP(XEXP(src,0),0)))) ++ mark_reg_pointer(XEXP(XEXP(src,0),0),0); + emit_insn(gen_movsi_lod(dst, src)); + } else if (zip_const_address_operand(XEXP(src,0))) { + if (can_create_pseudo_p()) { @@ -2477,8 +3417,8 @@ + rtx tmp; + if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD(CONST-ADDR)\n"); + tmp = gen_reg_rtx(Pmode); ++ mark_reg_pointer(tmp,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))); + } else { + if (dbg) fprintf(stderr, "ZIP-GEN-MOVE/LOD(CONST-ADDR,SELF)\n"); @@ -2494,11 +3434,6 @@ + if (zip_legitimate_operand_address(XEXP(dst, 0), false)) { + // If it's a legitimate address already, do nothing mor + 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)); + } else if (zip_const_address_operand(XEXP(dst,0))) { + rtx tmp; @@ -2508,7 +3443,7 @@ + // Otherwise we need to load the memory address + // into a register + tmp = gen_reg_rtx(Pmode); -+ // mark_reg_pointer(tmp,0); ++ mark_reg_pointer(tmp,0); + emit_insn(gen_movsi_ldi(tmp, XEXP(dst,0))); + // + // Then we can do our load @@ -2576,7 +3511,7 @@ +} + +const char *zip_set_zero_or_one(rtx condition, rtx dst) { -+ const bool dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF); ++ const bool dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF); + if (dbg) fprintf(stderr, "ZIP::SET-ZERO-OR-ONE\n"); + if (dbg) zip_debug_rtx_pfx("CND", condition); + if (dbg) zip_debug_rtx_pfx("REG", dst); @@ -2669,7 +3604,7 @@ +} + +const char *zip_movsicc(rtx dst, rtx condition, rtx iftrue, rtx iffalse) { -+ const bool dbg = ((ALL_DEBUG_ON)||(false))&&(!ALL_DEBUG_OFF); ++ const bool dbg = ((ALL_DEBUG_ON)||(true))&&(!ALL_DEBUG_OFF); + if (dbg) fprintf(stderr, "ZIP::MOVSICC\n"); + if (dbg) zip_debug_rtx_pfx("DST", dst); + if (dbg) zip_debug_rtx_pfx("CND", condition); @@ -2829,7 +3764,7 @@ +*/ +} + -+static int zip_memory_move_cost(machine_mode mode, reg_class_t ATTRIBUTE_UNUSED, bool in ATTRIBUTE_UNUSED) { ++static int zip_memory_move_cost(machine_mode mode, reg_class_t ATTRIBUTE_UNUSED, bool in) { + int rv = 14; + if ((mode == DImode)||(mode == DFmode)) + rv += 2; @@ -2836,12 +3771,11 @@ + 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 --- 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-07 20:19:32.623843475 -0500 -@@ -0,0 +1,3707 @@ ++++ gcc-5.3.0-zip/gcc/config/zip/zip.h 2016-03-05 12:28:06.303411350 -0500 +@@ -0,0 +1,3667 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Filename: gcc/config/zip/zip.h @@ -2915,15 +3849,14 @@ +#undef LIB_SPEC +#define LIB_SPEC "%{!g:-lc} %{g:-lg} -lzip" + -+// #define zip_FP_PSEUDO 16 -+#define zip_PC 15 -+#define zip_CC 14 -+#define zip_SP 13 -+#define zip_FP 12 -+#define zip_GOT 11 -+#define zip_AP 10 -+#define zip_R1 1 -+#define zip_R0 0 ++#define zip_PC 15 ++#define zip_CC 14 ++#define zip_SP 13 ++#define zip_FP 12 ++#define zip_GOT 11 ++#define zip_AP 10 ++#define zip_R1 1 ++#define zip_R0 0 + +#define ZIP_FIRST_ARG_REGNO 1 +#define ZIP_LAST_ARG_REGNO 5 @@ -3121,7 +4054,7 @@ + * set this to zero, so let's come back to this. + */ +// #warning "Wrong answer encoded to date" -+// #undef TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P ++// #undef TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P(X) +// #define TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P(X) 0 + +/* 17.04 Defining data structures for per-function information */ @@ -3330,7 +4263,7 @@ +#define DEFAULT_SIGNED_CHAR 1 + +/* TARGET_DEFAULT_SHORT_ENUMS(VOID) ... This target hook should return true if -+ * the compiler should give an enum type only as many bytes as it takes to ++ * the compiler should give an enum type onyl as many bytes as it takes to + * represent the range of possible values of that type. It should return + * false if all enum types should be allocated like int. + * @@ -3381,8 +4314,8 @@ + * 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 + * -+ * ZipCPU -- If you don't define this macro, the default is "unsigned int"--also -+ * best for us again. ++ * If you don't define this macro, the default is "unsigned int"--also best ++ * for us again. + */ + +/* INTMAX_TYPE ... A C expression for a string describing the name of the @@ -3483,13 +4416,9 @@ + * with it. + */ +#ifdef DEFINE_USER_REGS -+# define FIRST_PSEUDO_REGISTER 32 ++#define FIRST_PSEUDO_REGISTER 32 +#else -+# ifdef zip_FP_PSEUDO -+# define FIRST_PSEUDO_REGISTER (zip_FP_PSEUDO+1) -+# else -+# define FIRST_PSEUDO_REGISTER 16 -+# endif ++#define FIRST_PSEUDO_REGISTER 16 +#endif + +/* FIXED_REGISTERS ... An initializer that says which registers are used for @@ -3514,11 +4443,7 @@ + * 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. + */ -+#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 } -+#endif ++#define FIXED_REGISTERS { 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1 } + +/* 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 @@ -3533,11 +4458,7 @@ + * On the Zip CPU, we must save R0 (the return address), and (let's pick) any + * 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 } -+#endif ++#define CALL_USED_REGISTERS { 0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1 } + +/* CALL_REALLY_USED_REGISTERS ... optional macro that, if not defined, defaults + * to the value of CALL_USED_REGISTERS. @@ -3547,7 +4468,7 @@ + * 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, + * this macro need not be defined. It is only required for machines that do -+ * not preserve the entire contents of a register across a call. ++ * not preserve the eentire contents of a register across a call. + * + * In the Zip CPU, we clobber R0 with our return address during a call, so let's + * make sure this gets included here. @@ -3594,7 +4515,7 @@ + * containing the number of hard registers in the order in which GCC should + * prefer to use them (from most preferred to least. + * -+ * If this macro is not defined, registers are used lowest numbered first (all ++ * If this macro is not definedd, registers are used lowest numbered first (all + * else being equal). + * + * Since the default is the ZipCPU desired case, we won't define this here. @@ -3658,7 +4579,7 @@ +// #define REGMODE_NATURAL_SIZE(MODE) (((MODE)==DImode)?2:1) + +/* HARD_REGNO_MODE_OK ... A C expression that is nonzero if it is permissible -+ * to store a value of mode MODE in a hard register number REGNO (or in several ++ * to store a value of mode MODE in a hard regsiter number REGNO (or in several + * 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 + * for the numbers of fixed registers, because the allocation mechanism @@ -3668,7 +4589,7 @@ + * suitable default definition mentioned above should be sufficient. + */ +#undef HARD_REGNO_MODE_OK -+#define HARD_REGNO_MODE_OK(R,M) (R_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_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_lod" ; Load from memory ++(define_insn "mov_lod" ; Load from memory + [(set (match_operand:ZI 0 "register_operand" "=r") + (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\t%1,%0" -+ [(set_attr "predicable" "yes") (set_attr "ccresult" "unchanged")]) -+(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_sto" ; Store into memory ++ "LOD %1,%0" ++ [(set_attr "ccresult" "unchanged")]) ++(define_insn "mov_sto" ; Store into memory + [(set (match_operand:ZI 0 "zip_memory_operand_p" "=Q") + (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\t%1,(%0)" -+ [(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")]) ++ "STO %1,%0" ++ [(set_attr "ccresult" "unchanged")]) +(define_insn "mov_ldi" ; Load immediate + [(set (match_operand:ZI 0 "register_operand" "=r") + (match_operand:ZI 1 "immediate_operand" "ipU"))] @@ -6859,8 +7718,8 @@ +; +(define_insn "add3" ; Fastest/best instruction always goes first + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (plus:ZI (match_operand:ZI 1 "register_operand" "0") -+ (match_operand:ZI 2 "nonmemory_operand" "rO"))) ++ (plus:ZI (match_operand:ZI 1 "general_operand" "0") ++ (match_operand:ZI 2 "general_operand" "rO"))) + ] + "" + "ADD %2,%0" @@ -6867,8 +7726,8 @@ + [(set_attr "ccresult" "set")]) +(define_insn "add3_off" ; Fastest/best instruction always goes first + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (plus:ZI (match_operand:ZI 1 "register_operand" "0") -+ (plus:ZI (match_operand:ZI 2 "register_operand" "r") ++ (plus:ZI (match_operand:ZI 1 "general_operand" "0") ++ (plus:ZI (match_operand:ZI 2 "general_operand" "r") + (match_operand:ZI 3 "const_int_operand" "N")))) + ] + "" @@ -6877,15 +7736,10 @@ +; +; +; -+(define_expand "sub3" ++(define_insn "sub3" + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (minus:ZI (match_operand:ZI 1 "register_operand" "0") -+ (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"))) ++ (minus:ZI (match_operand:ZI 1 "general_operand" "0") ++ (match_operand:ZI 2 "general_operand" "rO"))) + ] + "" + "SUB %2,%0" @@ -6892,8 +7746,8 @@ + [(set_attr "ccresult" "set")]) +(define_insn "sub3_off" + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (minus:ZI (match_operand:ZI 1 "register_operand" "0") -+ (plus:ZI (match_operand:ZI 2 "register_operand" "%r") ++ (minus:ZI (match_operand:ZI 1 "general_operand" "0") ++ (plus:ZI (match_operand:ZI 2 "general_operand" "%r") + (match_operand:ZI 3 "const_int_operand" "N")))) + ] + "" @@ -6924,15 +7778,15 @@ + +(define_insn "div3" + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (div:ZI (match_operand:ZI 1 "register_operand" "0") -+ (match_operand:ZI 2 "nonmemory_operand" "rO")))] ++ (div:ZI (match_operand:ZI 1 "general_operand" "0") ++ (match_operand:ZI 2 "general_operand" "rO")))] + "" + "DIVS %2,%0" + [(set_attr "ccresult" "set")]) +(define_insn "div3_off" + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (div:ZI (match_operand:ZI 1 "register_operand" "0") -+ (plus:ZI (match_operand:ZI 2 "register_operand" "r") ++ (div:ZI (match_operand:ZI 1 "general_operand" "0") ++ (plus:ZI (match_operand:ZI 2 "general_operand" "r") + (match_operand:ZI 3 "const_int_operand" "N"))))] + "" + "DIVS %3+%2,%0" @@ -6939,15 +7793,15 @@ + [(set_attr "ccresult" "set")]) +(define_insn "udiv3" + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (udiv:ZI (match_operand:ZI 1 "register_operand" "0") -+ (match_operand:ZI 2 "nonmemory_operand" "rO")))] ++ (udiv:ZI (match_operand:ZI 1 "general_operand" "0") ++ (match_operand:ZI 2 "general_operand" "rO")))] + "" + "DIVU %2,%0" + [(set_attr "ccresult" "set")]) +(define_insn "udiv3_off" + [(set (match_operand:ZI 0 "register_operand" "=r") -+ (udiv:ZI (match_operand:ZI 1 "register_operand" "0") -+ (plus:ZI (match_operand:ZI 2 "register_operand" "r") ++ (udiv:ZI (match_operand:ZI 1 "general_operand" "0") ++ (plus:ZI (match_operand:ZI 2 "general_operand" "r") + (match_operand:ZI 3 "const_int_operand" "N"))))] + "" + "DIVU %3+%2,%0" @@ -6995,7 +7849,7 @@ +(define_insn "and3" + [(set (match_operand:ZI 0 "register_operand" "=r") + (and:ZI (match_operand:ZI 1 "register_operand" "%0") -+ (match_operand:ZI 2 "nonmemory_operand" "rO"))) ++ (match_operand:ZI 2 "general_operand" "rO"))) + ] + "" + "AND %2,%0" @@ -7012,7 +7866,7 @@ +(define_insn "ior3" + [(set (match_operand:ZI 0 "register_operand" "=r") + (ior:ZI (match_operand:ZI 1 "register_operand" "%0") -+ (match_operand:ZI 2 "nonmemory_operand" "rO"))) ++ (match_operand:ZI 2 "general_operand" "rO"))) + ] + "" + "OR %2,%0" @@ -7021,7 +7875,7 @@ + [(set (match_operand:ZI 0 "register_operand" "=r") + (ior:ZI (match_operand:ZI 1 "register_operand" "0") + (plus:ZI (match_operand:ZI 2 "register_operand" "r") -+ (match_operand:ZI 3 "nonmemory_operand" "N")))) ++ (match_operand:ZI 3 "general_operand" "N")))) + ] + "" + "OR %3+%2,%0" @@ -7029,7 +7883,7 @@ +(define_insn "xor3" + [(set (match_operand:ZI 0 "register_operand" "=r") + (xor:ZI (match_operand:ZI 1 "register_operand" "%0") -+ (match_operand:ZI 2 "nonmemory_operand" "rO"))) ++ (match_operand:ZI 2 "general_operand" "rO"))) + ] + "" + "XOR %2,%0" @@ -7038,7 +7892,7 @@ + [(set (match_operand:ZI 0 "register_operand" "=r") + (xor:ZI (match_operand:ZI 1 "register_operand" "0") + (plus:ZI (match_operand:ZI 2 "register_operand" "r") -+ (match_operand:ZI 3 "nonmemory_operand" "N")))) ++ (match_operand:ZI 3 "general_operand" "N")))) + ] + "" + "XOR %3+%2,%0" @@ -7074,7 +7928,7 @@ +(define_insn "ashr3" + [(set (match_operand:ZI 0 "register_operand" "=r") + (ashiftrt:ZI (match_operand:ZI 1 "register_operand" "0") -+ (match_operand:ZI 2 "nonmemory_operand" "rR")))] ++ (match_operand:ZI 2 "general_operand" "rR")))] + "" + "ASR %2,%0" + [(set_attr "ccresult" "set")]) @@ -7088,7 +7942,7 @@ +(define_insn "rotl3" + [(set (match_operand:ZI 0 "register_operand" "=r") + (rotate:ZI (match_operand:ZI 1 "register_operand" "0") -+ (match_operand:ZI 2 "nonmemory_operand" "rR")))] ++ (match_operand:ZI 2 "general_operand" "rR")))] + "" + "ROL %2,%0" + [(set_attr "ccresult" "set")]) @@ -7141,7 +7995,7 @@ +; +(define_insn "adddi3" ; Fastest/best instruction always goes first + [(set (match_operand:DI 0 "register_operand" "=r") -+ (plus:DI (match_operand:DI 1 "register_operand" "0") ++ (plus:DI (match_operand:DI 1 "general_operand" "0") + (match_operand:DI 2 "register_operand" "r"))) + ] + "" @@ -7150,7 +8004,7 @@ +; +(define_insn "subdi3" + [(set (match_operand:DI 0 "register_operand" "=r") -+ (minus:DI (match_operand:DI 1 "register_operand" "0") ++ (minus:DI (match_operand:DI 1 "general_operand" "0") + (match_operand:DI 2 "register_operand" "r"))) + ] + "" @@ -7604,7 +8458,7 @@ + emit_jump_insn(gen_cbranch_jmp_ltu(operands[3])); + DONE; + } 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, + gen_rtx_COMPARE(VOIDmode, operands[2], operands[1]))); + emit_jump_insn(gen_cbranch_jmp_leu(operands[3])); @@ -8767,7 +9621,7 @@ +duced! 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-zip/gcc/expr.c 2016-03-08 04:07:01.426335724 -0500 ++++ gcc-5.3.0-zip/gcc/expr.c 2016-03-05 10:47:57.804889921 -0500 @@ -7999,6 +7999,8 @@ the back of the caller. The normal operating mode is to pass FALSE for this parameter. */ @@ -8980,7 +9834,7 @@ 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 --- 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-07 18:24:22.263499116 -0500 ++++ gcc-5.3.0-zip/gcc/postreload.c 2016-03-05 20:42:53.707428238 -0500 @@ -71,6 +71,13 @@ #include "df.h" #include "dbgcnt.h" @@ -9077,38 +9931,6 @@ 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 --- 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 @@ -9326,3 +10148,396 @@ *) ;; +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 @@ +- . */ +- +- #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 @@ +- . */ +- +- #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 \
/sw/zasm/test.S
76,7 → 76,6
sys.bus.uastl equ 0x00e
sys.bus.ustl equ 0x00f
#define DO_TEST_ASSEMBLER
#define LJMP_TEST
#define BREAK_TEST
#define OVERFLOW_TEST
#define CARRY_TEST
240,37 → 239,6
#else ; After else
#endif /* and after endif */
 
#ifdef LJMP_TEST
CLR R0
CLR R1
LJMP
.dat __here__+0x0100000+4
ADD 1,R0
ADD 1,R0
ADD 1,R0
ADD 1,R0
ADD 1,R0
ADD 1,R0
CMP 3,R0
BNZ test_failure
LOD.Z __here__+2(PC),PC
BRA test_failure
.dat __here__+0x0100000+2
ADD 1,R0
ADD 1,R0
ADD 1,R0
CMP 5,R0
BNZ test_failure
// And our last early branching test
LDI 0x0100000+__here__+4,PC
ADD 1,R0
ADD 1,R0
ADD 1,R0
SUB 1,R0
CMP 4,R0
BNZ test_failure
#endif
 
#ifdef BREAK_TEST
breaktest:
bra breaksupervisor
496,7 → 464,7
lsr 0,r0 ; the carry flag
bc test_failure
lsr 1,r0
tst sys.ccc,cc
tst sys.ccc,cc ; FAILS HERE!!! @0x010007c
bz test_failure
lsr 31,r0
tst sys.ccc,cc
662,7 → 630,7
#endif
// Return success / Test the trap interrupt
clr r11
trap r11 // FAILS HERE FAILS FAILS FAILS !!!!!!!!!!!
trap r11
noop
noop
 
/sw/gas-script.sh
3,9 → 3,8
if [[ ! -d binutils-2.25 ]]
then
tar -xvjf ./binutils-2.25.tar.bz2
patch -p0 <./binutils-2.25.patch
cd binutils-2.25
patch -p1 <../binutils-2.25.patch
cd ..
fi
 
set +h
12,13 → 11,13
set -e
CLFS_HOST="x86_64-cross-linux-gnu"
CLFS_TARGET="zip"
INSTALL_BASE=`pwd`/install
INSTALL_BASE=`pwd`/../install
mkdir -p ${INSTALL_BASE}/cross-tools
mkdir -p ${INSTALL_BASE}/tools/lib
mkdir -p build-gas
cd build-gas
mkdir -p build
cd build
AR=ar AS=as \
../binutils-2.25/configure --with-gas --prefix=${INSTALL_BASE}/cross-tools \
../configure --with-gas --prefix=${INSTALL_BASE}/cross-tools \
--host=${CLFS_HOST} --target=${CLFS_TARGET} \
--with-sysroot=${INSTALL_BASE} \
--with-lib-path=${INSTALL_BASE}/tools/lib \
26,5 → 25,3
--enable-gold=yes --enable-plugins --enable-threads \
--disable-werror
 
make
make install

powered by: WebSVN 2.1.0

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