Author: jhb
Date: Fri Apr 17 18:24:47 2020
New Revision: 360050
URL: https://svnweb.freebsd.org/changeset/base/360050

Log:
  Use the right type for 64-bit coprocessor registers.
  
  The use of "int" here caused the compiler to believe that it needs to
  insert a "sll $n, $n, 0" to sign extend as part of the implicit cast
  to uint64_t.
  
  Submitted by: Nathaniel Filardo <nw...@cl.cam.ac.uk>
  Reviewed by:  brooks, arichardson
  Obtained from:        CheriBSD
  Sponsored by: DARPA
  Differential Revision:        https://reviews.freebsd.org/D24457

Modified:
  head/sys/mips/include/cpufunc.h

Modified: head/sys/mips/include/cpufunc.h
==============================================================================
--- head/sys/mips/include/cpufunc.h     Fri Apr 17 18:22:37 2020        
(r360049)
+++ head/sys/mips/include/cpufunc.h     Fri Apr 17 18:24:47 2020        
(r360050)
@@ -125,7 +125,7 @@ breakpoint(void)
 static __inline uint64_t                                       \
 mips_rd_ ## n (void)                                           \
 {                                                              \
-       int v0;                                                 \
+       uint64_t v0;                                            \
        __asm __volatile ("dmfc0 %[v0], $"__XSTRING(r)";"       \
                          : [v0] "=&r"(v0));                    \
        mips_barrier();                                         \
@@ -147,7 +147,7 @@ mips_wr_ ## n (uint64_t a0)                                 
\
 static __inline uint64_t                                       \
 mips_rd_ ## n(void)                                            \
 {                                                              \
-       int v0;                                                 \
+       uint64_t v0;                                            \
        __asm __volatile ("dmfc0 %[v0], $"__XSTRING(r)", "__XSTRING(s)";"       
\
                          : [v0] "=&r"(v0));                    \
        mips_barrier();                                         \
@@ -190,7 +190,7 @@ MIPS_RW64_COP0(xcontext, MIPS_COP_0_TLB_XCONTEXT);
 static __inline uint32_t                                       \
 mips_rd_ ## n (void)                                           \
 {                                                              \
-       int v0;                                                 \
+       uint32_t v0;                                            \
        __asm __volatile ("mfc0 %[v0], $"__XSTRING(r)";"        \
                          : [v0] "=&r"(v0));                    \
        mips_barrier();                                         \
@@ -212,7 +212,7 @@ mips_wr_ ## n (uint32_t a0)                                 
\
 static __inline uint32_t                                       \
 mips_rd_ ## n(void)                                            \
 {                                                              \
-       int v0;                                                 \
+       uint32_t v0;                                            \
        __asm __volatile ("mfc0 %[v0], $"__XSTRING(r)", "__XSTRING(s)";"        
\
                          : [v0] "=&r"(v0));                    \
        mips_barrier();                                         \
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to