]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/powerpc/powerpc32/gprrest0.S
Prefer https to http for gnu.org and fsf.org URLs
[thirdparty/glibc.git] / sysdeps / powerpc / powerpc32 / gprrest0.S
CommitLineData
04277e02 1/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
456db476
UD
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
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.
456db476
UD
8
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
41bdb6e2 12 Lesser General Public License for more details.
456db476 13
41bdb6e2 14 You should have received a copy of the GNU Lesser General Public
59ba27a6 15 License along with the GNU C Library; if not, see
5a82c748 16 <https://www.gnu.org/licenses/>. */
456db476 17
ef5166a6
UD
18/*
19 General Purpose Register (GPR) restore routine
20 when Floating Point Registers (FPRs) are not saved
21
22 Note: This restore routine must not be called when GPR30 or
23 GPR31, or both, are the only registers beings saved. In these
24 cases, the saving and restoring must be done inline.
25*/
26
456db476
UD
27#include <sysdep.h>
28
ef5166a6 29ENTRY(_restgpr0_all)
7b8e0d49 30 .globl C_TEXT(_restgpr0_13)
ef5166a6 31C_TEXT(_restgpr0_13): lwz r13,-76(r1)
7b8e0d49 32 .globl C_TEXT(_restgpr0_14)
ef5166a6 33C_TEXT(_restgpr0_14): lwz r14,-72(r1)
7b8e0d49 34 .globl C_TEXT(_restgpr0_15)
ef5166a6 35C_TEXT(_restgpr0_15): lwz r15,-68(r1)
7b8e0d49 36 .globl C_TEXT(_restgpr0_16)
ef5166a6 37C_TEXT(_restgpr0_16): lwz r16,-64(r1)
7b8e0d49 38 .globl C_TEXT(_restgpr0_17)
ef5166a6 39C_TEXT(_restgpr0_17): lwz r17,-60(r1)
7b8e0d49 40 .globl C_TEXT(_restgpr0_18)
ef5166a6 41C_TEXT(_restgpr0_18): lwz r18,-56(r1)
7b8e0d49 42 .globl C_TEXT(_restgpr0_19)
ef5166a6 43C_TEXT(_restgpr0_19): lwz r19,-52(r1)
7b8e0d49 44 .globl C_TEXT(_restgpr0_20)
ef5166a6 45C_TEXT(_restgpr0_20): lwz r20,-48(r1)
7b8e0d49 46 .globl C_TEXT(_restgpr0_21)
ef5166a6 47C_TEXT(_restgpr0_21): lwz r21,-44(r1)
7b8e0d49 48 .globl C_TEXT(_restgpr0_22)
ef5166a6 49C_TEXT(_restgpr0_22): lwz r22,-40(r1)
7b8e0d49 50 .globl C_TEXT(_restgpr0_23)
ef5166a6 51C_TEXT(_restgpr0_23): lwz r23,-36(r1)
7b8e0d49 52 .globl C_TEXT(_restgpr0_24)
ef5166a6 53C_TEXT(_restgpr0_24): lwz r24,-32(r1)
7b8e0d49 54 .globl C_TEXT(_restgpr0_25)
ef5166a6 55C_TEXT(_restgpr0_25): lwz r25,-28(r1)
7b8e0d49 56 .globl C_TEXT(_restgpr0_26)
ef5166a6 57C_TEXT(_restgpr0_26): lwz r26,-24(r1)
7b8e0d49 58 .globl C_TEXT(_restgpr0_27)
ef5166a6 59C_TEXT(_restgpr0_27): lwz r27,-20(r1)
7b8e0d49 60 .globl C_TEXT(_restgpr0_28)
ef5166a6 61C_TEXT(_restgpr0_28): lwz r28,-16(r1)
7b8e0d49 62 .globl C_TEXT(_restgpr0_29)
ef5166a6
UD
63C_TEXT(_restgpr0_29): lwz r0,8(r1) #get return address from frame
64 lwz r29,-12(r1) #restore r29
65 mtlr r0 #move return address to LR
66 lwz r30,-8(r1) #restore r30
67 lwz r31,-4(r1) #restore r31
68 blr #return
9759bbf1 69END (_restgpr0_all)