OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [uClibc/] [libc/] [sysdeps/] [linux/] [microblaze/] [longjmp.S] - Rev 1325

Go to most recent revision | Compare with Previous | Blame | View Log

/*
 * libc/sysdeps/linux/microblaze/longjmp.S -- `longjmp' for microblaze
 *
 *  Copyright (C) 2003  John Williams <jwilliams@itee.uq.edu.au>
 *  Copyright (C) 2001  NEC Corporation
 *  Copyright (C) 2001  Miles Bader <miles@gnu.org>
 *
 * This file is subject to the terms and conditions of the GNU Lesser
 * General Public License.  See the file COPYING.LIB in the main
 * directory of this archive for more details.
 * 
 * Written by Miles Bader <miles@gnu.org>
 */

#define _SETJMP_H
#define _ASM
#include <bits/setjmp.h>

#include <clinkage.h>

        .text
C_ENTRY(__longjmp):
        /* load registers from memory to r5 (arg0)*/
        lwi     r1, r5, 0
        lwi     r15, r5, 4
        lwi     r18, r5, 8
        lwi     r19, r5, 12
        lwi     r20, r5, 16
        lwi     r21, r5, 20 
        lwi     r22, r5, 24 
        lwi     r23, r5, 28
        lwi     r24, r5, 32 
        lwi     r25, r5, 36
        lwi     r26, r5, 40
        lwi     r27, r5, 44
        lwi     r28, r5, 48
        lwi     r29, r5, 52
        lwi     r30, r5, 56
        
        addi    r3, r0, 1               // return val
        rtsd    r15, 8                  // normal return
        nop

C_END(__longjmp)

.weak C_SYMBOL_NAME(longjmp)
C_SYMBOL_NAME(longjmp) = C_SYMBOL_NAME(__longjmp)

.weak C_SYMBOL_NAME(siglongjmp)
C_SYMBOL_NAME(siglongjmp) = C_SYMBOL_NAME(__longjmp)

.weak C_SYMBOL_NAME(__sigprocmask)
C_SYMBOL_NAME(__sigprocmask) = C_SYMBOL_NAME(sigprocmask)

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.