Print this page
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
usr/src/uts/common/fs/proc/prcontrol.c
usr/src/uts/intel/os/archdep.c
usr/src/uts/intel/sys/ucontext.h
usr/src/uts/intel/syscall/getcontext.c
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/lib/libc/i386/sys/__getcontext.S
+++ new/usr/src/lib/libc/i386/sys/__getcontext.S
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
|
↓ open down ↓ |
16 lines elided |
↑ open up ↑ |
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21
22 22 /*
23 23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
24 24 * Use is subject to license terms.
25 25 */
26 26
27 +/*
28 + * Copyright 2023 Oxide Computer Company
29 + */
30 +
27 31 .file "__getcontext.s"
28 32
29 33 /*
30 34 * __getcontext() must be implemented in assembler, as opposed
31 35 * to the other members of the SYS_context family (see ucontext.c)
32 36 * because we must be careful to get the precise context of the caller.
33 37 */
34 38
35 39 #include "SYS.h"
36 40
37 41 ENTRY(__getcontext)
38 42 popl %edx
39 43 pushl $0
40 44 pushl %edx
41 45 SYSTRAP_RVAL1(context)
42 46 popl %edx
43 47 movl %edx, 0(%esp)
44 48 SYSCERROR
45 49 RET
46 50 SET_SIZE(__getcontext)
51 +
52 + ENTRY(__getcontext_extd)
53 + popl %edx
54 + pushl $4
55 + pushl %edx
56 + SYSTRAP_RVAL1(context)
57 + popl %edx
58 + movl %edx, 0(%esp)
59 + SYSCERROR
60 + RET
61 + SET_SIZE(__getcontext_extd)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX