From owner-svn-src-head@FreeBSD.ORG Thu Jul 29 19:14:06 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A648D1065672; Thu, 29 Jul 2010 19:14:06 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9583E8FC0A; Thu, 29 Jul 2010 19:14:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o6TJE6bi030384; Thu, 29 Jul 2010 19:14:06 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o6TJE6OL030382; Thu, 29 Jul 2010 19:14:06 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201007291914.o6TJE6OL030382@svn.freebsd.org> From: "Jayachandran C." Date: Thu, 29 Jul 2010 19:14:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r210625 - head/sys/mips/mips X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jul 2010 19:14:06 -0000 Author: jchandra Date: Thu Jul 29 19:14:06 2010 New Revision: 210625 URL: http://svn.freebsd.org/changeset/base/210625 Log: MIPS 64 bit support. Define fuword64() for n64 compilation, fuword() should be fuword64() in 64 bit. Modified: head/sys/mips/mips/support.S Modified: head/sys/mips/mips/support.S ============================================================================== --- head/sys/mips/mips/support.S Thu Jul 29 19:08:22 2010 (r210624) +++ head/sys/mips/mips/support.S Thu Jul 29 19:14:06 2010 (r210625) @@ -429,8 +429,9 @@ END(copyerr) * {fu,su},{byte,sword,word}, fetch or store a byte, short or word to * user data space. */ -LEAF(fuword) -ALEAF(fuword32) +#ifdef __mips_n64 +LEAF(fuword64) +ALEAF(fuword) ALEAF(fuiword) PTR_LA v0, fswberr blt a0, zero, fswberr # make sure address is in user space @@ -438,10 +439,26 @@ ALEAF(fuiword) GET_CPU_PCPU(v1) PTR_L v1, PC_CURPCB(v1) PTR_S v0, U_PCB_ONFAULT(v1) + ld v0, 0(a0) # fetch word + j ra + PTR_S zero, U_PCB_ONFAULT(v1) +END(fuword64) +#endif + +LEAF(fuword32) +#ifndef __mips_n64 +ALEAF(fuword) +#endif + PTR_LA v0, fswberr + blt a0, zero, fswberr # make sure address is in user space + nop + GET_CPU_PCPU(v1) + PTR_L v1, PC_CURPCB(v1) + PTR_S v0, U_PCB_ONFAULT(v1) lw v0, 0(a0) # fetch word j ra PTR_S zero, U_PCB_ONFAULT(v1) -END(fuword) +END(fuword32) LEAF(fusword) ALEAF(fuisword)