diff options
Diffstat (limited to 'setjmp.S')
-rw-r--r-- | setjmp.S | 58 |
1 files changed, 28 insertions, 30 deletions
@@ -1,37 +1,35 @@ .globl setjmp setjmp: - movl 4(%esp), %eax - - movl %ebx, 0(%eax) - movl %ecx, 4(%eax) - movl %edx, 8(%eax) - movl %esi, 12(%eax) - movl %edi, 16(%eax) - movl %esp, 20(%eax) - movl %ebp, 24(%eax) - pushl 0(%esp) /* %eip */ - popl 28(%eax) - - movl $0, %eax /* return value */ - ret + movl 4(%esp), %eax + + movl %ebx, 0(%eax) + movl %ecx, 4(%eax) + movl %edx, 8(%eax) + movl %esi, 12(%eax) + movl %edi, 16(%eax) + movl %esp, 20(%eax) + movl %ebp, 24(%eax) + pushl 0(%esp) /* %eip */ + popl 28(%eax) + + movl $0, %eax /* return value */ + ret .globl longjmp longjmp: - movl 4(%esp), %eax - - movl 0(%eax), %ebx - movl 4(%eax), %ecx - movl 8(%eax), %edx - movl 12(%eax), %esi - movl 16(%eax), %edi - movl 20(%eax), %esp - movl 24(%eax), %ebp + movl 4(%esp), %eax + + movl 0(%eax), %ebx + movl 4(%eax), %ecx + movl 8(%eax), %edx + movl 12(%eax), %esi + movl 16(%eax), %edi + movl 20(%eax), %esp + movl 24(%eax), %ebp - addl $4, %esp /* pop %eip into thin air */ - pushl 28(%eax) /* push new %eip */ - - movl $1, %eax /* return value (appears to come from setjmp!) */ - ret + addl $4, %esp /* pop %eip into thin air */ + pushl 28(%eax) /* push new %eip */ + + movl $1, %eax /* return value (appears to come from setjmp!) */ + ret - - |