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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to