newlib-cygwin/newlib/libc/machine/xstormy16/setjmp.S

58 lines
992 B
ArmAsm
Raw Normal View History

In newlib/: 2001-12-22 Geoffrey Keating <geoffk@redhat.com> Catherine Moore <clm@redhat.com> Richard Henderson <rth@redhat.com> Corinna Vinschen <vinschen@redhat.com> * configure.host: Add support for xstormy16. * libc/include/machine/ieeefp.h: Add support for xstormy16. * libc/include/machine/setjmp.h: Add support for xstormy16. * libc/include/sys/config.h: Add support for xstormy16. * libc/machine/xstormy16/Makefile.am: New file. * libc/machine/xstormy16/Makefile.in: New file. * libc/machine/xstormy16/aclocal.m4: New file. * libc/machine/xstormy16/configure: New file. * libc/machine/xstormy16/configure.in: New file. * libc/machine/xstormy16/setjmp.S: New file. In libgloss/: 2001-12-22 Geoffrey Keating <geoffk@redhat.com> Mark Salter <msalter@redhat.com> Catherine Moore <clm@redhat.com> Richard Henderson <rth@redhat.com> * configure.in: Add xstormy16. * libnosys/configure.in: Add xstormy16. * configure: Regenerated. * libnosys/configure: Regenerated. * xstormy16/Makefile.in: New file. * xstormy16/close.c: New file. * xstormy16/configure: New file. * xstormy16/configure.in: New file. * xstormy16/crt0.s: New file. * xstormy16/crt0_stub.s: New file. * xstormy16/crti.s: New file. * xstormy16/crtn.s: New file. * xstormy16/eva_app.c: New file. * xstormy16/eva_app.ld: New file. * xstormy16/eva_stub.ld: New file. * xstormy16/fstat.c: New file. * xstormy16/getpid.c: New file. * xstormy16/kill.c: New file. * xstormy16/lseek.c: New file. * xstormy16/open.c: New file. * xstormy16/sbrk.c: New file. * xstormy16/sim_high.ld: New file. * xstormy16/stat.c: New file. * xstormy16/syscalls.S: New file. * xstormy16/syscalls.m4: New file. * xstormy16/unlink.c: New file. * xstormy16/xstormy16_stub.c: New file.
2001-12-23 06:47:58 +08:00
;; 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