Changeset 4f508e6 in buchla-68k for lib700/setjmp.s


Ignore:
Timestamp:
07/01/2017 02:34:46 PM (7 years ago)
Author:
Thomas Lopatic <thomas@…>
Branches:
master
Children:
08e1da1
Parents:
f40a309
Message:

Converted assembly language files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib700/setjmp.s

    rf40a309 r4f508e6  
    1 * ------------------------------------------------------------------------------
    2 * setjmp.s -- Unix(tm) compatible setjmp(env) and longjmp(env,ret)
    3 * Version 3 -- 1987-06-16 -- D.N. Lynx Crowe
    4 * ------------------------------------------------------------------------------
    5 *
     1| ------------------------------------------------------------------------------
     2| setjmp.s -- Unix(tm) compatible setjmp(env) and longjmp(env,ret)
     3| Version 3 -- 1987-06-16 -- D.N. Lynx Crowe
     4| ------------------------------------------------------------------------------
     5
    66                .text
    7 *
     7
    88                .xdef   _setjmp,_longjmp
    9 *
    10 _setjmp:        movea.l 4(a7),a0                * Get env pointer
    11                 move.l  (a7),(a0)               * Put return address in env
    12                 movem.l d1-d7/a1-a7,4(a0)       * Save registers in env
    13                 moveq.l #0,d0                   * Set return value to 0
    14                 rts                             * Return to caller
    15 *
    16 _longjmp:       move.w  8(a7),d0                * Get ret value
    17                 bne     lj1                     * Jump if non-zero
    18 *
    19                 moveq.l #1,d0                   * Force return value to 1
    20 *
    21 lj1:            movea.l 4(a7),a0                * Get env pointer
    22                 movem.l 4(a0),d1-d7/a1-a7       * Restore registers from env
    23                 move.l  (a0),(a7)               * Get return address from env
    24                 rts                             * Return to caller
    25 *
     9
     10_setjmp:        movea.l 4(a7),a0                | Get env pointer
     11                move.l  (a7),(a0)               | Put return address in env
     12                movem.l d1-d7/a1-a7,4(a0)       | Save registers in env
     13                moveq.l #0,d0                   | Set return value to 0
     14                rts                             | Return to caller
     15
     16_longjmp:       move.w  8(a7),d0                | Get ret value
     17                bne     lj1                     | Jump if non-zero
     18
     19                moveq.l #1,d0                   | Force return value to 1
     20
     21lj1:            movea.l 4(a7),a0                | Get env pointer
     22                movem.l 4(a0),d1-d7/a1-a7       | Restore registers from env
     23                move.l  (a0),(a7)               | Get return address from env
     24                rts                             | Return to caller
     25
    2626                .end
Note: See TracChangeset for help on using the changeset viewer.