Subject: CVS commit: src/sys/arch
To: None <source-changes@NetBSD.org>
From: Frank van der Linden <fvdl@netbsd.org>
List: source-changes
Date: 08/20/2003 21:48:54
Module Name:	src
Committed By:	fvdl
Date:		Wed Aug 20 21:48:53 UTC 2003

Modified Files:
	src/sys/arch/amd64/amd64: locore.S netbsd32_syscall.c spl.S syscall.c
	    trap.c vector.S
	src/sys/arch/amd64/conf: files.amd64
	src/sys/arch/amd64/include: proc.h
	src/sys/arch/i386/i386: compat_13_machdep.c freebsd_machdep.c
	    freebsd_syscall.c ibcs2_syscall.c linux_syscall.c locore.S
	    mach_sigcode.S mach_syscall.c machdep.c process_machdep.c spl.S
	    svr4_machdep.c svr4_sigcode.S svr4_syscall.c syscall.c trap.c
	    vector.S
	src/sys/arch/i386/include: proc.h
	src/sys/arch/x86/include: intr.h
	src/sys/arch/x86/x86: intr.c

Log Message:
Pass pointers to frames from assembly, do not use the 'frame on stack
as argument passed by value' trick, as gcc 3.3.x makes (valid) assumptions
about the stack that will not be true. Costs 2 instructions per trap/syscall
on i386, 4 per interrupt for MP. One instruction per trap/syscall on amd64,
2 per interrupt for MP. I expect gcc 3.3.1 to make up for this by better
optimization (it'd better..)

While here, make amd64 compile again by using subr_mbr_disk.c


To generate a diff of this commit:
cvs rdiff -r1.5 -r1.6 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -r1.2 -r1.3 src/sys/arch/amd64/amd64/netbsd32_syscall.c \
    src/sys/arch/amd64/amd64/syscall.c src/sys/arch/amd64/amd64/vector.S
cvs rdiff -r1.1 -r1.2 src/sys/arch/amd64/amd64/spl.S
cvs rdiff -r1.7 -r1.8 src/sys/arch/amd64/amd64/trap.c
cvs rdiff -r1.4 -r1.5 src/sys/arch/amd64/conf/files.amd64
cvs rdiff -r1.2 -r1.3 src/sys/arch/amd64/include/proc.h
cvs rdiff -r1.11 -r1.12 src/sys/arch/i386/i386/compat_13_machdep.c
cvs rdiff -r1.36 -r1.37 src/sys/arch/i386/i386/freebsd_machdep.c
cvs rdiff -r1.12 -r1.13 src/sys/arch/i386/i386/freebsd_syscall.c
cvs rdiff -r1.21 -r1.22 src/sys/arch/i386/i386/ibcs2_syscall.c \
    src/sys/arch/i386/i386/syscall.c
cvs rdiff -r1.24 -r1.25 src/sys/arch/i386/i386/linux_syscall.c
cvs rdiff -r1.14 -r1.15 src/sys/arch/i386/i386/locore.S
cvs rdiff -r1.4 -r1.5 src/sys/arch/i386/i386/mach_sigcode.S
cvs rdiff -r1.8 -r1.9 src/sys/arch/i386/i386/mach_syscall.c
cvs rdiff -r1.531 -r1.532 src/sys/arch/i386/i386/machdep.c
cvs rdiff -r1.48 -r1.49 src/sys/arch/i386/i386/process_machdep.c
cvs rdiff -r1.6 -r1.7 src/sys/arch/i386/i386/spl.S
cvs rdiff -r1.67 -r1.68 src/sys/arch/i386/i386/svr4_machdep.c
cvs rdiff -r1.5 -r1.6 src/sys/arch/i386/i386/svr4_sigcode.S
cvs rdiff -r1.20 -r1.21 src/sys/arch/i386/i386/svr4_syscall.c
cvs rdiff -r1.183 -r1.184 src/sys/arch/i386/i386/trap.c
cvs rdiff -r1.9 -r1.10 src/sys/arch/i386/i386/vector.S
cvs rdiff -r1.21 -r1.22 src/sys/arch/i386/include/proc.h
cvs rdiff -r1.5 -r1.6 src/sys/arch/x86/include/intr.h
cvs rdiff -r1.4 -r1.5 src/sys/arch/x86/x86/intr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.