| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | #include <features.h>/* * longjmp.S	atp sept 2001 *		Jan-Benedict Glaw <jbglaw@lug-owl.de> 2006 * * Restore regs and info and jmp back to a previous setjmp */.globl	__longjmp.align	4__longjmp:	.word	0x0040		/* This matches setjmp and PLT	*/	movl	0x4(%ap), %r0	/* Our scratch reg		*//*	movl	$0, %r0						*//*	movl	(%r0), %r0					*/	/* We are going to modify our stack frame		*/	/* to the same as that of the setjmp we called earlier	*/	movl	(%r0), (%fp)		/* cond handler		*/	movl	0x4(%r0), 0x4(%fp)	/* psw			*/	movl	0x8(%r0), 0x8(%fp)	/* ap			*/	movl	0xc(%r0), 0xc(%fp)	/* fp			*/	movl	0x10(%r0), 0x10(%fp)	/* pc			*/	/* Restore the regs					*/	movl	0x14(%r0), %r1	movl	0x18(%r0), %r2	movl	0x1c(%r0), %r3	movl	0x20(%r0), %r4	movl	0x24(%r0), %r5	movl	0x28(%r0), %r6	movl	0x2c(%r0), %r7	movl	0x30(%r0), %r8	movl	0x34(%r0), %r9	movl	0x38(%r0), %r10	movl	0x3c(%r0), %r11	/* Check val and set to 1 if set to zero		*/	movl	0x8(%ap), %r0	tstl	%r0	bneq	exit_ok	movl	$0x1, %r0exit_ok:	ret.size __longjmp,.-__longjmplibc_hidden_def(__longjmp)
 |