mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-28 00:28:52 +00:00
1906cf93f8
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... :-(
1135 lines
41 KiB
Diff
1135 lines
41 KiB
Diff
# See http://sources.redhat.com/ml/crossgcc/2002-05/msg00132.html
|
|
# This patch is taken directly from the Montavista Hard Hat Linux 2.0 source RPMs,
|
|
# but has been rediffed against glibc-2.2.5
|
|
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Dist glibc-2.2.5/sysdeps/powerpc/Dist
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/Dist Fri Jun 30 23:30:21 2000
|
|
+++ glibc-2.2.5/sysdeps/powerpc/Dist Thu Jul 10 11:43:17 2003
|
|
@@ -1,9 +1,6 @@
|
|
dl-machine.c
|
|
dl-start.S
|
|
ppc-mcount.S
|
|
-fe_nomask.c
|
|
-fprrest.S
|
|
-fprsave.S
|
|
gprsave1.S
|
|
gprsave0.S
|
|
gprrest1.S
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Makefile glibc-2.2.5/sysdeps/powerpc/Makefile
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/Makefile Mon Nov 27 15:32:47 2000
|
|
+++ glibc-2.2.5/sysdeps/powerpc/Makefile Thu Jul 10 11:43:17 2003
|
|
@@ -3,16 +3,12 @@
|
|
+cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
|
|
asm-CPPFLAGS += -Wa,-mppc
|
|
|
|
-ifeq ($(subdir),math)
|
|
-libm-support += fenv_const fe_nomask
|
|
-endif
|
|
-
|
|
ifeq ($(subdir),gmon)
|
|
sysdep_routines += ppc-mcount
|
|
endif
|
|
|
|
ifeq ($(subdir),misc)
|
|
-sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest
|
|
+sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
|
|
endif
|
|
|
|
# On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Versions glibc-2.2.5/sysdeps/powerpc/Versions
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/Versions Mon Feb 28 13:27:57 2000
|
|
+++ glibc-2.2.5/sysdeps/powerpc/Versions Thu Jul 10 11:43:17 2003
|
|
@@ -1,8 +1,4 @@
|
|
libm {
|
|
- GLIBC_2.1 {
|
|
- # symbols used in macros from sysdeps/powerpc/bits/fenv.h
|
|
- __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
|
|
- }
|
|
GLIBC_2.2 {
|
|
# Special functions to save and restore registers used by the
|
|
# runtime libraries.
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S glibc-2.2.5/sysdeps/powerpc/__longjmp.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S Thu Jul 10 11:43:17 2003
|
|
@@ -24,6 +24,8 @@
|
|
#include <bp-sym.h>
|
|
#include <bp-asm.h>
|
|
|
|
+/* The FPU loads have been removed from this file - see fpu/__longjmp.S */
|
|
+
|
|
ENTRY (BP_SYM (__longjmp))
|
|
CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
|
|
|
|
@@ -31,44 +33,26 @@
|
|
lwz r2,(JB_GPR2*4)(r3)
|
|
lwz r0,(JB_LR*4)(r3)
|
|
lwz r14,((JB_GPRS+0)*4)(r3)
|
|
- lfd fp14,((JB_FPRS+0*2)*4)(r3)
|
|
lwz r15,((JB_GPRS+1)*4)(r3)
|
|
- lfd fp15,((JB_FPRS+1*2)*4)(r3)
|
|
lwz r16,((JB_GPRS+2)*4)(r3)
|
|
- lfd fp16,((JB_FPRS+2*2)*4)(r3)
|
|
lwz r17,((JB_GPRS+3)*4)(r3)
|
|
- lfd fp17,((JB_FPRS+3*2)*4)(r3)
|
|
lwz r18,((JB_GPRS+4)*4)(r3)
|
|
- lfd fp18,((JB_FPRS+4*2)*4)(r3)
|
|
lwz r19,((JB_GPRS+5)*4)(r3)
|
|
- lfd fp19,((JB_FPRS+5*2)*4)(r3)
|
|
lwz r20,((JB_GPRS+6)*4)(r3)
|
|
- lfd fp20,((JB_FPRS+6*2)*4)(r3)
|
|
mtlr r0
|
|
lwz r21,((JB_GPRS+7)*4)(r3)
|
|
- lfd fp21,((JB_FPRS+7*2)*4)(r3)
|
|
lwz r22,((JB_GPRS+8)*4)(r3)
|
|
- lfd fp22,((JB_FPRS+8*2)*4)(r3)
|
|
lwz r0,(JB_CR*4)(r3)
|
|
lwz r23,((JB_GPRS+9)*4)(r3)
|
|
- lfd fp23,((JB_FPRS+9*2)*4)(r3)
|
|
lwz r24,((JB_GPRS+10)*4)(r3)
|
|
- lfd fp24,((JB_FPRS+10*2)*4)(r3)
|
|
lwz r25,((JB_GPRS+11)*4)(r3)
|
|
- lfd fp25,((JB_FPRS+11*2)*4)(r3)
|
|
mtcrf 0xFF,r0
|
|
lwz r26,((JB_GPRS+12)*4)(r3)
|
|
- lfd fp26,((JB_FPRS+12*2)*4)(r3)
|
|
lwz r27,((JB_GPRS+13)*4)(r3)
|
|
- lfd fp27,((JB_FPRS+13*2)*4)(r3)
|
|
lwz r28,((JB_GPRS+14)*4)(r3)
|
|
- lfd fp28,((JB_FPRS+14*2)*4)(r3)
|
|
lwz r29,((JB_GPRS+15)*4)(r3)
|
|
- lfd fp29,((JB_FPRS+15*2)*4)(r3)
|
|
lwz r30,((JB_GPRS+16)*4)(r3)
|
|
- lfd fp30,((JB_FPRS+16*2)*4)(r3)
|
|
lwz r31,((JB_GPRS+17)*4)(r3)
|
|
- lfd fp31,((JB_FPRS+17*2)*4)(r3)
|
|
mr r3,r4
|
|
blr
|
|
END (BP_SYM (__longjmp))
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h Thu Jul 10 11:43:17 2003
|
|
@@ -17,6 +17,7 @@
|
|
02111-1307 USA. */
|
|
|
|
/* Define the machine-dependent type `jmp_buf'. PowerPC version. */
|
|
+/* For processors without floating point. */
|
|
|
|
#ifndef _SETJMP_H
|
|
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
|
|
@@ -33,12 +34,11 @@
|
|
# define JB_LR 2 /* The address we will return to */
|
|
# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
|
|
# define JB_CR 21 /* Condition code registers. */
|
|
-# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
|
|
-# define JB_SIZE (58*4)
|
|
+# define JB_SIZE (22*4)
|
|
#endif
|
|
|
|
#ifndef _ASM
|
|
-typedef long int __jmp_buf[58];
|
|
+typedef long int __jmp_buf[22];
|
|
#endif
|
|
|
|
/* Test if longjmp to JMPBUF would unwind the frame
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c Wed Dec 31 16:00:00 1969
|
|
@@ -1,48 +0,0 @@
|
|
-/* Clear given exceptions in current floating-point environment.
|
|
- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
|
|
- This file is part of the GNU C Library.
|
|
-
|
|
- The GNU C Library is free software; you can redistribute it and/or
|
|
- modify it under the terms of the GNU Lesser General Public
|
|
- License as published by the Free Software Foundation; either
|
|
- version 2.1 of the License, or (at your option) any later version.
|
|
-
|
|
- The GNU C Library is distributed in the hope that it will be useful,
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
- Lesser General Public License for more details.
|
|
-
|
|
- You should have received a copy of the GNU Lesser General Public
|
|
- License along with the GNU C Library; if not, write to the Free
|
|
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
- 02111-1307 USA. */
|
|
-
|
|
-#include <fenv_libc.h>
|
|
-
|
|
-#undef feclearexcept
|
|
-int
|
|
-__feclearexcept (int excepts)
|
|
-{
|
|
- fenv_union_t u;
|
|
-
|
|
- /* Get the current state. */
|
|
- u.fenv = fegetenv_register ();
|
|
-
|
|
- /* Clear the relevant bits. */
|
|
- u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
|
|
- | (excepts & FPSCR_STICKY_BITS));
|
|
-
|
|
- /* Put the new state in effect. */
|
|
- fesetenv_register (u.fenv);
|
|
-
|
|
- /* Success. */
|
|
- return 0;
|
|
-}
|
|
-
|
|
-#include <shlib-compat.h>
|
|
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
|
|
-strong_alias (__feclearexcept, __old_feclearexcept)
|
|
-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
|
|
-#endif
|
|
-
|
|
-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c Wed Dec 31 16:00:00 1969
|
|
@@ -1,32 +0,0 @@
|
|
-/* Procedure definition for FE_NOMASK_ENV.
|
|
- Copyright (C) 1997 Free Software Foundation, Inc.
|
|
- This file is part of the GNU C Library.
|
|
-
|
|
- The GNU C Library is free software; you can redistribute it and/or
|
|
- modify it under the terms of the GNU Lesser General Public
|
|
- License as published by the Free Software Foundation; either
|
|
- version 2.1 of the License, or (at your option) any later version.
|
|
-
|
|
- The GNU C Library is distributed in the hope that it will be useful,
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
- Lesser General Public License for more details.
|
|
-
|
|
- You should have received a copy of the GNU Lesser General Public
|
|
- License along with the GNU C Library; if not, write to the Free
|
|
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
- 02111-1307 USA. */
|
|
-
|
|
-#include <fenv.h>
|
|
-#include <errno.h>
|
|
-
|
|
-/* This is presently a stub, until it's decided how the kernels should
|
|
- support this. */
|
|
-
|
|
-const fenv_t *
|
|
-__fe_nomask_env(void)
|
|
-{
|
|
- __set_errno (ENOSYS);
|
|
- return FE_ENABLED_ENV;
|
|
-}
|
|
-stub_warning (__fe_nomask_env)
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprrest.S glibc-2.2.5/sysdeps/powerpc/fprrest.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fprrest.S Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fprrest.S Wed Dec 31 16:00:00 1969
|
|
@@ -1,94 +0,0 @@
|
|
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
|
- This file is part of the GNU C Library.
|
|
-
|
|
- The GNU C Library is free software; you can redistribute it and/or
|
|
- modify it under the terms of the GNU Lesser General Public
|
|
- License as published by the Free Software Foundation; either
|
|
- version 2.1 of the License, or (at your option) any later version.
|
|
-
|
|
- The GNU C Library is distributed in the hope that it will be useful,
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
- Lesser General Public License for more details.
|
|
-
|
|
- You should have received a copy of the GNU Lesser General Public
|
|
- License along with the GNU C Library; if not, write to the Free
|
|
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
- 02111-1307 USA. */
|
|
-
|
|
-/*
|
|
- Floating Point Registers (FPRs) restore routine
|
|
-*/
|
|
-
|
|
-#include <sysdep.h>
|
|
-
|
|
-ENTRY(_restfpr_all)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
|
|
-C_TEXT(_restf14):
|
|
-C_TEXT(_restfpr_14): lfd fp14,-144(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
|
|
-C_TEXT(_restf15):
|
|
-C_TEXT(_restfpr_15): lfd fp15,-136(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
|
|
-C_TEXT(_restf16):
|
|
-C_TEXT(_restfpr_16): lfd fp16,-128(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
|
|
-C_TEXT(_restf17):
|
|
-C_TEXT(_restfpr_17): lfd fp17,-120(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
|
|
-C_TEXT(_restf18):
|
|
-C_TEXT(_restfpr_18): lfd fp18,-112(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
|
|
-C_TEXT(_restf19):
|
|
-C_TEXT(_restfpr_19): lfd fp19,-104(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
|
|
-C_TEXT(_restf20):
|
|
-C_TEXT(_restfpr_20): lfd fp20,-96(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
|
|
-C_TEXT(_restf21):
|
|
-C_TEXT(_restfpr_21): lfd fp21,-88(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
|
|
-C_TEXT(_restf22):
|
|
-C_TEXT(_restfpr_22): lfd fp22,-80(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
|
|
-C_TEXT(_restf23):
|
|
-C_TEXT(_restfpr_23): lfd fp23,-72(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
|
|
-C_TEXT(_restf24):
|
|
-C_TEXT(_restfpr_24): lfd fp24,-64(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
|
|
-C_TEXT(_restf25):
|
|
-C_TEXT(_restfpr_25): lfd fp25,-56(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
|
|
-C_TEXT(_restf26):
|
|
-C_TEXT(_restfpr_26): lfd fp26,-48(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
|
|
-C_TEXT(_restf27):
|
|
-C_TEXT(_restfpr_27): lfd fp27,-40(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
|
|
-C_TEXT(_restf28):
|
|
-C_TEXT(_restfpr_28): lfd fp28,-32(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
|
|
-C_TEXT(_restf29):
|
|
-C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
|
|
- lfd fp29,-24(r1) #restore f29
|
|
- mtlr r0 #move return address to LR
|
|
- lfd fp30,-16(r1) #restore f30
|
|
- lfd fp31,-8(r1) #restore f31
|
|
- blr #return
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprsave.S glibc-2.2.5/sysdeps/powerpc/fprsave.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fprsave.S Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fprsave.S Wed Dec 31 16:00:00 1969
|
|
@@ -1,93 +0,0 @@
|
|
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
|
- This file is part of the GNU C Library.
|
|
-
|
|
- The GNU C Library is free software; you can redistribute it and/or
|
|
- modify it under the terms of the GNU Lesser General Public
|
|
- License as published by the Free Software Foundation; either
|
|
- version 2.1 of the License, or (at your option) any later version.
|
|
-
|
|
- The GNU C Library is distributed in the hope that it will be useful,
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
- Lesser General Public License for more details.
|
|
-
|
|
- You should have received a copy of the GNU Lesser General Public
|
|
- License along with the GNU C Library; if not, write to the Free
|
|
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
- 02111-1307 USA. */
|
|
-
|
|
-/*
|
|
- Floating Point Registers (FPRs) save routine
|
|
-*/
|
|
-
|
|
-#include <sysdep.h>
|
|
-
|
|
-ENTRY(_savefpr_all)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
|
|
-C_TEXT(_savef14):
|
|
-C_TEXT(_savefpr_14): stfd fp14,-144(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
|
|
-C_TEXT(_savef15):
|
|
-C_TEXT(_savefpr_15): stfd fp15,-136(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
|
|
-C_TEXT(_savef16):
|
|
-C_TEXT(_savefpr_16): stfd fp16,-128(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
|
|
-C_TEXT(_savef17):
|
|
-C_TEXT(_savefpr_17): stfd fp17,-120(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
|
|
-C_TEXT(_savef18):
|
|
-C_TEXT(_savefpr_18): stfd fp18,-112(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
|
|
-C_TEXT(_savef19):
|
|
-C_TEXT(_savefpr_19): stfd fp19,-104(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
|
|
-C_TEXT(_savef20):
|
|
-C_TEXT(_savefpr_20): stfd fp20,-96(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
|
|
-C_TEXT(_savef21):
|
|
-C_TEXT(_savefpr_21): stfd fp21,-88(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
|
|
-C_TEXT(_savef22):
|
|
-C_TEXT(_savefpr_22): stfd fp22,-80(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
|
|
-C_TEXT(_savef23):
|
|
-C_TEXT(_savefpr_23): stfd fp23,-72(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
|
|
-C_TEXT(_savef24):
|
|
-C_TEXT(_savefpr_24): stfd fp24,-64(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
|
|
-C_TEXT(_savef25):
|
|
-C_TEXT(_savefpr_25): stfd fp25,-56(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
|
|
-C_TEXT(_savef26):
|
|
-C_TEXT(_savefpr_26): stfd fp26,-48(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
|
|
-C_TEXT(_savef27):
|
|
-C_TEXT(_savefpr_27): stfd fp27,-40(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
|
|
-C_TEXT(_savef28):
|
|
-C_TEXT(_savefpr_28): stfd fp28,-32(r1)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
|
|
- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
|
|
-C_TEXT(_savef29):
|
|
-C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
|
|
- stfd fp30,-16(r1) #save f30
|
|
- stfd fp31,-8(r1) #save f31
|
|
- stw r0,8(r1) #save LR in callers frame
|
|
- blr #return
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist glibc-2.2.5/sysdeps/powerpc/fpu/Dist
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist Wed Jan 26 17:48:02 2000
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist Thu Jul 10 11:43:17 2003
|
|
@@ -1,3 +1,6 @@
|
|
+fe_nomask.c
|
|
+fprrest.S
|
|
+fprsave.S
|
|
fenv_const.c
|
|
fenv_libc.h
|
|
t_sqrt.c
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile glibc-2.2.5/sysdeps/powerpc/fpu/Makefile
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile Mon Oct 11 15:29:00 1999
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile Thu Jul 10 11:43:17 2003
|
|
@@ -1,3 +1,7 @@
|
|
ifeq ($(subdir),math)
|
|
libm-support += fenv_const fe_nomask t_sqrt
|
|
endif
|
|
+
|
|
+ifeq ($(subdir),misc)
|
|
+sysdep_routines += fprsave fprrest
|
|
+endif
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions glibc-2.2.5/sysdeps/powerpc/fpu/Versions
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions Thu Jul 10 11:43:17 2003
|
|
@@ -0,0 +1,6 @@
|
|
+libm {
|
|
+ GLIBC_2.1 {
|
|
+ # symbols used in macros from sysdeps/powerpc/bits/fenv.h
|
|
+ __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
|
|
+ }
|
|
+}
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S Thu Jul 10 11:43:17 2003
|
|
@@ -0,0 +1,74 @@
|
|
+/* longjmp for PowerPC.
|
|
+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Library General Public License as
|
|
+ published by the Free Software Foundation; either version 2 of the
|
|
+ License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Library General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Library General Public
|
|
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
+ Boston, MA 02111-1307, USA. */
|
|
+
|
|
+#include <sysdep.h>
|
|
+#define _ASM
|
|
+#define _SETJMP_H
|
|
+#include <bits/setjmp.h>
|
|
+#include <bp-sym.h>
|
|
+#include <bp-asm.h>
|
|
+
|
|
+ENTRY (BP_SYM (__longjmp))
|
|
+ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
|
|
+
|
|
+ lwz r1,(JB_GPR1*4)(r3)
|
|
+ lwz r2,(JB_GPR2*4)(r3)
|
|
+ lwz r0,(JB_LR*4)(r3)
|
|
+ lwz r14,((JB_GPRS+0)*4)(r3)
|
|
+ lfd fp14,((JB_FPRS+0*2)*4)(r3)
|
|
+ lwz r15,((JB_GPRS+1)*4)(r3)
|
|
+ lfd fp15,((JB_FPRS+1*2)*4)(r3)
|
|
+ lwz r16,((JB_GPRS+2)*4)(r3)
|
|
+ lfd fp16,((JB_FPRS+2*2)*4)(r3)
|
|
+ lwz r17,((JB_GPRS+3)*4)(r3)
|
|
+ lfd fp17,((JB_FPRS+3*2)*4)(r3)
|
|
+ lwz r18,((JB_GPRS+4)*4)(r3)
|
|
+ lfd fp18,((JB_FPRS+4*2)*4)(r3)
|
|
+ lwz r19,((JB_GPRS+5)*4)(r3)
|
|
+ lfd fp19,((JB_FPRS+5*2)*4)(r3)
|
|
+ lwz r20,((JB_GPRS+6)*4)(r3)
|
|
+ lfd fp20,((JB_FPRS+6*2)*4)(r3)
|
|
+ mtlr r0
|
|
+ lwz r21,((JB_GPRS+7)*4)(r3)
|
|
+ lfd fp21,((JB_FPRS+7*2)*4)(r3)
|
|
+ lwz r22,((JB_GPRS+8)*4)(r3)
|
|
+ lfd fp22,((JB_FPRS+8*2)*4)(r3)
|
|
+ lwz r0,(JB_CR*4)(r3)
|
|
+ lwz r23,((JB_GPRS+9)*4)(r3)
|
|
+ lfd fp23,((JB_FPRS+9*2)*4)(r3)
|
|
+ lwz r24,((JB_GPRS+10)*4)(r3)
|
|
+ lfd fp24,((JB_FPRS+10*2)*4)(r3)
|
|
+ lwz r25,((JB_GPRS+11)*4)(r3)
|
|
+ lfd fp25,((JB_FPRS+11*2)*4)(r3)
|
|
+ mtcrf 0xFF,r0
|
|
+ lwz r26,((JB_GPRS+12)*4)(r3)
|
|
+ lfd fp26,((JB_FPRS+12*2)*4)(r3)
|
|
+ lwz r27,((JB_GPRS+13)*4)(r3)
|
|
+ lfd fp27,((JB_FPRS+13*2)*4)(r3)
|
|
+ lwz r28,((JB_GPRS+14)*4)(r3)
|
|
+ lfd fp28,((JB_FPRS+14*2)*4)(r3)
|
|
+ lwz r29,((JB_GPRS+15)*4)(r3)
|
|
+ lfd fp29,((JB_FPRS+15*2)*4)(r3)
|
|
+ lwz r30,((JB_GPRS+16)*4)(r3)
|
|
+ lfd fp30,((JB_FPRS+16*2)*4)(r3)
|
|
+ lwz r31,((JB_GPRS+17)*4)(r3)
|
|
+ lfd fp31,((JB_FPRS+17*2)*4)(r3)
|
|
+ mr r3,r4
|
|
+ blr
|
|
+END (BP_SYM (__longjmp))
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h Thu Jul 10 11:43:17 2003
|
|
@@ -0,0 +1,47 @@
|
|
+/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Library General Public License as
|
|
+ published by the Free Software Foundation; either version 2 of the
|
|
+ License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Library General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Library General Public
|
|
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
+ Boston, MA 02111-1307, USA. */
|
|
+
|
|
+/* Define the machine-dependent type `jmp_buf'. PowerPC version. */
|
|
+
|
|
+#ifndef _SETJMP_H
|
|
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
|
|
+#endif
|
|
+
|
|
+/* The previous bits/setjmp.h had __jmp_buf defined as a structure.
|
|
+ We use an array of 'long int' instead, to make writing the
|
|
+ assembler easier. Naturally, user code should not depend on
|
|
+ either representation. */
|
|
+
|
|
+#if defined __USE_MISC || defined _ASM
|
|
+# define JB_GPR1 0 /* Also known as the stack pointer */
|
|
+# define JB_GPR2 1
|
|
+# define JB_LR 2 /* The address we will return to */
|
|
+# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
|
|
+# define JB_CR 21 /* Condition code registers. */
|
|
+# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
|
|
+# define JB_SIZE (58*4)
|
|
+#endif
|
|
+
|
|
+#ifndef _ASM
|
|
+typedef long int __jmp_buf[58];
|
|
+#endif
|
|
+
|
|
+/* Test if longjmp to JMPBUF would unwind the frame
|
|
+ containing a local variable at ADDRESS. */
|
|
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
|
|
+ ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c Thu Jul 5 21:56:01 2001
|
|
@@ -0,0 +1,48 @@
|
|
+/* Clear given exceptions in current floating-point environment.
|
|
+ Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with the GNU C Library; if not, write to the Free
|
|
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
+ 02111-1307 USA. */
|
|
+
|
|
+#include <fenv_libc.h>
|
|
+
|
|
+#undef feclearexcept
|
|
+int
|
|
+__feclearexcept (int excepts)
|
|
+{
|
|
+ fenv_union_t u;
|
|
+
|
|
+ /* Get the current state. */
|
|
+ u.fenv = fegetenv_register ();
|
|
+
|
|
+ /* Clear the relevant bits. */
|
|
+ u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
|
|
+ | (excepts & FPSCR_STICKY_BITS));
|
|
+
|
|
+ /* Put the new state in effect. */
|
|
+ fesetenv_register (u.fenv);
|
|
+
|
|
+ /* Success. */
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+#include <shlib-compat.h>
|
|
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
|
|
+strong_alias (__feclearexcept, __old_feclearexcept)
|
|
+compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
|
|
+#endif
|
|
+
|
|
+versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c Thu Jul 5 21:56:01 2001
|
|
@@ -0,0 +1,32 @@
|
|
+/* Procedure definition for FE_NOMASK_ENV.
|
|
+ Copyright (C) 1997 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with the GNU C Library; if not, write to the Free
|
|
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
+ 02111-1307 USA. */
|
|
+
|
|
+#include <fenv.h>
|
|
+#include <errno.h>
|
|
+
|
|
+/* This is presently a stub, until it's decided how the kernels should
|
|
+ support this. */
|
|
+
|
|
+const fenv_t *
|
|
+__fe_nomask_env(void)
|
|
+{
|
|
+ __set_errno (ENOSYS);
|
|
+ return FE_ENABLED_ENV;
|
|
+}
|
|
+stub_warning (__fe_nomask_env)
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S Thu Jul 5 21:56:01 2001
|
|
@@ -0,0 +1,94 @@
|
|
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with the GNU C Library; if not, write to the Free
|
|
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
+ 02111-1307 USA. */
|
|
+
|
|
+/*
|
|
+ Floating Point Registers (FPRs) restore routine
|
|
+*/
|
|
+
|
|
+#include <sysdep.h>
|
|
+
|
|
+ENTRY(_restfpr_all)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
|
|
+C_TEXT(_restf14):
|
|
+C_TEXT(_restfpr_14): lfd fp14,-144(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
|
|
+C_TEXT(_restf15):
|
|
+C_TEXT(_restfpr_15): lfd fp15,-136(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
|
|
+C_TEXT(_restf16):
|
|
+C_TEXT(_restfpr_16): lfd fp16,-128(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
|
|
+C_TEXT(_restf17):
|
|
+C_TEXT(_restfpr_17): lfd fp17,-120(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
|
|
+C_TEXT(_restf18):
|
|
+C_TEXT(_restfpr_18): lfd fp18,-112(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
|
|
+C_TEXT(_restf19):
|
|
+C_TEXT(_restfpr_19): lfd fp19,-104(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
|
|
+C_TEXT(_restf20):
|
|
+C_TEXT(_restfpr_20): lfd fp20,-96(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
|
|
+C_TEXT(_restf21):
|
|
+C_TEXT(_restfpr_21): lfd fp21,-88(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
|
|
+C_TEXT(_restf22):
|
|
+C_TEXT(_restfpr_22): lfd fp22,-80(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
|
|
+C_TEXT(_restf23):
|
|
+C_TEXT(_restfpr_23): lfd fp23,-72(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
|
|
+C_TEXT(_restf24):
|
|
+C_TEXT(_restfpr_24): lfd fp24,-64(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
|
|
+C_TEXT(_restf25):
|
|
+C_TEXT(_restfpr_25): lfd fp25,-56(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
|
|
+C_TEXT(_restf26):
|
|
+C_TEXT(_restfpr_26): lfd fp26,-48(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
|
|
+C_TEXT(_restf27):
|
|
+C_TEXT(_restfpr_27): lfd fp27,-40(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
|
|
+C_TEXT(_restf28):
|
|
+C_TEXT(_restfpr_28): lfd fp28,-32(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
|
|
+C_TEXT(_restf29):
|
|
+C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
|
|
+ lfd fp29,-24(r1) #restore f29
|
|
+ mtlr r0 #move return address to LR
|
|
+ lfd fp30,-16(r1) #restore f30
|
|
+ lfd fp31,-8(r1) #restore f31
|
|
+ blr #return
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S Thu Jul 5 21:56:01 2001
|
|
@@ -0,0 +1,93 @@
|
|
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with the GNU C Library; if not, write to the Free
|
|
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
+ 02111-1307 USA. */
|
|
+
|
|
+/*
|
|
+ Floating Point Registers (FPRs) save routine
|
|
+*/
|
|
+
|
|
+#include <sysdep.h>
|
|
+
|
|
+ENTRY(_savefpr_all)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
|
|
+C_TEXT(_savef14):
|
|
+C_TEXT(_savefpr_14): stfd fp14,-144(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
|
|
+C_TEXT(_savef15):
|
|
+C_TEXT(_savefpr_15): stfd fp15,-136(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
|
|
+C_TEXT(_savef16):
|
|
+C_TEXT(_savefpr_16): stfd fp16,-128(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
|
|
+C_TEXT(_savef17):
|
|
+C_TEXT(_savefpr_17): stfd fp17,-120(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
|
|
+C_TEXT(_savef18):
|
|
+C_TEXT(_savefpr_18): stfd fp18,-112(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
|
|
+C_TEXT(_savef19):
|
|
+C_TEXT(_savefpr_19): stfd fp19,-104(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
|
|
+C_TEXT(_savef20):
|
|
+C_TEXT(_savefpr_20): stfd fp20,-96(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
|
|
+C_TEXT(_savef21):
|
|
+C_TEXT(_savefpr_21): stfd fp21,-88(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
|
|
+C_TEXT(_savef22):
|
|
+C_TEXT(_savefpr_22): stfd fp22,-80(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
|
|
+C_TEXT(_savef23):
|
|
+C_TEXT(_savefpr_23): stfd fp23,-72(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
|
|
+C_TEXT(_savef24):
|
|
+C_TEXT(_savefpr_24): stfd fp24,-64(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
|
|
+C_TEXT(_savef25):
|
|
+C_TEXT(_savefpr_25): stfd fp25,-56(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
|
|
+C_TEXT(_savef26):
|
|
+C_TEXT(_savefpr_26): stfd fp26,-48(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
|
|
+C_TEXT(_savef27):
|
|
+C_TEXT(_savefpr_27): stfd fp27,-40(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
|
|
+C_TEXT(_savef28):
|
|
+C_TEXT(_savefpr_28): stfd fp28,-32(r1)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
|
|
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
|
|
+C_TEXT(_savef29):
|
|
+C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
|
|
+ stfd fp30,-16(r1) #save f30
|
|
+ stfd fp31,-8(r1) #save f31
|
|
+ stw r0,8(r1) #save LR in callers frame
|
|
+ blr #return
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h Thu Jul 5 21:56:01 2001
|
|
@@ -0,0 +1,67 @@
|
|
+/* FPU control word definitions. PowerPC version.
|
|
+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with the GNU C Library; if not, write to the Free
|
|
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
+ 02111-1307 USA. */
|
|
+
|
|
+#ifndef _FPU_CONTROL_H
|
|
+#define _FPU_CONTROL_H
|
|
+
|
|
+/* rounding control */
|
|
+#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
|
|
+#define _FPU_RC_DOWN 0x03
|
|
+#define _FPU_RC_UP 0x02
|
|
+#define _FPU_RC_ZERO 0x01
|
|
+
|
|
+#define _FPU_MASK_NI 0x04 /* non-ieee mode */
|
|
+
|
|
+/* masking of interrupts */
|
|
+#define _FPU_MASK_ZM 0x10 /* zero divide */
|
|
+#define _FPU_MASK_OM 0x40 /* overflow */
|
|
+#define _FPU_MASK_UM 0x20 /* underflow */
|
|
+#define _FPU_MASK_XM 0x08 /* inexact */
|
|
+#define _FPU_MASK_IM 0x80 /* invalid operation */
|
|
+
|
|
+#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
|
|
+
|
|
+/* The fdlibm code requires no interrupts for exceptions. */
|
|
+#define _FPU_DEFAULT 0x00000000 /* Default value. */
|
|
+
|
|
+/* IEEE: same as above, but (some) exceptions;
|
|
+ we leave the 'inexact' exception off.
|
|
+ */
|
|
+#define _FPU_IEEE 0x000000f0
|
|
+
|
|
+/* Type of the control word. */
|
|
+typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
|
|
+
|
|
+/* Macros for accessing the hardware control word. */
|
|
+#define _FPU_GETCW(cw) ( { \
|
|
+ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
|
|
+ __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
|
|
+ (cw)=tmp.cw[1]; \
|
|
+ tmp.cw[1]; } )
|
|
+#define _FPU_SETCW(cw) { \
|
|
+ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
|
|
+ tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
|
|
+ tmp.cw[1] = cw; \
|
|
+ __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
|
|
+}
|
|
+
|
|
+/* Default control word set at startup. */
|
|
+extern fpu_control_t __fpu_control;
|
|
+
|
|
+#endif /* _FPU_CONTROL_H */
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S Wed Dec 31 16:00:00 1969
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S Thu Jul 10 11:43:44 2003
|
|
@@ -0,0 +1,73 @@
|
|
+/* setjmp for PowerPC.
|
|
+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Library General Public License as
|
|
+ published by the Free Software Foundation; either version 2 of the
|
|
+ License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Library General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Library General Public
|
|
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
+ Boston, MA 02111-1307, USA. */
|
|
+
|
|
+#include <sysdep.h>
|
|
+#define _ASM
|
|
+#define _SETJMP_H
|
|
+#include <bits/setjmp.h>
|
|
+#include <bp-sym.h>
|
|
+#include <bp-asm.h>
|
|
+
|
|
+ENTRY (BP_SYM (__sigsetjmp))
|
|
+ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
|
|
+
|
|
+ stw r1,(JB_GPR1*4)(3)
|
|
+ mflr r0
|
|
+ stw r2,(JB_GPR2*4)(3)
|
|
+ stw r14,((JB_GPRS+0)*4)(3)
|
|
+ stfd fp14,((JB_FPRS+0*2)*4)(3)
|
|
+ stw r0,(JB_LR*4)(3)
|
|
+ stw r15,((JB_GPRS+1)*4)(3)
|
|
+ stfd fp15,((JB_FPRS+1*2)*4)(3)
|
|
+ mfcr r0
|
|
+ stw r16,((JB_GPRS+2)*4)(3)
|
|
+ stfd fp16,((JB_FPRS+2*2)*4)(3)
|
|
+ stw r0,(JB_CR*4)(3)
|
|
+ stw r17,((JB_GPRS+3)*4)(3)
|
|
+ stfd fp17,((JB_FPRS+3*2)*4)(3)
|
|
+ stw r18,((JB_GPRS+4)*4)(3)
|
|
+ stfd fp18,((JB_FPRS+4*2)*4)(3)
|
|
+ stw r19,((JB_GPRS+5)*4)(3)
|
|
+ stfd fp19,((JB_FPRS+5*2)*4)(3)
|
|
+ stw r20,((JB_GPRS+6)*4)(3)
|
|
+ stfd fp20,((JB_FPRS+6*2)*4)(3)
|
|
+ stw r21,((JB_GPRS+7)*4)(3)
|
|
+ stfd fp21,((JB_FPRS+7*2)*4)(3)
|
|
+ stw r22,((JB_GPRS+8)*4)(3)
|
|
+ stfd fp22,((JB_FPRS+8*2)*4)(3)
|
|
+ stw r23,((JB_GPRS+9)*4)(3)
|
|
+ stfd fp23,((JB_FPRS+9*2)*4)(3)
|
|
+ stw r24,((JB_GPRS+10)*4)(3)
|
|
+ stfd fp24,((JB_FPRS+10*2)*4)(3)
|
|
+ stw r25,((JB_GPRS+11)*4)(3)
|
|
+ stfd fp25,((JB_FPRS+11*2)*4)(3)
|
|
+ stw r26,((JB_GPRS+12)*4)(3)
|
|
+ stfd fp26,((JB_FPRS+12*2)*4)(3)
|
|
+ stw r27,((JB_GPRS+13)*4)(3)
|
|
+ stfd fp27,((JB_FPRS+13*2)*4)(3)
|
|
+ stw r28,((JB_GPRS+14)*4)(3)
|
|
+ stfd fp28,((JB_FPRS+14*2)*4)(3)
|
|
+ stw r29,((JB_GPRS+15)*4)(3)
|
|
+ stfd fp29,((JB_FPRS+15*2)*4)(3)
|
|
+ stw r30,((JB_GPRS+16)*4)(3)
|
|
+ stfd fp30,((JB_FPRS+16*2)*4)(3)
|
|
+ stw r31,((JB_GPRS+17)*4)(3)
|
|
+ stfd fp31,((JB_FPRS+17*2)*4)(3)
|
|
+ b JUMPTARGET (BP_SYM (__sigjmp_save))
|
|
+END (BP_SYM (__sigsetjmp))
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu_control.h
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h Wed Dec 31 16:00:00 1969
|
|
@@ -1,67 +0,0 @@
|
|
-/* FPU control word definitions. PowerPC version.
|
|
- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
|
- This file is part of the GNU C Library.
|
|
-
|
|
- The GNU C Library is free software; you can redistribute it and/or
|
|
- modify it under the terms of the GNU Lesser General Public
|
|
- License as published by the Free Software Foundation; either
|
|
- version 2.1 of the License, or (at your option) any later version.
|
|
-
|
|
- The GNU C Library is distributed in the hope that it will be useful,
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
- Lesser General Public License for more details.
|
|
-
|
|
- You should have received a copy of the GNU Lesser General Public
|
|
- License along with the GNU C Library; if not, write to the Free
|
|
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
- 02111-1307 USA. */
|
|
-
|
|
-#ifndef _FPU_CONTROL_H
|
|
-#define _FPU_CONTROL_H
|
|
-
|
|
-/* rounding control */
|
|
-#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
|
|
-#define _FPU_RC_DOWN 0x03
|
|
-#define _FPU_RC_UP 0x02
|
|
-#define _FPU_RC_ZERO 0x01
|
|
-
|
|
-#define _FPU_MASK_NI 0x04 /* non-ieee mode */
|
|
-
|
|
-/* masking of interrupts */
|
|
-#define _FPU_MASK_ZM 0x10 /* zero divide */
|
|
-#define _FPU_MASK_OM 0x40 /* overflow */
|
|
-#define _FPU_MASK_UM 0x20 /* underflow */
|
|
-#define _FPU_MASK_XM 0x08 /* inexact */
|
|
-#define _FPU_MASK_IM 0x80 /* invalid operation */
|
|
-
|
|
-#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
|
|
-
|
|
-/* The fdlibm code requires no interrupts for exceptions. */
|
|
-#define _FPU_DEFAULT 0x00000000 /* Default value. */
|
|
-
|
|
-/* IEEE: same as above, but (some) exceptions;
|
|
- we leave the 'inexact' exception off.
|
|
- */
|
|
-#define _FPU_IEEE 0x000000f0
|
|
-
|
|
-/* Type of the control word. */
|
|
-typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
|
|
-
|
|
-/* Macros for accessing the hardware control word. */
|
|
-#define _FPU_GETCW(cw) ( { \
|
|
- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
|
|
- __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
|
|
- (cw)=tmp.cw[1]; \
|
|
- tmp.cw[1]; } )
|
|
-#define _FPU_SETCW(cw) { \
|
|
- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
|
|
- tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
|
|
- tmp.cw[1] = cw; \
|
|
- __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
|
|
-}
|
|
-
|
|
-/* Default control word set at startup. */
|
|
-extern fpu_control_t __fpu_control;
|
|
-
|
|
-#endif /* _FPU_CONTROL_H */
|
|
diff -Naur glibc-2.2.5.old/sysdeps/powerpc/setjmp.S glibc-2.2.5/sysdeps/powerpc/setjmp.S
|
|
--- glibc-2.2.5.old/sysdeps/powerpc/setjmp.S Thu Jul 5 21:56:01 2001
|
|
+++ glibc-2.2.5/sysdeps/powerpc/setjmp.S Thu Jul 10 11:43:44 2003
|
|
@@ -24,6 +24,8 @@
|
|
#include <bp-sym.h>
|
|
#include <bp-asm.h>
|
|
|
|
+/* The FPU stores have been removed from this file - see fpu/setjmp.S */
|
|
+
|
|
ENTRY (BP_SYM (__sigsetjmp))
|
|
CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
|
|
|
|
@@ -31,43 +33,25 @@
|
|
mflr r0
|
|
stw r2,(JB_GPR2*4)(3)
|
|
stw r14,((JB_GPRS+0)*4)(3)
|
|
- stfd fp14,((JB_FPRS+0*2)*4)(3)
|
|
stw r0,(JB_LR*4)(3)
|
|
stw r15,((JB_GPRS+1)*4)(3)
|
|
- stfd fp15,((JB_FPRS+1*2)*4)(3)
|
|
mfcr r0
|
|
stw r16,((JB_GPRS+2)*4)(3)
|
|
- stfd fp16,((JB_FPRS+2*2)*4)(3)
|
|
stw r0,(JB_CR*4)(3)
|
|
stw r17,((JB_GPRS+3)*4)(3)
|
|
- stfd fp17,((JB_FPRS+3*2)*4)(3)
|
|
stw r18,((JB_GPRS+4)*4)(3)
|
|
- stfd fp18,((JB_FPRS+4*2)*4)(3)
|
|
stw r19,((JB_GPRS+5)*4)(3)
|
|
- stfd fp19,((JB_FPRS+5*2)*4)(3)
|
|
stw r20,((JB_GPRS+6)*4)(3)
|
|
- stfd fp20,((JB_FPRS+6*2)*4)(3)
|
|
stw r21,((JB_GPRS+7)*4)(3)
|
|
- stfd fp21,((JB_FPRS+7*2)*4)(3)
|
|
stw r22,((JB_GPRS+8)*4)(3)
|
|
- stfd fp22,((JB_FPRS+8*2)*4)(3)
|
|
stw r23,((JB_GPRS+9)*4)(3)
|
|
- stfd fp23,((JB_FPRS+9*2)*4)(3)
|
|
stw r24,((JB_GPRS+10)*4)(3)
|
|
- stfd fp24,((JB_FPRS+10*2)*4)(3)
|
|
stw r25,((JB_GPRS+11)*4)(3)
|
|
- stfd fp25,((JB_FPRS+11*2)*4)(3)
|
|
stw r26,((JB_GPRS+12)*4)(3)
|
|
- stfd fp26,((JB_FPRS+12*2)*4)(3)
|
|
stw r27,((JB_GPRS+13)*4)(3)
|
|
- stfd fp27,((JB_FPRS+13*2)*4)(3)
|
|
stw r28,((JB_GPRS+14)*4)(3)
|
|
- stfd fp28,((JB_FPRS+14*2)*4)(3)
|
|
stw r29,((JB_GPRS+15)*4)(3)
|
|
- stfd fp29,((JB_FPRS+15*2)*4)(3)
|
|
stw r30,((JB_GPRS+16)*4)(3)
|
|
- stfd fp30,((JB_FPRS+16*2)*4)(3)
|
|
stw r31,((JB_GPRS+17)*4)(3)
|
|
- stfd fp31,((JB_FPRS+17*2)*4)(3)
|
|
b JUMPTARGET (BP_SYM (__sigjmp_save))
|
|
END (BP_SYM (__sigsetjmp))
|