Home | History | Annotate | Line # | Download | only in ia32
      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
      6 available
      7  * under the terms and conditions of the BSD License which accompanies
      8 this
      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"
     13 BASIS,
     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
     24 setjmp:
     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
     41 longjmp:
     42 	pop	%eax
     43 	pop	%edx
     44 	pop	%eax
     45 	movl	(%edx), %ebx
     46 	movl	4(%edx), %esi
     47 	movl	8(%edx), %edi
     48