setjmp.S revision 1.1.1.1.6.2 1 1.1.1.1.6.2 christos /* $NetBSD: setjmp.S,v 1.1.1.1.6.2 2019/06/10 22:08:36 christos Exp $ */
2 1.1.1.1.6.2 christos
3 1.1.1.1.6.2 christos /*
4 1.1.1.1.6.2 christos * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
5 1.1.1.1.6.2 christos * This program and the accompanying materials are licensed and made
6 1.1.1.1.6.2 christos available
7 1.1.1.1.6.2 christos * under the terms and conditions of the BSD License which accompanies
8 1.1.1.1.6.2 christos this
9 1.1.1.1.6.2 christos * distribution. The full text of the license may be found at
10 1.1.1.1.6.2 christos * http://opensource.org/licenses/bsd-license.php.
11 1.1.1.1.6.2 christos *
12 1.1.1.1.6.2 christos * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
13 1.1.1.1.6.2 christos BASIS,
14 1.1.1.1.6.2 christos * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
15 1.1.1.1.6.2 christos * IMPLIED.
16 1.1.1.1.6.2 christos */
17 1.1.1.1.6.2 christos .text
18 1.1.1.1.6.2 christos .globl setjmp
19 1.1.1.1.6.2 christos #ifndef __MINGW32__
20 1.1.1.1.6.2 christos .type setjmp, @function
21 1.1.1.1.6.2 christos #else
22 1.1.1.1.6.2 christos .def setjmp; .scl 2; .type 32; .endef
23 1.1.1.1.6.2 christos #endif
24 1.1.1.1.6.2 christos setjmp:
25 1.1.1.1.6.2 christos pop %ecx
26 1.1.1.1.6.2 christos movl (%esp), %edx
27 1.1.1.1.6.2 christos movl %ebx, (%edx)
28 1.1.1.1.6.2 christos movl %esi, 4(%edx)
29 1.1.1.1.6.2 christos movl %edi, 8(%edx)
30 1.1.1.1.6.2 christos movl %ebp, 12(%edx)
31 1.1.1.1.6.2 christos movl %esp, 16(%edx)
32 1.1.1.1.6.2 christos xorl %eax, %eax
33 1.1.1.1.6.2 christos jmp *%ecx
34 1.1.1.1.6.2 christos
35 1.1.1.1.6.2 christos .globl longjmp
36 1.1.1.1.6.2 christos #ifndef __MINGW32__
37 1.1.1.1.6.2 christos .type longjmp, @function
38 1.1.1.1.6.2 christos #else
39 1.1.1.1.6.2 christos .def longjmp; .scl 2; .type 32; .endef
40 1.1.1.1.6.2 christos #endif
41 1.1.1.1.6.2 christos longjmp:
42 1.1.1.1.6.2 christos pop %eax
43 1.1.1.1.6.2 christos pop %edx
44 1.1.1.1.6.2 christos pop %eax
45 1.1.1.1.6.2 christos movl (%edx), %ebx
46 1.1.1.1.6.2 christos movl 4(%edx), %esi
47 1.1.1.1.6.2 christos movl 8(%edx), %edi
48