svn commit: r274550 - in user/dchagin/lemul: . bin/sh contrib/byacc/test/yacc contrib/llvm/lib/CodeGen/SelectionDAG contrib/llvm/patches sbin/reboot share/man/man4 share/mk sys/amd64/amd64 sys/amd6...
Dmitry Chagin
dchagin at FreeBSD.org
Sat Nov 15 10:45:22 UTC 2014
Author: dchagin
Date: Sat Nov 15 10:45:10 2014
New Revision: 274550
URL: https://svnweb.freebsd.org/changeset/base/274550
Log:
MFH.
Added:
user/dchagin/lemul/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff
- copied unchanged from r274549, head/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff
user/dchagin/lemul/usr.sbin/pw/tests/pw_lock.sh
- copied unchanged from r274549, head/usr.sbin/pw/tests/pw_lock.sh
Deleted:
user/dchagin/lemul/sys/dev/dpt/dpt_isa.c
Modified:
user/dchagin/lemul/Makefile.inc1
user/dchagin/lemul/bin/sh/sh.1
user/dchagin/lemul/contrib/byacc/test/yacc/calc.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/calc1.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/calc2.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/calc3.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.code.c
user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/code_error.code.c
user/dchagin/lemul/contrib/byacc/test/yacc/code_error.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/empty.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax10.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax11.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax12.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax18.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax20.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/error.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/grammar.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/ok_syntax1.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/pure_calc.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/pure_error.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc-s.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2-s.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3-s.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4-s.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4.tab.c
user/dchagin/lemul/contrib/byacc/test/yacc/rename_debug.c
user/dchagin/lemul/contrib/byacc/test/yacc/varsyntax_calc1.tab.c
user/dchagin/lemul/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
user/dchagin/lemul/sbin/reboot/boot_i386.8
user/dchagin/lemul/share/man/man4/acpi.4
user/dchagin/lemul/share/man/man4/dpt.4
user/dchagin/lemul/share/man/man4/ipheth.4
user/dchagin/lemul/share/man/man4/iscsi_initiator.4
user/dchagin/lemul/share/man/man4/virtio_console.4
user/dchagin/lemul/share/mk/sys.mk
user/dchagin/lemul/sys/amd64/amd64/support.S
user/dchagin/lemul/sys/amd64/include/asmacros.h
user/dchagin/lemul/sys/arm/arm/busdma_machdep-v6.c
user/dchagin/lemul/sys/arm/arm/gic.c
user/dchagin/lemul/sys/boot/ficl/amd64/sysdep.c
user/dchagin/lemul/sys/boot/ficl/arm/sysdep.c
user/dchagin/lemul/sys/boot/ficl/i386/sysdep.c
user/dchagin/lemul/sys/boot/ficl/mips/sysdep.c
user/dchagin/lemul/sys/boot/ficl/mips64/sysdep.c
user/dchagin/lemul/sys/boot/ficl/powerpc/sysdep.c
user/dchagin/lemul/sys/boot/ficl/sparc64/sysdep.c
user/dchagin/lemul/sys/boot/pc98/loader/conf.c
user/dchagin/lemul/sys/cam/scsi/scsi_all.h
user/dchagin/lemul/sys/cddl/compat/opensolaris/sys/vnode.h
user/dchagin/lemul/sys/compat/freebsd32/freebsd32_misc.c
user/dchagin/lemul/sys/compat/linux/linux_file.c
user/dchagin/lemul/sys/compat/linux/linux_misc.c
user/dchagin/lemul/sys/compat/linux/linux_socket.c
user/dchagin/lemul/sys/compat/linux/linux_stats.c
user/dchagin/lemul/sys/compat/linux/linux_uid16.c
user/dchagin/lemul/sys/compat/svr4/svr4_fcntl.c
user/dchagin/lemul/sys/compat/svr4/svr4_misc.c
user/dchagin/lemul/sys/compat/svr4/svr4_stat.c
user/dchagin/lemul/sys/compat/svr4/svr4_stream.c
user/dchagin/lemul/sys/conf/files
user/dchagin/lemul/sys/conf/kern.opts.mk
user/dchagin/lemul/sys/conf/newvers.sh
user/dchagin/lemul/sys/dev/ath/if_ath.c
user/dchagin/lemul/sys/dev/iir/iir.c
user/dchagin/lemul/sys/dev/iir/iir.h
user/dchagin/lemul/sys/dev/iir/iir_ctrl.c
user/dchagin/lemul/sys/dev/iir/iir_pci.c
user/dchagin/lemul/sys/dev/ips/ips.c
user/dchagin/lemul/sys/dev/ips/ips.h
user/dchagin/lemul/sys/dev/ips/ips_pci.c
user/dchagin/lemul/sys/dev/streams/streams.c
user/dchagin/lemul/sys/i386/ibcs2/ibcs2_fcntl.c
user/dchagin/lemul/sys/i386/ibcs2/ibcs2_misc.c
user/dchagin/lemul/sys/i386/ibcs2/ibcs2_other.c
user/dchagin/lemul/sys/i386/ibcs2/ibcs2_stat.c
user/dchagin/lemul/sys/i386/ibcs2/ibcs2_xenix.c
user/dchagin/lemul/sys/kern/init_main.c
user/dchagin/lemul/sys/kern/kern_descrip.c
user/dchagin/lemul/sys/kern/kern_fork.c
user/dchagin/lemul/sys/kern/kern_lock.c
user/dchagin/lemul/sys/kern/kern_umtx.c
user/dchagin/lemul/sys/kern/uipc_sockbuf.c
user/dchagin/lemul/sys/kern/uipc_socket.c
user/dchagin/lemul/sys/kern/uipc_syscalls.c
user/dchagin/lemul/sys/kern/vfs_mountroot.c
user/dchagin/lemul/sys/kern/vfs_syscalls.c
user/dchagin/lemul/sys/kern/vfs_vnops.c
user/dchagin/lemul/sys/modules/dpt/Makefile
user/dchagin/lemul/sys/modules/if_gif/Makefile
user/dchagin/lemul/sys/netipsec/ipsec_input.c
user/dchagin/lemul/sys/netipsec/ipsec_output.c
user/dchagin/lemul/sys/netipsec/xform_ipip.c
user/dchagin/lemul/sys/sys/filedesc.h
user/dchagin/lemul/sys/sys/param.h
user/dchagin/lemul/sys/sys/syscallsubr.h
user/dchagin/lemul/sys/vm/vm_pager.h
user/dchagin/lemul/usr.bin/iscsictl/iscsictl.c
user/dchagin/lemul/usr.bin/mkimg/mkimg.1
user/dchagin/lemul/usr.sbin/pw/tests/Makefile
Directory Properties:
user/dchagin/lemul/ (props changed)
user/dchagin/lemul/contrib/byacc/ (props changed)
user/dchagin/lemul/contrib/llvm/ (props changed)
user/dchagin/lemul/sbin/ (props changed)
user/dchagin/lemul/share/ (props changed)
user/dchagin/lemul/share/man/man4/ (props changed)
user/dchagin/lemul/sys/ (props changed)
user/dchagin/lemul/sys/boot/ (props changed)
user/dchagin/lemul/sys/conf/ (props changed)
user/dchagin/lemul/usr.bin/mkimg/ (props changed)
Modified: user/dchagin/lemul/Makefile.inc1
==============================================================================
--- user/dchagin/lemul/Makefile.inc1 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/Makefile.inc1 Sat Nov 15 10:45:10 2014 (r274550)
@@ -1447,12 +1447,16 @@ NXBMAKE= ${NXBENV} ${MAKE} \
MK_CLANG_FULL=no MK_LLDB=no
native-xtools: .MAKE
+ mkdir -p ${OBJTREE}/nxb-bin/bin
+ mkdir -p ${OBJTREE}/nxb-bin/sbin
mkdir -p ${OBJTREE}/nxb-bin/usr
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
-p ${OBJTREE}/nxb-bin/usr >/dev/null
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
-p ${OBJTREE}/nxb-bin/usr/include >/dev/null
.for _tool in \
+ bin/csh \
+ bin/sh \
${_clang_tblgen} \
usr.bin/ar \
${_binutils} \
@@ -1460,11 +1464,18 @@ native-xtools: .MAKE
${_gcc_tools} \
${_clang_libs} \
${_clang} \
+ sbin/md5 \
usr.bin/awk \
usr.bin/bmake \
+ usr.bin/bzip2 \
+ usr.bin/fetch \
+ usr.bin/gzip \
usr.bin/lex \
usr.bin/lorder \
usr.bin/sed \
+ usr.bin/tar \
+ usr.bin/unzip \
+ usr.bin/xz \
usr.bin/yacc
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
cd ${.CURDIR}/${_tool} && \
Modified: user/dchagin/lemul/bin/sh/sh.1
==============================================================================
--- user/dchagin/lemul/bin/sh/sh.1 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/bin/sh/sh.1 Sat Nov 15 10:45:10 2014 (r274550)
@@ -32,7 +32,7 @@
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
.\" $FreeBSD$
.\"
-.Dd November 7, 2014
+.Dd November 14, 2014
.Dt SH 1
.Os
.Sh NAME
@@ -795,10 +795,13 @@ should indicate the various exit codes a
Additionally, the built-in commands return exit codes, as does
an executed shell function.
.Pp
-If a command is terminated by a signal, its exit status is 128 plus
-the signal number.
-Signal numbers are defined in the header file
-.In sys/signal.h .
+If a command is terminated by a signal, its exit status is greater than 128.
+The signal name can be found by passing the exit status to
+.Li kill -l .
+.Pp
+If there is no command word,
+the exit status is the exit status of the last command substitution executed,
+or zero if the command does not contain any command substitutions.
.Ss Complex Commands
Complex commands are combinations of simple commands
with control operators or keywords, together creating a larger complex
@@ -818,7 +821,8 @@ function definition
.El
.Pp
Unless otherwise stated, the exit status of a command is
-that of the last simple command executed by the command.
+that of the last simple command executed by the command,
+or zero if no simple command was executed.
.Ss Pipelines
A pipeline is a sequence of one or more commands separated
by the control operator
@@ -902,6 +906,8 @@ The format for running a command in back
If the shell is not interactive, the standard input of an
asynchronous command is set to
.Pa /dev/null .
+.Pp
+The exit status is zero.
.Ss Lists (Generally Speaking)
A list is a sequence of zero or more commands separated by
newlines, semicolons, or ampersands,
@@ -940,6 +946,13 @@ command is:
.Ic fi
.Ed
.Pp
+The exit status is that of selected
+.Ic then
+or
+.Ic else
+list,
+or zero if no list was selected.
+.Pp
The syntax of the
.Ic while
command is:
@@ -960,6 +973,9 @@ in place of
which causes it to
repeat until the exit status of the first list is zero.
.Pp
+The exit status is that of the last execution of the second list,
+or zero if it was never executed.
+.Pp
The syntax of the
.Ic for
command is:
@@ -1040,10 +1056,6 @@ continuing until a list terminated with
or the end of the
.Ic case
command.
-The exit code of the
-.Ic case
-command is the exit code of the last command executed in the list or
-zero if no patterns were matched.
.Ss Grouping Commands Together
Commands may be grouped by writing either
.Pp
@@ -1131,6 +1143,8 @@ and the syntax is:
The
.Ic local
command is implemented as a built-in command.
+The exit status is zero
+unless the command is not in a function or a variable name is invalid.
.Pp
When a variable is made local, it inherits the initial
value and exported and readonly flags from the variable
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/calc.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/calc.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/calc.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -150,7 +150,7 @@ extern int YYPARSE_DECL();
#define LETTER 258
#define UMINUS 259
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT calc_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/calc1.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/calc1.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/calc1.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -175,7 +175,7 @@ extern int YYPARSE_DECL();
#define CONST 259
#define UMINUS 260
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT calc1_lhs[] = { -1,
3, 3, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/calc2.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/calc2.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/calc2.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -152,7 +152,7 @@ extern int YYPARSE_DECL();
#define LETTER 258
#define UMINUS 259
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT calc2_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/calc3.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/calc3.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/calc3.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -157,7 +157,7 @@ extern int YYPARSE_DECL();
#define LETTER 258
#define UMINUS 259
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT calc3_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.code.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.code.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.code.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -160,7 +160,7 @@ typedef int YYSTYPE;
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
extern int YYPARSE_DECL();
-typedef short YYINT;
+typedef int YYINT;
extern YYINT yylhs[];
extern YYINT yylen[];
extern YYINT yydefred[];
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/code_calc.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -1,4 +1,4 @@
-typedef short YYINT;
+typedef int YYINT;
const YYINT calc_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/code_error.code.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/code_error.code.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/code_error.code.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -152,7 +152,7 @@ typedef int YYSTYPE;
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
extern int YYPARSE_DECL();
-typedef short YYINT;
+typedef int YYINT;
extern YYINT yylhs[];
extern YYINT yylen[];
extern YYINT yydefred[];
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/code_error.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/code_error.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/code_error.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -1,4 +1,4 @@
-typedef short YYINT;
+typedef int YYINT;
const YYINT error_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/empty.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/empty.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/empty.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -144,7 +144,7 @@ typedef int YYSTYPE;
extern int YYPARSE_DECL();
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT empty_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax10.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax10.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax10.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -134,7 +134,7 @@ static void yyerror(const char *);
extern int YYPARSE_DECL();
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT err_syntax10_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax11.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax11.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax11.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -140,7 +140,7 @@ typedef int YYSTYPE;
extern int YYPARSE_DECL();
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT err_syntax11_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax12.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax12.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax12.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -141,7 +141,7 @@ extern int YYPARSE_DECL();
#define text 456
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT err_syntax12_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax18.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax18.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax18.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -140,7 +140,7 @@ typedef int YYSTYPE;
extern int YYPARSE_DECL();
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT err_syntax18_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax20.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax20.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/err_syntax20.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -135,7 +135,7 @@ extern int YYPARSE_DECL();
#define recur 257
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT err_syntax20_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/error.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/error.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/error.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -140,7 +140,7 @@ typedef int YYSTYPE;
extern int YYPARSE_DECL();
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT error_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/grammar.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/grammar.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/grammar.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -453,7 +453,7 @@ extern int YYPARSE_DECL();
#define T_ASMARG 290
#define T_VA_DCL 291
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT grammar_lhs[] = { -1,
0, 0, 26, 26, 27, 27, 27, 27, 27, 27,
27, 31, 30, 30, 28, 28, 34, 28, 32, 32,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/ok_syntax1.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/ok_syntax1.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/ok_syntax1.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -178,7 +178,7 @@ extern int YYPARSE_DECL();
#define VT 272
#define UMINUS 273
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT ok_syntax1_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/pure_calc.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/pure_calc.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/pure_calc.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -160,7 +160,7 @@ extern int YYPARSE_DECL();
#define LETTER 258
#define UMINUS 259
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT calc_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/pure_error.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/pure_error.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/pure_error.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -152,7 +152,7 @@ typedef int YYSTYPE;
extern int YYPARSE_DECL();
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT error_lhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc-s.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc-s.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc-s.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -156,7 +156,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -162,7 +162,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2-s.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2-s.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2-s.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -156,7 +156,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc2_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc2.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -162,7 +162,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc2_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3-s.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3-s.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3-s.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -156,7 +156,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc3_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc3.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -156,7 +156,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc3_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4-s.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4-s.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4-s.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -156,7 +156,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc4_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/quote_calc4.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -156,7 +156,7 @@ extern int YYPARSE_DECL();
#define LETTER 270
#define UMINUS 271
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT quote_calc4_lhs[] = { -1,
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3,
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/rename_debug.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/rename_debug.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/rename_debug.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -16,7 +16,7 @@
#line 17 "rename_debug.c"
#include "rename_debug.i"
#include "rename_debug.h"
-typedef short YYINT;
+typedef int YYINT;
static const YYINT yylhs[] = { -1,
0,
};
Modified: user/dchagin/lemul/contrib/byacc/test/yacc/varsyntax_calc1.tab.c
==============================================================================
--- user/dchagin/lemul/contrib/byacc/test/yacc/varsyntax_calc1.tab.c Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/byacc/test/yacc/varsyntax_calc1.tab.c Sat Nov 15 10:45:10 2014 (r274550)
@@ -176,7 +176,7 @@ extern int YYPARSE_DECL();
#define CONST 259
#define UMINUS 260
#define YYERRCODE 256
-typedef short YYINT;
+typedef int YYINT;
static const YYINT varsyntax_calc1_lhs[] = { -1,
3, 3, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
Modified: user/dchagin/lemul/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
==============================================================================
--- user/dchagin/lemul/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Sat Nov 15 10:45:10 2014 (r274550)
@@ -629,8 +629,8 @@ void SDDbgInfo::erase(const SDNode *Node
DbgValMapType::iterator I = DbgValMap.find(Node);
if (I == DbgValMap.end())
return;
- for (auto &Val: I->second)
- Val->setIsInvalidated();
+ for (unsigned J = 0, N = I->second.size(); J != N; ++J)
+ I->second[J]->setIsInvalidated();
DbgValMap.erase(I);
}
Copied: user/dchagin/lemul/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff (from r274549, head/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/dchagin/lemul/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff Sat Nov 15 10:45:10 2014 (r274550, copy of r274549, head/contrib/llvm/patches/patch-r274442-llvm-r221709-debug-oom.diff)
@@ -0,0 +1,73 @@
+Pull in r221709 from upstream llvm trunk (by Frédéric Riss):
+
+ Totally forget deallocated SDNodes in SDDbgInfo.
+
+ What would happen before that commit is that the SDDbgValues associated with
+ a deallocated SDNode would be marked Invalidated, but SDDbgInfo would keep
+ a map entry keyed by the SDNode pointer pointing to this list of invalidated
+ SDDbgNodes. As the memory gets reused, the list might get wrongly associated
+ with another new SDNode. As the SDDbgValues are cloned when they are transfered,
+ this can lead to an exponential number of SDDbgValues being produced during
+ DAGCombine like in http://llvm.org/bugs/show_bug.cgi?id=20893
+
+ Note that the previous behavior wasn't really buggy as the invalidation made
+ sure that the SDDbgValues won't be used. This commit can be considered a
+ memory optimization and as such is really hard to validate in a unit-test.
+
+This should fix abnormally large memory usage and resulting OOM crashes
+when compiling certain ports with debug information.
+
+Reported by: Dmitry Marakasov <amdmi3 at amdmi3.ru>
+Upstream PRs: http://llvm.org/PR19031 http://llvm.org/PR20893
+
+Introduced here: http://svnweb.freebsd.org/changeset/base/274442
+
+Index: include/llvm/CodeGen/SelectionDAG.h
+===================================================================
+--- include/llvm/CodeGen/SelectionDAG.h
++++ include/llvm/CodeGen/SelectionDAG.h
+@@ -127,6 +127,10 @@ class SDDbgInfo {
+ DbgValMap[Node].push_back(V);
+ }
+
++ /// \brief Invalidate all DbgValues attached to the node and remove
++ /// it from the Node-to-DbgValues map.
++ void erase(const SDNode *Node);
++
+ void clear() {
+ DbgValMap.clear();
+ DbgValues.clear();
+Index: lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+===================================================================
+--- lib/CodeGen/SelectionDAG/SelectionDAG.cpp
++++ lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+@@ -625,6 +625,15 @@ void SelectionDAG::DeleteNodeNotInCSEMaps(SDNode *
+ DeallocateNode(N);
+ }
+
++void SDDbgInfo::erase(const SDNode *Node) {
++ DbgValMapType::iterator I = DbgValMap.find(Node);
++ if (I == DbgValMap.end())
++ return;
++ for (unsigned J = 0, N = I->second.size(); J != N; ++J)
++ I->second[J]->setIsInvalidated();
++ DbgValMap.erase(I);
++}
++
+ void SelectionDAG::DeallocateNode(SDNode *N) {
+ if (N->OperandsNeedDelete)
+ delete[] N->OperandList;
+@@ -635,10 +644,9 @@ void SelectionDAG::DeallocateNode(SDNode *N) {
+
+ NodeAllocator.Deallocate(AllNodes.remove(N));
+
+- // If any of the SDDbgValue nodes refer to this SDNode, invalidate them.
+- ArrayRef<SDDbgValue*> DbgVals = DbgInfo->getSDDbgValues(N);
+- for (unsigned i = 0, e = DbgVals.size(); i != e; ++i)
+- DbgVals[i]->setIsInvalidated();
++ // If any of the SDDbgValue nodes refer to this SDNode, invalidate
++ // them and forget about that node.
++ DbgInfo->erase(N);
+ }
+
+ /// RemoveNodeFromCSEMaps - Take the specified node out of the CSE map that
Modified: user/dchagin/lemul/sbin/reboot/boot_i386.8
==============================================================================
--- user/dchagin/lemul/sbin/reboot/boot_i386.8 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/sbin/reboot/boot_i386.8 Sat Nov 15 10:45:10 2014 (r274550)
@@ -36,7 +36,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 1, 2013
+.Dd November 14, 2014
.Dt BOOT 8 i386
.Os
.Sh NAME
@@ -56,6 +56,11 @@ Some BIOSes allow
you to change this default sequence, and may also include a CD-ROM
drive as a boot device.
.Pp
+Some newer PCs boot using UEFI firmware, not BIOS.
+That process is described
+in
+.Xr uefi 8 .
+.Pp
By default, a three-stage bootstrap is employed, and control is
automatically passed from the boot blocks (bootstrap stages one and
two) to a separate third-stage bootstrap program,
@@ -355,7 +360,8 @@ requirement has not been adhered to.
.Xr loader 8 ,
.Xr nextboot 8 ,
.Xr reboot 8 ,
-.Xr shutdown 8
+.Xr shutdown 8 ,
+.Xr uefi 8
.Sh BUGS
The bsdlabel format used by this version of
.Bx
Modified: user/dchagin/lemul/share/man/man4/acpi.4
==============================================================================
--- user/dchagin/lemul/share/man/man4/acpi.4 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/share/man/man4/acpi.4 Sat Nov 15 10:45:10 2014 (r274550)
@@ -238,7 +238,8 @@ Override the assumed memory starting add
.It Va hw.acpi.install_interface , hw.acpi.remove_interface
Install or remove OS interface(s) to control return value of
.Ql _OSI
-query method. When an OS interface is specified in
+query method.
+When an OS interface is specified in
.Va hw.acpi.install_interface ,
.Li _OSI
query for the interface returns it is
@@ -249,7 +250,8 @@ Conversely, when an OS interface is spec
query returns it is
.Em not supported .
Multiple interfaces can be specified in a comma-separated list and
-any leading white spaces will be ignored. For example,
+any leading white spaces will be ignored.
+For example,
.Qq Li FreeBSD, Linux
is a valid list of two interfaces
.Qq Li FreeBSD
@@ -626,13 +628,3 @@ IRQ routing problems.
Upgrade your BIOS to the latest version available from the vendor before
deciding it is a problem with
.Nm .
-.Pp
-The
-.Nm
-CPU idle power management drive conflicts with the local APIC (LAPIC)
-timer.
-Disable the local APIC timer with
-.Va hint.apic.0.clock=0
-or do not use the
-.Li C3
-and deeper states if the local APIC timer is enabled.
Modified: user/dchagin/lemul/share/man/man4/dpt.4
==============================================================================
--- user/dchagin/lemul/share/man/man4/dpt.4 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/share/man/man4/dpt.4 Sat Nov 15 10:45:10 2014 (r274550)
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 18, 2006
+.Dd November 13, 2014
.Dt DPT 4
.Os
.Sh NAME
@@ -40,9 +40,6 @@ kernel configuration file:
For one or more EISA cards:
.Cd "device eisa"
.Pp
-For one or more ISA cards:
-.Cd "device isa"
-.Pp
For one or more PCI cards:
.Cd "device pci"
.Pp
Modified: user/dchagin/lemul/share/man/man4/ipheth.4
==============================================================================
--- user/dchagin/lemul/share/man/man4/ipheth.4 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/share/man/man4/ipheth.4 Sat Nov 15 10:45:10 2014 (r274550)
@@ -103,4 +103,3 @@ A command similar to
may be required if the device is not recognised automatically by
.Nm
after it is connected.
-
Modified: user/dchagin/lemul/share/man/man4/iscsi_initiator.4
==============================================================================
--- user/dchagin/lemul/share/man/man4/iscsi_initiator.4 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/share/man/man4/iscsi_initiator.4 Sat Nov 15 10:45:10 2014 (r274550)
@@ -54,7 +54,6 @@ Users are advised to use
instead.
.Ef
.Pp
-
The
.Nm
implements the kernel side of the Internet SCSI (iSCSI) network
Modified: user/dchagin/lemul/share/man/man4/virtio_console.4
==============================================================================
--- user/dchagin/lemul/share/man/man4/virtio_console.4 Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/share/man/man4/virtio_console.4 Sat Nov 15 10:45:10 2014 (r274550)
@@ -56,6 +56,7 @@ each port is accessible through
.Sh FILES
.Bl -tag -width ".Pa /dev/ttyV?.??" -compact
.It Pa /dev/ttyV?.??
+.El
.Sh SEE ALSO
.Xr tty 4
.Xr virtio 4
Modified: user/dchagin/lemul/share/mk/sys.mk
==============================================================================
--- user/dchagin/lemul/share/mk/sys.mk Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/share/mk/sys.mk Sat Nov 15 10:45:10 2014 (r274550)
@@ -137,6 +137,8 @@ OBJCFLAGS ?= ${OBJCINCLUDES} ${CFLAGS} -
OBJCOPY ?= objcopy
+OBJDUMP ?= objdump
+
PC ?= pc
PFLAGS ?=
Modified: user/dchagin/lemul/sys/amd64/amd64/support.S
==============================================================================
--- user/dchagin/lemul/sys/amd64/amd64/support.S Sat Nov 15 06:14:38 2014 (r274549)
+++ user/dchagin/lemul/sys/amd64/amd64/support.S Sat Nov 15 10:45:10 2014 (r274550)
@@ -47,6 +47,7 @@
/* done */
ENTRY(bzero)
+ PUSH_FRAME_POINTER
movq %rsi,%rcx
xorl %eax,%eax
shrq $3,%rcx
@@ -57,11 +58,13 @@ ENTRY(bzero)
andq $7,%rcx
rep
stosb
+ POP_FRAME_POINTER
ret
END(bzero)
/* Address: %rdi */
ENTRY(pagezero)
+ PUSH_FRAME_POINTER
movq $-PAGE_SIZE,%rdx
subq %rdx,%rdi
xorl %eax,%eax
@@ -73,10 +76,12 @@ ENTRY(pagezero)
addq $32,%rdx
jne 1b
sfence
+ POP_FRAME_POINTER
ret
END(pagezero)
ENTRY(bcmp)
+ PUSH_FRAME_POINTER
movq %rdx,%rcx
shrq $3,%rcx
cld /* compare forwards */
@@ -91,6 +96,7 @@ ENTRY(bcmp)
1:
setne %al
movsbl %al,%eax
+ POP_FRAME_POINTER
ret
END(bcmp)
@@ -100,8 +106,7 @@ END(bcmp)
* ws at tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800
*/
ENTRY(bcopy)
- pushq %rbp
- movq %rsp,%rbp
+ PUSH_FRAME_POINTER
xchgq %rsi,%rdi
movq %rdx,%rcx
@@ -118,7 +123,7 @@ ENTRY(bcopy)
andq $7,%rcx /* any bytes left? */
rep
movsb
- popq %rbp
+ POP_FRAME_POINTER
ret
/* ALIGN_TEXT */
@@ -138,7 +143,7 @@ ENTRY(bcopy)
rep
movsq
cld
- popq %rbp
+ POP_FRAME_POINTER
ret
END(bcopy)
@@ -146,6 +151,7 @@ END(bcopy)
* Note: memcpy does not support overlapping copies
*/
ENTRY(memcpy)
+ PUSH_FRAME_POINTER
movq %rdx,%rcx
shrq $3,%rcx /* copy by 64-bit words */
cld /* copy forwards */
@@ -155,6 +161,7 @@ ENTRY(memcpy)
andq $7,%rcx /* any bytes left? */
rep
movsb
+ POP_FRAME_POINTER
ret
END(memcpy)
@@ -162,6 +169,7 @@ END(memcpy)
* pagecopy(%rdi=from, %rsi=to)
*/
ENTRY(pagecopy)
+ PUSH_FRAME_POINTER
movq $-PAGE_SIZE,%rax
movq %rax,%rdx
subq %rax,%rdi
@@ -182,18 +190,21 @@ ENTRY(pagecopy)
addq $32,%rdx
jne 2b
sfence
+ POP_FRAME_POINTER
ret
END(pagecopy)
/* fillw(pat, base, cnt) */
/* %rdi,%rsi, %rdx */
ENTRY(fillw)
+ PUSH_FRAME_POINTER
movq %rdi,%rax
movq %rsi,%rdi
movq %rdx,%rcx
cld
rep
stosw
+ POP_FRAME_POINTER
ret
END(fillw)
@@ -214,6 +225,7 @@ END(fillw)
* %rdi, %rsi, %rdx
*/
ENTRY(copyout)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rax
movq $copyout_fault,PCB_ONFAULT(%rax)
testq %rdx,%rdx /* anything to do? */
@@ -259,6 +271,7 @@ done_copyout:
xorl %eax,%eax
movq PCPU(CURPCB),%rdx
movq %rax,PCB_ONFAULT(%rdx)
+ POP_FRAME_POINTER
ret
ALIGN_TEXT
@@ -266,6 +279,7 @@ copyout_fault:
movq PCPU(CURPCB),%rdx
movq $0,PCB_ONFAULT(%rdx)
movq $EFAULT,%rax
+ POP_FRAME_POINTER
ret
END(copyout)
@@ -274,6 +288,7 @@ END(copyout)
* %rdi, %rsi, %rdx
*/
ENTRY(copyin)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rax
movq $copyin_fault,PCB_ONFAULT(%rax)
testq %rdx,%rdx /* anything to do? */
@@ -305,6 +320,7 @@ done_copyin:
xorl %eax,%eax
movq PCPU(CURPCB),%rdx
movq %rax,PCB_ONFAULT(%rdx)
+ POP_FRAME_POINTER
ret
ALIGN_TEXT
@@ -312,6 +328,7 @@ copyin_fault:
movq PCPU(CURPCB),%rdx
movq $0,PCB_ONFAULT(%rdx)
movq $EFAULT,%rax
+ POP_FRAME_POINTER
ret
END(copyin)
@@ -321,6 +338,7 @@ END(copyin)
* dst = %rdi, old = %esi, oldp = %rdx, new = %ecx
*/
ENTRY(casueword32)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%r8
movq $fusufault,PCB_ONFAULT(%r8)
@@ -349,6 +367,7 @@ ENTRY(casueword32)
* catch corrupted pointer.
*/
movl %esi,(%rdx) /* oldp = %rdx */
+ POP_FRAME_POINTER
ret
END(casueword32)
@@ -358,6 +377,7 @@ END(casueword32)
* dst = %rdi, old = %rsi, oldp = %rdx, new = %rcx
*/
ENTRY(casueword)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%r8
movq $fusufault,PCB_ONFAULT(%r8)
@@ -380,6 +400,7 @@ ENTRY(casueword)
xorl %eax,%eax
movq %rax,PCB_ONFAULT(%r8)
movq %rsi,(%rdx)
+ POP_FRAME_POINTER
ret
END(casueword)
@@ -391,6 +412,7 @@ END(casueword)
ALTENTRY(fueword64)
ENTRY(fueword)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -402,11 +424,13 @@ ENTRY(fueword)
movq (%rdi),%r11
movq %rax,PCB_ONFAULT(%rcx)
movq %r11,(%rsi)
+ POP_FRAME_POINTER
ret
END(fuword64)
END(fuword)
ENTRY(fueword32)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -418,6 +442,7 @@ ENTRY(fueword32)
movl (%rdi),%r11d
movq %rax,PCB_ONFAULT(%rcx)
movl %r11d,(%rsi)
+ POP_FRAME_POINTER
ret
END(fueword32)
@@ -436,6 +461,7 @@ END(suswintr)
END(fuswintr)
ENTRY(fuword16)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -445,10 +471,12 @@ ENTRY(fuword16)
movzwl (%rdi),%eax
movq $0,PCB_ONFAULT(%rcx)
+ POP_FRAME_POINTER
ret
END(fuword16)
ENTRY(fubyte)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -458,6 +486,7 @@ ENTRY(fubyte)
movzbl (%rdi),%eax
movq $0,PCB_ONFAULT(%rcx)
+ POP_FRAME_POINTER
ret
END(fubyte)
@@ -467,6 +496,7 @@ fusufault:
xorl %eax,%eax
movq %rax,PCB_ONFAULT(%rcx)
decq %rax
+ POP_FRAME_POINTER
ret
/*
@@ -476,6 +506,7 @@ fusufault:
*/
ALTENTRY(suword64)
ENTRY(suword)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -487,11 +518,13 @@ ENTRY(suword)
xorl %eax,%eax
movq PCPU(CURPCB),%rcx
movq %rax,PCB_ONFAULT(%rcx)
+ POP_FRAME_POINTER
ret
END(suword64)
END(suword)
ENTRY(suword32)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -503,10 +536,12 @@ ENTRY(suword32)
xorl %eax,%eax
movq PCPU(CURPCB),%rcx
movq %rax,PCB_ONFAULT(%rcx)
+ POP_FRAME_POINTER
ret
END(suword32)
ENTRY(suword16)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -518,10 +553,12 @@ ENTRY(suword16)
xorl %eax,%eax
movq PCPU(CURPCB),%rcx /* restore trashed register */
movq %rax,PCB_ONFAULT(%rcx)
+ POP_FRAME_POINTER
ret
END(suword16)
ENTRY(subyte)
+ PUSH_FRAME_POINTER
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@@ -534,6 +571,7 @@ ENTRY(subyte)
xorl %eax,%eax
movq PCPU(CURPCB),%rcx /* restore trashed register */
movq %rax,PCB_ONFAULT(%rcx)
+ POP_FRAME_POINTER
ret
END(subyte)
@@ -547,6 +585,7 @@ END(subyte)
* return the actual length in *lencopied.
*/
ENTRY(copyinstr)
+ PUSH_FRAME_POINTER
movq %rdx,%r8 /* %r8 = maxlen */
movq %rcx,%r9 /* %r9 = *len */
xchgq %rdi,%rsi /* %rdi = from, %rsi = to */
@@ -603,6 +642,7 @@ cpystrflt_x:
subq %rdx,%r8
movq %r8,(%r9)
1:
+ POP_FRAME_POINTER
ret
END(copyinstr)
@@ -611,6 +651,7 @@ END(copyinstr)
* %rdi, %rsi, %rdx, %rcx
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list