File:  [DVB] / dietlibc / i386 / __longjmp.S
Revision 1.3: download - view: text, annotated - select for diffs
Mon Jul 2 16:06:48 2001 UTC (22 years, 11 months ago) by olaf
Branches: MAIN
CVS tags: finnland_test_200301, branch_rc14_fieldtest_finnland, branch_rc13_fieldtest_finnland, branch_rc12_fieldtest_finnland, branch_rc10_fieldtest_finnland, RELEASE_finnland_200301_1, RC12_FIELDTEST_FINNLAND, RC10_FIELDTEST_FINNLAND, HEAD
typed-symbol... N.C.

#include <setjmp.h>

.text
.global __longjmp
.type __longjmp,@function
__longjmp:
	movl 4(%esp), %ecx	/* User's jmp_buf in %ecx.  */
	movl 8(%esp), %eax	/* Second argument is return value.  */
	/* Save the return address now.  */
	movl (JB_PC*4)(%ecx), %edx
	/* Restore registers.  */
	movl (JB_BX*4)(%ecx), %ebx
	movl (JB_SI*4)(%ecx), %esi
	movl (JB_DI*4)(%ecx), %edi
	movl (JB_BP*4)(%ecx), %ebp
	movl (JB_SP*4)(%ecx), %esp
	/* Jump to saved PC.  */
	jmp *%edx
.size __longjmp,.-__longjmp;

LinuxTV legacy CVS <linuxtv.org/cvs>