From owner-cvs-all Fri Dec 28 23:59: 8 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 534D237B423; Fri, 28 Dec 2001 23:59:05 -0800 (PST) Received: (from jake@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id fBT7x5j69121; Fri, 28 Dec 2001 23:59:05 -0800 (PST) (envelope-from jake) Message-Id: <200112290759.fBT7x5j69121@freefall.freebsd.org> From: Jake Burkholder Date: Fri, 28 Dec 2001 23:59:05 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sparc64/sparc64 exception.s X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG jake 2001/12/28 23:59:05 PST Modified files: sys/sparc64/sparc64 exception.s Log: Add .register directives for gcc3. Add macros to atomically increment an integer variable in the data section and to atomically set a bit in a tte. Note that the latter does not return the new value. Rewrite RESUME_SPILLFILL_MAGIC to use more sensical calculations, and to preserve all alternate globals religiously. Must now be called on alternate globals. Defer switching to the kernel stack until inside the syscall, trap, interrupt wrappers. Splitting the windows is all that's really urgent. Adapt to new trap types. Add %xcc where appropriate in order to not use v8 opcodes inadvertantly (which work fine). Modify the low level tlb fault handlers to operate on a tsb made up of ttes, not sttes. This effectively makes the tsb twice as large. After atomically updating tte bits in memory, also set the bit in the register that holds the data which will be loaded into the tlb. The macro returns the old value. Use the preloaded mmu global which holds the address of the current user tsb. Add back a low level protection fault handler instead of just punting into the vm system. This effectively saves a soft fault per COW fault. Add a trace to intr_enqueue. Pass arguments to the trap, interrupt, syscall wrappers in the out registers instead of some on the stack, some in registers. Use the preloaded alternate global pcb register. Revision Changes Path 1.14 +825 -694 src/sys/sparc64/sparc64/exception.s To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message