(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
[glibc.git] / sysdeps / powerpc / powerpc32 / fpu / fprsave.S
blobd7bc1ab7dcbc9e31f0167672ccf8b43e8ac5b16d
1 /* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
20     Floating Point Registers (FPRs) save routine
23 #include <sysdep.h>
25 ENTRY(_savefpr_all)
26                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
27                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
28 C_TEXT(_savef14):
29 C_TEXT(_savefpr_14):    stfd    fp14,-144(r1)
30                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
31                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
32 C_TEXT(_savef15):
33 C_TEXT(_savefpr_15):    stfd    fp15,-136(r1)
34                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
35                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
36 C_TEXT(_savef16):
37 C_TEXT(_savefpr_16):    stfd    fp16,-128(r1)
38                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
39                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
40 C_TEXT(_savef17):
41 C_TEXT(_savefpr_17):    stfd    fp17,-120(r1)
42                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
43                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
44 C_TEXT(_savef18):
45 C_TEXT(_savefpr_18):    stfd    fp18,-112(r1)
46                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
47                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
48 C_TEXT(_savef19):
49 C_TEXT(_savefpr_19):    stfd    fp19,-104(r1)
50                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
51                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
52 C_TEXT(_savef20):
53 C_TEXT(_savefpr_20):    stfd    fp20,-96(r1)
54                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
55                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
56 C_TEXT(_savef21):
57 C_TEXT(_savefpr_21):    stfd    fp21,-88(r1)
58                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
59                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
60 C_TEXT(_savef22):
61 C_TEXT(_savefpr_22):    stfd    fp22,-80(r1)
62                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
63                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
64 C_TEXT(_savef23):
65 C_TEXT(_savefpr_23):    stfd    fp23,-72(r1)
66                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
67                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
68 C_TEXT(_savef24):
69 C_TEXT(_savefpr_24):    stfd    fp24,-64(r1)
70                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
71                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
72 C_TEXT(_savef25):
73 C_TEXT(_savefpr_25):    stfd    fp25,-56(r1)
74                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
75                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
76 C_TEXT(_savef26):
77 C_TEXT(_savefpr_26):    stfd    fp26,-48(r1)
78                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
79                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
80 C_TEXT(_savef27):
81 C_TEXT(_savefpr_27):    stfd    fp27,-40(r1)
82                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
83                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
84 C_TEXT(_savef28):
85 C_TEXT(_savefpr_28):    stfd    fp28,-32(r1)
86                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
87                 ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
88 C_TEXT(_savef29):
89 C_TEXT(_savefpr_29):    stfd    fp29,-24(r1)    #save f29
90                         stfd    fp30,-16(r1)    #save f30
91                         stfd    fp31,-8(r1)     #save f31
92                         stw     r0,8(r1)        #save LR in callers frame
93                         blr                     #return