| ;; xstormy16 |
| ;; Copyright (C) 2001 by Red Hat, Incorporated. All rights reserved. |
| ;; |
| ;; Permission to use, copy, modify, and distribute this software |
| ;; is freely granted, provided that this notice is preserved. |
| ;; |
| .file "setjmp.S" |
| |
| .section .text |
| .align 1 |
| .global setjmp |
| .type setjmp,@function |
| setjmp: |
| mov r0,r10 |
| mov (r2++),r0 |
| mov r0,r11 |
| mov (r2++),r0 |
| mov r0,r12 |
| mov (r2++),r0 |
| mov r0,r13 |
| mov (r2++),r0 |
| pop r0 ; PC high word |
| pop r1 ; PC low word |
| mov (r2++), r0 |
| mov (r2++), r1 |
| mov r3,sp |
| mov (r2++),r3 |
| mov.w r2,#0 |
| mov r8, r0 |
| mov r9, r1 |
| jmp r8, r9 |
| .size setjmp,.-setjmp |
| |
| .global longjmp |
| .type longjmp,@function |
| longjmp: |
| mov r0,(r2++) |
| mov r10,r0 |
| mov r0,(r2++) |
| mov r11,r0 |
| mov r0,(r2++) |
| mov r12,r0 |
| mov r0,(r2++) |
| mov r13,r0 |
| mov r0,(r2++) |
| mov r8, r0 |
| mov r1,(r2++) |
| mov r9, r1 |
| mov r4,(r2++) |
| mov sp,r4 |
| ;; status arg (r3) to longjmp is return value |
| ;; if it's zero, return 1 |
| bnz r3, #0, 0f |
| mov.w r3,#1 |
| 0: mov r2, r3 |
| jmp r8,r9 |
| .size longjmp,.-longjmp |