diff options
Diffstat (limited to 'development/gcc-d')
-rw-r--r-- | development/gcc-d/gcc-d.SlackBuild | 6 | ||||
-rw-r--r-- | development/gcc-d/gcc-d.info | 4 | ||||
-rw-r--r-- | development/gcc-d/gcc.66782.diff | 124 | ||||
-rw-r--r-- | development/gcc-d/gcc.69140.diff | 13 |
4 files changed, 4 insertions, 143 deletions
diff --git a/development/gcc-d/gcc-d.SlackBuild b/development/gcc-d/gcc-d.SlackBuild index a5ebb7c39e..7b003b545c 100644 --- a/development/gcc-d/gcc-d.SlackBuild +++ b/development/gcc-d/gcc-d.SlackBuild @@ -28,8 +28,8 @@ PRGNAM=gcc-d SRCNAM=gdc VERSION=${VERSION:-2.076.0_b3} -GCC_VERSION=5.3.0 -BUILD=${BUILD:-1} +GCC_VERSION=5.5.0 +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -84,8 +84,6 @@ tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* # Apply patches. cd $TMP/gcc-$GCC_VERSION/gcc -cat $CWD/gcc.66782.diff | patch -p0 --verbose -cat $CWD/gcc.69140.diff | patch -p2 --verbose cd $TMP/$SRCNAM-$VERSION sh setup-gcc.sh ../gcc-$GCC_VERSION diff --git a/development/gcc-d/gcc-d.info b/development/gcc-d/gcc-d.info index bbb7b6a6e0..ca8f4bf084 100644 --- a/development/gcc-d/gcc-d.info +++ b/development/gcc-d/gcc-d.info @@ -1,9 +1,9 @@ PRGNAM="gcc-d" VERSION="2.076.0_b3" HOMEPAGE="https://www.gdcproject.org/" -DOWNLOAD="http://download.dlackware.com/slackware/slackware64-14.2/source/d/gcc/gcc-5.3.0.tar.xz \ +DOWNLOAD="http://download.dlackware.com/slackware/slackware64-14.2/patches/source/gcc/gcc-5.5.0.tar.xz \ http://download.dlackware.com/hosted-sources/gcc-d/gdc-2.076.0_b3.tar.xz" -MD5SUM="174cf91eff44e44205306245949ae19a \ +MD5SUM="0f70424213b4a1113c04ba66ddda0c1f \ 35cbed3c7dafbdd542db0030660602df" DOWNLOAD_x86_64="" MD5SUM_x86_64="" diff --git a/development/gcc-d/gcc.66782.diff b/development/gcc-d/gcc.66782.diff deleted file mode 100644 index 0743f8853b..0000000000 --- a/development/gcc-d/gcc.66782.diff +++ /dev/null @@ -1,124 +0,0 @@ -Index: config/i386/i386.md -=================================================================== ---- config/i386/i386.md (revision 225539) -+++ config/i386/i386.md (working copy) -@@ -108,6 +108,7 @@ - UNSPEC_LD_MPIC ; load_macho_picbase - UNSPEC_TRUNC_NOOP - UNSPEC_DIV_ALREADY_SPLIT -+ UNSPEC_MS_TO_SYSV_CALL - UNSPEC_PAUSE - UNSPEC_LEA_ADDR - UNSPEC_XBEGIN_ABORT -@@ -11584,6 +11585,15 @@ - "* return ix86_output_call_insn (insn, operands[0]);" - [(set_attr "type" "call")]) - -+(define_insn "*call_rex64_ms_sysv" -+ [(match_parallel 2 "call_rex64_ms_sysv_operation" -+ [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rBwBz")) -+ (match_operand 1)) -+ (unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)])] -+ "TARGET_64BIT && !SIBLING_CALL_P (insn)" -+ "* return ix86_output_call_insn (insn, operands[0]);" -+ [(set_attr "type" "call")]) -+ - (define_insn "*sibcall" - [(call (mem:QI (match_operand:W 0 "sibcall_insn_operand" "UBsBz")) - (match_operand 1))] -@@ -11808,6 +11818,16 @@ - (match_dup 3))) - (unspec [(const_int 0)] UNSPEC_PEEPSIB)])]) - -+(define_insn "*call_value_rex64_ms_sysv" -+ [(match_parallel 3 "call_rex64_ms_sysv_operation" -+ [(set (match_operand 0) -+ (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rBwBz")) -+ (match_operand 2))) -+ (unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)])] -+ "TARGET_64BIT && !SIBLING_CALL_P (insn)" -+ "* return ix86_output_call_insn (insn, operands[1]);" -+ [(set_attr "type" "callv")]) -+ - (define_expand "call_value_pop" - [(parallel [(set (match_operand 0) - (call (match_operand:QI 1) -Index: config/i386/predicates.md -=================================================================== ---- config/i386/predicates.md (revision 225533) -+++ config/i386/predicates.md (working copy) -@@ -616,6 +616,36 @@ - && XINT (XEXP (op, 0), 1) == UNSPEC_GOTPCREL); - }) - -+;; Return true if OP is a call from MS ABI to SYSV ABI function. -+(define_predicate "call_rex64_ms_sysv_operation" -+ (match_code "parallel") -+{ -+ unsigned creg_size = ARRAY_SIZE (x86_64_ms_sysv_extra_clobbered_registers); -+ unsigned i; -+ -+ if ((unsigned) XVECLEN (op, 0) != creg_size + 2) -+ return false; -+ -+ for (i = 0; i < creg_size; i++) -+ { -+ rtx elt = XVECEXP (op, 0, i+2); -+ enum machine_mode mode; -+ unsigned regno; -+ -+ if (GET_CODE (elt) != CLOBBER -+ || GET_CODE (SET_DEST (elt)) != REG) -+ return false; -+ -+ regno = x86_64_ms_sysv_extra_clobbered_registers[i]; -+ mode = SSE_REGNO_P (regno) ? TImode : DImode; -+ -+ if (GET_MODE (SET_DEST (elt)) != mode -+ || REGNO (SET_DEST (elt)) != regno) -+ return false; -+ } -+ return true; -+}) -+ - ;; Match exactly zero. - (define_predicate "const0_operand" - (match_code "const_int,const_wide_int,const_double,const_vector") -Index: config/i386/i386.c -=================================================================== ---- config/i386/i386.c (revision 225533) -+++ config/i386/i386.c (working copy) -@@ -25639,7 +25639,9 @@ - rtx callarg2, - rtx pop, bool sibcall) - { -- rtx vec[3]; -+ unsigned int const cregs_size -+ = ARRAY_SIZE (x86_64_ms_sysv_extra_clobbered_registers); -+ rtx vec[3 + cregs_size]; - rtx use = NULL, call; - unsigned int vec_len = 0; - -@@ -25742,16 +25744,18 @@ - if (TARGET_64BIT_MS_ABI - && (!callarg2 || INTVAL (callarg2) != -2)) - { -- int const cregs_size -- = ARRAY_SIZE (x86_64_ms_sysv_extra_clobbered_registers); -- int i; -+ unsigned i; - -+ vec[vec_len++] = gen_rtx_UNSPEC (VOIDmode, gen_rtvec (1, const0_rtx), -+ UNSPEC_MS_TO_SYSV_CALL); -+ - for (i = 0; i < cregs_size; i++) - { - int regno = x86_64_ms_sysv_extra_clobbered_registers[i]; - machine_mode mode = SSE_REGNO_P (regno) ? TImode : DImode; - -- clobber_reg (&use, gen_rtx_REG (mode, regno)); -+ vec[vec_len++] -+ = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (mode, regno)); - } - } - diff --git a/development/gcc-d/gcc.69140.diff b/development/gcc-d/gcc.69140.diff deleted file mode 100644 index ace60ebdd0..0000000000 --- a/development/gcc-d/gcc.69140.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- ./gcc/config/i386/i386.c.orig 2015-11-18 09:45:26.000000000 -0600 -+++ ./gcc/config/i386/i386.c 2016-02-05 13:50:07.202981920 -0600 -@@ -9677,6 +9677,10 @@ - if (TARGET_64BIT_MS_ABI && get_frame_size () > SEH_MAX_FRAME_SIZE) - return true; - -+ /* SSE saves require frame-pointer when stack is misaligned. */ -+ if (TARGET_64BIT_MS_ABI && ix86_incoming_stack_boundary < 128) -+ return true; -+ - /* In ix86_option_override_internal, TARGET_OMIT_LEAF_FRAME_POINTER - turns off the frame pointer by default. Turn it back on now if - we've not got a leaf function. */ |