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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib-1.10.0/] [newlib/] [libc/] [machine/] [tic80/] [setjmp.S] - Rev 1010

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

/* These are predefined by new versions of GNU cpp.  */

#ifndef __USER_LABEL_PREFIX__
#define __USER_LABEL_PREFIX__ _
#endif

/* ANSI concatenation macros.  */

#define CONCAT1(a, b) CONCAT2(a, b)
#define CONCAT2(a, b) a ## b

/* Use the right prefix for global labels.  */

#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)

        .global SYM (setjmp)
        .global SYM (_setjmp)
        .global SYM (longjmp)

        .section  .text,"x"
        .align 4
SYM (_setjmp):  
SYM (setjmp):
        st.d    0(r2),r20
        st.d    8(r2),r22
        st.d    16(r2),r24
        st.d    24(r2),r26
        st.d    32(r2),r28
        st.d    40(r2),r30
        st      48(r2),r1
        jsr     r31(r0),r0
         addu   0,r0,r2

        .section  .text,"x"
        .align 4
SYM (longjmp):
        ld.d    0(r2),r20
        ld.d    8(r2),r22
        ld.d    16(r2),r24
        ld.d    24(r2),r26
        ld.d    32(r2),r28
        ld.d    40(r2),r30
        bcnd    L1,r4,ne0.w
         ld     48(r2),r1

        jsr     r31(r0),r0
         addu   1,r0,r2
L1:
        jsr     r31(r0),r0
         addu   r4,r0,r2

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.