]>
Commit | Line | Data |
---|---|---|
18724e30 NF |
1 | /* |
2 | * Special support for eabi and SVR4 | |
3 | * | |
5624e564 | 4 | * Copyright (C) 1995-2015 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 | ||
18724e30 NF |
30 | .section ".text" |
31 | #include "ppc-asm.h" | |
32 | ||
33 | /* On PowerPC64 Linux, these functions are provided by the linker. */ | |
34 | #ifndef __powerpc64__ | |
35 | ||
36 | /* Routines for restoring floating point registers, called by the compiler. */ | |
37 | /* Called with r11 pointing to the stack header word of the caller of the */ | |
38 | /* function, just beyond the end of the floating point save area. */ | |
39 | /* In addition to restoring the fp registers, it will return to the caller's */ | |
40 | /* caller */ | |
41 | ||
ff35822b JJ |
42 | CFI_STARTPROC |
43 | CFI_DEF_CFA_REGISTER (11) | |
44 | CFI_OFFSET (65, 4) | |
45 | CFI_OFFSET (46, -144) | |
46 | CFI_OFFSET (47, -136) | |
47 | CFI_OFFSET (48, -128) | |
48 | CFI_OFFSET (49, -120) | |
49 | CFI_OFFSET (50, -112) | |
50 | CFI_OFFSET (51, -104) | |
51 | CFI_OFFSET (52, -96) | |
52 | CFI_OFFSET (53, -88) | |
53 | CFI_OFFSET (54, -80) | |
54 | CFI_OFFSET (55, -72) | |
55 | CFI_OFFSET (56, -64) | |
56 | CFI_OFFSET (57, -56) | |
57 | CFI_OFFSET (58, -48) | |
58 | CFI_OFFSET (59, -40) | |
59 | CFI_OFFSET (60, -32) | |
60 | CFI_OFFSET (61, -24) | |
61 | CFI_OFFSET (62, -16) | |
62 | CFI_OFFSET (63, -8) | |
1590a115 | 63 | HIDDEN_FUNC(_restfpr_14_x) lfd 14,-144(11) /* restore fp registers */ |
ff35822b | 64 | CFI_RESTORE (46) |
1590a115 | 65 | HIDDEN_FUNC(_restfpr_15_x) lfd 15,-136(11) |
ff35822b | 66 | CFI_RESTORE (47) |
1590a115 | 67 | HIDDEN_FUNC(_restfpr_16_x) lfd 16,-128(11) |
ff35822b | 68 | CFI_RESTORE (48) |
1590a115 | 69 | HIDDEN_FUNC(_restfpr_17_x) lfd 17,-120(11) |
ff35822b | 70 | CFI_RESTORE (49) |
1590a115 | 71 | HIDDEN_FUNC(_restfpr_18_x) lfd 18,-112(11) |
ff35822b | 72 | CFI_RESTORE (50) |
1590a115 | 73 | HIDDEN_FUNC(_restfpr_19_x) lfd 19,-104(11) |
ff35822b | 74 | CFI_RESTORE (51) |
1590a115 | 75 | HIDDEN_FUNC(_restfpr_20_x) lfd 20,-96(11) |
ff35822b | 76 | CFI_RESTORE (52) |
1590a115 | 77 | HIDDEN_FUNC(_restfpr_21_x) lfd 21,-88(11) |
ff35822b | 78 | CFI_RESTORE (53) |
1590a115 | 79 | HIDDEN_FUNC(_restfpr_22_x) lfd 22,-80(11) |
ff35822b | 80 | CFI_RESTORE (54) |
1590a115 | 81 | HIDDEN_FUNC(_restfpr_23_x) lfd 23,-72(11) |
ff35822b | 82 | CFI_RESTORE (55) |
1590a115 | 83 | HIDDEN_FUNC(_restfpr_24_x) lfd 24,-64(11) |
ff35822b | 84 | CFI_RESTORE (56) |
1590a115 | 85 | HIDDEN_FUNC(_restfpr_25_x) lfd 25,-56(11) |
ff35822b | 86 | CFI_RESTORE (57) |
1590a115 | 87 | HIDDEN_FUNC(_restfpr_26_x) lfd 26,-48(11) |
ff35822b | 88 | CFI_RESTORE (58) |
1590a115 | 89 | HIDDEN_FUNC(_restfpr_27_x) lfd 27,-40(11) |
ff35822b | 90 | CFI_RESTORE (59) |
1590a115 | 91 | HIDDEN_FUNC(_restfpr_28_x) lfd 28,-32(11) |
ff35822b | 92 | CFI_RESTORE (60) |
1590a115 | 93 | HIDDEN_FUNC(_restfpr_29_x) lfd 29,-24(11) |
ff35822b | 94 | CFI_RESTORE (61) |
1590a115 | 95 | HIDDEN_FUNC(_restfpr_30_x) lfd 30,-16(11) |
ff35822b | 96 | CFI_RESTORE (62) |
1590a115 | 97 | HIDDEN_FUNC(_restfpr_31_x) lwz 0,4(11) |
18724e30 | 98 | lfd 31,-8(11) |
ff35822b | 99 | CFI_RESTORE (63) |
18724e30 | 100 | mtlr 0 |
ff35822b | 101 | CFI_RESTORE (65) |
18724e30 | 102 | mr 1,11 |
ff35822b | 103 | CFI_DEF_CFA_REGISTER (1) |
18724e30 NF |
104 | blr |
105 | FUNC_END(_restfpr_31_x) | |
106 | FUNC_END(_restfpr_30_x) | |
107 | FUNC_END(_restfpr_29_x) | |
108 | FUNC_END(_restfpr_28_x) | |
109 | FUNC_END(_restfpr_27_x) | |
110 | FUNC_END(_restfpr_26_x) | |
111 | FUNC_END(_restfpr_25_x) | |
112 | FUNC_END(_restfpr_24_x) | |
113 | FUNC_END(_restfpr_23_x) | |
114 | FUNC_END(_restfpr_22_x) | |
115 | FUNC_END(_restfpr_21_x) | |
116 | FUNC_END(_restfpr_20_x) | |
117 | FUNC_END(_restfpr_19_x) | |
118 | FUNC_END(_restfpr_18_x) | |
119 | FUNC_END(_restfpr_17_x) | |
120 | FUNC_END(_restfpr_16_x) | |
121 | FUNC_END(_restfpr_15_x) | |
122 | FUNC_END(_restfpr_14_x) | |
ff35822b | 123 | CFI_ENDPROC |
18724e30 NF |
124 | |
125 | #endif |