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

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [newlib/] [newlib/] [libc/] [sys/] [go32/] [setjmp.S] - Rev 1765

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

/* This is file SETJMP.S */
/*
** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
**
** This file is distributed under the terms listed in the document
** "copying.dj", available from DJ Delorie at the address above.
** A copy of "copying.dj" should accompany this file; if not, a copy
** should be available from where this file was obtained.  This file
** may not be distributed without a verbatim copy of "copying.dj".
**
** This file is distributed WITHOUT ANY WARRANTY; without even the implied
** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

/*
**      jmp_buf:
**       eax ebx ecx edx esi edi ebp esp eip es fs gs ss
**       0   4   8   12  16  20  24  28  32  36 38 40 42
*/

        .globl  _setjmp /* jmp_buf */
_setjmp:
        pushl   %ebp
        movl    %esp,%ebp

        pushl   %edi
        movl    8(%ebp),%edi

        movl    %eax,0(%edi)
        movl    %ebx,4(%edi)
        movl    %ecx,8(%edi)
        movl    %edx,12(%edi)
        movl    %esi,16(%edi)

        movl    -4(%ebp),%eax
        movl    %eax,20(%edi)

        movl    0(%ebp),%eax
        movl    %eax,24(%edi)

        movl    %esp,%eax
        addl    $12,%eax
        movl    %eax,28(%edi)
        
        movl    4(%ebp),%eax
        movl    %eax,32(%edi)

        movw    %es, %ax
        movw    %ax, 36(%edi)
        movw    %fs, %ax
        movw    %ax, 38(%edi)
        movw    %gs, %ax
        movw    %ax, 40(%edi)
        movw    %ss, %ax
        movw    %ax, 42(%edi)

        popl    %edi
        movl    $0,%eax
        leave
        ret
        

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.