From owner-svn-src-user@FreeBSD.ORG Sat Nov 15 10:45:22 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 970ADA74; Sat, 15 Nov 2014 10:45:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 806778D1; Sat, 15 Nov 2014 10:45:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sAFAjMi3036974; Sat, 15 Nov 2014 10:45:22 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sAFAjB6V036914; Sat, 15 Nov 2014 10:45:11 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201411151045.sAFAjB6V036914@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Sat, 15 Nov 2014 10:45:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: 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... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Nov 2014 10:45:22 -0000 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 +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 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@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 ***