e500crtresx32gpr.S revision 1.1.1.11 1 1.1 mrg /*
2 1.1 mrg * Special support for e500 eabi and SVR4
3 1.1 mrg *
4 1.1.1.11 mrg * Copyright (C) 2008-2024 Free Software Foundation, Inc.
5 1.1 mrg * Written by Nathan Froyd
6 1.1 mrg *
7 1.1 mrg * This file is free software; you can redistribute it and/or modify it
8 1.1 mrg * under the terms of the GNU General Public License as published by the
9 1.1 mrg * Free Software Foundation; either version 3, or (at your option) any
10 1.1 mrg * later version.
11 1.1 mrg *
12 1.1 mrg * This file is distributed in the hope that it will be useful, but
13 1.1 mrg * WITHOUT ANY WARRANTY; without even the implied warranty of
14 1.1 mrg * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 1.1 mrg * General Public License for more details.
16 1.1 mrg *
17 1.1 mrg * Under Section 7 of GPL version 3, you are granted additional
18 1.1 mrg * permissions described in the GCC Runtime Library Exception, version
19 1.1 mrg * 3.1, as published by the Free Software Foundation.
20 1.1 mrg *
21 1.1 mrg * You should have received a copy of the GNU General Public License and
22 1.1 mrg * a copy of the GCC Runtime Library Exception along with this program;
23 1.1 mrg * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 1.1 mrg * <http://www.gnu.org/licenses/>.
25 1.1 mrg */
26 1.1 mrg .section ".text"
27 1.1 mrg #include "ppc-asm.h"
28 1.1 mrg
29 1.1 mrg #ifdef __SPE__
30 1.1 mrg
31 1.1 mrg /* Routines for restoring 32-bit integer registers, called by the compiler. */
32 1.1 mrg /* "Exit" versions that return to the caller's caller. */
33 1.1 mrg
34 1.1 mrg HIDDEN_FUNC(_rest32gpr_14_x) lwz 14,-72(11)
35 1.1 mrg HIDDEN_FUNC(_rest32gpr_15_x) lwz 15,-68(11)
36 1.1 mrg HIDDEN_FUNC(_rest32gpr_16_x) lwz 16,-64(11)
37 1.1 mrg HIDDEN_FUNC(_rest32gpr_17_x) lwz 17,-60(11)
38 1.1 mrg HIDDEN_FUNC(_rest32gpr_18_x) lwz 18,-56(11)
39 1.1 mrg HIDDEN_FUNC(_rest32gpr_19_x) lwz 19,-52(11)
40 1.1 mrg HIDDEN_FUNC(_rest32gpr_20_x) lwz 20,-48(11)
41 1.1 mrg HIDDEN_FUNC(_rest32gpr_21_x) lwz 21,-44(11)
42 1.1 mrg HIDDEN_FUNC(_rest32gpr_22_x) lwz 22,-40(11)
43 1.1 mrg HIDDEN_FUNC(_rest32gpr_23_x) lwz 23,-36(11)
44 1.1 mrg HIDDEN_FUNC(_rest32gpr_24_x) lwz 24,-32(11)
45 1.1 mrg HIDDEN_FUNC(_rest32gpr_25_x) lwz 25,-28(11)
46 1.1 mrg HIDDEN_FUNC(_rest32gpr_26_x) lwz 26,-24(11)
47 1.1 mrg HIDDEN_FUNC(_rest32gpr_27_x) lwz 27,-20(11)
48 1.1 mrg HIDDEN_FUNC(_rest32gpr_28_x) lwz 28,-16(11)
49 1.1 mrg HIDDEN_FUNC(_rest32gpr_29_x) lwz 29,-12(11)
50 1.1 mrg HIDDEN_FUNC(_rest32gpr_30_x) lwz 30,-8(11)
51 1.1 mrg HIDDEN_FUNC(_rest32gpr_31_x) lwz 0,4(11)
52 1.1 mrg lwz 31,-4(11)
53 1.1 mrg mr 1,11
54 1.1 mrg mtlr 0
55 1.1 mrg blr
56 1.1 mrg FUNC_END(_rest32gpr_31_x)
57 1.1 mrg FUNC_END(_rest32gpr_30_x)
58 1.1 mrg FUNC_END(_rest32gpr_29_x)
59 1.1 mrg FUNC_END(_rest32gpr_28_x)
60 1.1 mrg FUNC_END(_rest32gpr_27_x)
61 1.1 mrg FUNC_END(_rest32gpr_26_x)
62 1.1 mrg FUNC_END(_rest32gpr_25_x)
63 1.1 mrg FUNC_END(_rest32gpr_24_x)
64 1.1 mrg FUNC_END(_rest32gpr_23_x)
65 1.1 mrg FUNC_END(_rest32gpr_22_x)
66 1.1 mrg FUNC_END(_rest32gpr_21_x)
67 1.1 mrg FUNC_END(_rest32gpr_20_x)
68 1.1 mrg FUNC_END(_rest32gpr_19_x)
69 1.1 mrg FUNC_END(_rest32gpr_18_x)
70 1.1 mrg FUNC_END(_rest32gpr_17_x)
71 1.1 mrg FUNC_END(_rest32gpr_16_x)
72 1.1 mrg FUNC_END(_rest32gpr_15_x)
73 1.1 mrg FUNC_END(_rest32gpr_14_x)
74 1.1 mrg
75 1.1 mrg #endif
76