summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2008-11-17 22:26:22 +0100
committerKoen Kooi <koen@openembedded.org>2008-11-17 22:26:22 +0100
commit051f59ecc15130fb88187c4c6b602801cbb40c79 (patch)
tree3b745f70162261aa1a5aea940d20b4bb3c78d29f /packages
parent6362c83899bb5f169d75678fabdead7083cbccd5 (diff)
gcc csl 2008q3: add fix for http://hardwarebug.org/2008/10/11/codesourcery-gcc-2008q3-fail/
Diffstat (limited to 'packages')
-rw-r--r--packages/gcc/gcc-csl-arm-2008q3.inc3
-rw-r--r--packages/gcc/gcc-csl-arm-2008q3/gcc-csl-2008q3-hotfix.diff2106
2 files changed, 2108 insertions, 1 deletions
diff --git a/packages/gcc/gcc-csl-arm-2008q3.inc b/packages/gcc/gcc-csl-arm-2008q3.inc
index 8985a7cbff..059c74210c 100644
--- a/packages/gcc/gcc-csl-arm-2008q3.inc
+++ b/packages/gcc/gcc-csl-arm-2008q3.inc
@@ -6,11 +6,12 @@ PV = "4.3.2+csl-arm-2008q3-39"
FILESDIR = "${FILE_DIRNAME}/gcc-csl-arm-2008q3"
SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-eabi/arm-2008q3-39-arm-none-eabi.src.tar.bz2 \
+ file://gcc-csl-2008q3-hotfix.diff;patch=1 \
file://arm-nolibfloat.patch;patch=1 \
file://arm-softfloat.patch;patch=1 \
# file://gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch;patch=1 \
# file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch;patch=1 \
- file://gcc-flags-for-build.patch;patch=1 \
+# file://gcc-flags-for-build.patch;patch=1 \
"
diff --git a/packages/gcc/gcc-csl-arm-2008q3/gcc-csl-2008q3-hotfix.diff b/packages/gcc/gcc-csl-arm-2008q3/gcc-csl-2008q3-hotfix.diff
new file mode 100644
index 0000000000..18f2328574
--- /dev/null
+++ b/packages/gcc/gcc-csl-arm-2008q3/gcc-csl-2008q3-hotfix.diff
@@ -0,0 +1,2106 @@
+diff -Nurd gcc-4.3/ChangeLog.csl gcc-4.3-new/ChangeLog.csl
+--- gcc-4.3/ChangeLog.csl 2008-10-01 14:56:28.000000000 +0200
++++ gcc-4.3-new/ChangeLog.csl 2008-10-18 13:08:51.000000000 +0200
+@@ -1,3 +1,190 @@
++2008-10-16 Nathan Froyd <froydnj@codesourcery.com>
++
++ gcc/
++ * config.gcc (powerpc-*-eabi*): Add rs6000/t-cs-eabi when
++ --enable-extra-sgxx-multilibs is passed to configure.
++ * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove te500mc.
++ (MULTILIB_DIRNAMES): Likewise.
++ (MULTILIB_EXCEPTIONS): Likewise.
++ * config/rs6000/t-cs-eabi: New file.
++
++2008-10-16 Julian Brown <julian@codesourcery.com>
++
++ Issue #4039
++
++ gcc/
++ * config/arm/neon.md (movmisalign<mode>): Use expander/unnamed insn
++ for both D & Q variants. Don't permit both operands to be mems.
++ * release-notes-csl.xml (Misaligned NEON memory accesses): Add note.
++
++2008-10-15 Catherine Moore <clm@codesourcery.com>
++
++ gcc/testsuite/
++ * gcc-target/mips/octeon-1.c (dg-mips-options): Use -mno-abicalls.
++ * gcc-target/mips/octeon-5.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-6.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-18.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-19.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-23.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-28.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-34.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-37.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-43.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-44.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-49.c (dg-mips-options): Likewise.
++ * gcc-target/mips/octeon-54.c (dg-mips-options): Likewise.
++
++2008-10-14 Sandra Loosemore <sandra@codesourcery.com>
++
++ Issue #4017
++
++ * release-notes-csl.xml (Linker script option syntax): New note.
++
++ gcc/
++ * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
++ * config/svr4.h (SVR4_ASM_SPEC): New.
++ (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
++ * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
++
++ gcc/doc/
++ * invoke.texi (Option Summary): Add -T to linker options.
++ (Link Options): Document -T.
++
++2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
++
++ gcc/
++ * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
++ attribute for struct return convention.
++
++2008-10-13 Paul Brook <paul@codesourcery.com>
++
++ gcc/
++ * config/arm/arm.h (fputype): Remove stray comma.
++
++2008-10-13 Andrew Stubbs <ams@codesourcery.com>
++
++ Issue #3884
++
++ gcc/
++ * doc/invoke.texi (PowerPC Options): -meabi option no longer places
++ __eabi function in main.
++
++2008-10-12 Mark Mitchell <mark@codesourcery.com>
++
++ Issue #3224
++ * release-notes-csl.xml: Mention OpenMP add-on.
++
++2008-10-12 Catherine Moore <clm@codesourcery.com>
++
++ Issue # 3903
++
++ Backport:
++
++ 2008-07-28 Ilie Garbacea <ilie@mips.com>
++ Chao-ying Fu <fu@mips.com>
++
++ * configure.tgt: Enable futex for MIPS.
++ * config/linux/mips/futex.h: New file.
++
++2008-10-12 Catherine Moore <clm@codesourcery.com>
++
++ gcc/
++ * config/mips/mips.opt (muclibc): New option entry.
++ * config/mips/mips.c (mips_override_options): Disable
++ __thread support when the -muclibc option is used.
++
++2008-10-11 Maxim Kuvyrkov <maxim@codesourcery.com>
++
++ gcc/
++ * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
++ PC-relative addressing when compiling for uclinux PIC.
++
++2008-10-09 Catherine Moore <clm@codesourcery.com>
++
++ Issue #3312
++
++ gcc/
++ * config/mips/mips.h ( DSP_CTRL_REG_FIRST): Define.
++ (DSP_CTRL_REG_LAST): Define.
++ * config/mips/mips.c (mips_conditional_register_usage): Handle
++ DSP registers.
++
++2008-10-08 Maxim Kuvyrkov <maxim@codesourcery.com>
++
++ * release-notes-csl.xml: Fix typo.
++
++2008-10-08 Nathan Sidwell <nathan@codesourcery.com>
++ Maxim Kuvyrkov <maxim@codesourcery.com>
++
++ * release-notes-csl.xml (Shared Libraries bug fix): New.
++
++ gcc/
++ * config/m68k/lb1sf68.asm (__cmpdf_internal, __cmpsf_internal): Hide.
++ (__cmpdf, __cmpsf): Use PIC call sequence.
++
++2008-10-07 Nathan Froyd <froydnj@codesourcery.com>
++
++ Issue #3988
++
++ * release-notes-csl.xml (Dynamic libraries and -Os bug fix): New.
++
++ gcc/
++ * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
++ * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
++ config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
++ config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
++ config/rs6000/e500crtres32gpr.asm,
++ config/rs6000/e500crtres64gpr.asm,
++ config/rs6000/e500crtres64gprctr.asm,
++ config/rs6000/e500crtrest32gpr.asm,
++ config/rs6000/e500crtrest64gpr.asm,
++ config/rs6000/e500crtresx32gpr.asm,
++ config/rs6000/e500crtresx64gpr.asm,
++ config/rs6000/e500crtsav32gpr.asm,
++ config/rs6000/e500crtsav64gpr.asm,
++ config/rs6000/e500crtsav64gprctr.asm,
++ config/rs6000/e500crtsavg32gpr.asm,
++ config/rs6000/e500crtsavg64gpr.asm,
++ config/rs6000/e500crtsavg64gprctr.asm: Use it.
++
++2008-10-07 Nathan Sidwell <nathan@codesourcery.com>
++
++ * release-notes-csl.xml: Document it.
++
++ gcc/
++ * doc/invoke.texi (MIPS Options): Add ice9 arch.
++ * config/mips/mips.c (mips_cpu_info_table): Add ice9 arch.
++
++2008-10-03 Catherine Moore <clm@codesourcery.com>
++
++ gcc/testsuite/
++ * gcc.target/mips/fix-ice9a-1.c: Disable for soft-float
++ multilibs.
++ * gcc.target/mips/fix-ice9a-1.c: Likewise.
++
++2008-10-03 Kazu Hirata <kazu@codesourcery.com>
++
++ Backport:
++ gcc/testsuite/
++ 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
++
++ * gcc.dg/pragma-init-fini.c: Use dg-warning in lieu of dg-error.
++ * gcc.dg/pragma-align-2.c: Likewise.
++ * gcc.dg/format/cmn-err-1.c: Likewise.
++
++2008-10-02 Catherine Moore <clm@codesourcery.com>
++
++ gcc/testsuite/
++ * gcc.target/mips/lazy-binding-1.c: Compile with -fpic.
++
++2008-10-02 Maciej W. Rozycki <macro@codesourcery.com>
++
++ Issue #3673
++ gcc/testsuite/
++ * lib/target-supports.exp
++ (check_effective_target_arm_iwmmxt_ok): New procedure.
++ * gcc.dg/arm-mmx-1.c: Only run if arm_iwmmxt_ok.
++
+ 2008-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ Backport:
+diff -Nurd gcc-4.3/gcc/config/arm/arm.h gcc-4.3-new/gcc/config/arm/arm.h
+--- gcc-4.3/gcc/config/arm/arm.h 2008-10-01 14:51:02.000000000 +0200
++++ gcc-4.3-new/gcc/config/arm/arm.h 2008-10-18 12:44:43.000000000 +0200
+@@ -329,7 +329,7 @@
+ /* Neon. */
+ FPUTYPE_NEON,
+ /* Neon with half-precision float extensions. */
+- FPUTYPE_NEON_FP16,
++ FPUTYPE_NEON_FP16
+ };
+
+ /* Recast the floating point class to be the floating point attribute. */
+diff -Nurd gcc-4.3/gcc/config/arm/neon.md gcc-4.3-new/gcc/config/arm/neon.md
+--- gcc-4.3/gcc/config/arm/neon.md 2008-10-01 14:51:02.000000000 +0200
++++ gcc-4.3-new/gcc/config/arm/neon.md 2008-10-18 12:44:43.000000000 +0200
+@@ -659,21 +659,36 @@
+ neon_disambiguate_copy (operands, dest, src, 4);
+ })
+
+-(define_insn "movmisalign<mode>"
++(define_expand "movmisalign<mode>"
++ [(set (match_operand:VDQX 0 "nonimmediate_operand" "")
++ (unspec:VDQX [(match_operand:VDQX 1 "general_operand" "")]
++ UNSPEC_MISALIGNED_ACCESS))]
++ "TARGET_NEON && !BYTES_BIG_ENDIAN"
++{
++ if (!s_register_operand (operands[0], <MODE>mode)
++ && !s_register_operand (operands[1], <MODE>mode))
++ FAIL;
++})
++
++(define_insn "*movmisalign<mode>_neon"
+ [(set (match_operand:VDX 0 "nonimmediate_operand" "=Um,w")
+ (unspec:VDX [(match_operand:VDX 1 "general_operand" " w, Um")]
+ UNSPEC_MISALIGNED_ACCESS))]
+- "TARGET_NEON && !BYTES_BIG_ENDIAN"
++ "TARGET_NEON && !BYTES_BIG_ENDIAN
++ && ( s_register_operand (operands[0], <MODE>mode)
++ || s_register_operand (operands[1], <MODE>mode))"
+ "@
+ vst1.<V_sz_elem>\t{%P1}, %A0
+ vld1.<V_sz_elem>\t{%P0}, %A1"
+ [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs,neon_vld1_1_2_regs")])
+
+-(define_insn "movmisalign<mode>"
++(define_insn "*movmisalign<mode>_neon"
+ [(set (match_operand:VQX 0 "nonimmediate_operand" "=Um,w")
+ (unspec:VQX [(match_operand:VQX 1 "general_operand" " w, Um")]
+ UNSPEC_MISALIGNED_ACCESS))]
+- "TARGET_NEON && !BYTES_BIG_ENDIAN"
++ "TARGET_NEON && !BYTES_BIG_ENDIAN
++ && ( s_register_operand (operands[0], <MODE>mode)
++ || s_register_operand (operands[1], <MODE>mode))"
+ "@
+ vst1.<V_sz_elem>\t{%q1}, %A0
+ vld1.<V_sz_elem>\t{%q0}, %A1"
+diff -Nurd gcc-4.3/gcc/config/m68k/lb1sf68.asm gcc-4.3-new/gcc/config/m68k/lb1sf68.asm
+--- gcc-4.3/gcc/config/m68k/lb1sf68.asm 2008-10-01 14:50:48.000000000 +0200
++++ gcc-4.3-new/gcc/config/m68k/lb1sf68.asm 2008-10-18 12:43:53.000000000 +0200
+@@ -129,30 +129,6 @@
+
+ #else /* __PIC__ */
+
+- /* Common for Linux and uClinux, the latter with either
+- -mid-shared-library or -msep-data. */
+-
+- .macro PICCALL addr
+-#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
+- lea \addr-.-8,a0
+- jsr pc@(a0)
+-#else
+- bsr \addr
+-#endif
+- .endm
+-
+- .macro PICJUMP addr
+- /* ISA C has no bra.l instruction, and since this assembly file
+- gets assembled into multiple object files, we avoid the
+- bra instruction entirely. */
+-#if defined (__mcoldfire__) && !defined (__mcfisab__)
+- lea \addr-.-8,a0
+- jmp pc@(a0)
+-#else
+- bra \addr
+-#endif
+- .endm
+-
+ # if defined (__uClinux__)
+
+ /* Versions for uClinux */
+@@ -171,6 +147,16 @@
+ movel \sym@GOT(\areg), sp@-
+ .endm
+
++ .macro PICCALL addr
++ PICLEA \addr,a0
++ jsr a0@
++ .endm
++
++ .macro PICJUMP addr
++ PICLEA \addr,a0
++ jmp a0@
++ .endm
++
+ # else /* !__ID_SHARED_LIBRARY__ */
+
+ /* Versions for -msep-data */
+@@ -183,6 +169,27 @@
+ movel \sym@GOT(a5), sp@-
+ .endm
+
++ .macro PICCALL addr
++#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
++ lea \addr-.-8,a0
++ jsr pc@(a0)
++#else
++ bsr \addr
++#endif
++ .endm
++
++ .macro PICJUMP addr
++ /* ISA C has no bra.l instruction, and since this assembly file
++ gets assembled into multiple object files, we avoid the
++ bra instruction entirely. */
++#if defined (__mcoldfire__) && !defined (__mcfisab__)
++ lea \addr-.-8,a0
++ jmp pc@(a0)
++#else
++ bra \addr
++#endif
++ .endm
++
+ # endif
+
+ # else /* !__uClinux__ */
+@@ -201,6 +208,27 @@
+ movel \sym@GOT(\areg), sp@-
+ .endm
+
++ .macro PICCALL addr
++#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
++ lea \addr-.-8,a0
++ jsr pc@(a0)
++#else
++ bsr \addr
++#endif
++ .endm
++
++ .macro PICJUMP addr
++ /* ISA C has no bra.l instruction, and since this assembly file
++ gets assembled into multiple object files, we avoid the
++ bra instruction entirely. */
++#if defined (__mcoldfire__) && !defined (__mcfisab__)
++ lea \addr-.-8,a0
++ jmp pc@(a0)
++#else
++ bra \addr
++#endif
++ .endm
++
+ # endif
+ #endif /* __PIC__ */
+
+@@ -648,6 +676,7 @@
+ .globl SYM (__negdf2)
+ .globl SYM (__cmpdf2)
+ .globl SYM (__cmpdf2_internal)
++ .hidden SYM (__cmpdf2_internal)
+
+ .text
+ .even
+@@ -2410,7 +2439,7 @@
+ movl a6@(16),sp@-
+ movl a6@(12),sp@-
+ movl a6@(8),sp@-
+- bsr SYM (__cmpdf2_internal)
++ PICCALL SYM (__cmpdf2_internal)
+ unlk a6
+ rts
+
+@@ -2562,6 +2591,7 @@
+ .globl SYM (__negsf2)
+ .globl SYM (__cmpsf2)
+ .globl SYM (__cmpsf2_internal)
++ .hidden SYM (__cmpsf2_internal)
+
+ | These are common routines to return and signal exceptions.
+
+@@ -3816,7 +3846,7 @@
+ pea 1
+ movl a6@(12),sp@-
+ movl a6@(8),sp@-
+- bsr (__cmpsf2_internal)
++ PICCALL SYM (__cmpsf2_internal)
+ unlk a6
+ rts
+
+diff -Nurd gcc-4.3/gcc/config/mips/mips.c gcc-4.3-new/gcc/config/mips/mips.c
+--- gcc-4.3/gcc/config/mips/mips.c 2008-10-01 14:51:08.000000000 +0200
++++ gcc-4.3-new/gcc/config/mips/mips.c 2008-10-18 12:45:05.000000000 +0200
+@@ -657,6 +657,7 @@
+ { "sr71000", PROCESSOR_SR71000, 64, PTF_AVOID_BRANCHLIKELY },
+ { "xlr", PROCESSOR_XLR, 64, 0 },
+ { "octeon", PROCESSOR_OCTEON, 64, 0 },
++ { "ice9", PROCESSOR_5KF, 64 }, /* May diverge from 5kf in future. */
+ };
+
+ /* Default costs. If these are used for a processor we should look
+@@ -12577,6 +12578,10 @@
+ /* Function to allocate machine-dependent function status. */
+ init_machine_status = &mips_init_machine_status;
+
++ /* __thread_support is not supported by uClibc. */
++ if (building_for_uclibc)
++ targetm.have_tls = 0;
++
+ /* Default to working around R4000 errata only if the processor
+ was selected explicitly. */
+ if ((target_flags_explicit & MASK_FIX_R4000) == 0
+@@ -12629,18 +12634,24 @@
+ #undef SWAP_STRING
+ #undef SWAP_INT
+ }
+-
+-/* Implement CONDITIONAL_REGISTER_USAGE. */
+-
+ void
+ mips_conditional_register_usage (void)
+ {
++
++ /* These DSP control register fields are global. */
++ if (ISA_HAS_DSP)
++ {
++ global_regs[CCDSP_PO_REGNUM] = 1;
++ global_regs[CCDSP_SC_REGNUM] = 1;
++ }
+ if (!ISA_HAS_DSP)
+ {
+ int regno;
+
+ for (regno = DSP_ACC_REG_FIRST; regno <= DSP_ACC_REG_LAST; regno++)
+ fixed_regs[regno] = call_used_regs[regno] = 1;
++ for (regno = DSP_CTRL_REG_FIRST; regno <= DSP_CTRL_REG_LAST; regno++)
++ fixed_regs[regno] = call_used_regs[regno] = 1;
+ }
+ if (!TARGET_HARD_FLOAT)
+ {
+diff -Nurd gcc-4.3/gcc/config/mips/mips.h gcc-4.3-new/gcc/config/mips/mips.h
+--- gcc-4.3/gcc/config/mips/mips.h 2008-10-01 14:51:08.000000000 +0200
++++ gcc-4.3-new/gcc/config/mips/mips.h 2008-10-18 12:45:05.000000000 +0200
+@@ -1615,6 +1615,9 @@
+ #define DSP_ACC_REG_LAST 181
+ #define DSP_ACC_REG_NUM (DSP_ACC_REG_LAST - DSP_ACC_REG_FIRST + 1)
+
++#define DSP_CTRL_REG_FIRST 182
++#define DSP_CTRL_REG_LAST 187
++
+ #define AT_REGNUM (GP_REG_FIRST + 1)
+ #define HI_REGNUM (TARGET_BIG_ENDIAN ? MD_REG_FIRST : MD_REG_FIRST + 1)
+ #define LO_REGNUM (TARGET_BIG_ENDIAN ? MD_REG_FIRST + 1 : MD_REG_FIRST)
+diff -Nurd gcc-4.3/gcc/config/mips/mips.opt gcc-4.3-new/gcc/config/mips/mips.opt
+--- gcc-4.3/gcc/config/mips/mips.opt 2008-10-01 14:51:08.000000000 +0200
++++ gcc-4.3-new/gcc/config/mips/mips.opt 2008-10-18 12:45:05.000000000 +0200
+@@ -272,6 +272,10 @@
+ Target RejectNegative Joined Var(mips_tune_string)
+ -mtune=PROCESSOR Optimize the output for PROCESSOR
+
++muclibc
++Target RejectNegative Var(building_for_uclibc)
++Building with -muclibc
++
+ muninit-const-in-rodata
+ Target Report Var(TARGET_UNINIT_CONST_IN_RODATA)
+ Put uninitialized constants in ROM (needs -membedded-data)
+diff -Nurd gcc-4.3/gcc/config/rs6000/crtresfpr.asm gcc-4.3-new/gcc/config/rs6000/crtresfpr.asm
+--- gcc-4.3/gcc/config/rs6000/crtresfpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/crtresfpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -49,24 +49,24 @@
+ /* Called with r11 pointing to the stack header word of the caller of the */
+ /* function, just beyond the end of the floating point save area. */
+
+-FUNC_START(_restfpr_14) lfd 14,-144(11) /* restore fp registers */
+-FUNC_START(_restfpr_15) lfd 15,-136(11)
+-FUNC_START(_restfpr_16) lfd 16,-128(11)
+-FUNC_START(_restfpr_17) lfd 17,-120(11)
+-FUNC_START(_restfpr_18) lfd 18,-112(11)
+-FUNC_START(_restfpr_19) lfd 19,-104(11)
+-FUNC_START(_restfpr_20) lfd 20,-96(11)
+-FUNC_START(_restfpr_21) lfd 21,-88(11)
+-FUNC_START(_restfpr_22) lfd 22,-80(11)
+-FUNC_START(_restfpr_23) lfd 23,-72(11)
+-FUNC_START(_restfpr_24) lfd 24,-64(11)
+-FUNC_START(_restfpr_25) lfd 25,-56(11)
+-FUNC_START(_restfpr_26) lfd 26,-48(11)
+-FUNC_START(_restfpr_27) lfd 27,-40(11)
+-FUNC_START(_restfpr_28) lfd 28,-32(11)
+-FUNC_START(_restfpr_29) lfd 29,-24(11)
+-FUNC_START(_restfpr_30) lfd 30,-16(11)
+-FUNC_START(_restfpr_31) lfd 31,-8(11)
++HIDDEN_FUNC(_restfpr_14) lfd 14,-144(11) /* restore fp registers */
++HIDDEN_FUNC(_restfpr_15) lfd 15,-136(11)
++HIDDEN_FUNC(_restfpr_16) lfd 16,-128(11)
++HIDDEN_FUNC(_restfpr_17) lfd 17,-120(11)
++HIDDEN_FUNC(_restfpr_18) lfd 18,-112(11)
++HIDDEN_FUNC(_restfpr_19) lfd 19,-104(11)
++HIDDEN_FUNC(_restfpr_20) lfd 20,-96(11)
++HIDDEN_FUNC(_restfpr_21) lfd 21,-88(11)
++HIDDEN_FUNC(_restfpr_22) lfd 22,-80(11)
++HIDDEN_FUNC(_restfpr_23) lfd 23,-72(11)
++HIDDEN_FUNC(_restfpr_24) lfd 24,-64(11)
++HIDDEN_FUNC(_restfpr_25) lfd 25,-56(11)
++HIDDEN_FUNC(_restfpr_26) lfd 26,-48(11)
++HIDDEN_FUNC(_restfpr_27) lfd 27,-40(11)
++HIDDEN_FUNC(_restfpr_28) lfd 28,-32(11)
++HIDDEN_FUNC(_restfpr_29) lfd 29,-24(11)
++HIDDEN_FUNC(_restfpr_30) lfd 30,-16(11)
++HIDDEN_FUNC(_restfpr_31) lfd 31,-8(11)
+ blr
+ FUNC_END(_restfpr_31)
+ FUNC_END(_restfpr_30)
+diff -Nurd gcc-4.3/gcc/config/rs6000/crtresgpr.asm gcc-4.3-new/gcc/config/rs6000/crtresgpr.asm
+--- gcc-4.3/gcc/config/rs6000/crtresgpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/crtresgpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -49,24 +49,24 @@
+ /* Called with r11 pointing to the stack header word of the caller of the */
+ /* function, just beyond the end of the integer restore area. */
+
+-FUNC_START(_restgpr_14) lwz 14,-72(11) /* restore gp registers */
+-FUNC_START(_restgpr_15) lwz 15,-68(11)
+-FUNC_START(_restgpr_16) lwz 16,-64(11)
+-FUNC_START(_restgpr_17) lwz 17,-60(11)
+-FUNC_START(_restgpr_18) lwz 18,-56(11)
+-FUNC_START(_restgpr_19) lwz 19,-52(11)
+-FUNC_START(_restgpr_20) lwz 20,-48(11)
+-FUNC_START(_restgpr_21) lwz 21,-44(11)
+-FUNC_START(_restgpr_22) lwz 22,-40(11)
+-FUNC_START(_restgpr_23) lwz 23,-36(11)
+-FUNC_START(_restgpr_24) lwz 24,-32(11)
+-FUNC_START(_restgpr_25) lwz 25,-28(11)
+-FUNC_START(_restgpr_26) lwz 26,-24(11)
+-FUNC_START(_restgpr_27) lwz 27,-20(11)
+-FUNC_START(_restgpr_28) lwz 28,-16(11)
+-FUNC_START(_restgpr_29) lwz 29,-12(11)
+-FUNC_START(_restgpr_30) lwz 30,-8(11)
+-FUNC_START(_restgpr_31) lwz 31,-4(11)
++HIDDEN_FUNC(_restgpr_14) lwz 14,-72(11) /* restore gp registers */
++HIDDEN_FUNC(_restgpr_15) lwz 15,-68(11)
++HIDDEN_FUNC(_restgpr_16) lwz 16,-64(11)
++HIDDEN_FUNC(_restgpr_17) lwz 17,-60(11)
++HIDDEN_FUNC(_restgpr_18) lwz 18,-56(11)
++HIDDEN_FUNC(_restgpr_19) lwz 19,-52(11)
++HIDDEN_FUNC(_restgpr_20) lwz 20,-48(11)
++HIDDEN_FUNC(_restgpr_21) lwz 21,-44(11)
++HIDDEN_FUNC(_restgpr_22) lwz 22,-40(11)
++HIDDEN_FUNC(_restgpr_23) lwz 23,-36(11)
++HIDDEN_FUNC(_restgpr_24) lwz 24,-32(11)
++HIDDEN_FUNC(_restgpr_25) lwz 25,-28(11)
++HIDDEN_FUNC(_restgpr_26) lwz 26,-24(11)
++HIDDEN_FUNC(_restgpr_27) lwz 27,-20(11)
++HIDDEN_FUNC(_restgpr_28) lwz 28,-16(11)
++HIDDEN_FUNC(_restgpr_29) lwz 29,-12(11)
++HIDDEN_FUNC(_restgpr_30) lwz 30,-8(11)
++HIDDEN_FUNC(_restgpr_31) lwz 31,-4(11)
+ blr
+ FUNC_END(_restgpr_31)
+ FUNC_END(_restgpr_30)
+diff -Nurd gcc-4.3/gcc/config/rs6000/crtresxfpr.asm gcc-4.3-new/gcc/config/rs6000/crtresxfpr.asm
+--- gcc-4.3/gcc/config/rs6000/crtresxfpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/crtresxfpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -51,24 +51,24 @@
+ /* In addition to restoring the fp registers, it will return to the caller's */
+ /* caller */
+
+-FUNC_START(_restfpr_14_x) lfd 14,-144(11) /* restore fp registers */
+-FUNC_START(_restfpr_15_x) lfd 15,-136(11)
+-FUNC_START(_restfpr_16_x) lfd 16,-128(11)
+-FUNC_START(_restfpr_17_x) lfd 17,-120(11)
+-FUNC_START(_restfpr_18_x) lfd 18,-112(11)
+-FUNC_START(_restfpr_19_x) lfd 19,-104(11)
+-FUNC_START(_restfpr_20_x) lfd 20,-96(11)
+-FUNC_START(_restfpr_21_x) lfd 21,-88(11)
+-FUNC_START(_restfpr_22_x) lfd 22,-80(11)
+-FUNC_START(_restfpr_23_x) lfd 23,-72(11)
+-FUNC_START(_restfpr_24_x) lfd 24,-64(11)
+-FUNC_START(_restfpr_25_x) lfd 25,-56(11)
+-FUNC_START(_restfpr_26_x) lfd 26,-48(11)
+-FUNC_START(_restfpr_27_x) lfd 27,-40(11)
+-FUNC_START(_restfpr_28_x) lfd 28,-32(11)
+-FUNC_START(_restfpr_29_x) lfd 29,-24(11)
+-FUNC_START(_restfpr_30_x) lfd 30,-16(11)
+-FUNC_START(_restfpr_31_x) lwz 0,4(11)
++HIDDEN_FUNC(_restfpr_14_x) lfd 14,-144(11) /* restore fp registers */
++HIDDEN_FUNC(_restfpr_15_x) lfd 15,-136(11)
++HIDDEN_FUNC(_restfpr_16_x) lfd 16,-128(11)
++HIDDEN_FUNC(_restfpr_17_x) lfd 17,-120(11)
++HIDDEN_FUNC(_restfpr_18_x) lfd 18,-112(11)
++HIDDEN_FUNC(_restfpr_19_x) lfd 19,-104(11)
++HIDDEN_FUNC(_restfpr_20_x) lfd 20,-96(11)
++HIDDEN_FUNC(_restfpr_21_x) lfd 21,-88(11)
++HIDDEN_FUNC(_restfpr_22_x) lfd 22,-80(11)
++HIDDEN_FUNC(_restfpr_23_x) lfd 23,-72(11)
++HIDDEN_FUNC(_restfpr_24_x) lfd 24,-64(11)
++HIDDEN_FUNC(_restfpr_25_x) lfd 25,-56(11)
++HIDDEN_FUNC(_restfpr_26_x) lfd 26,-48(11)
++HIDDEN_FUNC(_restfpr_27_x) lfd 27,-40(11)
++HIDDEN_FUNC(_restfpr_28_x) lfd 28,-32(11)
++HIDDEN_FUNC(_restfpr_29_x) lfd 29,-24(11)
++HIDDEN_FUNC(_restfpr_30_x) lfd 30,-16(11)
++HIDDEN_FUNC(_restfpr_31_x) lwz 0,4(11)
+ lfd 31,-8(11)
+ mtlr 0
+ mr 1,11
+diff -Nurd gcc-4.3/gcc/config/rs6000/crtresxgpr.asm gcc-4.3-new/gcc/config/rs6000/crtresxgpr.asm
+--- gcc-4.3/gcc/config/rs6000/crtresxgpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/crtresxgpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -49,24 +49,24 @@
+ /* Called with r11 pointing to the stack header word of the caller of the */
+ /* function, just beyond the end of the integer restore area. */
+
+-FUNC_START(_restgpr_14_x) lwz 14,-72(11) /* restore gp registers */
+-FUNC_START(_restgpr_15_x) lwz 15,-68(11)
+-FUNC_START(_restgpr_16_x) lwz 16,-64(11)
+-FUNC_START(_restgpr_17_x) lwz 17,-60(11)
+-FUNC_START(_restgpr_18_x) lwz 18,-56(11)
+-FUNC_START(_restgpr_19_x) lwz 19,-52(11)
+-FUNC_START(_restgpr_20_x) lwz 20,-48(11)
+-FUNC_START(_restgpr_21_x) lwz 21,-44(11)
+-FUNC_START(_restgpr_22_x) lwz 22,-40(11)
+-FUNC_START(_restgpr_23_x) lwz 23,-36(11)
+-FUNC_START(_restgpr_24_x) lwz 24,-32(11)
+-FUNC_START(_restgpr_25_x) lwz 25,-28(11)
+-FUNC_START(_restgpr_26_x) lwz 26,-24(11)
+-FUNC_START(_restgpr_27_x) lwz 27,-20(11)
+-FUNC_START(_restgpr_28_x) lwz 28,-16(11)
+-FUNC_START(_restgpr_29_x) lwz 29,-12(11)
+-FUNC_START(_restgpr_30_x) lwz 30,-8(11)
+-FUNC_START(_restgpr_31_x) lwz 0,4(11)
++HIDDEN_FUNC(_restgpr_14_x) lwz 14,-72(11) /* restore gp registers */
++HIDDEN_FUNC(_restgpr_15_x) lwz 15,-68(11)
++HIDDEN_FUNC(_restgpr_16_x) lwz 16,-64(11)
++HIDDEN_FUNC(_restgpr_17_x) lwz 17,-60(11)
++HIDDEN_FUNC(_restgpr_18_x) lwz 18,-56(11)
++HIDDEN_FUNC(_restgpr_19_x) lwz 19,-52(11)
++HIDDEN_FUNC(_restgpr_20_x) lwz 20,-48(11)
++HIDDEN_FUNC(_restgpr_21_x) lwz 21,-44(11)
++HIDDEN_FUNC(_restgpr_22_x) lwz 22,-40(11)
++HIDDEN_FUNC(_restgpr_23_x) lwz 23,-36(11)
++HIDDEN_FUNC(_restgpr_24_x) lwz 24,-32(11)
++HIDDEN_FUNC(_restgpr_25_x) lwz 25,-28(11)
++HIDDEN_FUNC(_restgpr_26_x) lwz 26,-24(11)
++HIDDEN_FUNC(_restgpr_27_x) lwz 27,-20(11)
++HIDDEN_FUNC(_restgpr_28_x) lwz 28,-16(11)
++HIDDEN_FUNC(_restgpr_29_x) lwz 29,-12(11)
++HIDDEN_FUNC(_restgpr_30_x) lwz 30,-8(11)
++HIDDEN_FUNC(_restgpr_31_x) lwz 0,4(11)
+ lwz 31,-4(11)
+ mtlr 0
+ mr 1,11
+diff -Nurd gcc-4.3/gcc/config/rs6000/crtsavfpr.asm gcc-4.3-new/gcc/config/rs6000/crtsavfpr.asm
+--- gcc-4.3/gcc/config/rs6000/crtsavfpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/crtsavfpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -49,24 +49,24 @@
+ /* Called with r11 pointing to the stack header word of the caller of the */
+ /* function, just beyond the end of the floating point save area. */
+
+-FUNC_START(_savefpr_14) stfd 14,-144(11) /* save fp registers */
+-FUNC_START(_savefpr_15) stfd 15,-136(11)
+-FUNC_START(_savefpr_16) stfd 16,-128(11)
+-FUNC_START(_savefpr_17) stfd 17,-120(11)
+-FUNC_START(_savefpr_18) stfd 18,-112(11)
+-FUNC_START(_savefpr_19) stfd 19,-104(11)
+-FUNC_START(_savefpr_20) stfd 20,-96(11)
+-FUNC_START(_savefpr_21) stfd 21,-88(11)
+-FUNC_START(_savefpr_22) stfd 22,-80(11)
+-FUNC_START(_savefpr_23) stfd 23,-72(11)
+-FUNC_START(_savefpr_24) stfd 24,-64(11)
+-FUNC_START(_savefpr_25) stfd 25,-56(11)
+-FUNC_START(_savefpr_26) stfd 26,-48(11)
+-FUNC_START(_savefpr_27) stfd 27,-40(11)
+-FUNC_START(_savefpr_28) stfd 28,-32(11)
+-FUNC_START(_savefpr_29) stfd 29,-24(11)
+-FUNC_START(_savefpr_30) stfd 30,-16(11)
+-FUNC_START(_savefpr_31) stfd 31,-8(11)
++HIDDEN_FUNC(_savefpr_14) stfd 14,-144(11) /* save fp registers */
++HIDDEN_FUNC(_savefpr_15) stfd 15,-136(11)
++HIDDEN_FUNC(_savefpr_16) stfd 16,-128(11)
++HIDDEN_FUNC(_savefpr_17) stfd 17,-120(11)
++HIDDEN_FUNC(_savefpr_18) stfd 18,-112(11)
++HIDDEN_FUNC(_savefpr_19) stfd 19,-104(11)
++HIDDEN_FUNC(_savefpr_20) stfd 20,-96(11)
++HIDDEN_FUNC(_savefpr_21) stfd 21,-88(11)
++HIDDEN_FUNC(_savefpr_22) stfd 22,-80(11)
++HIDDEN_FUNC(_savefpr_23) stfd 23,-72(11)
++HIDDEN_FUNC(_savefpr_24) stfd 24,-64(11)
++HIDDEN_FUNC(_savefpr_25) stfd 25,-56(11)
++HIDDEN_FUNC(_savefpr_26) stfd 26,-48(11)
++HIDDEN_FUNC(_savefpr_27) stfd 27,-40(11)
++HIDDEN_FUNC(_savefpr_28) stfd 28,-32(11)
++HIDDEN_FUNC(_savefpr_29) stfd 29,-24(11)
++HIDDEN_FUNC(_savefpr_30) stfd 30,-16(11)
++HIDDEN_FUNC(_savefpr_31) stfd 31,-8(11)
+ blr
+ FUNC_END(_savefpr_31)
+ FUNC_END(_savefpr_30)
+diff -Nurd gcc-4.3/gcc/config/rs6000/crtsavgpr.asm gcc-4.3-new/gcc/config/rs6000/crtsavgpr.asm
+--- gcc-4.3/gcc/config/rs6000/crtsavgpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/crtsavgpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -49,24 +49,24 @@
+ /* Called with r11 pointing to the stack header word of the caller of the */
+ /* function, just beyond the end of the integer save area. */
+
+-FUNC_START(_savegpr_14) stw 14,-72(11) /* save gp registers */
+-FUNC_START(_savegpr_15) stw 15,-68(11)
+-FUNC_START(_savegpr_16) stw 16,-64(11)
+-FUNC_START(_savegpr_17) stw 17,-60(11)
+-FUNC_START(_savegpr_18) stw 18,-56(11)
+-FUNC_START(_savegpr_19) stw 19,-52(11)
+-FUNC_START(_savegpr_20) stw 20,-48(11)
+-FUNC_START(_savegpr_21) stw 21,-44(11)
+-FUNC_START(_savegpr_22) stw 22,-40(11)
+-FUNC_START(_savegpr_23) stw 23,-36(11)
+-FUNC_START(_savegpr_24) stw 24,-32(11)
+-FUNC_START(_savegpr_25) stw 25,-28(11)
+-FUNC_START(_savegpr_26) stw 26,-24(11)
+-FUNC_START(_savegpr_27) stw 27,-20(11)
+-FUNC_START(_savegpr_28) stw 28,-16(11)
+-FUNC_START(_savegpr_29) stw 29,-12(11)
+-FUNC_START(_savegpr_30) stw 30,-8(11)
+-FUNC_START(_savegpr_31) stw 31,-4(11)
++HIDDEN_FUNC(_savegpr_14) stw 14,-72(11) /* save gp registers */
++HIDDEN_FUNC(_savegpr_15) stw 15,-68(11)
++HIDDEN_FUNC(_savegpr_16) stw 16,-64(11)
++HIDDEN_FUNC(_savegpr_17) stw 17,-60(11)
++HIDDEN_FUNC(_savegpr_18) stw 18,-56(11)
++HIDDEN_FUNC(_savegpr_19) stw 19,-52(11)
++HIDDEN_FUNC(_savegpr_20) stw 20,-48(11)
++HIDDEN_FUNC(_savegpr_21) stw 21,-44(11)
++HIDDEN_FUNC(_savegpr_22) stw 22,-40(11)
++HIDDEN_FUNC(_savegpr_23) stw 23,-36(11)
++HIDDEN_FUNC(_savegpr_24) stw 24,-32(11)
++HIDDEN_FUNC(_savegpr_25) stw 25,-28(11)
++HIDDEN_FUNC(_savegpr_26) stw 26,-24(11)
++HIDDEN_FUNC(_savegpr_27) stw 27,-20(11)
++HIDDEN_FUNC(_savegpr_28) stw 28,-16(11)
++HIDDEN_FUNC(_savegpr_29) stw 29,-12(11)
++HIDDEN_FUNC(_savegpr_30) stw 30,-8(11)
++HIDDEN_FUNC(_savegpr_31) stw 31,-4(11)
+ blr
+ FUNC_END(_savegpr_31)
+ FUNC_END(_savegpr_30)
+diff -Nurd gcc-4.3/gcc/config/rs6000/e500crtres32gpr.asm gcc-4.3-new/gcc/config/rs6000/e500crtres32gpr.asm
+--- gcc-4.3/gcc/config/rs6000/e500crtres32gpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/e500crtres32gpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -43,24 +43,24 @@
+ /* Routines for restoring 32-bit integer registers, called by the compiler. */
+ /* "Bare" versions that simply return to their caller. */
+
+-FUNC_START(_rest32gpr_14) lwz 14,-72(11)
+-FUNC_START(_rest32gpr_15) lwz 15,-68(11)
+-FUNC_START(_rest32gpr_16) lwz 16,-64(11)
+-FUNC_START(_rest32gpr_17) lwz 17,-60(11)
+-FUNC_START(_rest32gpr_18) lwz 18,-56(11)
+-FUNC_START(_rest32gpr_19) lwz 19,-52(11)
+-FUNC_START(_rest32gpr_20) lwz 20,-48(11)
+-FUNC_START(_rest32gpr_21) lwz 21,-44(11)
+-FUNC_START(_rest32gpr_22) lwz 22,-40(11)
+-FUNC_START(_rest32gpr_23) lwz 23,-36(11)
+-FUNC_START(_rest32gpr_24) lwz 24,-32(11)
+-FUNC_START(_rest32gpr_25) lwz 25,-28(11)
+-FUNC_START(_rest32gpr_26) lwz 26,-24(11)
+-FUNC_START(_rest32gpr_27) lwz 27,-20(11)
+-FUNC_START(_rest32gpr_28) lwz 28,-16(11)
+-FUNC_START(_rest32gpr_29) lwz 29,-12(11)
+-FUNC_START(_rest32gpr_30) lwz 30,-8(11)
+-FUNC_START(_rest32gpr_31) lwz 31,-4(11)
++HIDDEN_FUNC(_rest32gpr_14) lwz 14,-72(11)
++HIDDEN_FUNC(_rest32gpr_15) lwz 15,-68(11)
++HIDDEN_FUNC(_rest32gpr_16) lwz 16,-64(11)
++HIDDEN_FUNC(_rest32gpr_17) lwz 17,-60(11)
++HIDDEN_FUNC(_rest32gpr_18) lwz 18,-56(11)
++HIDDEN_FUNC(_rest32gpr_19) lwz 19,-52(11)
++HIDDEN_FUNC(_rest32gpr_20) lwz 20,-48(11)
++HIDDEN_FUNC(_rest32gpr_21) lwz 21,-44(11)
++HIDDEN_FUNC(_rest32gpr_22) lwz 22,-40(11)
++HIDDEN_FUNC(_rest32gpr_23) lwz 23,-36(11)
++HIDDEN_FUNC(_rest32gpr_24) lwz 24,-32(11)
++HIDDEN_FUNC(_rest32gpr_25) lwz 25,-28(11)
++HIDDEN_FUNC(_rest32gpr_26) lwz 26,-24(11)
++HIDDEN_FUNC(_rest32gpr_27) lwz 27,-20(11)
++HIDDEN_FUNC(_rest32gpr_28) lwz 28,-16(11)
++HIDDEN_FUNC(_rest32gpr_29) lwz 29,-12(11)
++HIDDEN_FUNC(_rest32gpr_30) lwz 30,-8(11)
++HIDDEN_FUNC(_rest32gpr_31) lwz 31,-4(11)
+ blr
+ FUNC_END(_rest32gpr_31)
+ FUNC_END(_rest32gpr_30)
+diff -Nurd gcc-4.3/gcc/config/rs6000/e500crtres64gpr.asm gcc-4.3-new/gcc/config/rs6000/e500crtres64gpr.asm
+--- gcc-4.3/gcc/config/rs6000/e500crtres64gpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/e500crtres64gpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -43,24 +43,24 @@
+ /* Routines for restoring 64-bit integer registers, called by the compiler. */
+ /* "Bare" versions that return to their caller. */
+
+-FUNC_START(_rest64gpr_14) evldd 14,0(11)
+-FUNC_START(_rest64gpr_15) evldd 15,8(11)
+-FUNC_START(_rest64gpr_16) evldd 16,16(11)
+-FUNC_START(_rest64gpr_17) evldd 17,24(11)
+-FUNC_START(_rest64gpr_18) evldd 18,32(11)
+-FUNC_START(_rest64gpr_19) evldd 19,40(11)
+-FUNC_START(_rest64gpr_20) evldd 20,48(11)
+-FUNC_START(_rest64gpr_21) evldd 21,56(11)
+-FUNC_START(_rest64gpr_22) evldd 22,64(11)
+-FUNC_START(_rest64gpr_23) evldd 23,72(11)
+-FUNC_START(_rest64gpr_24) evldd 24,80(11)
+-FUNC_START(_rest64gpr_25) evldd 25,88(11)
+-FUNC_START(_rest64gpr_26) evldd 26,96(11)
+-FUNC_START(_rest64gpr_27) evldd 27,104(11)
+-FUNC_START(_rest64gpr_28) evldd 28,112(11)
+-FUNC_START(_rest64gpr_29) evldd 29,120(11)
+-FUNC_START(_rest64gpr_30) evldd 30,128(11)
+-FUNC_START(_rest64gpr_31) evldd 31,136(11)
++HIDDEN_FUNC(_rest64gpr_14) evldd 14,0(11)
++HIDDEN_FUNC(_rest64gpr_15) evldd 15,8(11)
++HIDDEN_FUNC(_rest64gpr_16) evldd 16,16(11)
++HIDDEN_FUNC(_rest64gpr_17) evldd 17,24(11)
++HIDDEN_FUNC(_rest64gpr_18) evldd 18,32(11)
++HIDDEN_FUNC(_rest64gpr_19) evldd 19,40(11)
++HIDDEN_FUNC(_rest64gpr_20) evldd 20,48(11)
++HIDDEN_FUNC(_rest64gpr_21) evldd 21,56(11)
++HIDDEN_FUNC(_rest64gpr_22) evldd 22,64(11)
++HIDDEN_FUNC(_rest64gpr_23) evldd 23,72(11)
++HIDDEN_FUNC(_rest64gpr_24) evldd 24,80(11)
++HIDDEN_FUNC(_rest64gpr_25) evldd 25,88(11)
++HIDDEN_FUNC(_rest64gpr_26) evldd 26,96(11)
++HIDDEN_FUNC(_rest64gpr_27) evldd 27,104(11)
++HIDDEN_FUNC(_rest64gpr_28) evldd 28,112(11)
++HIDDEN_FUNC(_rest64gpr_29) evldd 29,120(11)
++HIDDEN_FUNC(_rest64gpr_30) evldd 30,128(11)
++HIDDEN_FUNC(_rest64gpr_31) evldd 31,136(11)
+ blr
+ FUNC_END(_rest64gpr_31)
+ FUNC_END(_rest64gpr_30)
+diff -Nurd gcc-4.3/gcc/config/rs6000/e500crtres64gprctr.asm gcc-4.3-new/gcc/config/rs6000/e500crtres64gprctr.asm
+--- gcc-4.3/gcc/config/rs6000/e500crtres64gprctr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/e500crtres64gprctr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -43,41 +43,41 @@
+ /* Routines for restoring 64-bit integer registers where the number of
+ registers to be restored is passed in CTR, called by the compiler. */
+
+-FUNC_START(_rest64gpr_ctr_14) evldd 14,0(11)
++HIDDEN_FUNC(_rest64gpr_ctr_14) evldd 14,0(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_15) evldd 15,8(11)
++HIDDEN_FUNC(_rest64gpr_ctr_15) evldd 15,8(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_16) evldd 16,16(11)
++HIDDEN_FUNC(_rest64gpr_ctr_16) evldd 16,16(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_17) evldd 17,24(11)
++HIDDEN_FUNC(_rest64gpr_ctr_17) evldd 17,24(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_18) evldd 18,32(11)
++HIDDEN_FUNC(_rest64gpr_ctr_18) evldd 18,32(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_19) evldd 19,40(11)
++HIDDEN_FUNC(_rest64gpr_ctr_19) evldd 19,40(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_20) evldd 20,48(11)
++HIDDEN_FUNC(_rest64gpr_ctr_20) evldd 20,48(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_21) evldd 21,56(11)
++HIDDEN_FUNC(_rest64gpr_ctr_21) evldd 21,56(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_22) evldd 22,64(11)
++HIDDEN_FUNC(_rest64gpr_ctr_22) evldd 22,64(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_23) evldd 23,72(11)
++HIDDEN_FUNC(_rest64gpr_ctr_23) evldd 23,72(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_24) evldd 24,80(11)
++HIDDEN_FUNC(_rest64gpr_ctr_24) evldd 24,80(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_25) evldd 25,88(11)
++HIDDEN_FUNC(_rest64gpr_ctr_25) evldd 25,88(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_26) evldd 26,96(11)
++HIDDEN_FUNC(_rest64gpr_ctr_26) evldd 26,96(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_27) evldd 27,104(11)
++HIDDEN_FUNC(_rest64gpr_ctr_27) evldd 27,104(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_28) evldd 28,112(11)
++HIDDEN_FUNC(_rest64gpr_ctr_28) evldd 28,112(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_29) evldd 29,120(11)
++HIDDEN_FUNC(_rest64gpr_ctr_29) evldd 29,120(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_30) evldd 30,128(11)
++HIDDEN_FUNC(_rest64gpr_ctr_30) evldd 30,128(11)
+ bdz _rest64_gpr_ctr_done
+-FUNC_START(_rest64gpr_ctr_31) evldd 31,136(11)
++HIDDEN_FUNC(_rest64gpr_ctr_31) evldd 31,136(11)
+ _rest64gpr_ctr_done: blr
+
+ #endif
+diff -Nurd gcc-4.3/gcc/config/rs6000/e500crtrest32gpr.asm gcc-4.3-new/gcc/config/rs6000/e500crtrest32gpr.asm
+--- gcc-4.3/gcc/config/rs6000/e500crtrest32gpr.asm 2008-10-01 14:50:54.000000000 +0200
++++ gcc-4.3-new/gcc/config/rs6000/e500crtrest32gpr.asm 2008-10-18 12:44:16.000000000 +0200
+@@ -43,24 +43,24 @@
+ /* Routines for restoring 32-bit integer registers, called by the compiler. */
+ /* "Tail" versions that perform a tail call. */
+
+-FUNC_START(_rest32gpr_14_t) lwz 14,-72(11)
+-FUNC_START(_rest32gpr_15_t) lwz 15,-68(11)
+-FUNC_START(_rest32gpr_16_t) lwz 16,-64(11)
+-FUNC_START(_rest32gpr_17_t) lwz 17,-60(11)
+-FUNC_START(_rest32gpr_18_t) lwz 18,-56(11)
+-FUNC_START(_rest32gpr_19_t) lwz 19,-52(11)
+-FUNC_START(_rest32gpr_20_t) lwz 20,-48(11)
+-FUNC_START(_rest32gpr_21_t) lwz 21,-44(11)
+-FUNC_START(_rest32gpr_22_t) lwz 22,-40(11)
+-FUNC_START(_rest32gpr_23_t) lwz 23,-36(11)
+-FUNC_START(_rest32gpr_24_t) lwz 24,-32(11)
+-FUNC_START(_rest32gpr_25_t) lwz 25,-28(11)
+-FUNC_START(_rest32gpr_26_t) lwz 26,-24(11)
+-FUNC_START(_rest32gpr_27_t) lwz 27,-20(11)
+-FUNC_START(_rest32gpr_28_t) lwz 28,-16(11)
+-FUNC_START(_rest32gpr_29_t) lwz 29,-12(11)
+-FUNC_START(_rest32gpr_30_t) lwz 30,-8(11)
+-FUNC_START(_rest32gpr_31_t) lwz 31,-4(11)
++HIDDEN_FUNC(_rest32gpr_14_t) lwz 14,-72(11)
++HIDDEN_FUNC(_rest32gpr_15_t) lwz 15,-68(11)
++HIDDEN_FUNC(_rest32gpr_16_t) lwz 16,-64(11)
++HIDDEN_FUNC(_rest32gpr_17_t) lwz 17,-60(11)
++HIDDEN_FUNC(_rest32gpr_18_t) lwz 18,-56(11)
++HIDDEN_FUNC(_rest32gpr_19_t) lwz 19,-52(11)</