Author: jchandra
Date: Thu Mar 29 11:46:29 2012
New Revision: 233657
URL: http://svn.freebsd.org/changeset/base/233657

Log:
  Remove unnecessary assembly code.
  
  The compiler should generate lw/sw corresponding to register
  operations.

Modified:
  head/sys/mips/nlm/dev/net/ucore/ucore.h
  head/sys/mips/nlm/dev/net/ucore/ucore_app.c

Modified: head/sys/mips/nlm/dev/net/ucore/ucore.h
==============================================================================
--- head/sys/mips/nlm/dev/net/ucore/ucore.h     Thu Mar 29 11:20:19 2012        
(r233656)
+++ head/sys/mips/nlm/dev/net/ucore/ucore.h     Thu Mar 29 11:46:29 2012        
(r233657)
@@ -45,8 +45,8 @@
 #define        UCORE_FR_FIFOEMPTY      0x802c
 #define        UCORE_PKT_DISTR         0x8030
 
-#define        PACKET_MEMORY           (0xFFE00)
-#define        PACKET_DATA_OFFSET      (64)
+#define        PACKET_MEMORY           0xFFE00
+#define        PACKET_DATA_OFFSET      64
 #define        SHARED_SCRATCH_MEM      0x18000
 
 /* Distribution mode */
@@ -57,8 +57,8 @@
 #define        VAL_PDL(x)              (((x) & 0xf) << 4)
 
 /*output buffer done*/
-#define        VAL_FSV(x)              (x<<19)
-#define        VAL_FFS(x)              (x<<14)
+#define        VAL_FSV(x)              (x << 19)
+#define        VAL_FFS(x)              (x << 14)
 
 #define        FWD_DEST_ONLY           1
 #define        FWD_ENQ_DIST_VEC        2
@@ -69,37 +69,33 @@
 
 #define        USE_HASH_DST            (1 << 20)
 
+static __inline unsigned int
+nlm_read_ucore_reg(int reg)
+{
+       volatile unsigned int *addr = (volatile void *)reg;
+
+       return (*addr);
+}
+
+static __inline void
+nlm_write_ucore_reg(int reg, unsigned int val)
+{
+       volatile unsigned int *addr = (volatile void *)reg;
+
+       *addr = val;
+}
 
 #define        NLM_DEFINE_UCORE(name, reg)                             \
-static __inline__ unsigned int nlm_read_ucore_##name(void)     \
+static __inline unsigned int                                   \
+nlm_read_ucore_##name(void)                                    \
 {                                                              \
-       unsigned int __rv;                                      \
-       __asm__ __volatile__ (                                  \
-       ".set   push\n"                                         \
-       ".set   noreorder\n"                                    \
-       ".set   mips32\n"                                       \
-       "li     $8, %1\n"                                       \
-       "lw     %0, ($8)\n"                                     \
-       ".set   pop\n"                                          \
-       : "=r" (__rv)                                           \
-       : "i" (reg)                                             \
-       : "$8"                                                  \
-       );                                                      \
-        return __rv;                                           \
+       return nlm_read_ucore_reg(reg);                         \
 }                                                              \
                                                                \
-static __inline__ void nlm_write_ucore_##name(unsigned int val)        \
+static __inline void                                           \
+nlm_write_ucore_##name(unsigned int v)                         \
 {                                                              \
-       __asm__ __volatile__(                                   \
-       ".set   push\n"                                         \
-       ".set   noreorder\n"                                    \
-       ".set   mips32\n"                                       \
-       "li     $8, %1\n"                                       \
-       "sw     %0, ($8)\n"                                     \
-       ".set   pop\n"                                          \
-       :: "r" (val), "i" (reg)                                 \
-       : "$8"                                                  \
-       );                                                      \
+       nlm_write_ucore_reg(reg, v);                            \
 } struct __hack
 
 

Modified: head/sys/mips/nlm/dev/net/ucore/ucore_app.c
==============================================================================
--- head/sys/mips/nlm/dev/net/ucore/ucore_app.c Thu Mar 29 11:20:19 2012        
(r233656)
+++ head/sys/mips/nlm/dev/net/ucore/ucore_app.c Thu Mar 29 11:46:29 2012        
(r233657)
@@ -38,7 +38,7 @@ int main(void)
        int intf, hw_parser_error, context;
 #endif
        unsigned int pktrdy;
-       int num_cachelines = 1518 >> 6; /* pktsize / L3 cacheline size */
+       int num_cachelines = 1518 / 64 ; /* pktsize / L3 cacheline size */
 
 
        /* Spray packets to using distribution vector */
_______________________________________________
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