Changeset 4f508e6 in buchla-68k for lib700/setjmp.s
- Timestamp:
- 07/01/2017 02:34:46 PM (7 years ago)
- Branches:
- master
- Children:
- 08e1da1
- Parents:
- f40a309
- 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 Crowe4 *------------------------------------------------------------------------------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 6 6 .text 7 * 7 8 8 .xdef _setjmp,_longjmp 9 * 10 _setjmp: movea.l 4(a7),a0 *Get env pointer11 move.l (a7),(a0) *Put return address in env12 movem.l d1-d7/a1-a7,4(a0) *Save registers in env13 moveq.l #0,d0 *Set return value to 014 rts *Return to caller15 * 16 _longjmp: move.w 8(a7),d0 *Get ret value17 bne lj1 *Jump if non-zero18 * 19 moveq.l #1,d0 *Force return value to 120 * 21 lj1: movea.l 4(a7),a0 *Get env pointer22 movem.l 4(a0),d1-d7/a1-a7 *Restore registers from env23 move.l (a0),(a7) *Get return address from env24 rts *Return to caller25 * 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 26 26 .end
Note:
See TracChangeset
for help on using the changeset viewer.