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