Date: Thu, 24 Feb 2000 08:58:54 -0800 (PST) From: John Polstra <jdp@polstra.com> To: dfr@nlsystems.com Cc: alpha@freebsd.org Subject: Re: pcb_onfault bug on alpha? Message-ID: <200002241658.IAA39924@vashon.polstra.com> In-Reply-To: <Pine.BSF.4.10.10002240856070.54384-100000@tecra.nlsystems.com> References: <Pine.BSF.4.10.10002240856070.54384-100000@tecra.nlsystems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On a related topic, do you have any idea why they did all this ".set noat" nonsense in copyout instead of simply using t0 to set pcb_onfault as is done elsewhere? I can't see any reason why they'd need to preserve t0 at this point. NESTED(copyout, 3, 16, ra, 0, 0) LDGP(pv) lda sp, -16(sp) /* set up stack frame */ stq ra, (16-8)(sp) /* save ra */ ldiq t0, VM_MAXUSER_ADDRESS /* make sure that dest addr */ cmpult a1, t0, t1 /* is in user space. */ beq t1, copyerr /* if it's not, error out. */ lda v0, copyerr /* set up fault handler. */ .set noat ldq at_reg, curproc ldq at_reg, P_ADDR(at_reg) stq v0, U_PCB_ONFAULT(at_reg) .set at CALL(bcopy) /* do the copy. */ .set noat ldq at_reg, curproc /* kill the fault handler. */ ldq at_reg, P_ADDR(at_reg) stq zero, U_PCB_ONFAULT(at_reg) .set at ldq ra, (16-8)(sp) /* restore ra. */ lda sp, 16(sp) /* kill stack frame. */ mov zero, v0 /* return 0. */ RET END(copyout) John -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Disappointment is a good sign of basic intelligence." -- Chögyam Trungpa To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200002241658.IAA39924>