From owner-cvs-all Sat Feb 23 10:55:24 2002 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 DF59837B400; Sat, 23 Feb 2002 10:55:21 -0800 (PST) Received: (from jake@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g1NItLj66606; Sat, 23 Feb 2002 10:55:21 -0800 (PST) (envelope-from jake) Message-Id: <200202231855.g1NItLj66606@freefall.freebsd.org> From: Jake Burkholder Date: Sat, 23 Feb 2002 10:55:21 -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 2002/02/23 10:55:21 PST Modified files: sys/sparc64/sparc64 exception.s Log: 1. Setup the user stack pointer before returning to a user trap handler. If we don't do this here there's a 1 instruction race where an interrupt could come in and crash the user process due to having no stack. 2. Pass %fsr to the user trap handler in %l4. Since %fsr can only be loaded from or stored to memory, we need to do some contortions and temporarily save it to the alternate global stack. 3. Reload the pcb and pcpu registers for traps in kernel mode, for sanity. Submitted by: tmm (1, 2) Revision Changes Path 1.25 +32 -0 src/sys/sparc64/sparc64/exception.s To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message