/* Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. */ /* Floating Point Registers (FPRs) restore routine */ #include ENTRY(_restfpr_all) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14) C_TEXT(_restf14): C_TEXT(_restfpr_14): lfd fp14,-144(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15) C_TEXT(_restf15): C_TEXT(_restfpr_15): lfd fp15,-136(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16) C_TEXT(_restf16): C_TEXT(_restfpr_16): lfd fp16,-128(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17) C_TEXT(_restf17): C_TEXT(_restfpr_17): lfd fp17,-120(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18) C_TEXT(_restf18): C_TEXT(_restfpr_18): lfd fp18,-112(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19) C_TEXT(_restf19): C_TEXT(_restfpr_19): lfd fp19,-104(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20) C_TEXT(_restf20): C_TEXT(_restfpr_20): lfd fp20,-96(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21) C_TEXT(_restf21): C_TEXT(_restfpr_21): lfd fp21,-88(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22) C_TEXT(_restf22): C_TEXT(_restfpr_22): lfd fp22,-80(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23) C_TEXT(_restf23): C_TEXT(_restfpr_23): lfd fp23,-72(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24) C_TEXT(_restf24): C_TEXT(_restfpr_24): lfd fp24,-64(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25) C_TEXT(_restf25): C_TEXT(_restfpr_25): lfd fp25,-56(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26) C_TEXT(_restf26): C_TEXT(_restfpr_26): lfd fp26,-48(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27) C_TEXT(_restf27): C_TEXT(_restfpr_27): lfd fp27,-40(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28) C_TEXT(_restf28): C_TEXT(_restfpr_28): lfd fp28,-32(r1) ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29) ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29) C_TEXT(_restf29): C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame lfd fp29,-24(r1) #restore f29 mtlr r0 #move return address to LR lfd fp30,-16(r1) #restore f30 lfd fp31,-8(r1) #restore f31 blr #return END (_restfpr_all)