about summary refs log tree commit diff
path: root/sysdeps/powerpc/fprsave.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/fprsave.S')
-rw-r--r--sysdeps/powerpc/fprsave.S112
1 files changed, 74 insertions, 38 deletions
diff --git a/sysdeps/powerpc/fprsave.S b/sysdeps/powerpc/fprsave.S
index 8c4e186d76..dfc0c440c9 100644
--- a/sysdeps/powerpc/fprsave.S
+++ b/sysdeps/powerpc/fprsave.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* 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
@@ -16,42 +16,78 @@
    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>
 
-		ASM_GLOBAL_DIRECTIVE _savefpr_14
-_savefpr_14:	stfd	fp14,-144(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_15
-_savefpr_15:	stfd	fp15,-136(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_16
-_savefpr_16:	stfd	fp16,-128(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_17
-_savefpr_17:	stfd	fp17,-120(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_18
-_savefpr_18:	stfd	fp18,-112(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_19
-_savefpr_19:	stfd	fp19,-104(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_20
-_savefpr_20:	stfd	fp20,-96(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_21
-_savefpr_21:	stfd	fp21,-88(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_22
-_savefpr_22:	stfd	fp22,-80(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_23
-_savefpr_23:	stfd	fp23,-72(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_24
-_savefpr_24:	stfd	fp24,-64(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_25
-_savefpr_25:	stfd	fp25,-56(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_26
-_savefpr_26:	stfd	fp26,-48(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_27
-_savefpr_27:	stfd	fp27,-40(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_28
-_savefpr_28:	stfd	fp28,-32(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_29
-_savefpr_29:	stfd	fp29,-24(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_30
-_savefpr_30:	stfd	fp30,-16(r11)
-		ASM_GLOBAL_DIRECTIVE _savefpr_31
-_savefpr_31:	stfd	fp31,-8(r11)
-		blr
+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