summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/locore.s
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64/amd64/locore.s')
-rw-r--r--sys/amd64/amd64/locore.s29
1 files changed, 3 insertions, 26 deletions
diff --git a/sys/amd64/amd64/locore.s b/sys/amd64/amd64/locore.s
index e87c275..a1b6ff7 100644
--- a/sys/amd64/amd64/locore.s
+++ b/sys/amd64/amd64/locore.s
@@ -415,37 +415,14 @@ NON_GPROF_ENTRY(prepare_usermode)
*/
NON_GPROF_ENTRY(sigcode)
call SIGF_HANDLER(%esp) /* call signal handler */
- movl SIGF_SIGRET(%esp),%eax /* Get sigreturn cookie */
- cmpl $0x0ABCDEF0,%eax /* New one? */
- jne 3f
-/* New signalling code */
- lea SIGF_UC(%esp),%eax /* get ucontext */
+ lea SIGF_UC(%esp),%eax /* get ucontext_t */
pushl %eax
- testl $PSL_VM,UC_EFLAGS(%eax)
- jne 1f
- movl UC_GS(%eax),%gs /* restore %gs */
-1:
- movl $SYS_sigreturn,%eax
- pushl %eax /* junk to fake return addr. */
- int $0x80 /* enter kernel with args */
- /* on stack */
-2:
- jmp 2b
-/* Old signalling code */
-3:
- lea SIGF_SC(%esp),%eax /* get sigcontext */
- pushl %eax
- testl $PSL_VM,SC_PS(%eax)
- jne 4f
- movl SC_GS(%eax),%gs /* restore %gs */
-4:
movl $SYS_osigreturn,%eax
pushl %eax /* junk to fake return addr. */
int $0x80 /* enter kernel with args */
/* on stack */
-5:
- jmp 5b
-
+1:
+ jmp 1b
ALIGN_TEXT
_esigcode:
OpenPOWER on IntegriCloud