1 /* 2 * Special support for e500 eabi and SVR4 3 * 4 * Copyright (C) 2008-2024 Free Software Foundation, Inc. 5 * Written by Nathan Froyd 6 * 7 * This file is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the 9 * Free Software Foundation; either version 3, or (at your option) any 10 * later version. 11 * 12 * This file is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * General Public License for more details. 16 * 17 * Under Section 7 of GPL version 3, you are granted additional 18 * permissions described in the GCC Runtime Library Exception, version 19 * 3.1, as published by the Free Software Foundation. 20 * 21 * You should have received a copy of the GNU General Public License and 22 * a copy of the GCC Runtime Library Exception along with this program; 23 * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24 * <http://www.gnu.org/licenses/>. 25 */ 26 27 .section ".text" 28 #include "ppc-asm.h" 29 30 #ifdef __SPE__ 31 32 /* Routines for saving 64-bit integer registers, called by the compiler. */ 33 /* "GOT" versions that load the address of the GOT into lr before returning. */ 34 35 HIDDEN_FUNC(_save64gpr_ctr_14_g) evstdd 14,0(11) 36 bdz _save64gpr_ctr_g_done 37 HIDDEN_FUNC(_save64gpr_ctr_15_g) evstdd 15,8(11) 38 bdz _save64gpr_ctr_g_done 39 HIDDEN_FUNC(_save64gpr_ctr_16_g) evstdd 16,16(11) 40 bdz _save64gpr_ctr_g_done 41 HIDDEN_FUNC(_save64gpr_ctr_17_g) evstdd 17,24(11) 42 bdz _save64gpr_ctr_g_done 43 HIDDEN_FUNC(_save64gpr_ctr_18_g) evstdd 18,32(11) 44 bdz _save64gpr_ctr_g_done 45 HIDDEN_FUNC(_save64gpr_ctr_19_g) evstdd 19,40(11) 46 bdz _save64gpr_ctr_g_done 47 HIDDEN_FUNC(_save64gpr_ctr_20_g) evstdd 20,48(11) 48 bdz _save64gpr_ctr_g_done 49 HIDDEN_FUNC(_save64gpr_ctr_21_g) evstdd 21,56(11) 50 bdz _save64gpr_ctr_g_done 51 HIDDEN_FUNC(_save64gpr_ctr_22_g) evstdd 22,64(11) 52 bdz _save64gpr_ctr_g_done 53 HIDDEN_FUNC(_save64gpr_ctr_23_g) evstdd 23,72(11) 54 bdz _save64gpr_ctr_g_done 55 HIDDEN_FUNC(_save64gpr_ctr_24_g) evstdd 24,80(11) 56 bdz _save64gpr_ctr_g_done 57 HIDDEN_FUNC(_save64gpr_ctr_25_g) evstdd 25,88(11) 58 bdz _save64gpr_ctr_g_done 59 HIDDEN_FUNC(_save64gpr_ctr_26_g) evstdd 26,96(11) 60 bdz _save64gpr_ctr_g_done 61 HIDDEN_FUNC(_save64gpr_ctr_27_g) evstdd 27,104(11) 62 bdz _save64gpr_ctr_g_done 63 HIDDEN_FUNC(_save64gpr_ctr_28_g) evstdd 28,112(11) 64 bdz _save64gpr_ctr_g_done 65 HIDDEN_FUNC(_save64gpr_ctr_29_g) evstdd 29,120(11) 66 bdz _save64gpr_ctr_g_done 67 HIDDEN_FUNC(_save64gpr_ctr_30_g) evstdd 30,128(11) 68 bdz _save64gpr_ctr_g_done 69 HIDDEN_FUNC(_save64gpr_ctr_31_g) evstdd 31,136(11) 70 _save64gpr_ctr_g_done: b _GLOBAL_OFFSET_TABLE_-4 71 FUNC_END(_save64gpr_ctr_31_g) 72 FUNC_END(_save64gpr_ctr_30_g) 73 FUNC_END(_save64gpr_ctr_29_g) 74 FUNC_END(_save64gpr_ctr_28_g) 75 FUNC_END(_save64gpr_ctr_27_g) 76 FUNC_END(_save64gpr_ctr_26_g) 77 FUNC_END(_save64gpr_ctr_25_g) 78 FUNC_END(_save64gpr_ctr_24_g) 79 FUNC_END(_save64gpr_ctr_23_g) 80 FUNC_END(_save64gpr_ctr_22_g) 81 FUNC_END(_save64gpr_ctr_21_g) 82 FUNC_END(_save64gpr_ctr_20_g) 83 FUNC_END(_save64gpr_ctr_19_g) 84 FUNC_END(_save64gpr_ctr_18_g) 85 FUNC_END(_save64gpr_ctr_17_g) 86 FUNC_END(_save64gpr_ctr_16_g) 87 FUNC_END(_save64gpr_ctr_15_g) 88 FUNC_END(_save64gpr_ctr_14_g) 89 90 #endif 91