1da3de6dfSKumar Gala/* 2da3de6dfSKumar Gala * Special support for eabi and SVR4 3da3de6dfSKumar Gala * 4da3de6dfSKumar Gala * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc. 5da3de6dfSKumar Gala * Copyright 2008 Freescale Semiconductor, Inc. 6da3de6dfSKumar Gala * Written By Michael Meissner 7da3de6dfSKumar Gala * 8da3de6dfSKumar Gala * Based on gcc/config/rs6000/crtsavres.asm from gcc 97fca5dc8SStephen Rothwell * 64 bit additions from reading the PPC elf64abi document. 10da3de6dfSKumar Gala * 11da3de6dfSKumar Gala * This file is free software; you can redistribute it and/or modify it 12da3de6dfSKumar Gala * under the terms of the GNU General Public License as published by the 13da3de6dfSKumar Gala * Free Software Foundation; either version 2, or (at your option) any 14da3de6dfSKumar Gala * later version. 15da3de6dfSKumar Gala * 16da3de6dfSKumar Gala * In addition to the permissions in the GNU General Public License, the 17da3de6dfSKumar Gala * Free Software Foundation gives you unlimited permission to link the 18da3de6dfSKumar Gala * compiled version of this file with other programs, and to distribute 19da3de6dfSKumar Gala * those programs without any restriction coming from the use of this 20da3de6dfSKumar Gala * file. (The General Public License restrictions do apply in other 21da3de6dfSKumar Gala * respects; for example, they cover modification of the file, and 22da3de6dfSKumar Gala * distribution when not linked into another program.) 23da3de6dfSKumar Gala * 24da3de6dfSKumar Gala * This file is distributed in the hope that it will be useful, but 25da3de6dfSKumar Gala * WITHOUT ANY WARRANTY; without even the implied warranty of 26da3de6dfSKumar Gala * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27da3de6dfSKumar Gala * General Public License for more details. 28da3de6dfSKumar Gala * 29da3de6dfSKumar Gala * You should have received a copy of the GNU General Public License 30da3de6dfSKumar Gala * along with this program; see the file COPYING. If not, write to 31da3de6dfSKumar Gala * the Free Software Foundation, 51 Franklin Street, Fifth Floor, 32da3de6dfSKumar Gala * Boston, MA 02110-1301, USA. 33da3de6dfSKumar Gala * 34da3de6dfSKumar Gala * As a special exception, if you link this library with files 35da3de6dfSKumar Gala * compiled with GCC to produce an executable, this does not cause 36da3de6dfSKumar Gala * the resulting executable to be covered by the GNU General Public License. 37da3de6dfSKumar Gala * This exception does not however invalidate any other reasons why 38da3de6dfSKumar Gala * the executable file might be covered by the GNU General Public License. 39da3de6dfSKumar Gala */ 40da3de6dfSKumar Gala 41da3de6dfSKumar Gala#include <asm/ppc_asm.h> 42da3de6dfSKumar Gala 43da3de6dfSKumar Gala .file "crtsavres.S" 44da3de6dfSKumar Gala 45da3de6dfSKumar Gala#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE 46da3de6dfSKumar Gala 471d5a436dSStephen Rothwell .section ".text" 481d5a436dSStephen Rothwell 49*699d53f0SChristophe Leroy#ifndef __powerpc64__ 50cde9f2f4SNicholas Piggin 51da3de6dfSKumar Gala/* Routines for saving integer registers, called by the compiler. */ 52da3de6dfSKumar Gala/* Called with r11 pointing to the stack header word of the caller of the */ 53da3de6dfSKumar Gala/* function, just beyond the end of the integer save area. */ 54da3de6dfSKumar Gala 55da3de6dfSKumar Gala_GLOBAL(_savegpr_14) 56da3de6dfSKumar Gala_GLOBAL(_save32gpr_14) 57da3de6dfSKumar Gala stw 14,-72(11) /* save gp registers */ 58da3de6dfSKumar Gala_GLOBAL(_savegpr_15) 59da3de6dfSKumar Gala_GLOBAL(_save32gpr_15) 60da3de6dfSKumar Gala stw 15,-68(11) 61da3de6dfSKumar Gala_GLOBAL(_savegpr_16) 62da3de6dfSKumar Gala_GLOBAL(_save32gpr_16) 63da3de6dfSKumar Gala stw 16,-64(11) 64da3de6dfSKumar Gala_GLOBAL(_savegpr_17) 65da3de6dfSKumar Gala_GLOBAL(_save32gpr_17) 66da3de6dfSKumar Gala stw 17,-60(11) 67da3de6dfSKumar Gala_GLOBAL(_savegpr_18) 68da3de6dfSKumar Gala_GLOBAL(_save32gpr_18) 69da3de6dfSKumar Gala stw 18,-56(11) 70da3de6dfSKumar Gala_GLOBAL(_savegpr_19) 71da3de6dfSKumar Gala_GLOBAL(_save32gpr_19) 72da3de6dfSKumar Gala stw 19,-52(11) 73da3de6dfSKumar Gala_GLOBAL(_savegpr_20) 74da3de6dfSKumar Gala_GLOBAL(_save32gpr_20) 75da3de6dfSKumar Gala stw 20,-48(11) 76da3de6dfSKumar Gala_GLOBAL(_savegpr_21) 77da3de6dfSKumar Gala_GLOBAL(_save32gpr_21) 78da3de6dfSKumar Gala stw 21,-44(11) 79da3de6dfSKumar Gala_GLOBAL(_savegpr_22) 80da3de6dfSKumar Gala_GLOBAL(_save32gpr_22) 81da3de6dfSKumar Gala stw 22,-40(11) 82da3de6dfSKumar Gala_GLOBAL(_savegpr_23) 83da3de6dfSKumar Gala_GLOBAL(_save32gpr_23) 84da3de6dfSKumar Gala stw 23,-36(11) 85da3de6dfSKumar Gala_GLOBAL(_savegpr_24) 86da3de6dfSKumar Gala_GLOBAL(_save32gpr_24) 87da3de6dfSKumar Gala stw 24,-32(11) 88da3de6dfSKumar Gala_GLOBAL(_savegpr_25) 89da3de6dfSKumar Gala_GLOBAL(_save32gpr_25) 90da3de6dfSKumar Gala stw 25,-28(11) 91da3de6dfSKumar Gala_GLOBAL(_savegpr_26) 92da3de6dfSKumar Gala_GLOBAL(_save32gpr_26) 93da3de6dfSKumar Gala stw 26,-24(11) 94da3de6dfSKumar Gala_GLOBAL(_savegpr_27) 95da3de6dfSKumar Gala_GLOBAL(_save32gpr_27) 96da3de6dfSKumar Gala stw 27,-20(11) 97da3de6dfSKumar Gala_GLOBAL(_savegpr_28) 98da3de6dfSKumar Gala_GLOBAL(_save32gpr_28) 99da3de6dfSKumar Gala stw 28,-16(11) 100da3de6dfSKumar Gala_GLOBAL(_savegpr_29) 101da3de6dfSKumar Gala_GLOBAL(_save32gpr_29) 102da3de6dfSKumar Gala stw 29,-12(11) 103da3de6dfSKumar Gala_GLOBAL(_savegpr_30) 104da3de6dfSKumar Gala_GLOBAL(_save32gpr_30) 105da3de6dfSKumar Gala stw 30,-8(11) 106da3de6dfSKumar Gala_GLOBAL(_savegpr_31) 107da3de6dfSKumar Gala_GLOBAL(_save32gpr_31) 108da3de6dfSKumar Gala stw 31,-4(11) 109da3de6dfSKumar Gala blr 110da3de6dfSKumar Gala 111da3de6dfSKumar Gala/* Routines for restoring integer registers, called by the compiler. */ 112da3de6dfSKumar Gala/* Called with r11 pointing to the stack header word of the caller of the */ 113da3de6dfSKumar Gala/* function, just beyond the end of the integer restore area. */ 114da3de6dfSKumar Gala 115da3de6dfSKumar Gala_GLOBAL(_restgpr_14) 116da3de6dfSKumar Gala_GLOBAL(_rest32gpr_14) 117da3de6dfSKumar Gala lwz 14,-72(11) /* restore gp registers */ 118da3de6dfSKumar Gala_GLOBAL(_restgpr_15) 119da3de6dfSKumar Gala_GLOBAL(_rest32gpr_15) 120da3de6dfSKumar Gala lwz 15,-68(11) 121da3de6dfSKumar Gala_GLOBAL(_restgpr_16) 122da3de6dfSKumar Gala_GLOBAL(_rest32gpr_16) 123da3de6dfSKumar Gala lwz 16,-64(11) 124da3de6dfSKumar Gala_GLOBAL(_restgpr_17) 125da3de6dfSKumar Gala_GLOBAL(_rest32gpr_17) 126da3de6dfSKumar Gala lwz 17,-60(11) 127da3de6dfSKumar Gala_GLOBAL(_restgpr_18) 128da3de6dfSKumar Gala_GLOBAL(_rest32gpr_18) 129da3de6dfSKumar Gala lwz 18,-56(11) 130da3de6dfSKumar Gala_GLOBAL(_restgpr_19) 131da3de6dfSKumar Gala_GLOBAL(_rest32gpr_19) 132da3de6dfSKumar Gala lwz 19,-52(11) 133da3de6dfSKumar Gala_GLOBAL(_restgpr_20) 134da3de6dfSKumar Gala_GLOBAL(_rest32gpr_20) 135da3de6dfSKumar Gala lwz 20,-48(11) 136da3de6dfSKumar Gala_GLOBAL(_restgpr_21) 137da3de6dfSKumar Gala_GLOBAL(_rest32gpr_21) 138da3de6dfSKumar Gala lwz 21,-44(11) 139da3de6dfSKumar Gala_GLOBAL(_restgpr_22) 140da3de6dfSKumar Gala_GLOBAL(_rest32gpr_22) 141da3de6dfSKumar Gala lwz 22,-40(11) 142da3de6dfSKumar Gala_GLOBAL(_restgpr_23) 143da3de6dfSKumar Gala_GLOBAL(_rest32gpr_23) 144da3de6dfSKumar Gala lwz 23,-36(11) 145da3de6dfSKumar Gala_GLOBAL(_restgpr_24) 146da3de6dfSKumar Gala_GLOBAL(_rest32gpr_24) 147da3de6dfSKumar Gala lwz 24,-32(11) 148da3de6dfSKumar Gala_GLOBAL(_restgpr_25) 149da3de6dfSKumar Gala_GLOBAL(_rest32gpr_25) 150da3de6dfSKumar Gala lwz 25,-28(11) 151da3de6dfSKumar Gala_GLOBAL(_restgpr_26) 152da3de6dfSKumar Gala_GLOBAL(_rest32gpr_26) 153da3de6dfSKumar Gala lwz 26,-24(11) 154da3de6dfSKumar Gala_GLOBAL(_restgpr_27) 155da3de6dfSKumar Gala_GLOBAL(_rest32gpr_27) 156da3de6dfSKumar Gala lwz 27,-20(11) 157da3de6dfSKumar Gala_GLOBAL(_restgpr_28) 158da3de6dfSKumar Gala_GLOBAL(_rest32gpr_28) 159da3de6dfSKumar Gala lwz 28,-16(11) 160da3de6dfSKumar Gala_GLOBAL(_restgpr_29) 161da3de6dfSKumar Gala_GLOBAL(_rest32gpr_29) 162da3de6dfSKumar Gala lwz 29,-12(11) 163da3de6dfSKumar Gala_GLOBAL(_restgpr_30) 164da3de6dfSKumar Gala_GLOBAL(_rest32gpr_30) 165da3de6dfSKumar Gala lwz 30,-8(11) 166da3de6dfSKumar Gala_GLOBAL(_restgpr_31) 167da3de6dfSKumar Gala_GLOBAL(_rest32gpr_31) 168da3de6dfSKumar Gala lwz 31,-4(11) 169da3de6dfSKumar Gala blr 170da3de6dfSKumar Gala 171da3de6dfSKumar Gala/* Routines for restoring integer registers, called by the compiler. */ 172da3de6dfSKumar Gala/* Called with r11 pointing to the stack header word of the caller of the */ 173da3de6dfSKumar Gala/* function, just beyond the end of the integer restore area. */ 174da3de6dfSKumar Gala 175da3de6dfSKumar Gala_GLOBAL(_restgpr_14_x) 176da3de6dfSKumar Gala_GLOBAL(_rest32gpr_14_x) 177da3de6dfSKumar Gala lwz 14,-72(11) /* restore gp registers */ 178da3de6dfSKumar Gala_GLOBAL(_restgpr_15_x) 179da3de6dfSKumar Gala_GLOBAL(_rest32gpr_15_x) 180da3de6dfSKumar Gala lwz 15,-68(11) 181da3de6dfSKumar Gala_GLOBAL(_restgpr_16_x) 182da3de6dfSKumar Gala_GLOBAL(_rest32gpr_16_x) 183da3de6dfSKumar Gala lwz 16,-64(11) 184da3de6dfSKumar Gala_GLOBAL(_restgpr_17_x) 185da3de6dfSKumar Gala_GLOBAL(_rest32gpr_17_x) 186da3de6dfSKumar Gala lwz 17,-60(11) 187da3de6dfSKumar Gala_GLOBAL(_restgpr_18_x) 188da3de6dfSKumar Gala_GLOBAL(_rest32gpr_18_x) 189da3de6dfSKumar Gala lwz 18,-56(11) 190da3de6dfSKumar Gala_GLOBAL(_restgpr_19_x) 191da3de6dfSKumar Gala_GLOBAL(_rest32gpr_19_x) 192da3de6dfSKumar Gala lwz 19,-52(11) 193da3de6dfSKumar Gala_GLOBAL(_restgpr_20_x) 194da3de6dfSKumar Gala_GLOBAL(_rest32gpr_20_x) 195da3de6dfSKumar Gala lwz 20,-48(11) 196da3de6dfSKumar Gala_GLOBAL(_restgpr_21_x) 197da3de6dfSKumar Gala_GLOBAL(_rest32gpr_21_x) 198da3de6dfSKumar Gala lwz 21,-44(11) 199da3de6dfSKumar Gala_GLOBAL(_restgpr_22_x) 200da3de6dfSKumar Gala_GLOBAL(_rest32gpr_22_x) 201da3de6dfSKumar Gala lwz 22,-40(11) 202da3de6dfSKumar Gala_GLOBAL(_restgpr_23_x) 203da3de6dfSKumar Gala_GLOBAL(_rest32gpr_23_x) 204da3de6dfSKumar Gala lwz 23,-36(11) 205da3de6dfSKumar Gala_GLOBAL(_restgpr_24_x) 206da3de6dfSKumar Gala_GLOBAL(_rest32gpr_24_x) 207da3de6dfSKumar Gala lwz 24,-32(11) 208da3de6dfSKumar Gala_GLOBAL(_restgpr_25_x) 209da3de6dfSKumar Gala_GLOBAL(_rest32gpr_25_x) 210da3de6dfSKumar Gala lwz 25,-28(11) 211da3de6dfSKumar Gala_GLOBAL(_restgpr_26_x) 212da3de6dfSKumar Gala_GLOBAL(_rest32gpr_26_x) 213da3de6dfSKumar Gala lwz 26,-24(11) 214da3de6dfSKumar Gala_GLOBAL(_restgpr_27_x) 215da3de6dfSKumar Gala_GLOBAL(_rest32gpr_27_x) 216da3de6dfSKumar Gala lwz 27,-20(11) 217da3de6dfSKumar Gala_GLOBAL(_restgpr_28_x) 218da3de6dfSKumar Gala_GLOBAL(_rest32gpr_28_x) 219da3de6dfSKumar Gala lwz 28,-16(11) 220da3de6dfSKumar Gala_GLOBAL(_restgpr_29_x) 221da3de6dfSKumar Gala_GLOBAL(_rest32gpr_29_x) 222da3de6dfSKumar Gala lwz 29,-12(11) 223da3de6dfSKumar Gala_GLOBAL(_restgpr_30_x) 224da3de6dfSKumar Gala_GLOBAL(_rest32gpr_30_x) 225da3de6dfSKumar Gala lwz 30,-8(11) 226da3de6dfSKumar Gala_GLOBAL(_restgpr_31_x) 227da3de6dfSKumar Gala_GLOBAL(_rest32gpr_31_x) 228da3de6dfSKumar Gala lwz 0,4(11) 229da3de6dfSKumar Gala lwz 31,-4(11) 230da3de6dfSKumar Gala mtlr 0 231da3de6dfSKumar Gala mr 1,11 232da3de6dfSKumar Gala blr 2337fca5dc8SStephen Rothwell 2348fe9c93eSAndreas Schwab#ifdef CONFIG_ALTIVEC 2358fe9c93eSAndreas Schwab/* Called with r0 pointing just beyond the end of the vector save area. */ 2368fe9c93eSAndreas Schwab 2378fe9c93eSAndreas Schwab_GLOBAL(_savevr_20) 2388fe9c93eSAndreas Schwab li r11,-192 239c2ce6f9fSAnton Blanchard stvx v20,r11,r0 2408fe9c93eSAndreas Schwab_GLOBAL(_savevr_21) 2418fe9c93eSAndreas Schwab li r11,-176 242c2ce6f9fSAnton Blanchard stvx v21,r11,r0 2438fe9c93eSAndreas Schwab_GLOBAL(_savevr_22) 2448fe9c93eSAndreas Schwab li r11,-160 245c2ce6f9fSAnton Blanchard stvx v22,r11,r0 2468fe9c93eSAndreas Schwab_GLOBAL(_savevr_23) 2478fe9c93eSAndreas Schwab li r11,-144 248c2ce6f9fSAnton Blanchard stvx v23,r11,r0 2498fe9c93eSAndreas Schwab_GLOBAL(_savevr_24) 2508fe9c93eSAndreas Schwab li r11,-128 251c2ce6f9fSAnton Blanchard stvx v24,r11,r0 2528fe9c93eSAndreas Schwab_GLOBAL(_savevr_25) 2538fe9c93eSAndreas Schwab li r11,-112 254c2ce6f9fSAnton Blanchard stvx v25,r11,r0 2558fe9c93eSAndreas Schwab_GLOBAL(_savevr_26) 2568fe9c93eSAndreas Schwab li r11,-96 257c2ce6f9fSAnton Blanchard stvx v26,r11,r0 2588fe9c93eSAndreas Schwab_GLOBAL(_savevr_27) 2598fe9c93eSAndreas Schwab li r11,-80 260c2ce6f9fSAnton Blanchard stvx v27,r11,r0 2618fe9c93eSAndreas Schwab_GLOBAL(_savevr_28) 2628fe9c93eSAndreas Schwab li r11,-64 263c2ce6f9fSAnton Blanchard stvx v28,r11,r0 2648fe9c93eSAndreas Schwab_GLOBAL(_savevr_29) 2658fe9c93eSAndreas Schwab li r11,-48 266c2ce6f9fSAnton Blanchard stvx v29,r11,r0 2678fe9c93eSAndreas Schwab_GLOBAL(_savevr_30) 2688fe9c93eSAndreas Schwab li r11,-32 269c2ce6f9fSAnton Blanchard stvx v30,r11,r0 2708fe9c93eSAndreas Schwab_GLOBAL(_savevr_31) 2718fe9c93eSAndreas Schwab li r11,-16 272c2ce6f9fSAnton Blanchard stvx v31,r11,r0 2738fe9c93eSAndreas Schwab blr 2748fe9c93eSAndreas Schwab 2758fe9c93eSAndreas Schwab_GLOBAL(_restvr_20) 2768fe9c93eSAndreas Schwab li r11,-192 277c2ce6f9fSAnton Blanchard lvx v20,r11,r0 2788fe9c93eSAndreas Schwab_GLOBAL(_restvr_21) 2798fe9c93eSAndreas Schwab li r11,-176 280c2ce6f9fSAnton Blanchard lvx v21,r11,r0 2818fe9c93eSAndreas Schwab_GLOBAL(_restvr_22) 2828fe9c93eSAndreas Schwab li r11,-160 283c2ce6f9fSAnton Blanchard lvx v22,r11,r0 2848fe9c93eSAndreas Schwab_GLOBAL(_restvr_23) 2858fe9c93eSAndreas Schwab li r11,-144 286c2ce6f9fSAnton Blanchard lvx v23,r11,r0 2878fe9c93eSAndreas Schwab_GLOBAL(_restvr_24) 2888fe9c93eSAndreas Schwab li r11,-128 289c2ce6f9fSAnton Blanchard lvx v24,r11,r0 2908fe9c93eSAndreas Schwab_GLOBAL(_restvr_25) 2918fe9c93eSAndreas Schwab li r11,-112 292c2ce6f9fSAnton Blanchard lvx v25,r11,r0 2938fe9c93eSAndreas Schwab_GLOBAL(_restvr_26) 2948fe9c93eSAndreas Schwab li r11,-96 295c2ce6f9fSAnton Blanchard lvx v26,r11,r0 2968fe9c93eSAndreas Schwab_GLOBAL(_restvr_27) 2978fe9c93eSAndreas Schwab li r11,-80 298c2ce6f9fSAnton Blanchard lvx v27,r11,r0 2998fe9c93eSAndreas Schwab_GLOBAL(_restvr_28) 3008fe9c93eSAndreas Schwab li r11,-64 301c2ce6f9fSAnton Blanchard lvx v28,r11,r0 3028fe9c93eSAndreas Schwab_GLOBAL(_restvr_29) 3038fe9c93eSAndreas Schwab li r11,-48 304c2ce6f9fSAnton Blanchard lvx v29,r11,r0 3058fe9c93eSAndreas Schwab_GLOBAL(_restvr_30) 3068fe9c93eSAndreas Schwab li r11,-32 307c2ce6f9fSAnton Blanchard lvx v30,r11,r0 3088fe9c93eSAndreas Schwab_GLOBAL(_restvr_31) 3098fe9c93eSAndreas Schwab li r11,-16 310c2ce6f9fSAnton Blanchard lvx v31,r11,r0 3118fe9c93eSAndreas Schwab blr 3128fe9c93eSAndreas Schwab 3138fe9c93eSAndreas Schwab#endif /* CONFIG_ALTIVEC */ 3148fe9c93eSAndreas Schwab 3157fca5dc8SStephen Rothwell#else /* CONFIG_PPC64 */ 3167fca5dc8SStephen Rothwell 3177fca5dc8SStephen Rothwell.globl _savegpr0_14 3187fca5dc8SStephen Rothwell_savegpr0_14: 3197fca5dc8SStephen Rothwell std r14,-144(r1) 3207fca5dc8SStephen Rothwell.globl _savegpr0_15 3217fca5dc8SStephen Rothwell_savegpr0_15: 3227fca5dc8SStephen Rothwell std r15,-136(r1) 3237fca5dc8SStephen Rothwell.globl _savegpr0_16 3247fca5dc8SStephen Rothwell_savegpr0_16: 3257fca5dc8SStephen Rothwell std r16,-128(r1) 3267fca5dc8SStephen Rothwell.globl _savegpr0_17 3277fca5dc8SStephen Rothwell_savegpr0_17: 3287fca5dc8SStephen Rothwell std r17,-120(r1) 3297fca5dc8SStephen Rothwell.globl _savegpr0_18 3307fca5dc8SStephen Rothwell_savegpr0_18: 3317fca5dc8SStephen Rothwell std r18,-112(r1) 3327fca5dc8SStephen Rothwell.globl _savegpr0_19 3337fca5dc8SStephen Rothwell_savegpr0_19: 3347fca5dc8SStephen Rothwell std r19,-104(r1) 3357fca5dc8SStephen Rothwell.globl _savegpr0_20 3367fca5dc8SStephen Rothwell_savegpr0_20: 3377fca5dc8SStephen Rothwell std r20,-96(r1) 3387fca5dc8SStephen Rothwell.globl _savegpr0_21 3397fca5dc8SStephen Rothwell_savegpr0_21: 3407fca5dc8SStephen Rothwell std r21,-88(r1) 3417fca5dc8SStephen Rothwell.globl _savegpr0_22 3427fca5dc8SStephen Rothwell_savegpr0_22: 3437fca5dc8SStephen Rothwell std r22,-80(r1) 3447fca5dc8SStephen Rothwell.globl _savegpr0_23 3457fca5dc8SStephen Rothwell_savegpr0_23: 3467fca5dc8SStephen Rothwell std r23,-72(r1) 3477fca5dc8SStephen Rothwell.globl _savegpr0_24 3487fca5dc8SStephen Rothwell_savegpr0_24: 3497fca5dc8SStephen Rothwell std r24,-64(r1) 3507fca5dc8SStephen Rothwell.globl _savegpr0_25 3517fca5dc8SStephen Rothwell_savegpr0_25: 3527fca5dc8SStephen Rothwell std r25,-56(r1) 3537fca5dc8SStephen Rothwell.globl _savegpr0_26 3547fca5dc8SStephen Rothwell_savegpr0_26: 3557fca5dc8SStephen Rothwell std r26,-48(r1) 3567fca5dc8SStephen Rothwell.globl _savegpr0_27 3577fca5dc8SStephen Rothwell_savegpr0_27: 3587fca5dc8SStephen Rothwell std r27,-40(r1) 3597fca5dc8SStephen Rothwell.globl _savegpr0_28 3607fca5dc8SStephen Rothwell_savegpr0_28: 3617fca5dc8SStephen Rothwell std r28,-32(r1) 3627fca5dc8SStephen Rothwell.globl _savegpr0_29 3637fca5dc8SStephen Rothwell_savegpr0_29: 3647fca5dc8SStephen Rothwell std r29,-24(r1) 3657fca5dc8SStephen Rothwell.globl _savegpr0_30 3667fca5dc8SStephen Rothwell_savegpr0_30: 3677fca5dc8SStephen Rothwell std r30,-16(r1) 3687fca5dc8SStephen Rothwell.globl _savegpr0_31 3697fca5dc8SStephen Rothwell_savegpr0_31: 3707fca5dc8SStephen Rothwell std r31,-8(r1) 3717fca5dc8SStephen Rothwell std r0,16(r1) 3727fca5dc8SStephen Rothwell blr 3737fca5dc8SStephen Rothwell 3747fca5dc8SStephen Rothwell.globl _restgpr0_14 3757fca5dc8SStephen Rothwell_restgpr0_14: 3767fca5dc8SStephen Rothwell ld r14,-144(r1) 3777fca5dc8SStephen Rothwell.globl _restgpr0_15 3787fca5dc8SStephen Rothwell_restgpr0_15: 3797fca5dc8SStephen Rothwell ld r15,-136(r1) 3807fca5dc8SStephen Rothwell.globl _restgpr0_16 3817fca5dc8SStephen Rothwell_restgpr0_16: 3827fca5dc8SStephen Rothwell ld r16,-128(r1) 3837fca5dc8SStephen Rothwell.globl _restgpr0_17 3847fca5dc8SStephen Rothwell_restgpr0_17: 3857fca5dc8SStephen Rothwell ld r17,-120(r1) 3867fca5dc8SStephen Rothwell.globl _restgpr0_18 3877fca5dc8SStephen Rothwell_restgpr0_18: 3887fca5dc8SStephen Rothwell ld r18,-112(r1) 3897fca5dc8SStephen Rothwell.globl _restgpr0_19 3907fca5dc8SStephen Rothwell_restgpr0_19: 3917fca5dc8SStephen Rothwell ld r19,-104(r1) 3927fca5dc8SStephen Rothwell.globl _restgpr0_20 3937fca5dc8SStephen Rothwell_restgpr0_20: 3947fca5dc8SStephen Rothwell ld r20,-96(r1) 3957fca5dc8SStephen Rothwell.globl _restgpr0_21 3967fca5dc8SStephen Rothwell_restgpr0_21: 3977fca5dc8SStephen Rothwell ld r21,-88(r1) 3987fca5dc8SStephen Rothwell.globl _restgpr0_22 3997fca5dc8SStephen Rothwell_restgpr0_22: 4007fca5dc8SStephen Rothwell ld r22,-80(r1) 4017fca5dc8SStephen Rothwell.globl _restgpr0_23 4027fca5dc8SStephen Rothwell_restgpr0_23: 4037fca5dc8SStephen Rothwell ld r23,-72(r1) 4047fca5dc8SStephen Rothwell.globl _restgpr0_24 4057fca5dc8SStephen Rothwell_restgpr0_24: 4067fca5dc8SStephen Rothwell ld r24,-64(r1) 4077fca5dc8SStephen Rothwell.globl _restgpr0_25 4087fca5dc8SStephen Rothwell_restgpr0_25: 4097fca5dc8SStephen Rothwell ld r25,-56(r1) 4107fca5dc8SStephen Rothwell.globl _restgpr0_26 4117fca5dc8SStephen Rothwell_restgpr0_26: 4127fca5dc8SStephen Rothwell ld r26,-48(r1) 4137fca5dc8SStephen Rothwell.globl _restgpr0_27 4147fca5dc8SStephen Rothwell_restgpr0_27: 4157fca5dc8SStephen Rothwell ld r27,-40(r1) 4167fca5dc8SStephen Rothwell.globl _restgpr0_28 4177fca5dc8SStephen Rothwell_restgpr0_28: 4187fca5dc8SStephen Rothwell ld r28,-32(r1) 4197fca5dc8SStephen Rothwell.globl _restgpr0_29 4207fca5dc8SStephen Rothwell_restgpr0_29: 4217fca5dc8SStephen Rothwell ld r0,16(r1) 4227fca5dc8SStephen Rothwell ld r29,-24(r1) 4237fca5dc8SStephen Rothwell mtlr r0 4247fca5dc8SStephen Rothwell ld r30,-16(r1) 4257fca5dc8SStephen Rothwell ld r31,-8(r1) 4267fca5dc8SStephen Rothwell blr 4277fca5dc8SStephen Rothwell 4287fca5dc8SStephen Rothwell.globl _restgpr0_30 4297fca5dc8SStephen Rothwell_restgpr0_30: 4307fca5dc8SStephen Rothwell ld r30,-16(r1) 4317fca5dc8SStephen Rothwell.globl _restgpr0_31 4327fca5dc8SStephen Rothwell_restgpr0_31: 4337fca5dc8SStephen Rothwell ld r0,16(r1) 4347fca5dc8SStephen Rothwell ld r31,-8(r1) 4357fca5dc8SStephen Rothwell mtlr r0 4367fca5dc8SStephen Rothwell blr 4377fca5dc8SStephen Rothwell 4388fe9c93eSAndreas Schwab#ifdef CONFIG_ALTIVEC 4398fe9c93eSAndreas Schwab/* Called with r0 pointing just beyond the end of the vector save area. */ 4408fe9c93eSAndreas Schwab 4418fe9c93eSAndreas Schwab.globl _savevr_20 4428fe9c93eSAndreas Schwab_savevr_20: 4438fe9c93eSAndreas Schwab li r12,-192 444c2ce6f9fSAnton Blanchard stvx v20,r12,r0 4458fe9c93eSAndreas Schwab.globl _savevr_21 4468fe9c93eSAndreas Schwab_savevr_21: 4478fe9c93eSAndreas Schwab li r12,-176 448c2ce6f9fSAnton Blanchard stvx v21,r12,r0 4498fe9c93eSAndreas Schwab.globl _savevr_22 4508fe9c93eSAndreas Schwab_savevr_22: 4518fe9c93eSAndreas Schwab li r12,-160 452c2ce6f9fSAnton Blanchard stvx v22,r12,r0 4538fe9c93eSAndreas Schwab.globl _savevr_23 4548fe9c93eSAndreas Schwab_savevr_23: 4558fe9c93eSAndreas Schwab li r12,-144 456c2ce6f9fSAnton Blanchard stvx v23,r12,r0 4578fe9c93eSAndreas Schwab.globl _savevr_24 4588fe9c93eSAndreas Schwab_savevr_24: 4598fe9c93eSAndreas Schwab li r12,-128 460c2ce6f9fSAnton Blanchard stvx v24,r12,r0 4618fe9c93eSAndreas Schwab.globl _savevr_25 4628fe9c93eSAndreas Schwab_savevr_25: 4638fe9c93eSAndreas Schwab li r12,-112 464c2ce6f9fSAnton Blanchard stvx v25,r12,r0 4658fe9c93eSAndreas Schwab.globl _savevr_26 4668fe9c93eSAndreas Schwab_savevr_26: 4678fe9c93eSAndreas Schwab li r12,-96 468c2ce6f9fSAnton Blanchard stvx v26,r12,r0 4698fe9c93eSAndreas Schwab.globl _savevr_27 4708fe9c93eSAndreas Schwab_savevr_27: 4718fe9c93eSAndreas Schwab li r12,-80 472c2ce6f9fSAnton Blanchard stvx v27,r12,r0 4738fe9c93eSAndreas Schwab.globl _savevr_28 4748fe9c93eSAndreas Schwab_savevr_28: 4758fe9c93eSAndreas Schwab li r12,-64 476c2ce6f9fSAnton Blanchard stvx v28,r12,r0 4778fe9c93eSAndreas Schwab.globl _savevr_29 4788fe9c93eSAndreas Schwab_savevr_29: 4798fe9c93eSAndreas Schwab li r12,-48 480c2ce6f9fSAnton Blanchard stvx v29,r12,r0 4818fe9c93eSAndreas Schwab.globl _savevr_30 4828fe9c93eSAndreas Schwab_savevr_30: 4838fe9c93eSAndreas Schwab li r12,-32 484c2ce6f9fSAnton Blanchard stvx v30,r12,r0 4858fe9c93eSAndreas Schwab.globl _savevr_31 4868fe9c93eSAndreas Schwab_savevr_31: 4878fe9c93eSAndreas Schwab li r12,-16 488c2ce6f9fSAnton Blanchard stvx v31,r12,r0 4898fe9c93eSAndreas Schwab blr 4908fe9c93eSAndreas Schwab 4918fe9c93eSAndreas Schwab.globl _restvr_20 4928fe9c93eSAndreas Schwab_restvr_20: 4938fe9c93eSAndreas Schwab li r12,-192 494c2ce6f9fSAnton Blanchard lvx v20,r12,r0 4958fe9c93eSAndreas Schwab.globl _restvr_21 4968fe9c93eSAndreas Schwab_restvr_21: 4978fe9c93eSAndreas Schwab li r12,-176 498c2ce6f9fSAnton Blanchard lvx v21,r12,r0 4998fe9c93eSAndreas Schwab.globl _restvr_22 5008fe9c93eSAndreas Schwab_restvr_22: 5018fe9c93eSAndreas Schwab li r12,-160 502c2ce6f9fSAnton Blanchard lvx v22,r12,r0 5038fe9c93eSAndreas Schwab.globl _restvr_23 5048fe9c93eSAndreas Schwab_restvr_23: 5058fe9c93eSAndreas Schwab li r12,-144 506c2ce6f9fSAnton Blanchard lvx v23,r12,r0 5078fe9c93eSAndreas Schwab.globl _restvr_24 5088fe9c93eSAndreas Schwab_restvr_24: 5098fe9c93eSAndreas Schwab li r12,-128 510c2ce6f9fSAnton Blanchard lvx v24,r12,r0 5118fe9c93eSAndreas Schwab.globl _restvr_25 5128fe9c93eSAndreas Schwab_restvr_25: 5138fe9c93eSAndreas Schwab li r12,-112 514c2ce6f9fSAnton Blanchard lvx v25,r12,r0 5158fe9c93eSAndreas Schwab.globl _restvr_26 5168fe9c93eSAndreas Schwab_restvr_26: 5178fe9c93eSAndreas Schwab li r12,-96 518c2ce6f9fSAnton Blanchard lvx v26,r12,r0 5198fe9c93eSAndreas Schwab.globl _restvr_27 5208fe9c93eSAndreas Schwab_restvr_27: 5218fe9c93eSAndreas Schwab li r12,-80 522c2ce6f9fSAnton Blanchard lvx v27,r12,r0 5238fe9c93eSAndreas Schwab.globl _restvr_28 5248fe9c93eSAndreas Schwab_restvr_28: 5258fe9c93eSAndreas Schwab li r12,-64 526c2ce6f9fSAnton Blanchard lvx v28,r12,r0 5278fe9c93eSAndreas Schwab.globl _restvr_29 5288fe9c93eSAndreas Schwab_restvr_29: 5298fe9c93eSAndreas Schwab li r12,-48 530c2ce6f9fSAnton Blanchard lvx v29,r12,r0 5318fe9c93eSAndreas Schwab.globl _restvr_30 5328fe9c93eSAndreas Schwab_restvr_30: 5338fe9c93eSAndreas Schwab li r12,-32 534c2ce6f9fSAnton Blanchard lvx v30,r12,r0 5358fe9c93eSAndreas Schwab.globl _restvr_31 5368fe9c93eSAndreas Schwab_restvr_31: 5378fe9c93eSAndreas Schwab li r12,-16 538c2ce6f9fSAnton Blanchard lvx v31,r12,r0 5398fe9c93eSAndreas Schwab blr 5408fe9c93eSAndreas Schwab 5418fe9c93eSAndreas Schwab#endif /* CONFIG_ALTIVEC */ 5428fe9c93eSAndreas Schwab 5437fca5dc8SStephen Rothwell#endif /* CONFIG_PPC64 */ 5447fca5dc8SStephen Rothwell 545da3de6dfSKumar Gala#endif 546