Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/go32/longjmp.S')
-rw-r--r--newlib/libc/sys/go32/longjmp.S65
1 files changed, 0 insertions, 65 deletions
diff --git a/newlib/libc/sys/go32/longjmp.S b/newlib/libc/sys/go32/longjmp.S
deleted file mode 100644
index 3c9dca33b..000000000
--- a/newlib/libc/sys/go32/longjmp.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/* This is file LONGJMP.S */
-/*
-** Copyright (C) 1993 DJ Delorie
-**
-** This file is distributed under the terms listed in the document
-** "copying.dj".
-** A copy of "copying.dj" should accompany this file; if not, a copy
-** should be available from where this file was obtained. This file
-** may not be distributed without a verbatim copy of "copying.dj".
-**
-** This file is distributed WITHOUT ANY WARRANTY; without even the implied
-** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-*/
-
-/*
-** jmp_buf:
-** eax ebx ecx edx esi edi ebp esp eip es fs gs ss
-** 0 4 8 12 16 20 24 28 32 36 38 40 42
-*/
-
- .globl _longjmp /* jmp_buf, int */
-_longjmp:
- pushl %ebp
- movl %esp,%ebp
-
- movl 8(%ebp),%edi /* get jmp_buf */
- movl 12(%ebp),%eax /* store retval in j->eax */
- testl %eax,%eax
- jne 0f
- incl %eax
-0:
- movl %eax,0(%edi)
-
- movl 24(%edi),%ebp
-
- pushfl /* get flags so will only re-enable */
- popl %ebx /* interrupts if they were previously */
- /* enabled */
-
- cli
- movw 42(%edi),%ax
- movw %ax,%ss
- movl 28(%edi),%esp
-
- pushl 32(%edi) /* for a ret! */
-
- pushl %ebx /* save flags that contain previous */
- /* interrupt state */
-
- movw 36(%edi),%ax
- movw %ax,%es
- movw 38(%edi),%ax
- movw %ax,%fs
- movw 40(%edi),%ax
- movw %ax,%gs
- movl 0(%edi),%eax
- movl 4(%edi),%ebx
- movl 8(%edi),%ecx
- movl 12(%edi),%edx
- movl 16(%edi),%esi
- movl 20(%edi),%edi
-
- popfl /* restore previous interrupt state */
-
- ret /* actually jump to new eip */