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