]>
Commit | Line | Data |
---|---|---|
18724e30 NF |
1 | /* |
2 | * Special support for eabi and SVR4 | |
3 | * | |
83ffe9cd | 4 | * Copyright (C) 1995-2023 Free Software Foundation, Inc. |
18724e30 NF |
5 | * Written By Michael Meissner |
6 | * 64-bit support written by David Edelsohn | |
7 | * | |
8 | * This file is free software; you can redistribute it and/or modify it | |
9 | * under the terms of the GNU General Public License as published by the | |
748086b7 | 10 | * Free Software Foundation; either version 3, or (at your option) any |
18724e30 NF |
11 | * later version. |
12 | * | |
18724e30 NF |
13 | * This file is distributed in the hope that it will be useful, but |
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 | * General Public License for more details. | |
17 | * | |
748086b7 JJ |
18 | * Under Section 7 of GPL version 3, you are granted additional |
19 | * permissions described in the GCC Runtime Library Exception, version | |
20 | * 3.1, as published by the Free Software Foundation. | |
21 | * | |
22 | * You should have received a copy of the GNU General Public License and | |
23 | * a copy of the GCC Runtime Library Exception along with this program; | |
24 | * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
25 | * <http://www.gnu.org/licenses/>. | |
18724e30 NF |
26 | */ |
27 | ||
28 | /* Do any initializations needed for the eabi environment */ | |
29 | ||
66711279 | 30 | .machine ppc |
18724e30 NF |
31 | .section ".text" |
32 | #include "ppc-asm.h" | |
33 | ||
34 | /* On PowerPC64 Linux, these functions are provided by the linker. */ | |
35 | #ifndef __powerpc64__ | |
36 | ||
37 | /* Routines for restoring floating point registers, called by the compiler. */ | |
38 | /* Called with r11 pointing to the stack header word of the caller of the */ | |
39 | /* function, just beyond the end of the floating point save area. */ | |
40 | /* In addition to restoring the fp registers, it will return to the caller's */ | |
41 | /* caller */ | |
42 | ||
ff35822b JJ |
43 | CFI_STARTPROC |
44 | CFI_DEF_CFA_REGISTER (11) | |
45 | CFI_OFFSET (65, 4) | |
46 | CFI_OFFSET (46, -144) | |
47 | CFI_OFFSET (47, -136) | |
48 | CFI_OFFSET (48, -128) | |
49 | CFI_OFFSET (49, -120) | |
50 | CFI_OFFSET (50, -112) | |
51 | CFI_OFFSET (51, -104) | |
52 | CFI_OFFSET (52, -96) | |
53 | CFI_OFFSET (53, -88) | |
54 | CFI_OFFSET (54, -80) | |
55 | CFI_OFFSET (55, -72) | |
56 | CFI_OFFSET (56, -64) | |
57 | CFI_OFFSET (57, -56) | |
58 | CFI_OFFSET (58, -48) | |
59 | CFI_OFFSET (59, -40) | |
60 | CFI_OFFSET (60, -32) | |
61 | CFI_OFFSET (61, -24) | |
62 | CFI_OFFSET (62, -16) | |
63 | CFI_OFFSET (63, -8) | |
1590a115 | 64 | HIDDEN_FUNC(_restfpr_14_x) lfd 14,-144(11) /* restore fp registers */ |
ff35822b | 65 | CFI_RESTORE (46) |
1590a115 | 66 | HIDDEN_FUNC(_restfpr_15_x) lfd 15,-136(11) |
ff35822b | 67 | CFI_RESTORE (47) |
1590a115 | 68 | HIDDEN_FUNC(_restfpr_16_x) lfd 16,-128(11) |
ff35822b | 69 | CFI_RESTORE (48) |
1590a115 | 70 | HIDDEN_FUNC(_restfpr_17_x) lfd 17,-120(11) |
ff35822b | 71 | CFI_RESTORE (49) |
1590a115 | 72 | HIDDEN_FUNC(_restfpr_18_x) lfd 18,-112(11) |
ff35822b | 73 | CFI_RESTORE (50) |
1590a115 | 74 | HIDDEN_FUNC(_restfpr_19_x) lfd 19,-104(11) |
ff35822b | 75 | CFI_RESTORE (51) |
1590a115 | 76 | HIDDEN_FUNC(_restfpr_20_x) lfd 20,-96(11) |
ff35822b | 77 | CFI_RESTORE (52) |
1590a115 | 78 | HIDDEN_FUNC(_restfpr_21_x) lfd 21,-88(11) |
ff35822b | 79 | CFI_RESTORE (53) |
1590a115 | 80 | HIDDEN_FUNC(_restfpr_22_x) lfd 22,-80(11) |
ff35822b | 81 | CFI_RESTORE (54) |
1590a115 | 82 | HIDDEN_FUNC(_restfpr_23_x) lfd 23,-72(11) |
ff35822b | 83 | CFI_RESTORE (55) |
1590a115 | 84 | HIDDEN_FUNC(_restfpr_24_x) lfd 24,-64(11) |
ff35822b | 85 | CFI_RESTORE (56) |
1590a115 | 86 | HIDDEN_FUNC(_restfpr_25_x) lfd 25,-56(11) |
ff35822b | 87 | CFI_RESTORE (57) |
1590a115 | 88 | HIDDEN_FUNC(_restfpr_26_x) lfd 26,-48(11) |
ff35822b | 89 | CFI_RESTORE (58) |
1590a115 | 90 | HIDDEN_FUNC(_restfpr_27_x) lfd 27,-40(11) |
ff35822b | 91 | CFI_RESTORE (59) |
1590a115 | 92 | HIDDEN_FUNC(_restfpr_28_x) lfd 28,-32(11) |
ff35822b | 93 | CFI_RESTORE (60) |
1590a115 | 94 | HIDDEN_FUNC(_restfpr_29_x) lfd 29,-24(11) |
ff35822b | 95 | CFI_RESTORE (61) |
1590a115 | 96 | HIDDEN_FUNC(_restfpr_30_x) lfd 30,-16(11) |
ff35822b | 97 | CFI_RESTORE (62) |
1590a115 | 98 | HIDDEN_FUNC(_restfpr_31_x) lwz 0,4(11) |
18724e30 | 99 | lfd 31,-8(11) |
ff35822b | 100 | CFI_RESTORE (63) |
18724e30 | 101 | mtlr 0 |
ff35822b | 102 | CFI_RESTORE (65) |
18724e30 | 103 | mr 1,11 |
ff35822b | 104 | CFI_DEF_CFA_REGISTER (1) |
18724e30 NF |
105 | blr |
106 | FUNC_END(_restfpr_31_x) | |
107 | FUNC_END(_restfpr_30_x) | |
108 | FUNC_END(_restfpr_29_x) | |
109 | FUNC_END(_restfpr_28_x) | |
110 | FUNC_END(_restfpr_27_x) | |
111 | FUNC_END(_restfpr_26_x) | |
112 | FUNC_END(_restfpr_25_x) | |
113 | FUNC_END(_restfpr_24_x) | |
114 | FUNC_END(_restfpr_23_x) | |
115 | FUNC_END(_restfpr_22_x) | |
116 | FUNC_END(_restfpr_21_x) | |
117 | FUNC_END(_restfpr_20_x) | |
118 | FUNC_END(_restfpr_19_x) | |
119 | FUNC_END(_restfpr_18_x) | |
120 | FUNC_END(_restfpr_17_x) | |
121 | FUNC_END(_restfpr_16_x) | |
122 | FUNC_END(_restfpr_15_x) | |
123 | FUNC_END(_restfpr_14_x) | |
ff35822b | 124 | CFI_ENDPROC |
18724e30 NF |
125 | |
126 | #endif |