]>
Commit | Line | Data |
---|---|---|
18724e30 NF |
1 | /* |
2 | * Special support for eabi and SVR4 | |
3 | * | |
99dee823 | 4 | * Copyright (C) 1995-2021 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 integer 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 integer restore area. */ | |
39 | ||
ff35822b JJ |
40 | CFI_STARTPROC |
41 | CFI_DEF_CFA_REGISTER (11) | |
42 | CFI_OFFSET (65, 4) | |
43 | CFI_OFFSET (14, -72) | |
44 | CFI_OFFSET (15, -68) | |
45 | CFI_OFFSET (16, -64) | |
46 | CFI_OFFSET (17, -60) | |
47 | CFI_OFFSET (18, -56) | |
48 | CFI_OFFSET (19, -52) | |
49 | CFI_OFFSET (20, -48) | |
50 | CFI_OFFSET (21, -44) | |
51 | CFI_OFFSET (22, -40) | |
52 | CFI_OFFSET (23, -36) | |
53 | CFI_OFFSET (24, -32) | |
54 | CFI_OFFSET (25, -28) | |
55 | CFI_OFFSET (26, -24) | |
56 | CFI_OFFSET (27, -20) | |
57 | CFI_OFFSET (28, -16) | |
58 | CFI_OFFSET (29, -12) | |
59 | CFI_OFFSET (30, -8) | |
60 | CFI_OFFSET (31, -4) | |
1590a115 | 61 | HIDDEN_FUNC(_restgpr_14_x) lwz 14,-72(11) /* restore gp registers */ |
ff35822b | 62 | CFI_RESTORE (14) |
1590a115 | 63 | HIDDEN_FUNC(_restgpr_15_x) lwz 15,-68(11) |
ff35822b | 64 | CFI_RESTORE (15) |
1590a115 | 65 | HIDDEN_FUNC(_restgpr_16_x) lwz 16,-64(11) |
ff35822b | 66 | CFI_RESTORE (16) |
1590a115 | 67 | HIDDEN_FUNC(_restgpr_17_x) lwz 17,-60(11) |
ff35822b | 68 | CFI_RESTORE (17) |
1590a115 | 69 | HIDDEN_FUNC(_restgpr_18_x) lwz 18,-56(11) |
ff35822b | 70 | CFI_RESTORE (18) |
1590a115 | 71 | HIDDEN_FUNC(_restgpr_19_x) lwz 19,-52(11) |
ff35822b | 72 | CFI_RESTORE (19) |
1590a115 | 73 | HIDDEN_FUNC(_restgpr_20_x) lwz 20,-48(11) |
ff35822b | 74 | CFI_RESTORE (20) |
1590a115 | 75 | HIDDEN_FUNC(_restgpr_21_x) lwz 21,-44(11) |
ff35822b | 76 | CFI_RESTORE (21) |
1590a115 | 77 | HIDDEN_FUNC(_restgpr_22_x) lwz 22,-40(11) |
ff35822b | 78 | CFI_RESTORE (22) |
1590a115 | 79 | HIDDEN_FUNC(_restgpr_23_x) lwz 23,-36(11) |
ff35822b | 80 | CFI_RESTORE (23) |
1590a115 | 81 | HIDDEN_FUNC(_restgpr_24_x) lwz 24,-32(11) |
ff35822b | 82 | CFI_RESTORE (24) |
1590a115 | 83 | HIDDEN_FUNC(_restgpr_25_x) lwz 25,-28(11) |
ff35822b | 84 | CFI_RESTORE (25) |
1590a115 | 85 | HIDDEN_FUNC(_restgpr_26_x) lwz 26,-24(11) |
ff35822b | 86 | CFI_RESTORE (26) |
1590a115 | 87 | HIDDEN_FUNC(_restgpr_27_x) lwz 27,-20(11) |
ff35822b | 88 | CFI_RESTORE (27) |
1590a115 | 89 | HIDDEN_FUNC(_restgpr_28_x) lwz 28,-16(11) |
ff35822b | 90 | CFI_RESTORE (28) |
1590a115 | 91 | HIDDEN_FUNC(_restgpr_29_x) lwz 29,-12(11) |
ff35822b | 92 | CFI_RESTORE (29) |
1590a115 | 93 | HIDDEN_FUNC(_restgpr_30_x) lwz 30,-8(11) |
ff35822b | 94 | CFI_RESTORE (30) |
1590a115 | 95 | HIDDEN_FUNC(_restgpr_31_x) lwz 0,4(11) |
18724e30 | 96 | lwz 31,-4(11) |
ff35822b | 97 | CFI_RESTORE (31) |
18724e30 | 98 | mtlr 0 |
ff35822b | 99 | CFI_RESTORE (65) |
18724e30 | 100 | mr 1,11 |
ff35822b | 101 | CFI_DEF_CFA_REGISTER (1) |
18724e30 NF |
102 | blr |
103 | FUNC_END(_restgpr_31_x) | |
104 | FUNC_END(_restgpr_30_x) | |
105 | FUNC_END(_restgpr_29_x) | |
106 | FUNC_END(_restgpr_28_x) | |
107 | FUNC_END(_restgpr_27_x) | |
108 | FUNC_END(_restgpr_26_x) | |
109 | FUNC_END(_restgpr_25_x) | |
110 | FUNC_END(_restgpr_24_x) | |
111 | FUNC_END(_restgpr_23_x) | |
112 | FUNC_END(_restgpr_22_x) | |
113 | FUNC_END(_restgpr_21_x) | |
114 | FUNC_END(_restgpr_20_x) | |
115 | FUNC_END(_restgpr_19_x) | |
116 | FUNC_END(_restgpr_18_x) | |
117 | FUNC_END(_restgpr_17_x) | |
118 | FUNC_END(_restgpr_16_x) | |
119 | FUNC_END(_restgpr_15_x) | |
120 | FUNC_END(_restgpr_14_x) | |
ff35822b | 121 | CFI_ENDPROC |
18724e30 NF |
122 | |
123 | #endif |