patches/gcc/4.0.2/pr21623-workaround.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
Message-ID: <434576E1.6020305@sscd.de>
yann@1
     2
Date: Thu, 06 Oct 2005 21:11:29 +0200
yann@1
     3
From: Alexander Sieb <sieb@sscd.de>
yann@1
     4
To: crossgcc@sourceware.org
yann@1
     5
Subject: Crosstool sh4-linux-gcc-4.0.2-glibc-2.3.5 patches
yann@1
     6
yann@1
     7
Hi,
yann@1
     8
yann@1
     9
attached you find the files I needed to add to crosstool-0.38
yann@1
    10
in order to build a sh4-linux gcc-4.0.2-glibc-2.3.5 tool chain.
yann@1
    11
yann@1
    12
Files attached:
yann@1
    13
yann@1
    14
sh4-gcc4.dat:
yann@1
    15
        * gcc4 needs --with-multilib-list=m4,m4-nofpu otherwise a linux
yann@1
    16
        kernel won't build as it uses the -m4-nofpu option.
yann@1
    17
yann@1
    18
gcc-pr21623.patch:
yann@1
    19
        * Kaz Kojima provided a patch [really, a workaround -dank] for http://gcc.gnu.org/PR21623
yann@1
    20
yann@1
    21
glibc-2.3.5-sh-memset.patch:
yann@1
    22
        * A patch for glibc-2.3.5 which corrects memset. From SUGIOKA Toshinobu.
yann@1
    23
        See content for rationale.
yann@1
    24
yann@1
    25
-- snip --
yann@1
    26
yann@1
    27
-- Here's patch 1 of 2, plus URLs showing where it is in CVS --
yann@1
    28
yann@1
    29
[http://gcc.gnu.org/ml/gcc-cvs/2005-10/msg00081.html]
yann@1
    30
yann@1
    31
2005-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
yann@1
    32
yann@1
    33
	* config/sh/sh.c (sh_register_move_cost): Add case for moving
yann@1
    34
	from T_REGS to FP register class.
yann@1
    35
yann@1
    36
[http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/sh.c.diff?cvsroot=gcc&r1=1.347&r2=1.348]
yann@1
    37
yann@1
    38
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
yann@1
    39
retrieving revision 1.347
yann@1
    40
retrieving revision 1.348
yann@1
    41
diff -u -r1.347 -r1.348
yann@1
    42
--- gcc/gcc/config/sh/sh.c	2005/09/05 12:45:22	1.347
yann@1
    43
+++ gcc/gcc/config/sh/sh.c	2005/10/03 22:07:08	1.348
yann@1
    44
@@ -9491,6 +9491,9 @@ sh_register_move_cost (enum machine_mode
yann@1
    45
       && REGCLASS_HAS_FP_REG (dstclass))
yann@1
    46
     return 4;
yann@1
    47
 
yann@1
    48
+  if (REGCLASS_HAS_FP_REG (dstclass) && srcclass == T_REGS)
yann@1
    49
+    return ((TARGET_HARD_SH4 && !optimize_size) ? 10 : 7);
yann@1
    50
+
yann@1
    51
   if ((REGCLASS_HAS_FP_REG (dstclass) && srcclass == MAC_REGS)
yann@1
    52
       || (dstclass == MAC_REGS && REGCLASS_HAS_FP_REG (srcclass)))
yann@1
    53
     return 9;