1151564Snjl/* Routines for restoring vector registers. 2151564Snjl 3151564Snjl Copyright (C) 2012-2022 Free Software Foundation, Inc. 4151564Snjl Written by Alan Modra, IBM 5151564Snjl 6151564Snjl This file is free software; you can redistribute it and/or modify it 7151564Snjl under the terms of the GNU General Public License as published by the 8151564Snjl Free Software Foundation; either version 3, or (at your option) any 9151564Snjl later version. 10151564Snjl 11151564Snjl This file is distributed in the hope that it will be useful, but 12151564Snjl WITHOUT ANY WARRANTY; without even the implied warranty of 13151564Snjl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14151564Snjl General Public License for more details. 15151564Snjl 16151564Snjl Under Section 7 of GPL version 3, you are granted additional 17151564Snjl permissions described in the GCC Runtime Library Exception, version 18151564Snjl 3.1, as published by the Free Software Foundation. 19151564Snjl 20151564Snjl You should have received a copy of the GNU General Public License and 21151564Snjl a copy of the GCC Runtime Library Exception along with this program; 22151564Snjl see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23151564Snjl <http://www.gnu.org/licenses/>. */ 24151564Snjl 25151564Snjl/* On PowerPC64 Linux, these functions are provided by the linker. */ 26151564Snjl#ifndef __powerpc64__ 27151564Snjl 28151564Snjl#undef __ALTIVEC__ 29151564Snjl#define __ALTIVEC__ 1 30151564Snjl #include "ppc-asm.h" 31151564Snjl 32151564Snjl/* Called with r0 pointing just beyond the end of the vector save area. */ 33151564Snjl 34151564Snjl .machine altivec 35151564Snjl .section ".text" 36151564SnjlCFI_STARTPROC 37151564SnjlHIDDEN_FUNC(_restvr_20) 38151564Snjl li r11,-192 39151564Snjl lvx v20,r11,r0 40151564SnjlHIDDEN_FUNC(_restvr_21) 41151564Snjl li r11,-176 42151564Snjl lvx v21,r11,r0 43151564SnjlHIDDEN_FUNC(_restvr_22) 44151564Snjl li r11,-160 45151564Snjl lvx v22,r11,r0 46151564SnjlHIDDEN_FUNC(_restvr_23) 47151564Snjl li r11,-144 48151564Snjl lvx v23,r11,r0 49151564SnjlHIDDEN_FUNC(_restvr_24) 50151564Snjl li r11,-128 51151564Snjl lvx v24,r11,r0 52151564SnjlHIDDEN_FUNC(_restvr_25) 53151564Snjl li r11,-112 54151564Snjl lvx v25,r11,r0 55151564SnjlHIDDEN_FUNC(_restvr_26) 56151564Snjl li r11,-96 57151564Snjl lvx v26,r11,r0 58151564SnjlHIDDEN_FUNC(_restvr_27) 59151564Snjl li r11,-80 60151564Snjl lvx v27,r11,r0 61151564SnjlHIDDEN_FUNC(_restvr_28) 62151564Snjl li r11,-64 63151564Snjl lvx v28,r11,r0 64151564SnjlHIDDEN_FUNC(_restvr_29) 65151564Snjl li r11,-48 66151564Snjl lvx v29,r11,r0 67151564SnjlHIDDEN_FUNC(_restvr_30) 68151564Snjl li r11,-32 69151564Snjl lvx v30,r11,r0 70151564SnjlHIDDEN_FUNC(_restvr_31) 71151564Snjl li r11,-16 72151564Snjl lvx v31,r11,r0 73151564Snjl blr 74151564SnjlFUNC_END(_restvr_31) 75151564SnjlFUNC_END(_restvr_30) 76151564SnjlFUNC_END(_restvr_29) 77151564SnjlFUNC_END(_restvr_28) 78151564SnjlFUNC_END(_restvr_27) 79151564SnjlFUNC_END(_restvr_26) 80151564SnjlFUNC_END(_restvr_25) 81151564SnjlFUNC_END(_restvr_24) 82151564SnjlFUNC_END(_restvr_23) 83151564SnjlFUNC_END(_restvr_22) 84151564SnjlFUNC_END(_restvr_21) 85151564SnjlFUNC_END(_restvr_20) 86151564SnjlCFI_ENDPROC 87151564Snjl 88151564Snjl#endif 89151564Snjl