Deleted Added
full compact
locore.s (173592) locore.s (187948)
1/*-
2 * Copyright (c) 1990 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * William Jolitz.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 16 unchanged lines hidden (view full) ---

25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 * from: @(#)locore.s 7.3 (Berkeley) 5/13/91
1/*-
2 * Copyright (c) 1990 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * William Jolitz.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 16 unchanged lines hidden (view full) ---

25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 * from: @(#)locore.s 7.3 (Berkeley) 5/13/91
33 * $FreeBSD: head/sys/i386/i386/locore.s 173592 2007-11-13 23:00:24Z peter $
33 * $FreeBSD: head/sys/i386/i386/locore.s 187948 2009-01-31 11:37:21Z obrien $
34 *
35 * originally from: locore.s, by William F. Jolitz
36 *
37 * Substantially rewritten by David Greenman, Rod Grimes,
38 * Bruce Evans, Wolfgang Solfrank, Poul-Henning Kamp
39 * and many others.
40 */
41

--- 291 unchanged lines hidden (view full) ---

333 * Signal trampoline, copied to top of user stack
334 */
335NON_GPROF_ENTRY(sigcode)
336 calll *SIGF_HANDLER(%esp)
337 leal SIGF_UC(%esp),%eax /* get ucontext */
338 pushl %eax
339 testl $PSL_VM,UC_EFLAGS(%eax)
340 jne 1f
34 *
35 * originally from: locore.s, by William F. Jolitz
36 *
37 * Substantially rewritten by David Greenman, Rod Grimes,
38 * Bruce Evans, Wolfgang Solfrank, Poul-Henning Kamp
39 * and many others.
40 */
41

--- 291 unchanged lines hidden (view full) ---

333 * Signal trampoline, copied to top of user stack
334 */
335NON_GPROF_ENTRY(sigcode)
336 calll *SIGF_HANDLER(%esp)
337 leal SIGF_UC(%esp),%eax /* get ucontext */
338 pushl %eax
339 testl $PSL_VM,UC_EFLAGS(%eax)
340 jne 1f
341 movl UC_GS(%eax),%gs /* restore %gs */
341 mov UC_GS(%eax),%gs /* restore %gs */
3421:
343 movl $SYS_sigreturn,%eax
344 pushl %eax /* junk to fake return addr. */
345 int $0x80 /* enter kernel with args */
346 /* on stack */
3471:
348 jmp 1b
349
350#ifdef COMPAT_FREEBSD4
351 ALIGN_TEXT
352freebsd4_sigcode:
353 calll *SIGF_HANDLER(%esp)
354 leal SIGF_UC4(%esp),%eax /* get ucontext */
355 pushl %eax
356 testl $PSL_VM,UC4_EFLAGS(%eax)
357 jne 1f
3421:
343 movl $SYS_sigreturn,%eax
344 pushl %eax /* junk to fake return addr. */
345 int $0x80 /* enter kernel with args */
346 /* on stack */
3471:
348 jmp 1b
349
350#ifdef COMPAT_FREEBSD4
351 ALIGN_TEXT
352freebsd4_sigcode:
353 calll *SIGF_HANDLER(%esp)
354 leal SIGF_UC4(%esp),%eax /* get ucontext */
355 pushl %eax
356 testl $PSL_VM,UC4_EFLAGS(%eax)
357 jne 1f
358 movl UC4_GS(%eax),%gs /* restore %gs */
358 mov UC4_GS(%eax),%gs /* restore %gs */
3591:
360 movl $344,%eax /* 4.x SYS_sigreturn */
361 pushl %eax /* junk to fake return addr. */
362 int $0x80 /* enter kernel with args */
363 /* on stack */
3641:
365 jmp 1b
366#endif
367
368#ifdef COMPAT_43
369 ALIGN_TEXT
370osigcode:
371 call *SIGF_HANDLER(%esp) /* call signal handler */
372 lea SIGF_SC(%esp),%eax /* get sigcontext */
373 pushl %eax
374 testl $PSL_VM,SC_PS(%eax)
375 jne 9f
3591:
360 movl $344,%eax /* 4.x SYS_sigreturn */
361 pushl %eax /* junk to fake return addr. */
362 int $0x80 /* enter kernel with args */
363 /* on stack */
3641:
365 jmp 1b
366#endif
367
368#ifdef COMPAT_43
369 ALIGN_TEXT
370osigcode:
371 call *SIGF_HANDLER(%esp) /* call signal handler */
372 lea SIGF_SC(%esp),%eax /* get sigcontext */
373 pushl %eax
374 testl $PSL_VM,SC_PS(%eax)
375 jne 9f
376 movl SC_GS(%eax),%gs /* restore %gs */
376 mov SC_GS(%eax),%gs /* restore %gs */
3779:
378 movl $103,%eax /* 3.x SYS_sigreturn */
379 pushl %eax /* junk to fake return addr. */
380 int $0x80 /* enter kernel with args */
3810: jmp 0b
382#endif /* COMPAT_43 */
383
384 ALIGN_TEXT

--- 511 unchanged lines hidden ---
3779:
378 movl $103,%eax /* 3.x SYS_sigreturn */
379 pushl %eax /* junk to fake return addr. */
380 int $0x80 /* enter kernel with args */
3810: jmp 0b
382#endif /* COMPAT_43 */
383
384 ALIGN_TEXT

--- 511 unchanged lines hidden ---