1/* Special .init and .fini section support for ARM. 2 Copyright (C) 2000-2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 In addition to the permissions in the GNU Lesser General Public 11 License, the Free Software Foundation gives you unlimited 12 permission to link the compiled version of this file with other 13 programs, and to distribute those programs without any restriction 14 coming from the use of this file. (The GNU Lesser General Public 15 License restrictions do apply in other respects; for example, they 16 cover modification of the file, and distribution when not linked 17 into another program.) 18 19 Note that people who make modified versions of this file are not 20 obligated to grant this special exception for their modified 21 versions; it is their choice whether to do so. The GNU Lesser 22 General Public License gives permission to release a modified 23 version without this exception; this exception also makes it 24 possible to release a modified version which carries forward this 25 exception. 26 27 The GNU C Library is distributed in the hope that it will be useful, 28 but WITHOUT ANY WARRANTY; without even the implied warranty of 29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 30 Lesser General Public License for more details. 31 32 You should have received a copy of the GNU Lesser General Public 33 License along with the GNU C Library. If not, see 34 <https://www.gnu.org/licenses/>. */ 35 36#include <sysdep.h> 37#undef ret 38 39/* crtn.S puts function epilogues in the .init and .fini sections 40 corresponding to the prologues in crti.S. */ 41 42 .section .init,"ax",@progbits 43 .proc _init# 44_init: 45 .prologue 46 .save ar.pfs, r34 47 .vframe r32 48 .save rp, r33 49 .body 50 .regstk 0,2,0,0 51 mov r12 = r32 52 mov ar.pfs = r34 53 mov b0 = r33 54 br.ret.sptk.many b0 55 .endp _init# 56 57 .section .fini,"ax",@progbits 58 .proc _fini# 59_fini: 60 .prologue 61 .save ar.pfs, r34 62 .vframe r32 63 .save rp, r33 64 .body 65 mov r12 = r32 66 mov ar.pfs = r34 67 mov b0 = r33 68 br.ret.sptk.many b0 69 .endp _fini# 70