⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glibc-2.2.5-hhl-powerpc-fpu.patch

📁 linux下编译交叉工具链的工具源码
💻 PATCH
📖 第 1 页 / 共 3 页
字号:
+			mtlr	r0		#move return address to LR+			lfd	fp30,-16(r1)	#restore f30+			lfd	fp31,-8(r1)	#restore f31+			blr			#returndiff -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			#returndiff -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))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -