1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/glibc/2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch Wed May 23 20:49:02 2007 +0000
1.3 @@ -0,0 +1,1134 @@
1.4 +# See http://sources.redhat.com/ml/crossgcc/2002-05/msg00132.html
1.5 +# This patch is taken directly from the Montavista Hard Hat Linux 2.0 source RPMs,
1.6 +# but has been rediffed against glibc-2.2.5
1.7 +
1.8 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Dist glibc-2.2.5/sysdeps/powerpc/Dist
1.9 +--- glibc-2.2.5.old/sysdeps/powerpc/Dist Fri Jun 30 23:30:21 2000
1.10 ++++ glibc-2.2.5/sysdeps/powerpc/Dist Thu Jul 10 11:43:17 2003
1.11 +@@ -1,9 +1,6 @@
1.12 + dl-machine.c
1.13 + dl-start.S
1.14 + ppc-mcount.S
1.15 +-fe_nomask.c
1.16 +-fprrest.S
1.17 +-fprsave.S
1.18 + gprsave1.S
1.19 + gprsave0.S
1.20 + gprrest1.S
1.21 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Makefile glibc-2.2.5/sysdeps/powerpc/Makefile
1.22 +--- glibc-2.2.5.old/sysdeps/powerpc/Makefile Mon Nov 27 15:32:47 2000
1.23 ++++ glibc-2.2.5/sysdeps/powerpc/Makefile Thu Jul 10 11:43:17 2003
1.24 +@@ -3,16 +3,12 @@
1.25 + +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
1.26 + asm-CPPFLAGS += -Wa,-mppc
1.27 +
1.28 +-ifeq ($(subdir),math)
1.29 +-libm-support += fenv_const fe_nomask
1.30 +-endif
1.31 +-
1.32 + ifeq ($(subdir),gmon)
1.33 + sysdep_routines += ppc-mcount
1.34 + endif
1.35 +
1.36 + ifeq ($(subdir),misc)
1.37 +-sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest
1.38 ++sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
1.39 + endif
1.40 +
1.41 + # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
1.42 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Versions glibc-2.2.5/sysdeps/powerpc/Versions
1.43 +--- glibc-2.2.5.old/sysdeps/powerpc/Versions Mon Feb 28 13:27:57 2000
1.44 ++++ glibc-2.2.5/sysdeps/powerpc/Versions Thu Jul 10 11:43:17 2003
1.45 +@@ -1,8 +1,4 @@
1.46 + libm {
1.47 +- GLIBC_2.1 {
1.48 +- # symbols used in macros from sysdeps/powerpc/bits/fenv.h
1.49 +- __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
1.50 +- }
1.51 + GLIBC_2.2 {
1.52 + # Special functions to save and restore registers used by the
1.53 + # runtime libraries.
1.54 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S glibc-2.2.5/sysdeps/powerpc/__longjmp.S
1.55 +--- glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S Thu Jul 5 21:56:01 2001
1.56 ++++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S Thu Jul 10 11:43:17 2003
1.57 +@@ -24,6 +24,8 @@
1.58 + #include <bp-sym.h>
1.59 + #include <bp-asm.h>
1.60 +
1.61 ++/* The FPU loads have been removed from this file - see fpu/__longjmp.S */
1.62 ++
1.63 + ENTRY (BP_SYM (__longjmp))
1.64 + CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
1.65 +
1.66 +@@ -31,44 +33,26 @@
1.67 + lwz r2,(JB_GPR2*4)(r3)
1.68 + lwz r0,(JB_LR*4)(r3)
1.69 + lwz r14,((JB_GPRS+0)*4)(r3)
1.70 +- lfd fp14,((JB_FPRS+0*2)*4)(r3)
1.71 + lwz r15,((JB_GPRS+1)*4)(r3)
1.72 +- lfd fp15,((JB_FPRS+1*2)*4)(r3)
1.73 + lwz r16,((JB_GPRS+2)*4)(r3)
1.74 +- lfd fp16,((JB_FPRS+2*2)*4)(r3)
1.75 + lwz r17,((JB_GPRS+3)*4)(r3)
1.76 +- lfd fp17,((JB_FPRS+3*2)*4)(r3)
1.77 + lwz r18,((JB_GPRS+4)*4)(r3)
1.78 +- lfd fp18,((JB_FPRS+4*2)*4)(r3)
1.79 + lwz r19,((JB_GPRS+5)*4)(r3)
1.80 +- lfd fp19,((JB_FPRS+5*2)*4)(r3)
1.81 + lwz r20,((JB_GPRS+6)*4)(r3)
1.82 +- lfd fp20,((JB_FPRS+6*2)*4)(r3)
1.83 + mtlr r0
1.84 + lwz r21,((JB_GPRS+7)*4)(r3)
1.85 +- lfd fp21,((JB_FPRS+7*2)*4)(r3)
1.86 + lwz r22,((JB_GPRS+8)*4)(r3)
1.87 +- lfd fp22,((JB_FPRS+8*2)*4)(r3)
1.88 + lwz r0,(JB_CR*4)(r3)
1.89 + lwz r23,((JB_GPRS+9)*4)(r3)
1.90 +- lfd fp23,((JB_FPRS+9*2)*4)(r3)
1.91 + lwz r24,((JB_GPRS+10)*4)(r3)
1.92 +- lfd fp24,((JB_FPRS+10*2)*4)(r3)
1.93 + lwz r25,((JB_GPRS+11)*4)(r3)
1.94 +- lfd fp25,((JB_FPRS+11*2)*4)(r3)
1.95 + mtcrf 0xFF,r0
1.96 + lwz r26,((JB_GPRS+12)*4)(r3)
1.97 +- lfd fp26,((JB_FPRS+12*2)*4)(r3)
1.98 + lwz r27,((JB_GPRS+13)*4)(r3)
1.99 +- lfd fp27,((JB_FPRS+13*2)*4)(r3)
1.100 + lwz r28,((JB_GPRS+14)*4)(r3)
1.101 +- lfd fp28,((JB_FPRS+14*2)*4)(r3)
1.102 + lwz r29,((JB_GPRS+15)*4)(r3)
1.103 +- lfd fp29,((JB_FPRS+15*2)*4)(r3)
1.104 + lwz r30,((JB_GPRS+16)*4)(r3)
1.105 +- lfd fp30,((JB_FPRS+16*2)*4)(r3)
1.106 + lwz r31,((JB_GPRS+17)*4)(r3)
1.107 +- lfd fp31,((JB_FPRS+17*2)*4)(r3)
1.108 + mr r3,r4
1.109 + blr
1.110 + END (BP_SYM (__longjmp))
1.111 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h
1.112 +--- glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h Thu Jul 5 21:56:01 2001
1.113 ++++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h Thu Jul 10 11:43:17 2003
1.114 +@@ -17,6 +17,7 @@
1.115 + 02111-1307 USA. */
1.116 +
1.117 + /* Define the machine-dependent type `jmp_buf'. PowerPC version. */
1.118 ++/* For processors without floating point. */
1.119 +
1.120 + #ifndef _SETJMP_H
1.121 + # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
1.122 +@@ -33,12 +34,11 @@
1.123 + # define JB_LR 2 /* The address we will return to */
1.124 + # define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
1.125 + # define JB_CR 21 /* Condition code registers. */
1.126 +-# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
1.127 +-# define JB_SIZE (58*4)
1.128 ++# define JB_SIZE (22*4)
1.129 + #endif
1.130 +
1.131 + #ifndef _ASM
1.132 +-typedef long int __jmp_buf[58];
1.133 ++typedef long int __jmp_buf[22];
1.134 + #endif
1.135 +
1.136 + /* Test if longjmp to JMPBUF would unwind the frame
1.137 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
1.138 +--- glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c Thu Jul 5 21:56:01 2001
1.139 ++++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c Wed Dec 31 16:00:00 1969
1.140 +@@ -1,48 +0,0 @@
1.141 +-/* Clear given exceptions in current floating-point environment.
1.142 +- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
1.143 +- This file is part of the GNU C Library.
1.144 +-
1.145 +- The GNU C Library is free software; you can redistribute it and/or
1.146 +- modify it under the terms of the GNU Lesser General Public
1.147 +- License as published by the Free Software Foundation; either
1.148 +- version 2.1 of the License, or (at your option) any later version.
1.149 +-
1.150 +- The GNU C Library is distributed in the hope that it will be useful,
1.151 +- but WITHOUT ANY WARRANTY; without even the implied warranty of
1.152 +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.153 +- Lesser General Public License for more details.
1.154 +-
1.155 +- You should have received a copy of the GNU Lesser General Public
1.156 +- License along with the GNU C Library; if not, write to the Free
1.157 +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.158 +- 02111-1307 USA. */
1.159 +-
1.160 +-#include <fenv_libc.h>
1.161 +-
1.162 +-#undef feclearexcept
1.163 +-int
1.164 +-__feclearexcept (int excepts)
1.165 +-{
1.166 +- fenv_union_t u;
1.167 +-
1.168 +- /* Get the current state. */
1.169 +- u.fenv = fegetenv_register ();
1.170 +-
1.171 +- /* Clear the relevant bits. */
1.172 +- u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
1.173 +- | (excepts & FPSCR_STICKY_BITS));
1.174 +-
1.175 +- /* Put the new state in effect. */
1.176 +- fesetenv_register (u.fenv);
1.177 +-
1.178 +- /* Success. */
1.179 +- return 0;
1.180 +-}
1.181 +-
1.182 +-#include <shlib-compat.h>
1.183 +-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
1.184 +-strong_alias (__feclearexcept, __old_feclearexcept)
1.185 +-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
1.186 +-#endif
1.187 +-
1.188 +-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
1.189 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
1.190 +--- glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c Thu Jul 5 21:56:01 2001
1.191 ++++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c Wed Dec 31 16:00:00 1969
1.192 +@@ -1,32 +0,0 @@
1.193 +-/* Procedure definition for FE_NOMASK_ENV.
1.194 +- Copyright (C) 1997 Free Software Foundation, Inc.
1.195 +- This file is part of the GNU C Library.
1.196 +-
1.197 +- The GNU C Library is free software; you can redistribute it and/or
1.198 +- modify it under the terms of the GNU Lesser General Public
1.199 +- License as published by the Free Software Foundation; either
1.200 +- version 2.1 of the License, or (at your option) any later version.
1.201 +-
1.202 +- The GNU C Library is distributed in the hope that it will be useful,
1.203 +- but WITHOUT ANY WARRANTY; without even the implied warranty of
1.204 +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.205 +- Lesser General Public License for more details.
1.206 +-
1.207 +- You should have received a copy of the GNU Lesser General Public
1.208 +- License along with the GNU C Library; if not, write to the Free
1.209 +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.210 +- 02111-1307 USA. */
1.211 +-
1.212 +-#include <fenv.h>
1.213 +-#include <errno.h>
1.214 +-
1.215 +-/* This is presently a stub, until it's decided how the kernels should
1.216 +- support this. */
1.217 +-
1.218 +-const fenv_t *
1.219 +-__fe_nomask_env(void)
1.220 +-{
1.221 +- __set_errno (ENOSYS);
1.222 +- return FE_ENABLED_ENV;
1.223 +-}
1.224 +-stub_warning (__fe_nomask_env)
1.225 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprrest.S glibc-2.2.5/sysdeps/powerpc/fprrest.S
1.226 +--- glibc-2.2.5.old/sysdeps/powerpc/fprrest.S Thu Jul 5 21:56:01 2001
1.227 ++++ glibc-2.2.5/sysdeps/powerpc/fprrest.S Wed Dec 31 16:00:00 1969
1.228 +@@ -1,94 +0,0 @@
1.229 +-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
1.230 +- This file is part of the GNU C Library.
1.231 +-
1.232 +- The GNU C Library is free software; you can redistribute it and/or
1.233 +- modify it under the terms of the GNU Lesser General Public
1.234 +- License as published by the Free Software Foundation; either
1.235 +- version 2.1 of the License, or (at your option) any later version.
1.236 +-
1.237 +- The GNU C Library is distributed in the hope that it will be useful,
1.238 +- but WITHOUT ANY WARRANTY; without even the implied warranty of
1.239 +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.240 +- Lesser General Public License for more details.
1.241 +-
1.242 +- You should have received a copy of the GNU Lesser General Public
1.243 +- License along with the GNU C Library; if not, write to the Free
1.244 +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.245 +- 02111-1307 USA. */
1.246 +-
1.247 +-/*
1.248 +- Floating Point Registers (FPRs) restore routine
1.249 +-*/
1.250 +-
1.251 +-#include <sysdep.h>
1.252 +-
1.253 +-ENTRY(_restfpr_all)
1.254 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
1.255 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
1.256 +-C_TEXT(_restf14):
1.257 +-C_TEXT(_restfpr_14): lfd fp14,-144(r1)
1.258 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
1.259 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
1.260 +-C_TEXT(_restf15):
1.261 +-C_TEXT(_restfpr_15): lfd fp15,-136(r1)
1.262 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
1.263 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
1.264 +-C_TEXT(_restf16):
1.265 +-C_TEXT(_restfpr_16): lfd fp16,-128(r1)
1.266 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
1.267 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
1.268 +-C_TEXT(_restf17):
1.269 +-C_TEXT(_restfpr_17): lfd fp17,-120(r1)
1.270 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
1.271 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
1.272 +-C_TEXT(_restf18):
1.273 +-C_TEXT(_restfpr_18): lfd fp18,-112(r1)
1.274 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
1.275 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
1.276 +-C_TEXT(_restf19):
1.277 +-C_TEXT(_restfpr_19): lfd fp19,-104(r1)
1.278 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
1.279 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
1.280 +-C_TEXT(_restf20):
1.281 +-C_TEXT(_restfpr_20): lfd fp20,-96(r1)
1.282 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
1.283 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
1.284 +-C_TEXT(_restf21):
1.285 +-C_TEXT(_restfpr_21): lfd fp21,-88(r1)
1.286 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
1.287 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
1.288 +-C_TEXT(_restf22):
1.289 +-C_TEXT(_restfpr_22): lfd fp22,-80(r1)
1.290 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
1.291 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
1.292 +-C_TEXT(_restf23):
1.293 +-C_TEXT(_restfpr_23): lfd fp23,-72(r1)
1.294 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
1.295 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
1.296 +-C_TEXT(_restf24):
1.297 +-C_TEXT(_restfpr_24): lfd fp24,-64(r1)
1.298 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
1.299 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
1.300 +-C_TEXT(_restf25):
1.301 +-C_TEXT(_restfpr_25): lfd fp25,-56(r1)
1.302 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
1.303 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
1.304 +-C_TEXT(_restf26):
1.305 +-C_TEXT(_restfpr_26): lfd fp26,-48(r1)
1.306 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
1.307 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
1.308 +-C_TEXT(_restf27):
1.309 +-C_TEXT(_restfpr_27): lfd fp27,-40(r1)
1.310 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
1.311 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
1.312 +-C_TEXT(_restf28):
1.313 +-C_TEXT(_restfpr_28): lfd fp28,-32(r1)
1.314 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
1.315 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
1.316 +-C_TEXT(_restf29):
1.317 +-C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
1.318 +- lfd fp29,-24(r1) #restore f29
1.319 +- mtlr r0 #move return address to LR
1.320 +- lfd fp30,-16(r1) #restore f30
1.321 +- lfd fp31,-8(r1) #restore f31
1.322 +- blr #return
1.323 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprsave.S glibc-2.2.5/sysdeps/powerpc/fprsave.S
1.324 +--- glibc-2.2.5.old/sysdeps/powerpc/fprsave.S Thu Jul 5 21:56:01 2001
1.325 ++++ glibc-2.2.5/sysdeps/powerpc/fprsave.S Wed Dec 31 16:00:00 1969
1.326 +@@ -1,93 +0,0 @@
1.327 +-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
1.328 +- This file is part of the GNU C Library.
1.329 +-
1.330 +- The GNU C Library is free software; you can redistribute it and/or
1.331 +- modify it under the terms of the GNU Lesser General Public
1.332 +- License as published by the Free Software Foundation; either
1.333 +- version 2.1 of the License, or (at your option) any later version.
1.334 +-
1.335 +- The GNU C Library is distributed in the hope that it will be useful,
1.336 +- but WITHOUT ANY WARRANTY; without even the implied warranty of
1.337 +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.338 +- Lesser General Public License for more details.
1.339 +-
1.340 +- You should have received a copy of the GNU Lesser General Public
1.341 +- License along with the GNU C Library; if not, write to the Free
1.342 +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.343 +- 02111-1307 USA. */
1.344 +-
1.345 +-/*
1.346 +- Floating Point Registers (FPRs) save routine
1.347 +-*/
1.348 +-
1.349 +-#include <sysdep.h>
1.350 +-
1.351 +-ENTRY(_savefpr_all)
1.352 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
1.353 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
1.354 +-C_TEXT(_savef14):
1.355 +-C_TEXT(_savefpr_14): stfd fp14,-144(r1)
1.356 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
1.357 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
1.358 +-C_TEXT(_savef15):
1.359 +-C_TEXT(_savefpr_15): stfd fp15,-136(r1)
1.360 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
1.361 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
1.362 +-C_TEXT(_savef16):
1.363 +-C_TEXT(_savefpr_16): stfd fp16,-128(r1)
1.364 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
1.365 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
1.366 +-C_TEXT(_savef17):
1.367 +-C_TEXT(_savefpr_17): stfd fp17,-120(r1)
1.368 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
1.369 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
1.370 +-C_TEXT(_savef18):
1.371 +-C_TEXT(_savefpr_18): stfd fp18,-112(r1)
1.372 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
1.373 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
1.374 +-C_TEXT(_savef19):
1.375 +-C_TEXT(_savefpr_19): stfd fp19,-104(r1)
1.376 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
1.377 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
1.378 +-C_TEXT(_savef20):
1.379 +-C_TEXT(_savefpr_20): stfd fp20,-96(r1)
1.380 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
1.381 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
1.382 +-C_TEXT(_savef21):
1.383 +-C_TEXT(_savefpr_21): stfd fp21,-88(r1)
1.384 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
1.385 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
1.386 +-C_TEXT(_savef22):
1.387 +-C_TEXT(_savefpr_22): stfd fp22,-80(r1)
1.388 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
1.389 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
1.390 +-C_TEXT(_savef23):
1.391 +-C_TEXT(_savefpr_23): stfd fp23,-72(r1)
1.392 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
1.393 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
1.394 +-C_TEXT(_savef24):
1.395 +-C_TEXT(_savefpr_24): stfd fp24,-64(r1)
1.396 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
1.397 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
1.398 +-C_TEXT(_savef25):
1.399 +-C_TEXT(_savefpr_25): stfd fp25,-56(r1)
1.400 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
1.401 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
1.402 +-C_TEXT(_savef26):
1.403 +-C_TEXT(_savefpr_26): stfd fp26,-48(r1)
1.404 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
1.405 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
1.406 +-C_TEXT(_savef27):
1.407 +-C_TEXT(_savefpr_27): stfd fp27,-40(r1)
1.408 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
1.409 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
1.410 +-C_TEXT(_savef28):
1.411 +-C_TEXT(_savefpr_28): stfd fp28,-32(r1)
1.412 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
1.413 +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
1.414 +-C_TEXT(_savef29):
1.415 +-C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
1.416 +- stfd fp30,-16(r1) #save f30
1.417 +- stfd fp31,-8(r1) #save f31
1.418 +- stw r0,8(r1) #save LR in callers frame
1.419 +- blr #return
1.420 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist glibc-2.2.5/sysdeps/powerpc/fpu/Dist
1.421 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist Wed Jan 26 17:48:02 2000
1.422 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist Thu Jul 10 11:43:17 2003
1.423 +@@ -1,3 +1,6 @@
1.424 ++fe_nomask.c
1.425 ++fprrest.S
1.426 ++fprsave.S
1.427 + fenv_const.c
1.428 + fenv_libc.h
1.429 + t_sqrt.c
1.430 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile glibc-2.2.5/sysdeps/powerpc/fpu/Makefile
1.431 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile Mon Oct 11 15:29:00 1999
1.432 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile Thu Jul 10 11:43:17 2003
1.433 +@@ -1,3 +1,7 @@
1.434 + ifeq ($(subdir),math)
1.435 + libm-support += fenv_const fe_nomask t_sqrt
1.436 + endif
1.437 ++
1.438 ++ifeq ($(subdir),misc)
1.439 ++sysdep_routines += fprsave fprrest
1.440 ++endif
1.441 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions glibc-2.2.5/sysdeps/powerpc/fpu/Versions
1.442 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions Wed Dec 31 16:00:00 1969
1.443 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions Thu Jul 10 11:43:17 2003
1.444 +@@ -0,0 +1,6 @@
1.445 ++libm {
1.446 ++ GLIBC_2.1 {
1.447 ++ # symbols used in macros from sysdeps/powerpc/bits/fenv.h
1.448 ++ __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
1.449 ++ }
1.450 ++}
1.451 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S
1.452 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S Wed Dec 31 16:00:00 1969
1.453 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S Thu Jul 10 11:43:17 2003
1.454 +@@ -0,0 +1,74 @@
1.455 ++/* longjmp for PowerPC.
1.456 ++ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
1.457 ++ This file is part of the GNU C Library.
1.458 ++
1.459 ++ The GNU C Library is free software; you can redistribute it and/or
1.460 ++ modify it under the terms of the GNU Library General Public License as
1.461 ++ published by the Free Software Foundation; either version 2 of the
1.462 ++ License, or (at your option) any later version.
1.463 ++
1.464 ++ The GNU C Library is distributed in the hope that it will be useful,
1.465 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.466 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.467 ++ Library General Public License for more details.
1.468 ++
1.469 ++ You should have received a copy of the GNU Library General Public
1.470 ++ License along with the GNU C Library; see the file COPYING.LIB. If not,
1.471 ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
1.472 ++ Boston, MA 02111-1307, USA. */
1.473 ++
1.474 ++#include <sysdep.h>
1.475 ++#define _ASM
1.476 ++#define _SETJMP_H
1.477 ++#include <bits/setjmp.h>
1.478 ++#include <bp-sym.h>
1.479 ++#include <bp-asm.h>
1.480 ++
1.481 ++ENTRY (BP_SYM (__longjmp))
1.482 ++ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
1.483 ++
1.484 ++ lwz r1,(JB_GPR1*4)(r3)
1.485 ++ lwz r2,(JB_GPR2*4)(r3)
1.486 ++ lwz r0,(JB_LR*4)(r3)
1.487 ++ lwz r14,((JB_GPRS+0)*4)(r3)
1.488 ++ lfd fp14,((JB_FPRS+0*2)*4)(r3)
1.489 ++ lwz r15,((JB_GPRS+1)*4)(r3)
1.490 ++ lfd fp15,((JB_FPRS+1*2)*4)(r3)
1.491 ++ lwz r16,((JB_GPRS+2)*4)(r3)
1.492 ++ lfd fp16,((JB_FPRS+2*2)*4)(r3)
1.493 ++ lwz r17,((JB_GPRS+3)*4)(r3)
1.494 ++ lfd fp17,((JB_FPRS+3*2)*4)(r3)
1.495 ++ lwz r18,((JB_GPRS+4)*4)(r3)
1.496 ++ lfd fp18,((JB_FPRS+4*2)*4)(r3)
1.497 ++ lwz r19,((JB_GPRS+5)*4)(r3)
1.498 ++ lfd fp19,((JB_FPRS+5*2)*4)(r3)
1.499 ++ lwz r20,((JB_GPRS+6)*4)(r3)
1.500 ++ lfd fp20,((JB_FPRS+6*2)*4)(r3)
1.501 ++ mtlr r0
1.502 ++ lwz r21,((JB_GPRS+7)*4)(r3)
1.503 ++ lfd fp21,((JB_FPRS+7*2)*4)(r3)
1.504 ++ lwz r22,((JB_GPRS+8)*4)(r3)
1.505 ++ lfd fp22,((JB_FPRS+8*2)*4)(r3)
1.506 ++ lwz r0,(JB_CR*4)(r3)
1.507 ++ lwz r23,((JB_GPRS+9)*4)(r3)
1.508 ++ lfd fp23,((JB_FPRS+9*2)*4)(r3)
1.509 ++ lwz r24,((JB_GPRS+10)*4)(r3)
1.510 ++ lfd fp24,((JB_FPRS+10*2)*4)(r3)
1.511 ++ lwz r25,((JB_GPRS+11)*4)(r3)
1.512 ++ lfd fp25,((JB_FPRS+11*2)*4)(r3)
1.513 ++ mtcrf 0xFF,r0
1.514 ++ lwz r26,((JB_GPRS+12)*4)(r3)
1.515 ++ lfd fp26,((JB_FPRS+12*2)*4)(r3)
1.516 ++ lwz r27,((JB_GPRS+13)*4)(r3)
1.517 ++ lfd fp27,((JB_FPRS+13*2)*4)(r3)
1.518 ++ lwz r28,((JB_GPRS+14)*4)(r3)
1.519 ++ lfd fp28,((JB_FPRS+14*2)*4)(r3)
1.520 ++ lwz r29,((JB_GPRS+15)*4)(r3)
1.521 ++ lfd fp29,((JB_FPRS+15*2)*4)(r3)
1.522 ++ lwz r30,((JB_GPRS+16)*4)(r3)
1.523 ++ lfd fp30,((JB_FPRS+16*2)*4)(r3)
1.524 ++ lwz r31,((JB_GPRS+17)*4)(r3)
1.525 ++ lfd fp31,((JB_FPRS+17*2)*4)(r3)
1.526 ++ mr r3,r4
1.527 ++ blr
1.528 ++END (BP_SYM (__longjmp))
1.529 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h
1.530 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h Wed Dec 31 16:00:00 1969
1.531 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h Thu Jul 10 11:43:17 2003
1.532 +@@ -0,0 +1,47 @@
1.533 ++/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
1.534 ++ This file is part of the GNU C Library.
1.535 ++
1.536 ++ The GNU C Library is free software; you can redistribute it and/or
1.537 ++ modify it under the terms of the GNU Library General Public License as
1.538 ++ published by the Free Software Foundation; either version 2 of the
1.539 ++ License, or (at your option) any later version.
1.540 ++
1.541 ++ The GNU C Library is distributed in the hope that it will be useful,
1.542 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.543 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.544 ++ Library General Public License for more details.
1.545 ++
1.546 ++ You should have received a copy of the GNU Library General Public
1.547 ++ License along with the GNU C Library; see the file COPYING.LIB. If not,
1.548 ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
1.549 ++ Boston, MA 02111-1307, USA. */
1.550 ++
1.551 ++/* Define the machine-dependent type `jmp_buf'. PowerPC version. */
1.552 ++
1.553 ++#ifndef _SETJMP_H
1.554 ++# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
1.555 ++#endif
1.556 ++
1.557 ++/* The previous bits/setjmp.h had __jmp_buf defined as a structure.
1.558 ++ We use an array of 'long int' instead, to make writing the
1.559 ++ assembler easier. Naturally, user code should not depend on
1.560 ++ either representation. */
1.561 ++
1.562 ++#if defined __USE_MISC || defined _ASM
1.563 ++# define JB_GPR1 0 /* Also known as the stack pointer */
1.564 ++# define JB_GPR2 1
1.565 ++# define JB_LR 2 /* The address we will return to */
1.566 ++# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
1.567 ++# define JB_CR 21 /* Condition code registers. */
1.568 ++# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
1.569 ++# define JB_SIZE (58*4)
1.570 ++#endif
1.571 ++
1.572 ++#ifndef _ASM
1.573 ++typedef long int __jmp_buf[58];
1.574 ++#endif
1.575 ++
1.576 ++/* Test if longjmp to JMPBUF would unwind the frame
1.577 ++ containing a local variable at ADDRESS. */
1.578 ++#define _JMPBUF_UNWINDS(jmpbuf, address) \
1.579 ++ ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
1.580 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c
1.581 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c Wed Dec 31 16:00:00 1969
1.582 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c Thu Jul 5 21:56:01 2001
1.583 +@@ -0,0 +1,48 @@
1.584 ++/* Clear given exceptions in current floating-point environment.
1.585 ++ Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
1.586 ++ This file is part of the GNU C Library.
1.587 ++
1.588 ++ The GNU C Library is free software; you can redistribute it and/or
1.589 ++ modify it under the terms of the GNU Lesser General Public
1.590 ++ License as published by the Free Software Foundation; either
1.591 ++ version 2.1 of the License, or (at your option) any later version.
1.592 ++
1.593 ++ The GNU C Library is distributed in the hope that it will be useful,
1.594 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.595 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.596 ++ Lesser General Public License for more details.
1.597 ++
1.598 ++ You should have received a copy of the GNU Lesser General Public
1.599 ++ License along with the GNU C Library; if not, write to the Free
1.600 ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.601 ++ 02111-1307 USA. */
1.602 ++
1.603 ++#include <fenv_libc.h>
1.604 ++
1.605 ++#undef feclearexcept
1.606 ++int
1.607 ++__feclearexcept (int excepts)
1.608 ++{
1.609 ++ fenv_union_t u;
1.610 ++
1.611 ++ /* Get the current state. */
1.612 ++ u.fenv = fegetenv_register ();
1.613 ++
1.614 ++ /* Clear the relevant bits. */
1.615 ++ u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
1.616 ++ | (excepts & FPSCR_STICKY_BITS));
1.617 ++
1.618 ++ /* Put the new state in effect. */
1.619 ++ fesetenv_register (u.fenv);
1.620 ++
1.621 ++ /* Success. */
1.622 ++ return 0;
1.623 ++}
1.624 ++
1.625 ++#include <shlib-compat.h>
1.626 ++#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
1.627 ++strong_alias (__feclearexcept, __old_feclearexcept)
1.628 ++compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
1.629 ++#endif
1.630 ++
1.631 ++versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
1.632 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c
1.633 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c Wed Dec 31 16:00:00 1969
1.634 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c Thu Jul 5 21:56:01 2001
1.635 +@@ -0,0 +1,32 @@
1.636 ++/* Procedure definition for FE_NOMASK_ENV.
1.637 ++ Copyright (C) 1997 Free Software Foundation, Inc.
1.638 ++ This file is part of the GNU C Library.
1.639 ++
1.640 ++ The GNU C Library is free software; you can redistribute it and/or
1.641 ++ modify it under the terms of the GNU Lesser General Public
1.642 ++ License as published by the Free Software Foundation; either
1.643 ++ version 2.1 of the License, or (at your option) any later version.
1.644 ++
1.645 ++ The GNU C Library is distributed in the hope that it will be useful,
1.646 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.647 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.648 ++ Lesser General Public License for more details.
1.649 ++
1.650 ++ You should have received a copy of the GNU Lesser General Public
1.651 ++ License along with the GNU C Library; if not, write to the Free
1.652 ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.653 ++ 02111-1307 USA. */
1.654 ++
1.655 ++#include <fenv.h>
1.656 ++#include <errno.h>
1.657 ++
1.658 ++/* This is presently a stub, until it's decided how the kernels should
1.659 ++ support this. */
1.660 ++
1.661 ++const fenv_t *
1.662 ++__fe_nomask_env(void)
1.663 ++{
1.664 ++ __set_errno (ENOSYS);
1.665 ++ return FE_ENABLED_ENV;
1.666 ++}
1.667 ++stub_warning (__fe_nomask_env)
1.668 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S
1.669 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S Wed Dec 31 16:00:00 1969
1.670 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S Thu Jul 5 21:56:01 2001
1.671 +@@ -0,0 +1,94 @@
1.672 ++/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
1.673 ++ This file is part of the GNU C Library.
1.674 ++
1.675 ++ The GNU C Library is free software; you can redistribute it and/or
1.676 ++ modify it under the terms of the GNU Lesser General Public
1.677 ++ License as published by the Free Software Foundation; either
1.678 ++ version 2.1 of the License, or (at your option) any later version.
1.679 ++
1.680 ++ The GNU C Library is distributed in the hope that it will be useful,
1.681 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.682 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.683 ++ Lesser General Public License for more details.
1.684 ++
1.685 ++ You should have received a copy of the GNU Lesser General Public
1.686 ++ License along with the GNU C Library; if not, write to the Free
1.687 ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.688 ++ 02111-1307 USA. */
1.689 ++
1.690 ++/*
1.691 ++ Floating Point Registers (FPRs) restore routine
1.692 ++*/
1.693 ++
1.694 ++#include <sysdep.h>
1.695 ++
1.696 ++ENTRY(_restfpr_all)
1.697 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
1.698 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
1.699 ++C_TEXT(_restf14):
1.700 ++C_TEXT(_restfpr_14): lfd fp14,-144(r1)
1.701 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
1.702 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
1.703 ++C_TEXT(_restf15):
1.704 ++C_TEXT(_restfpr_15): lfd fp15,-136(r1)
1.705 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
1.706 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
1.707 ++C_TEXT(_restf16):
1.708 ++C_TEXT(_restfpr_16): lfd fp16,-128(r1)
1.709 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
1.710 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
1.711 ++C_TEXT(_restf17):
1.712 ++C_TEXT(_restfpr_17): lfd fp17,-120(r1)
1.713 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
1.714 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
1.715 ++C_TEXT(_restf18):
1.716 ++C_TEXT(_restfpr_18): lfd fp18,-112(r1)
1.717 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
1.718 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
1.719 ++C_TEXT(_restf19):
1.720 ++C_TEXT(_restfpr_19): lfd fp19,-104(r1)
1.721 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
1.722 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
1.723 ++C_TEXT(_restf20):
1.724 ++C_TEXT(_restfpr_20): lfd fp20,-96(r1)
1.725 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
1.726 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
1.727 ++C_TEXT(_restf21):
1.728 ++C_TEXT(_restfpr_21): lfd fp21,-88(r1)
1.729 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
1.730 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
1.731 ++C_TEXT(_restf22):
1.732 ++C_TEXT(_restfpr_22): lfd fp22,-80(r1)
1.733 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
1.734 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
1.735 ++C_TEXT(_restf23):
1.736 ++C_TEXT(_restfpr_23): lfd fp23,-72(r1)
1.737 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
1.738 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
1.739 ++C_TEXT(_restf24):
1.740 ++C_TEXT(_restfpr_24): lfd fp24,-64(r1)
1.741 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
1.742 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
1.743 ++C_TEXT(_restf25):
1.744 ++C_TEXT(_restfpr_25): lfd fp25,-56(r1)
1.745 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
1.746 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
1.747 ++C_TEXT(_restf26):
1.748 ++C_TEXT(_restfpr_26): lfd fp26,-48(r1)
1.749 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
1.750 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
1.751 ++C_TEXT(_restf27):
1.752 ++C_TEXT(_restfpr_27): lfd fp27,-40(r1)
1.753 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
1.754 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
1.755 ++C_TEXT(_restf28):
1.756 ++C_TEXT(_restfpr_28): lfd fp28,-32(r1)
1.757 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
1.758 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
1.759 ++C_TEXT(_restf29):
1.760 ++C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
1.761 ++ lfd fp29,-24(r1) #restore f29
1.762 ++ mtlr r0 #move return address to LR
1.763 ++ lfd fp30,-16(r1) #restore f30
1.764 ++ lfd fp31,-8(r1) #restore f31
1.765 ++ blr #return
1.766 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S
1.767 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S Wed Dec 31 16:00:00 1969
1.768 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S Thu Jul 5 21:56:01 2001
1.769 +@@ -0,0 +1,93 @@
1.770 ++/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
1.771 ++ This file is part of the GNU C Library.
1.772 ++
1.773 ++ The GNU C Library is free software; you can redistribute it and/or
1.774 ++ modify it under the terms of the GNU Lesser General Public
1.775 ++ License as published by the Free Software Foundation; either
1.776 ++ version 2.1 of the License, or (at your option) any later version.
1.777 ++
1.778 ++ The GNU C Library is distributed in the hope that it will be useful,
1.779 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.780 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.781 ++ Lesser General Public License for more details.
1.782 ++
1.783 ++ You should have received a copy of the GNU Lesser General Public
1.784 ++ License along with the GNU C Library; if not, write to the Free
1.785 ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.786 ++ 02111-1307 USA. */
1.787 ++
1.788 ++/*
1.789 ++ Floating Point Registers (FPRs) save routine
1.790 ++*/
1.791 ++
1.792 ++#include <sysdep.h>
1.793 ++
1.794 ++ENTRY(_savefpr_all)
1.795 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
1.796 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
1.797 ++C_TEXT(_savef14):
1.798 ++C_TEXT(_savefpr_14): stfd fp14,-144(r1)
1.799 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
1.800 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
1.801 ++C_TEXT(_savef15):
1.802 ++C_TEXT(_savefpr_15): stfd fp15,-136(r1)
1.803 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
1.804 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
1.805 ++C_TEXT(_savef16):
1.806 ++C_TEXT(_savefpr_16): stfd fp16,-128(r1)
1.807 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
1.808 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
1.809 ++C_TEXT(_savef17):
1.810 ++C_TEXT(_savefpr_17): stfd fp17,-120(r1)
1.811 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
1.812 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
1.813 ++C_TEXT(_savef18):
1.814 ++C_TEXT(_savefpr_18): stfd fp18,-112(r1)
1.815 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
1.816 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
1.817 ++C_TEXT(_savef19):
1.818 ++C_TEXT(_savefpr_19): stfd fp19,-104(r1)
1.819 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
1.820 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
1.821 ++C_TEXT(_savef20):
1.822 ++C_TEXT(_savefpr_20): stfd fp20,-96(r1)
1.823 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
1.824 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
1.825 ++C_TEXT(_savef21):
1.826 ++C_TEXT(_savefpr_21): stfd fp21,-88(r1)
1.827 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
1.828 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
1.829 ++C_TEXT(_savef22):
1.830 ++C_TEXT(_savefpr_22): stfd fp22,-80(r1)
1.831 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
1.832 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
1.833 ++C_TEXT(_savef23):
1.834 ++C_TEXT(_savefpr_23): stfd fp23,-72(r1)
1.835 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
1.836 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
1.837 ++C_TEXT(_savef24):
1.838 ++C_TEXT(_savefpr_24): stfd fp24,-64(r1)
1.839 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
1.840 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
1.841 ++C_TEXT(_savef25):
1.842 ++C_TEXT(_savefpr_25): stfd fp25,-56(r1)
1.843 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
1.844 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
1.845 ++C_TEXT(_savef26):
1.846 ++C_TEXT(_savefpr_26): stfd fp26,-48(r1)
1.847 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
1.848 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
1.849 ++C_TEXT(_savef27):
1.850 ++C_TEXT(_savefpr_27): stfd fp27,-40(r1)
1.851 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
1.852 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
1.853 ++C_TEXT(_savef28):
1.854 ++C_TEXT(_savefpr_28): stfd fp28,-32(r1)
1.855 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
1.856 ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
1.857 ++C_TEXT(_savef29):
1.858 ++C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
1.859 ++ stfd fp30,-16(r1) #save f30
1.860 ++ stfd fp31,-8(r1) #save f31
1.861 ++ stw r0,8(r1) #save LR in callers frame
1.862 ++ blr #return
1.863 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h
1.864 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h Wed Dec 31 16:00:00 1969
1.865 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h Thu Jul 5 21:56:01 2001
1.866 +@@ -0,0 +1,67 @@
1.867 ++/* FPU control word definitions. PowerPC version.
1.868 ++ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
1.869 ++ This file is part of the GNU C Library.
1.870 ++
1.871 ++ The GNU C Library is free software; you can redistribute it and/or
1.872 ++ modify it under the terms of the GNU Lesser General Public
1.873 ++ License as published by the Free Software Foundation; either
1.874 ++ version 2.1 of the License, or (at your option) any later version.
1.875 ++
1.876 ++ The GNU C Library is distributed in the hope that it will be useful,
1.877 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.878 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.879 ++ Lesser General Public License for more details.
1.880 ++
1.881 ++ You should have received a copy of the GNU Lesser General Public
1.882 ++ License along with the GNU C Library; if not, write to the Free
1.883 ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.884 ++ 02111-1307 USA. */
1.885 ++
1.886 ++#ifndef _FPU_CONTROL_H
1.887 ++#define _FPU_CONTROL_H
1.888 ++
1.889 ++/* rounding control */
1.890 ++#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
1.891 ++#define _FPU_RC_DOWN 0x03
1.892 ++#define _FPU_RC_UP 0x02
1.893 ++#define _FPU_RC_ZERO 0x01
1.894 ++
1.895 ++#define _FPU_MASK_NI 0x04 /* non-ieee mode */
1.896 ++
1.897 ++/* masking of interrupts */
1.898 ++#define _FPU_MASK_ZM 0x10 /* zero divide */
1.899 ++#define _FPU_MASK_OM 0x40 /* overflow */
1.900 ++#define _FPU_MASK_UM 0x20 /* underflow */
1.901 ++#define _FPU_MASK_XM 0x08 /* inexact */
1.902 ++#define _FPU_MASK_IM 0x80 /* invalid operation */
1.903 ++
1.904 ++#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
1.905 ++
1.906 ++/* The fdlibm code requires no interrupts for exceptions. */
1.907 ++#define _FPU_DEFAULT 0x00000000 /* Default value. */
1.908 ++
1.909 ++/* IEEE: same as above, but (some) exceptions;
1.910 ++ we leave the 'inexact' exception off.
1.911 ++ */
1.912 ++#define _FPU_IEEE 0x000000f0
1.913 ++
1.914 ++/* Type of the control word. */
1.915 ++typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
1.916 ++
1.917 ++/* Macros for accessing the hardware control word. */
1.918 ++#define _FPU_GETCW(cw) ( { \
1.919 ++ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
1.920 ++ __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
1.921 ++ (cw)=tmp.cw[1]; \
1.922 ++ tmp.cw[1]; } )
1.923 ++#define _FPU_SETCW(cw) { \
1.924 ++ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
1.925 ++ tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
1.926 ++ tmp.cw[1] = cw; \
1.927 ++ __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
1.928 ++}
1.929 ++
1.930 ++/* Default control word set at startup. */
1.931 ++extern fpu_control_t __fpu_control;
1.932 ++
1.933 ++#endif /* _FPU_CONTROL_H */
1.934 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S
1.935 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S Wed Dec 31 16:00:00 1969
1.936 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S Thu Jul 10 11:43:44 2003
1.937 +@@ -0,0 +1,73 @@
1.938 ++/* setjmp for PowerPC.
1.939 ++ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
1.940 ++ This file is part of the GNU C Library.
1.941 ++
1.942 ++ The GNU C Library is free software; you can redistribute it and/or
1.943 ++ modify it under the terms of the GNU Library General Public License as
1.944 ++ published by the Free Software Foundation; either version 2 of the
1.945 ++ License, or (at your option) any later version.
1.946 ++
1.947 ++ The GNU C Library is distributed in the hope that it will be useful,
1.948 ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
1.949 ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.950 ++ Library General Public License for more details.
1.951 ++
1.952 ++ You should have received a copy of the GNU Library General Public
1.953 ++ License along with the GNU C Library; see the file COPYING.LIB. If not,
1.954 ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
1.955 ++ Boston, MA 02111-1307, USA. */
1.956 ++
1.957 ++#include <sysdep.h>
1.958 ++#define _ASM
1.959 ++#define _SETJMP_H
1.960 ++#include <bits/setjmp.h>
1.961 ++#include <bp-sym.h>
1.962 ++#include <bp-asm.h>
1.963 ++
1.964 ++ENTRY (BP_SYM (__sigsetjmp))
1.965 ++ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
1.966 ++
1.967 ++ stw r1,(JB_GPR1*4)(3)
1.968 ++ mflr r0
1.969 ++ stw r2,(JB_GPR2*4)(3)
1.970 ++ stw r14,((JB_GPRS+0)*4)(3)
1.971 ++ stfd fp14,((JB_FPRS+0*2)*4)(3)
1.972 ++ stw r0,(JB_LR*4)(3)
1.973 ++ stw r15,((JB_GPRS+1)*4)(3)
1.974 ++ stfd fp15,((JB_FPRS+1*2)*4)(3)
1.975 ++ mfcr r0
1.976 ++ stw r16,((JB_GPRS+2)*4)(3)
1.977 ++ stfd fp16,((JB_FPRS+2*2)*4)(3)
1.978 ++ stw r0,(JB_CR*4)(3)
1.979 ++ stw r17,((JB_GPRS+3)*4)(3)
1.980 ++ stfd fp17,((JB_FPRS+3*2)*4)(3)
1.981 ++ stw r18,((JB_GPRS+4)*4)(3)
1.982 ++ stfd fp18,((JB_FPRS+4*2)*4)(3)
1.983 ++ stw r19,((JB_GPRS+5)*4)(3)
1.984 ++ stfd fp19,((JB_FPRS+5*2)*4)(3)
1.985 ++ stw r20,((JB_GPRS+6)*4)(3)
1.986 ++ stfd fp20,((JB_FPRS+6*2)*4)(3)
1.987 ++ stw r21,((JB_GPRS+7)*4)(3)
1.988 ++ stfd fp21,((JB_FPRS+7*2)*4)(3)
1.989 ++ stw r22,((JB_GPRS+8)*4)(3)
1.990 ++ stfd fp22,((JB_FPRS+8*2)*4)(3)
1.991 ++ stw r23,((JB_GPRS+9)*4)(3)
1.992 ++ stfd fp23,((JB_FPRS+9*2)*4)(3)
1.993 ++ stw r24,((JB_GPRS+10)*4)(3)
1.994 ++ stfd fp24,((JB_FPRS+10*2)*4)(3)
1.995 ++ stw r25,((JB_GPRS+11)*4)(3)
1.996 ++ stfd fp25,((JB_FPRS+11*2)*4)(3)
1.997 ++ stw r26,((JB_GPRS+12)*4)(3)
1.998 ++ stfd fp26,((JB_FPRS+12*2)*4)(3)
1.999 ++ stw r27,((JB_GPRS+13)*4)(3)
1.1000 ++ stfd fp27,((JB_FPRS+13*2)*4)(3)
1.1001 ++ stw r28,((JB_GPRS+14)*4)(3)
1.1002 ++ stfd fp28,((JB_FPRS+14*2)*4)(3)
1.1003 ++ stw r29,((JB_GPRS+15)*4)(3)
1.1004 ++ stfd fp29,((JB_FPRS+15*2)*4)(3)
1.1005 ++ stw r30,((JB_GPRS+16)*4)(3)
1.1006 ++ stfd fp30,((JB_FPRS+16*2)*4)(3)
1.1007 ++ stw r31,((JB_GPRS+17)*4)(3)
1.1008 ++ stfd fp31,((JB_FPRS+17*2)*4)(3)
1.1009 ++ b JUMPTARGET (BP_SYM (__sigjmp_save))
1.1010 ++END (BP_SYM (__sigsetjmp))
1.1011 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu_control.h
1.1012 +--- glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h Thu Jul 5 21:56:01 2001
1.1013 ++++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h Wed Dec 31 16:00:00 1969
1.1014 +@@ -1,67 +0,0 @@
1.1015 +-/* FPU control word definitions. PowerPC version.
1.1016 +- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
1.1017 +- This file is part of the GNU C Library.
1.1018 +-
1.1019 +- The GNU C Library is free software; you can redistribute it and/or
1.1020 +- modify it under the terms of the GNU Lesser General Public
1.1021 +- License as published by the Free Software Foundation; either
1.1022 +- version 2.1 of the License, or (at your option) any later version.
1.1023 +-
1.1024 +- The GNU C Library is distributed in the hope that it will be useful,
1.1025 +- but WITHOUT ANY WARRANTY; without even the implied warranty of
1.1026 +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.1027 +- Lesser General Public License for more details.
1.1028 +-
1.1029 +- You should have received a copy of the GNU Lesser General Public
1.1030 +- License along with the GNU C Library; if not, write to the Free
1.1031 +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1.1032 +- 02111-1307 USA. */
1.1033 +-
1.1034 +-#ifndef _FPU_CONTROL_H
1.1035 +-#define _FPU_CONTROL_H
1.1036 +-
1.1037 +-/* rounding control */
1.1038 +-#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
1.1039 +-#define _FPU_RC_DOWN 0x03
1.1040 +-#define _FPU_RC_UP 0x02
1.1041 +-#define _FPU_RC_ZERO 0x01
1.1042 +-
1.1043 +-#define _FPU_MASK_NI 0x04 /* non-ieee mode */
1.1044 +-
1.1045 +-/* masking of interrupts */
1.1046 +-#define _FPU_MASK_ZM 0x10 /* zero divide */
1.1047 +-#define _FPU_MASK_OM 0x40 /* overflow */
1.1048 +-#define _FPU_MASK_UM 0x20 /* underflow */
1.1049 +-#define _FPU_MASK_XM 0x08 /* inexact */
1.1050 +-#define _FPU_MASK_IM 0x80 /* invalid operation */
1.1051 +-
1.1052 +-#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
1.1053 +-
1.1054 +-/* The fdlibm code requires no interrupts for exceptions. */
1.1055 +-#define _FPU_DEFAULT 0x00000000 /* Default value. */
1.1056 +-
1.1057 +-/* IEEE: same as above, but (some) exceptions;
1.1058 +- we leave the 'inexact' exception off.
1.1059 +- */
1.1060 +-#define _FPU_IEEE 0x000000f0
1.1061 +-
1.1062 +-/* Type of the control word. */
1.1063 +-typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
1.1064 +-
1.1065 +-/* Macros for accessing the hardware control word. */
1.1066 +-#define _FPU_GETCW(cw) ( { \
1.1067 +- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
1.1068 +- __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
1.1069 +- (cw)=tmp.cw[1]; \
1.1070 +- tmp.cw[1]; } )
1.1071 +-#define _FPU_SETCW(cw) { \
1.1072 +- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
1.1073 +- tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
1.1074 +- tmp.cw[1] = cw; \
1.1075 +- __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
1.1076 +-}
1.1077 +-
1.1078 +-/* Default control word set at startup. */
1.1079 +-extern fpu_control_t __fpu_control;
1.1080 +-
1.1081 +-#endif /* _FPU_CONTROL_H */
1.1082 +diff -Naur glibc-2.2.5.old/sysdeps/powerpc/setjmp.S glibc-2.2.5/sysdeps/powerpc/setjmp.S
1.1083 +--- glibc-2.2.5.old/sysdeps/powerpc/setjmp.S Thu Jul 5 21:56:01 2001
1.1084 ++++ glibc-2.2.5/sysdeps/powerpc/setjmp.S Thu Jul 10 11:43:44 2003
1.1085 +@@ -24,6 +24,8 @@
1.1086 + #include <bp-sym.h>
1.1087 + #include <bp-asm.h>
1.1088 +
1.1089 ++/* The FPU stores have been removed from this file - see fpu/setjmp.S */
1.1090 ++
1.1091 + ENTRY (BP_SYM (__sigsetjmp))
1.1092 + CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
1.1093 +
1.1094 +@@ -31,43 +33,25 @@
1.1095 + mflr r0
1.1096 + stw r2,(JB_GPR2*4)(3)
1.1097 + stw r14,((JB_GPRS+0)*4)(3)
1.1098 +- stfd fp14,((JB_FPRS+0*2)*4)(3)
1.1099 + stw r0,(JB_LR*4)(3)
1.1100 + stw r15,((JB_GPRS+1)*4)(3)
1.1101 +- stfd fp15,((JB_FPRS+1*2)*4)(3)
1.1102 + mfcr r0
1.1103 + stw r16,((JB_GPRS+2)*4)(3)
1.1104 +- stfd fp16,((JB_FPRS+2*2)*4)(3)
1.1105 + stw r0,(JB_CR*4)(3)
1.1106 + stw r17,((JB_GPRS+3)*4)(3)
1.1107 +- stfd fp17,((JB_FPRS+3*2)*4)(3)
1.1108 + stw r18,((JB_GPRS+4)*4)(3)
1.1109 +- stfd fp18,((JB_FPRS+4*2)*4)(3)
1.1110 + stw r19,((JB_GPRS+5)*4)(3)
1.1111 +- stfd fp19,((JB_FPRS+5*2)*4)(3)
1.1112 + stw r20,((JB_GPRS+6)*4)(3)
1.1113 +- stfd fp20,((JB_FPRS+6*2)*4)(3)
1.1114 + stw r21,((JB_GPRS+7)*4)(3)
1.1115 +- stfd fp21,((JB_FPRS+7*2)*4)(3)
1.1116 + stw r22,((JB_GPRS+8)*4)(3)
1.1117 +- stfd fp22,((JB_FPRS+8*2)*4)(3)
1.1118 + stw r23,((JB_GPRS+9)*4)(3)
1.1119 +- stfd fp23,((JB_FPRS+9*2)*4)(3)
1.1120 + stw r24,((JB_GPRS+10)*4)(3)
1.1121 +- stfd fp24,((JB_FPRS+10*2)*4)(3)
1.1122 + stw r25,((JB_GPRS+11)*4)(3)
1.1123 +- stfd fp25,((JB_FPRS+11*2)*4)(3)
1.1124 + stw r26,((JB_GPRS+12)*4)(3)
1.1125 +- stfd fp26,((JB_FPRS+12*2)*4)(3)
1.1126 + stw r27,((JB_GPRS+13)*4)(3)
1.1127 +- stfd fp27,((JB_FPRS+13*2)*4)(3)
1.1128 + stw r28,((JB_GPRS+14)*4)(3)
1.1129 +- stfd fp28,((JB_FPRS+14*2)*4)(3)
1.1130 + stw r29,((JB_GPRS+15)*4)(3)
1.1131 +- stfd fp29,((JB_FPRS+15*2)*4)(3)
1.1132 + stw r30,((JB_GPRS+16)*4)(3)
1.1133 +- stfd fp30,((JB_FPRS+16*2)*4)(3)
1.1134 + stw r31,((JB_GPRS+17)*4)(3)
1.1135 +- stfd fp31,((JB_FPRS+17*2)*4)(3)
1.1136 + b JUMPTARGET (BP_SYM (__sigjmp_save))
1.1137 + END (BP_SYM (__sigsetjmp))