aboutsummaryrefslogtreecommitdiff
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