]> git.neil.brown.name Git - history.git/commitdiff
Import 2.1.45 2.1.45
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:13:36 +0000 (15:13 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:13:36 +0000 (15:13 -0500)
31 files changed:
arch/sparc/kernel/process.c
arch/sparc/kernel/sys_sunos.c
arch/sparc64/kernel/ioctl32.c
arch/sparc64/kernel/process.c
arch/sparc64/kernel/sunos_ioctl32.c
arch/sparc64/kernel/sys_sparc32.c
arch/sparc64/kernel/sys_sunos32.c
arch/sparc64/lib/Makefile
arch/sparc64/lib/VIScsum.S [new file with mode: 0644]
arch/sparc64/lib/checksum.S
arch/sparc64/mm/fault.c
drivers/block/loop.c
drivers/sbus/char/bwtwo.c
drivers/sbus/char/cgfourteen.c
drivers/sbus/char/cgsix.c
drivers/sbus/char/cgthree.c
drivers/sbus/char/creator.c
drivers/sbus/char/leo.c
drivers/sbus/char/sunfb.c
drivers/sbus/char/tcx.c
drivers/sbus/char/weitek.c
drivers/scsi/advansys.h
fs/nfs/nfsroot.c
fs/proc/openpromfs.c
fs/ufs/ufs_file.c
fs/ufs/ufs_inode.c
fs/ufs/ufs_namei.c
fs/ufs/ufs_super.c
include/asm-sparc/namei.h
include/asm-sparc64/namei.h
include/linux/ufs_fs.h

index df2e5fa984bc5d9e9265c1788d9a662d68c16eeb..95eed628720b3dbf6ea031ab27be00f85e286120 100644 (file)
@@ -1,4 +1,4 @@
-/*  $Id: process.c,v 1.98 1997/05/14 20:44:54 davem Exp $
+/*  $Id: process.c,v 1.99 1997/07/17 02:20:13 davem Exp $
  *  linux/arch/sparc/kernel/process.c
  *
  *  Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
index 9d6700d1ae183e7720add7d6d4b0290aef33e8ba..5d0ea0840052fb3ac05e7b8f74c70efe300f8260 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: sys_sunos.c,v 1.79 1997/04/23 23:01:15 ecd Exp $
+/* $Id: sys_sunos.c,v 1.80 1997/07/17 02:20:22 davem Exp $
  * sys_sunos.c: SunOS specific syscall compatibility support.
  *
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
index 03fc5437aff8780b361f4f75e61a73dffd68e38d..b7a0f312da8a0832379cdb357d6f8a82423e943b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: ioctl32.c,v 1.12 1997/07/09 15:05:28 davem Exp $
+/* $Id: ioctl32.c,v 1.13 1997/07/17 02:20:38 davem Exp $
  * ioctl32.c: Conversion between 32bit and 64bit native ioctls.
  *
  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
index 5578f275702120ddea7dfac98662013ce4960d78..89f63f78f8a8c4a440fdd2ba760f6d128640269a 100644 (file)
@@ -1,4 +1,4 @@
-/*  $Id: process.c,v 1.28 1997/07/13 18:53:53 davem Exp $
+/*  $Id: process.c,v 1.29 1997/07/17 02:20:40 davem Exp $
  *  arch/sparc64/kernel/process.c
  *
  *  Copyright (C) 1995, 1996 David S. Miller (davem@caip.rutgers.edu)
index 68da9a1028ff7db74519f9592d705e36fe7385bd..bb991dee6e17e6c0fa50fabc2deba6db226a4298 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: sunos_ioctl32.c,v 1.3 1997/07/09 10:59:55 jj Exp $
+/* $Id: sunos_ioctl32.c,v 1.4 1997/07/17 02:20:43 davem Exp $
  * sunos_ioctl32.c: SunOS ioctl compatability on sparc64.
  *
  * Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx)
index dd67c60d26928938f625b95ae25e1b6176817e20..1f607da9815df1e5f257e7b7520165aaf86dfe9a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: sys_sparc32.c,v 1.42 1997/07/05 09:52:36 davem Exp $
+/* $Id: sys_sparc32.c,v 1.43 1997/07/17 02:20:45 davem Exp $
  * sys_sparc32.c: Conversion between 32bit and 64bit native syscalls.
  *
  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
index 0dd41ea130969761f7ec14fce302c427ff4a769d..dc87c3095901275bd1eace7da29d1d48840c1398 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: sys_sunos32.c,v 1.2 1997/07/05 07:09:16 davem Exp $
+/* $Id: sys_sunos32.c,v 1.3 1997/07/17 02:20:48 davem Exp $
  * sys_sunos32.c: SunOS binary compatability layer on sparc64.
  *
  * Copyright (C) 1995, 1996, 1997 David S. Miller (davem@caip.rutgers.edu)
index 2377d99e26ba2e15de4fd195b368e72ff88316f9..3da21c6060e740e0a35687d30e7263278ff69c80 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.12 1997/06/25 10:12:18 jj Exp $
+# $Id: Makefile,v 1.13 1997/07/16 10:12:03 jj Exp $
 # Makefile for Sparc library files..
 #
 
@@ -6,7 +6,7 @@ CFLAGS := $(CFLAGS) -ansi
 
 OBJS  = blockops.o locks.o strlen.o strncmp.o \
        memscan.o strncpy_from_user.o strlen_user.o memcmp.o checksum.o \
-       VIScopy.o VISbzero.o VISmemset.o
+       VIScopy.o VISbzero.o VISmemset.o VIScsum.o
 
 lib.a: $(OBJS)
        $(AR) rcs lib.a $(OBJS)
diff --git a/arch/sparc64/lib/VIScsum.S b/arch/sparc64/lib/VIScsum.S
new file mode 100644 (file)
index 0000000..b3c510a
--- /dev/null
@@ -0,0 +1,436 @@
+/* $Id: VIScsum.S,v 1.1 1997/07/16 10:12:02 jj Exp $
+ * VIScsum.S: High bandwidth IP checksumming utilizing the UltraSparc
+ *            Visual Instruction Set.
+ *
+ * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+ *
+ * Based on older sparc32/sparc64 checksum.S, which is:
+ *
+ *      Copyright(C) 1995 Linus Torvalds
+ *      Copyright(C) 1995 Miguel de Icaza
+ *      Copyright(C) 1996,1997 David S. Miller
+ *    derived from:
+ *       Linux/Alpha checksum c-code
+ *        Linux/ix86 inline checksum assembly
+ *        RFC1071 Computing the Internet Checksum (esp. Jacobsons m68k code)
+ *       David Mosberger-Tang for optimized reference c-code
+ *       BSD4.4 portable checksum routine
+ */
+
+#ifdef __sparc_v9__
+#define STACKOFF       2175
+#else
+#define STACKOFF       64
+#endif
+
+#ifdef __KERNEL__
+#include <asm/head.h>
+#include <asm/asi.h>
+#else
+#define ASI_BLK_P      0xf0
+#define FRPS_FEF       0x04
+#endif
+
+/* Dobrou noc, SunSoft engineers. Spete sladce.
+ * This has a couple of tricks in and those
+ * tricks are UltraLinux trade secrets :))
+ */
+
+#define START_THE_TRICK(fz,f0,f2,f4,f6,f8,f10)                                                 \
+       fcmpgt32        %fz, %f0, %g1           /*  FPM         Group                   */;     \
+       fcmpgt32        %fz, %f2, %g2           /*  FPM         Group                   */;     \
+       fcmpgt32        %fz, %f4, %g3           /*  FPM         Group                   */;     \
+       fcmpgt32        %fz, %f6, %g5           /*  FPM         Group                   */;     \
+       inc             %g1                     /*  IEU0                                */;     \
+       fcmpgt32        %fz, %f8, %g7           /*  FPM         Group                   */;     \
+       srl             %g1, 1, %g1             /*  IEU0                                */;     \
+       inc             %g2                     /*  IEU1                                */;     \
+       fcmpgt32        %fz, %f10, %o3          /*  FPM         Group                   */;     \
+       srl             %g2, 1, %g2             /*  IEU0                                */;     \
+       add             %o2, %g1, %o2           /*  IEU1                                */;     \
+       add             %g3, 1, %g3             /*  IEU0        Group                   */;     \
+       srl             %g3, 1, %g3             /*  IEU0        Group                   */;     \
+       add             %o2, %g2, %o2           /*  IEU1                                */;     \
+       inc             %g5                     /*  IEU0        Group                   */;     \
+       add             %o2, %g3, %o2           /*  IEU1                                */;
+
+#define DO_THE_TRICK(O12,O14,f0,f2,f4,f6,f8,f10,f12,f14,F0,F2,F4,F6,F8,F10,F12,F14)            \
+       fcmpgt32        %O12, %f12, %o4         /*  FPM         Group                   */;     \
+       srl             %g5, 1, %g5             /*  IEU0                                */;     \
+       inc             %g7                     /*  IEU1                                */;     \
+       fpadd32         %F0, %f0, %F0           /*  FPA                                 */;     \
+       fcmpgt32        %O14, %f14, %o5         /*  FPM         Group                   */;     \
+       srl             %g7, 1, %g7             /*  IEU0                                */;     \
+       add             %o2, %g5, %o2           /*  IEU1                                */;     \
+       fpadd32         %F2, %f2, %F2           /*  FPA                                 */;     \
+       inc             %o3                     /*  IEU0        Group                   */;     \
+       add             %o2, %g7, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %f0, %F0, %g1           /*  FPM         Group                   */;     \
+       srl             %o3, 1, %o3             /*  IEU0                                */;     \
+       inc             %o4                     /*  IEU1                                */;     \
+       fpadd32         %F4, %f4, %F4           /*  FPA                                 */;     \
+       fcmpgt32        %f2, %F2, %g2           /*  FPM         Group                   */;     \
+       srl             %o4, 1, %o4             /*  IEU0                                */;     \
+       add             %o2, %o3, %o2           /*  IEU1                                */;     \
+       fpadd32         %F6, %f6, %F6           /*  FPA                                 */;     \
+       inc             %o5                     /*  IEU0        Group                   */;     \
+       add             %o2, %o4, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %f4, %F4, %g3           /*  FPM         Group                   */;     \
+       srl             %o5, 1, %o5             /*  IEU0                                */;     \
+       inc             %g1                     /*  IEU1                                */;     \
+       fpadd32         %F8, %f8, %F8           /*  FPA                                 */;     \
+       fcmpgt32        %f6, %F6, %g5           /*  FPM         Group                   */;     \
+       srl             %g1, 1, %g1             /*  IEU0                                */;     \
+       add             %o2, %o5, %o2           /*  IEU1                                */;     \
+       fpadd32         %F10, %f10, %F10        /*  FPA                                 */;     \
+       inc             %g2                     /*  IEU0        Group                   */;     \
+       add             %o2, %g1, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %f8, %F8, %g7           /*  FPM         Group                   */;     \
+       srl             %g2, 1, %g2             /*  IEU0                                */;     \
+       inc             %g3                     /*  IEU1                                */;     \
+       fpadd32         %F12, %f12, %F12        /*  FPA                                 */;     \
+       fcmpgt32        %f10, %F10, %o3         /*  FPM         Group                   */;     \
+       srl             %g3, 1, %g3             /*  IEU0                                */;     \
+       add             %o2, %g2, %o2           /*  IEU1                                */;     \
+       fpadd32         %F14, %f14, %F14        /*  FPA                                 */;     \
+       inc             %g5                     /*  IEU0        Group                   */;     \
+       add             %o2, %g3, %o2           /*  IEU1                                */;
+
+#define END_THE_TRICK(O12,O14,f0,f2,f4,f6,f8,f10,f12,f14,S0,S1,S2,S3,T0,T1,U0,fz)              \
+       fcmpgt32        %O12, %f12, %o4         /*  FPM         Group                   */;     \
+       srl             %g5, 1, %g5             /*  IEU0                                */;     \
+       inc             %g7                     /*  IEU1                                */;     \
+       fpadd32         %f2, %f0, %S0           /*  FPA                                 */;     \
+       fcmpgt32        %O14, %f14, %o5         /*  FPM         Group                   */;     \
+       srl             %g7, 1, %g7             /*  IEU0                                */;     \
+       add             %o2, %g5, %o2           /*  IEU1                                */;     \
+       fpadd32         %f6, %f4, %S1           /*  FPA                                 */;     \
+       inc             %o3                     /*  IEU0        Group                   */;     \
+       add             %o2, %g7, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %f0, %S0, %g1           /*  FPM         Group                   */;     \
+       srl             %o3, 1, %o3             /*  IEU0                                */;     \
+       inc             %o4                     /*  IEU1                                */;     \
+       fpadd32         %f10, %f8, %S2          /*  FPA                                 */;     \
+       fcmpgt32        %f4, %S1, %g2           /*  FPM         Group                   */;     \
+       srl             %o4, 1, %o4             /*  IEU0                                */;     \
+       add             %o2, %o3, %o2           /*  IEU1                                */;     \
+       fpadd32         %f14, %f12, %S3         /*  FPA                                 */;     \
+       inc             %o5                     /*  IEU0        Group                   */;     \
+       add             %o2, %o4, %o2           /*  IEU1                                */;     \
+       fzero           %fz                     /*  FPA                                 */;     \
+       fcmpgt32        %f8, %S2, %g3           /*  FPM         Group                   */;     \
+       srl             %o5, 1, %o5             /*  IEU0                                */;     \
+       inc             %g1                     /*  IEU1                                */;     \
+       fpadd32         %S0, %S1, %T0           /*  FPA                                 */;     \
+       fcmpgt32        %f12, %S3, %g5          /*  FPM         Group                   */;     \
+       srl             %g1, 1, %g1             /*  IEU0                                */;     \
+       add             %o2, %o5, %o2           /*  IEU1                                */;     \
+       fpadd32         %S2, %S3, %T1           /*  FPA                                 */;     \
+       inc             %g2                     /*  IEU0        Group                   */;     \
+       add             %o2, %g1, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %S0, %T0, %g7           /*  FPM         Group                   */;     \
+       srl             %g2, 1, %g2             /*  IEU0                                */;     \
+       inc             %g3                     /*  IEU1                                */;     \
+       fcmpgt32        %S2, %T1, %o3           /*  FPM         Group                   */;     \
+       srl             %g3, 1, %g3             /*  IEU0                                */;     \
+       add             %o2, %g2, %o2           /*  IEU1                                */;     \
+       inc             %g5                     /*  IEU0        Group                   */;     \
+       add             %o2, %g3, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %fz, %f2, %o4           /*  FPM         Group                   */;     \
+       srl             %g5, 1, %g5             /*  IEU0                                */;     \
+       inc             %g7                     /*  IEU1                                */;     \
+       fpadd32         %T0, %T1, %U0           /*  FPA                                 */;     \
+       fcmpgt32        %fz, %f6, %o5           /*  FPM         Group                   */;     \
+       srl             %g7, 1, %g7             /*  IEU0                                */;     \
+       add             %o2, %g5, %o2           /*  IEU1                                */;     \
+       inc             %o3                     /*  IEU0        Group                   */;     \
+       add             %o2, %g7, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %fz, %f10, %g1          /*  FPM         Group                   */;     \
+       srl             %o3, 1, %o3             /*  IEU0                                */;     \
+       inc             %o4                     /*  IEU1                                */;     \
+       fcmpgt32        %fz, %f14, %g2          /*  FPM         Group                   */;     \
+       srl             %o4, 1, %o4             /*  IEU0                                */;     \
+       add             %o2, %o3, %o2           /*  IEU1                                */;     \
+       std             %U0, [%sp + STACKOFF]   /*  Store       Group                   */;     \
+       inc             %o5                     /*  IEU0                                */;     \
+       sub             %o2, %o4, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %fz, %S1, %g3           /*  FPM         Group                   */;     \
+       srl             %o5, 1, %o5             /*  IEU0                                */;     \
+       inc             %g1                     /*  IEU1                                */;     \
+       fcmpgt32        %fz, %S3, %g5           /*  FPM         Group                   */;     \
+       srl             %g1, 1, %g1             /*  IEU0                                */;     \
+       sub             %o2, %o5, %o2           /*  IEU1                                */;     \
+       ldx             [%sp + STACKOFF], %o5   /*  Load        Group                   */;     \
+       inc             %g2                     /*  IEU0                                */;     \
+       sub             %o2, %g1, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %fz, %T1, %g7           /*  FPM         Group                   */;     \
+       srl             %g2, 1, %g2             /*  IEU0                                */;     \
+       inc             %g3                     /*  IEU1                                */;     \
+       fcmpgt32        %T0, %U0, %o3           /*  FPM         Group                   */;     \
+       srl             %g3, 1, %g3             /*  IEU0                                */;     \
+       sub             %o2, %g2, %o2           /*  IEU1                                */;     \
+       inc             %g5                     /*  IEU0        Group                   */;     \
+       sub             %o2, %g3, %o2           /*  IEU1                                */;     \
+       fcmpgt32        %fz, %U0, %o4           /*  FPM         Group                   */;     \
+       srl             %g5, 1, %g5             /*  IEU0                                */;     \
+       inc             %g7                     /*  IEU1                                */;     \
+       srl             %g7, 1, %g7             /*  IEU0        Group                   */;     \
+       sub             %o2, %g5, %o2           /*  IEU1                                */;     \
+       inc             %o3                     /*  IEU0        Group                   */;     \
+       sub             %o2, %g7, %o2           /*  IEU1                                */;     \
+       srl             %o3, 1, %o3             /*  IEU0        Group                   */;     \
+       inc             %o4                     /*  IEU1                                */;     \
+       srl             %o4, 1, %o4             /*  IEU0        Group                   */;     \
+       add             %o2, %o3, %o2           /*  IEU1                                */;     \
+       sub             %o2, %o4, %o2           /*  IEU0        Group                   */;     \
+       addcc           %o2, %o5, %o2           /*  IEU1        Group                   */;     \
+       bcs,a,pn        %xcc, 33f               /*  CTI                                 */;     \
+        add            %o2, 1, %o2             /*  IEU0                                */;     \
+33:                                            /*  That's it                           */;
+
+#define CSUM_LASTCHUNK(offset)                                                                 \
+        ldx             [%o0 - offset - 0x10], %g2;                                            \
+        ldx             [%o0 - offset - 0x08], %g3;                                            \
+        addcc           %g2, %o2, %o2;                                                         \
+        bcs,a,pn        %xcc, 31f;                                                             \
+         add            %o2, 1, %o2;                                                           \
+31:     addcc           %g3, %o2, %o2;                                                         \
+        bcs,a,pn        %xcc, 32f;                                                             \
+         add            %o2, 1, %o2;                                                           \
+32:
+
+       .text
+       .globl          csum_partial
+       .align          32
+csum_partial:
+       andcc           %o0, 7, %g0             /*  IEU1        Group                   */
+       be,pt           %icc, 4f                /*  CTI                                 */
+        andcc          %o0, 0x38, %g3          /*  IEU1                                */
+       mov             1, %g5                  /*  IEU0        Group                   */
+       cmp             %o1, 6                  /*  IEU1                                */
+       bl,pn           %icc, 21f               /*  CTI                                 */
+        andcc          %o0, 2, %g0             /*  IEU1        Group                   */
+       be,pt           %icc, 1f                /*  CTI                                 */
+        and            %o0, 4, %g7             /*  IEU0                                */
+       lduh            [%o0], %g2              /*  Load                                */
+       sub             %o1, 2, %o1             /*  IEU0        Group                   */
+       add             %o0, 2, %o0             /*  IEU1                                */
+       andcc           %o0, 4, %g7             /*  IEU1        Group                   */
+       sll             %g5, 16, %g5            /*  IEU0                                */
+       sll             %g2, 16, %g2            /*  IEU0        Group                   */
+       addcc           %g2, %o2, %o2           /*  IEU1        Group (regdep)          */
+       bcs,a,pn        %icc, 1f                /*  CTI                                 */
+        add            %o2, %g5, %o2           /*  IEU0                                */
+1:     ld              [%o0], %g2              /*  Load                                */
+       brz,a,pn        %g7, 4f                 /*  CTI+IEU1    Group                   */
+        and            %o0, 0x38, %g3          /*  IEU0                                */
+       add             %o0, 4, %o0             /*  IEU0        Group                   */
+       sub             %o1, 4, %o1             /*  IEU1                                */
+       addcc           %g2, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %icc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     and             %o0, 0x38, %g3          /*  IEU1        Group                   */
+4:     srl             %o2, 0, %o2             /*  IEU0        Group                   */
+       mov             0x40, %g1               /*  IEU1                                */
+       brz,pn          %g3, 3f                 /*  CTI+IEU1    Group                   */
+        sub            %g1, %g3, %g1           /*  IEU0                                */
+       cmp             %o1, 56                 /*  IEU1        Group                   */
+       blu,pn          %icc, 20f               /*  CTI                                 */
+        andcc          %o0, 8, %g0             /*  IEU1        Group                   */
+       be,pn           %icc, 1f                /*  CTI                                 */
+        ldx            [%o0], %g2              /*  Load                                */
+       add             %o0, 8, %o0             /*  IEU0        Group                   */
+       sub             %o1, 8, %o1             /*  IEU1                                */
+       addcc           %g2, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     andcc           %g1, 0x10, %g0          /*  IEU1        Group                   */
+       be,pn           %icc, 2f                /*  CTI                                 */
+        and            %g1, 0x20, %g1          /*  IEU0                                */
+       ldx             [%o0], %g2              /*  Load                                */
+       ldx             [%o0+8], %g3            /*  Load        Group                   */
+       add             %o0, 16, %o0            /*  IEU0                                */
+       sub             %o1, 16, %o1            /*  IEU1                                */
+       addcc           %g2, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     addcc           %g3, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 2f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+2:     brz,pn          %g1, 3f                 /*  CTI+IEU1    Group                   */
+        ldx            [%o0], %g2              /*  Load                                */
+       ldx             [%o0+8], %g3            /*  Load        Group                   */
+       ldx             [%o0+16], %g5           /*  Load        Group                   */
+       ldx             [%o0+24], %g7           /*  Load        Group                   */
+       add             %o0, 32, %o0            /*  IEU0                                */
+       sub             %o1, 32, %o1            /*  IEU1                                */
+       addcc           %g2, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     addcc           %g3, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     addcc           %g5, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     addcc           %g7, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 3f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+3:     cmp             %o1, 0xc0               /*  IEU1        Group                   */
+       blu,pn          %icc, 20f               /*  CTI                                 */
+        sllx           %o2, 32, %g1            /*  IEU0                                */
+       addcc           %o2, %g1, %o2           /*  IEU1        Group                   */
+       sub             %o1, 0xc0, %o1          /*  IEU0                                */
+       wr              %g0, ASI_BLK_P, %asi    /*  LSU         Group                   */
+#ifdef __KERNEL__
+       wr              %g0, FPRS_FEF, %fprs    /*  LSU         Group                   */
+#endif
+       membar          #StoreLoad              /*  LSU         Group                   */
+       srlx            %o2, 32, %o2            /*  IEU0        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU1                                */
+1:     andcc           %o1, 0x80, %g0          /*  IEU1        Group                   */
+       bne,pn          %icc, 7f                /*  CTI                                 */
+        andcc          %o1, 0x40, %g0          /*  IEU1        Group                   */
+       be,pn           %icc, 6f                /*  CTI                                 */
+        fzero          %f12                    /*  FPA                                 */
+       fzero           %f14                    /*  FPA         Group                   */
+       ldda            [%o0 + 0x000] %asi, %f16
+       ldda            [%o0 + 0x040] %asi, %f32
+       ldda            [%o0 + 0x080] %asi, %f48
+       START_THE_TRICK(f12,f16,f18,f20,f22,f24,f26)
+       ba,a,pt         %xcc, 3f
+6:     sub             %o0, 0x40, %o0          /*  IEU0        Group                   */
+       fzero           %f28                    /*  FPA                                 */
+       fzero           %f30                    /*  FPA         Group                   */
+       ldda            [%o0 + 0x040] %asi, %f32
+       ldda            [%o0 + 0x080] %asi, %f48
+       ldda            [%o0 + 0x0c0] %asi, %f0
+       START_THE_TRICK(f28,f32,f34,f36,f38,f40,f42)
+       ba,a,pt         %xcc, 4f
+7:     bne,pt          %icc, 8f                /*  CTI                                 */
+        fzero          %f44                    /*  FPA                                 */
+       add             %o0, 0x40, %o0          /*  IEU0        Group                   */
+       fzero           %f60                    /*  FPA                                 */
+       fzero           %f62                    /*  FPA         Group                   */
+       ldda            [%o0 - 0x040] %asi, %f0
+       ldda            [%o0 + 0x000] %asi, %f16
+       ldda            [%o0 + 0x040] %asi, %f32
+       START_THE_TRICK(f60,f0,f2,f4,f6,f8,f10)
+       ba,a,pt         %xcc, 2f
+8:     add             %o0, 0x80, %o0          /*  IEU0        Group                   */
+       fzero           %f46                    /*  FPA                                 */
+       ldda            [%o0 - 0x080] %asi, %f48
+       ldda            [%o0 - 0x040] %asi, %f0
+       ldda            [%o0 + 0x000] %asi, %f16
+       START_THE_TRICK(f44,f48,f50,f52,f54,f56,f58)
+1:     DO_THE_TRICK(f44,f46,f48,f50,f52,f54,f56,f58,f60,f62,f0,f2,f4,f6,f8,f10,f12,f14)
+       ldda            [%o0 + 0x040] %asi, %f32
+2:     DO_THE_TRICK(f60,f62,f0,f2,f4,f6,f8,f10,f12,f14,f16,f18,f20,f22,f24,f26,f28,f30)
+       ldda            [%o0 + 0x080] %asi, %f48
+3:     DO_THE_TRICK(f12,f14,f16,f18,f20,f22,f24,f26,f28,f30,f32,f34,f36,f38,f40,f42,f44,f46)
+       ldda            [%o0 + 0x0c0] %asi, %f0
+4:     DO_THE_TRICK(f28,f30,f32,f34,f36,f38,f40,f42,f44,f46,f48,f50,f52,f54,f56,f58,f60,f62)
+       add             %o0, 0x100, %o0         /*  IEU0        Group                   */
+       subcc           %o1, 0x100, %o1         /*  IEU1                                */
+       bgeu,a,pt       %icc, 1b                /*  CTI                                 */
+        ldda           [%o0 + 0x000] %asi, %f16
+       membar          #Sync                   /*  LSU         Group                   */
+       DO_THE_TRICK(f44,f46,f48,f50,f52,f54,f56,f58,f60,f62,f0,f2,f4,f6,f8,f10,f12,f14)
+       END_THE_TRICK(f60,f62,f0,f2,f4,f6,f8,f10,f12,f14,f16,f18,f20,f22,f24,f26,f28,f30)
+       and             %o1, 0x3f, %o1          /*  IEU0        Group                   */
+#ifdef __KERNEL__
+       wr              %g0, 0, %fprs           /*  LSU         Group                   */
+#endif
+20:    andcc           %o1, 0xf0, %g1          /*  IEU1        Group                   */
+       be,pn           %icc, 23f               /*  CTI                                 */
+        and            %o1, 0xf, %o3           /*  IEU0                                */
+22:    rd              %pc, %g7                /*  LSU         Group                   */
+       sll             %g1, 1, %o4             /*  IEU0        Group                   */
+       sub             %g7, %o4, %g7           /*  IEU0        Group (regdep)          */
+       jmpl            %g7 + (23f - 22b), %g0  /*  CTI         Group brk forced        */
+       add             %o0, %g1, %o0           /*  IEU0                                */
+       CSUM_LASTCHUNK(0xe0)
+       CSUM_LASTCHUNK(0xd0)
+       CSUM_LASTCHUNK(0xc0)
+       CSUM_LASTCHUNK(0xb0)
+       CSUM_LASTCHUNK(0xa0)
+       CSUM_LASTCHUNK(0x90)
+       CSUM_LASTCHUNK(0x80)
+       CSUM_LASTCHUNK(0x70)
+       CSUM_LASTCHUNK(0x60)
+       CSUM_LASTCHUNK(0x50)
+       CSUM_LASTCHUNK(0x40)
+       CSUM_LASTCHUNK(0x30)
+       CSUM_LASTCHUNK(0x20)
+       CSUM_LASTCHUNK(0x10)
+       CSUM_LASTCHUNK(0x00)
+23:    brnz,pn         %o3, 26f                /*  CTI+IEU1    Group                   */
+24:     sllx           %o2, 32, %g1            /*  IEU0                                */
+25:    addcc           %o2, %g1, %o0           /*  IEU1        Group                   */
+       srlx            %o0, 32, %o0            /*  IEU0        Group (regdep)          */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o0, 1, %o0             /*  IEU1                                */
+1:     retl                                    /*  CTI         Group brk forced        */
+        srl            %o0, 0, %o0             /*  IEU0                                */
+26:    andcc           %o1, 8, %g0             /*  IEU1        Group                   */
+       be,pn           %icc, 1f                /*  CTI                                 */
+        ldx            [%o0], %g3              /*  Load                                */
+       add             %o0, 8, %o0             /*  IEU0        Group                   */
+       addcc           %g3, %o2, %o2           /*  IEU1        Group                   */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     andcc           %o1, 4, %g0             /*  IEU1        Group                   */
+       be,a,pn         %icc, 1f                /*  CTI                                 */
+        clr            %g2                     /*  IEU0                                */
+       ld              [%o0], %g2              /*  Load                                */
+       add             %o0, 4, %o0             /*  IEU0        Group                   */
+       sllx            %g2, 32, %g2            /*  IEU0        Group                   */
+1:     andcc           %o1, 2, %g0             /*  IEU1                                */
+       be,a,pn         %icc, 1f                /*  CTI                                 */
+        clr            %o4                     /*  IEU0        Group                   */
+       lduh            [%o0], %o4              /*  Load                                */
+       add             %o0, 2, %o0             /*  IEU1                                */
+       sll             %o4, 16, %o4            /*  IEU0        Group                   */
+1:     andcc           %o1, 1, %g0             /*  IEU1                                */
+       be,a,pn         %icc, 1f                /*  CTI                                 */
+        clr            %o5                     /*  IEU0        Group                   */
+       ldub            [%o0], %o5              /*  Load                                */
+       sll             %o5, 8, %o5             /*  IEU0        Group                   */
+1:     or              %g2, %o4, %o4           /*  IEU1                                */
+       or              %o5, %o4, %o4           /*  IEU0        Group (regdep)          */
+       addcc           %o4, %o2, %o2           /*  IEU1        Group (regdep)          */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     ba,pt           %xcc, 25b               /*  CTI         Group                   */
+        sllx           %o2, 32, %g1            /*  IEU0                                */
+21:    srl             %o2, 0, %o2             /*  IEU0        Group                   */
+       cmp             %o1, 0                  /*  IEU1                                */
+       be,pn           %icc, 24b               /*  CTI                                 */
+        andcc          %o1, 4, %g0             /*  IEU1        Group                   */
+       be,a,pn         %icc, 1f                /*  CTI                                 */
+        clr            %g2                     /*  IEU0                                */
+       lduh            [%o0], %g3              /*  Load                                */
+       lduh            [%o0+2], %g2            /*  Load        Group                   */
+       add             %o0, 4, %o0             /*  IEU0        Group                   */
+       sllx            %g3, 48, %g3            /*  IEU0        Group                   */
+       sllx            %g2, 32, %g2            /*  IEU0        Group                   */
+       or              %g3, %g2, %g2           /*  IEU0        Group                   */
+1:     andcc           %o1, 2, %g0             /*  IEU1                                */
+       be,a,pn         %icc, 1f                /*  CTI                                 */
+        clr            %o4                     /*  IEU0        Group                   */
+       lduh            [%o0], %o4              /*  Load                                */
+       add             %o0, 2, %o0             /*  IEU1                                */
+       sll             %o4, 16, %o4            /*  IEU0        Group                   */
+1:     andcc           %o1, 1, %g0             /*  IEU1                                */
+       be,a,pn         %icc, 1f                /*  CTI                                 */
+        clr            %o5                     /*  IEU0        Group                   */
+       ldub            [%o0], %o5              /*  Load                                */
+       sll             %o5, 8, %o5             /*  IEU0        Group                   */
+1:     or              %g2, %o4, %o4           /*  IEU1                                */
+       or              %o5, %o4, %o4           /*  IEU0        Group (regdep)          */
+       addcc           %o4, %o2, %o2           /*  IEU1        Group (regdep)          */
+       bcs,a,pn        %xcc, 1f                /*  CTI                                 */
+        add            %o2, 1, %o2             /*  IEU0                                */
+1:     ba,pt           %xcc, 25b               /*  CTI         Group                   */
+        sllx           %o2, 32, %g1            /*  IEU0                                */
index 179e17960e76f6178c03a08a34669d2c07d97d68..703370fc64d4932a33d37d9f6fafde28ab77401b 100644 (file)
         * into the accumulated sum.  The following is much better.
         *
         * This should run at max bandwidth for ecache hits, a better
-        * technique is to use VIS and fpu operations somehow, but
-        * this requires more reasoning on my part...
-        *
-        * Assuming ecache hits and branches predicted well, this
-        * can be expected to run at a rate of 16 cycles per 64-bytes
-        * of data summed.  (the old code summed 32 bytes in 20
-        * cycles, with numerous bubbles and unnecessary stalls)
+        * technique is to use VIS and fpu operations. This is already
+        * done for csum_partial, needs to be written for the copy stuff
+        * still.
         */
-#define CSUM_ECACHE_LOAD(buf, offset, t0, t1, t2, t3, t4, t5, t6, t7)                  \
-       ldx     [buf + offset + 0x00], t0;                                              \
-       ldx     [buf + offset + 0x08], t1;                                              \
-       ldx     [buf + offset + 0x10], t2;                                              \
-       ldx     [buf + offset + 0x18], t3;                                              \
-       ldx     [buf + offset + 0x20], t4;                                              \
-       ldx     [buf + offset + 0x28], t5;                                              \
-       ldx     [buf + offset + 0x30], t6;                                              \
-       ldx     [buf + offset + 0x38], t7;                                              \
-       nop; nop;       /* THIS IS CRITICAL!!!!!!!!! */
-
-#define CSUM_ECACHE_BLOCK_LDNEXT(buf, offset, sum, t0, t1, t2, t3, t4, t5, t6, t7)     \
-       addcc           sum, t0, sum;                                                   \
-       bcc,pt          %xcc, 11f;                                                      \
-        ldx            [buf + offset + 0x00], t0;                                      \
-       add             sum, 1, sum;                                                    \
-11:    addcc           sum, t1, sum;                                                   \
-       bcc,pt          %xcc, 12f;                                                      \
-        ldx            [buf + offset + 0x08], t1;                                      \
-       add             sum, 1, sum;                                                    \
-12:    addcc           sum, t2, sum;                                                   \
-       bcc,pt          %xcc, 13f;                                                      \
-        ldx            [buf + offset + 0x10], t2;                                      \
-       add             sum, 1, sum;                                                    \
-13:    addcc           sum, t3, sum;                                                   \
-       bcc,pt          %xcc, 14f;                                                      \
-        ldx            [buf + offset + 0x18], t3;                                      \
-       add             sum, 1, sum;                                                    \
-14:    addcc           sum, t4, sum;                                                   \
-       bcc,pt          %xcc, 15f;                                                      \
-        ldx            [buf + offset + 0x20], t4;                                      \
-       add             sum, 1, sum;                                                    \
-15:    addcc           sum, t5, sum;                                                   \
-       bcc,pt          %xcc, 16f;                                                      \
-        ldx            [buf + offset + 0x28], t5;                                      \
-       add             sum, 1, sum;                                                    \
-16:    addcc           sum, t6, sum;                                                   \
-       bcc,pt          %xcc, 17f;                                                      \
-        ldx            [buf + offset + 0x30], t6;                                      \
-       add             sum, 1, sum;                                                    \
-17:    addcc           sum, t7, sum;                                                   \
-       bcc,pt          %xcc, 18f;                                                      \
-        ldx            [buf + offset + 0x38], t7;                                      \
-       add             sum, 1, sum;                                                    \
-18:    nop; nop;       /* DO NOT TOUCH! */
-
-#define CSUM_ECACHE_BLOCK(sum, t0, t1, t2, t3, t4, t5, t6, t7)                         \
-       addcc           sum, t0, sum;                                                   \
-       bcs,a,pn        %xcc, 21f;                                                      \
-        add            sum, 1, sum;                                                    \
-21:    addcc           sum, t1, sum;                                                   \
-       bcs,a,pn        %xcc, 22f;                                                      \
-        add            sum, 1, sum;                                                    \
-22:    addcc           sum, t2, sum;                                                   \
-       bcs,a,pn        %xcc, 23f;                                                      \
-        add            sum, 1, sum;                                                    \
-23:    addcc           sum, t3, sum;                                                   \
-       bcs,a,pn        %xcc, 24f;                                                      \
-        add            sum, 1, sum;                                                    \
-24:    addcc           sum, t4, sum;                                                   \
-       bcs,a,pn        %xcc, 25f;                                                      \
-        add            sum, 1, sum;                                                    \
-25:    addcc           sum, t5, sum;                                                   \
-       bcs,a,pn        %xcc, 26f;                                                      \
-        add            sum, 1, sum;                                                    \
-26:    addcc           sum, t6, sum;                                                   \
-       bcs,a,pn        %xcc, 27f;                                                      \
-        add            sum, 1, sum;                                                    \
-27:    addcc           sum, t7, sum;                                                   \
-       bcs,a,pn        %xcc, 28f;                                                      \
-        add            sum, 1, sum;                                                    \
-28:
-
-#define CSUM_LASTCHUNK(buf, offset, sum, t0, t1)                                       \
-       ldx             [buf - offset - 0x08], t0;                                      \
-       ldx             [buf - offset - 0x00], t1;                                      \
-       addcc           t0, sum, sum;                                                   \
-       bcs,a,pn        %xcc, 31f;                                                      \
-        add            sum, 1, sum;                                                    \
-31:    addcc           t1, sum, sum;                                                   \
-       bcs,a,pn        %xcc, 32f;                                                      \
-        add            sum, 1, sum;                                                    \
-32:
 
        .text
-       /* Keep this garbage from swiping the icache. */
-csum_partial_end_cruft:
-       andcc           %o1, 8, %g0                     ! IEU1  Group
-       be,pn           %icc, 1f                        ! CTI
-        and            %o1, 4, %g5                     ! IEU0
-       ldx             [%o0 + 0x00], %g2               ! Load  Group
-       add             %o0, 0x8, %o0                   ! IEU0
-       addcc           %g2, %o2, %o2                   ! IEU1  Group + 2 bubbles
-       bcs,a,pn        %xcc, 1f                        ! CTI
-        add            %o2, 1, %o2                     ! IEU0  4 clocks (mispredict)
-1:     andcc           %o1, 2, %g0                     ! IEU1  Group
-       brz,pn          %g5, 1f                         ! CTI   Group (needs IEU1)
-        clr            %g2                             ! IEU0
-       ld              [%o0], %g2                      ! Load
-       add             %o0, 4, %o0                     ! IEU0  Group
-       sllx            %g2, 32, %g2                    ! IEU0  Group + 2 bubbles
-1:     and             %o1, 1, %o1                     ! IEU1
-       be,pn           %icc, 1f                        ! CTI
-        clr            %o4                             ! IEU0  Group
-       lduh            [%o0], %o4                      ! Load
-       add             %o0, 2, %o0                     ! IEU1
-       sll             %o4, 16, %o4                    ! IEU0  Group + 2 bubbles
-1:     brz,pn          %o1, 1f                         ! CTI
-        clr            %o5                             ! IEU1
-       ldub            [%o0], %o5                      ! Load  Group
-       sll             %o5, 8, %o5                     ! IEU0  Group + 2 bubbles
-1:     or              %g2, %o4, %o4                   ! IEU1
-       or              %o5, %o4, %o4                   ! IEU0  Group
-       addcc           %o4, %o2, %o2                   ! IEU1  Group (regdep)
-       bcc,pt          %xcc, cfold                     ! CTI
-        sethi          %uhi(PAGE_OFFSET), %g4          ! IEU0
-1:     b,pt            %xcc, cfold                     ! CTI   Group
-        add            %o2, 1, %o2                     ! IEU0
-
-csum_partial_fixit:
-       bl,pn           %icc, cpte                      ! CTI   Group
-        and            %o1, 0xf, %o3                   ! IEU0
-       andcc           %o0, 0x2, %g0                   ! IEU1
-       be,pn           %icc, 1f                        ! CTI   Group
-        and            %o0, 0x4, %g7                   ! IEU0
-       lduh            [%o0 + 0x00], %g2               ! Load
-       sub             %o1, 2, %o1                     ! IEU0  Group
-       addcc           %o0, 2, %o0                     ! IEU1
-       and             %o0, 0x4, %g7                   ! IEU0  Group
-       sll             %g2, 16, %g2                    ! IEU0  Group (no load stall)
-       addcc           %g2, %o2, %o2                   ! IEU1  Group (regdep)
-       bcc,pt          %icc, 0f                        ! CTI
-        andn           %o1, 0xff, %o3                  ! IEU0
-       srl             %o2, 16, %g2                    ! IEU0  Group
-       b,pt            %xcc, 9f                        ! CTI
-        add            %g2, 1, %g2                     ! IEU1
-0:     srl             %o2, 16, %g2                    ! IEU0  Group 8-(
-9:     sll             %o2, 16, %o2                    ! IEU0  Group 8-(
-       sll             %g2, 16, %g3                    ! IEU0  Group 8-(
-       srl             %o2, 16, %o2                    ! IEU0  Group 8-(
-       or              %g3, %o2, %o2                   ! IEU1
-1:     brnz,pt         %g7, 2f                         ! CTI   Group
-        sub            %o1, 4, %o1                     ! IEU0
-       b,pt            %xcc, csum_partial_aligned      ! CTI   Group
-        add            %o1, 4, %o1                     ! IEU0
-2:     ld              [%o0 + 0x00], %g2               ! Load  Group
-       add             %o0, 4, %o0                     ! IEU0
-       andn            %o1, 0xff, %o3                  ! IEU1
-       addcc           %g2, %o2, %o2                   ! IEU1  Group + 2 bubbles
-       bcc,pt          %xcc, csum_partial_aligned      ! CTI
-        nop                                            ! IEU0
-       b,pt            %xcc, csum_partial_aligned      ! CTI   Group
-        add            %o2, 1, %o2                     ! IEU0
-
-       .align          32
-       .globl          csum_partial
-csum_partial:                                          /* %o0=buf, %o1=len, %o2=sum */
-       andcc           %o0, 0x7, %g0                   ! IEU1  Group
-       srl             %o1, 0, %o1                     ! IEU0
-       srl             %o2, 0, %o2                     ! IEU0  Group
-       be,pt           %icc, csum_partial_aligned      ! CTI
-        andn           %o1, 0xff, %o3                  ! IEU1
-       b,pt            %xcc, csum_partial_fixit        ! CTI   Group
-        cmp            %o1, 6                          ! IEU0
-       nop
-csum_partial_aligned:
-       brz,pt          %o3, 3f                         ! CTI   Group
-        and            %o1, 0xf0, %g1                  ! IEU0
-5:     CSUM_ECACHE_LOAD(        %o0, 0x000,      %o4, %o5, %g2, %g3, %g4, %g5, %g1, %g7)
-       CSUM_ECACHE_BLOCK_LDNEXT(%o0, 0x040, %o2, %o4, %o5, %g2, %g3, %g4, %g5, %g1, %g7)
-       CSUM_ECACHE_BLOCK_LDNEXT(%o0, 0x080, %o2, %o4, %o5, %g2, %g3, %g4, %g5, %g1, %g7)
-       CSUM_ECACHE_BLOCK_LDNEXT(%o0, 0x0c0, %o2, %o4, %o5, %g2, %g3, %g4, %g5, %g1, %g7)
-       CSUM_ECACHE_BLOCK(                   %o2, %o4, %o5, %g2, %g3, %g4, %g5, %g1, %g7)
-       subcc           %o3, 256, %o3                   ! IEU1  Group
-       bne,pt          %icc, 5b                        ! CTI
-        add            %o0, 256, %o0                   ! IEU0
-       and             %o1, 0xf0, %g1                  ! IEU0  Group
-3:     brz,pn          %g1, cpte                       ! CTI
-        and            %o1, 0xf, %o3                   ! IEU1  Group
-10:    rd              %pc, %g7                        ! LSU   Group + 4 clocks
-       sll             %g1, 1, %o4                     ! IEU0  Group
-       sub             %g7, %o4, %g7                   ! IEU1
-       jmp             %g7 + %lo(cpte - 10b)           ! CTI   Group brk forced
-        add            %o0, %g1, %o0                   ! IEU0
-cptbl: CSUM_LASTCHUNK(%o0, 0xe8, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0xd8, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0xc8, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0xb8, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0xa8, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x98, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x88, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x78, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x68, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x58, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x48, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x38, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x28, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x18, %o2, %g2, %g3)
-       CSUM_LASTCHUNK(%o0, 0x08, %o2, %g2, %g3)
-cpte:  brnz,pn         %o3, csum_partial_end_cruft     ! CTI   Group
-        sethi          %uhi(PAGE_OFFSET), %g4          ! IEU0
-cfold: sllx            %o2, 32, %o0                    ! IEU0  Group
-       addcc           %o2, %o0, %o0                   ! IEU1  Group (regdep)
-       srlx            %o0, 32, %o0                    ! IEU0  Group (regdep)
-       bcs,a,pn        %xcc, 1f                        ! CTI
-        add            %o0, 1, %o0                     ! IEU1  4 clocks (mispredict)
-1:     retl                                            ! CTI   Group brk forced
-        sllx           %g4, 32, %g4                    ! IEU0  Group
-
        .globl __csum_partial_copy_start, __csum_partial_copy_end
 __csum_partial_copy_start:
 
index 954ea751af83e74d9f3b76a1366816c94f57a0b8..5e16e12189ed72e46e65de8489eaf7caa04ce0c5 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fault.c,v 1.17 1997/07/04 01:41:10 davem Exp $
+/* $Id: fault.c,v 1.18 1997/07/17 02:20:56 davem Exp $
  * arch/sparc64/mm/fault.c: Page fault handlers for the 64-bit Sparc.
  *
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
index e9fc3b4cebd5e747366e7fb9b69f124f4d1ad820..9bb78d63eabb30495675212285d72a0816257a59 100644 (file)
@@ -318,7 +318,7 @@ static int loop_set_fd(struct loop_device *lo, kdev_t dev, unsigned int arg)
        }
 
        lo->lo_inode = inode;
-       lo_inode->i_count++;
+       lo->lo_inode->i_count++;
        lo->transfer = NULL;
        figure_loop_size(lo);
        MOD_INC_USE_COUNT;
index bf8814cec277673b6f10ac610acd9481160d54df..615fef33df267d1513facc5e5b63b11ff696b2ba 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: bwtwo.c,v 1.17 1997/06/06 10:56:28 jj Exp $
+/* $Id: bwtwo.c,v 1.18 1997/07/17 02:21:43 davem Exp $
  * bwtwo.c: bwtwo console driver
  *
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
index 498db40b32381ebc09a3b25e5333b1f0ebd1300f..40fb9fd70ea23adf8f36b0fd8e404bde4231c529 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: cgfourteen.c,v 1.23 1997/06/06 10:56:29 jj Exp $
+/* $Id: cgfourteen.c,v 1.24 1997/07/17 02:21:44 davem Exp $
  * cgfourteen.c: Sun SparcStation console support.
  *
  * Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx)
index 5346bca801a42d9f75c6bc30592f3fe098b8bb11..825d49b4adeaf34a7b30083c3dfc997dda67da2b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: cgsix.c,v 1.34 1997/07/15 09:48:50 jj Exp $
+/* $Id: cgsix.c,v 1.35 1997/07/17 02:21:45 davem Exp $
  * cgsix.c: cgsix frame buffer driver
  *
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
index 8db5f69f395b8f888cc4c3583f252882ce4be732..aea1bff3218254b56f166d320c588e0a7b200898 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: cgthree.c,v 1.22 1997/06/06 10:56:30 jj Exp $
+/* $Id: cgthree.c,v 1.23 1997/07/17 02:21:46 davem Exp $
  * cgtree.c: cg3 frame buffer driver
  *
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
index 5cd3f8ff67a1050897f844ff70da706d01972441..086f9b40ee1b7dbeb6a6f3c2c8f8c05b953c16e0 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: creator.c,v 1.6 1997/07/15 09:48:49 jj Exp $
+/* $Id: creator.c,v 1.7 1997/07/17 02:21:47 davem Exp $
  * creator.c: Creator/Creator3D frame buffer driver
  *
  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
index b15578d433ba77a0fef8b8dddd7b098bc82b0847..1b5d06e4bf4791f9bce62148f0f9e8e1234e2ccd 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: leo.c,v 1.20 1997/07/15 09:48:46 jj Exp $
+/* $Id: leo.c,v 1.21 1997/07/17 02:21:48 davem Exp $
  * leo.c: SUNW,leo 24/8bit frame buffer driver
  *
  * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
index 1f3365c8cef7eca3de861a5407698938ac02d94a..8855819754d57f1a9ceba8246986c8c61aea8452 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: sunfb.c,v 1.25 1997/07/01 09:12:06 jj Exp $
+/* $Id: sunfb.c,v 1.26 1997/07/17 02:21:48 davem Exp $
  * sunfb.c: Sun generic frame buffer support.
  *
  * Copyright (C) 1995, 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
index 863092e8f2b5ea6dfc22e8238e8bd9303aa654bf..20c14a687cdf2c77facd3dccc3d22457eeb31d38 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: tcx.c,v 1.16 1997/06/06 10:56:31 jj Exp $
+/* $Id: tcx.c,v 1.17 1997/07/17 02:21:50 davem Exp $
  * tcx.c: SUNW,tcx 24/8bit frame buffer driver
  *
  * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
index dbcd26c7e52d94ad4280a1bb1fea3996e143220e..7b7b1bd720fe3bfecb8477dd148fa3b783ecd0c9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: weitek.c,v 1.13 1997/06/06 10:56:31 jj Exp $
+/* $Id: weitek.c,v 1.14 1997/07/17 02:21:53 davem Exp $
  * weitek.c: Tadpole P9100/P9000 console driver
  *
  * Copyright (C) 1996 David Redman (djhr@tadpole.co.uk)
index 6cf629921b752d6619c33d5fe4f07b121521d970..eb3d65e65bb21ca2e01b9ce06a25b659cb604622 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: advansys.h,v 1997/05/28 00:23:06 bobf Exp bobf $ */
+/* $Id: advansys.h,v 1.6 1997/05/30 19:25:12 davem Exp $ */
 
 /*
  * advansys.h - Linux Host Driver for AdvanSys SCSI Adapters
index add3309f3433956282cc9110c3cb0038e5ded950..3b06d4c36b3dd15b616f28592b6d88eacedd40ec 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  $Id: nfsroot.c,v 1.37 1997/06/04 08:28:10 davem Exp $
+ *  $Id: nfsroot.c,v 1.38 1997/07/17 03:21:06 davem Exp $
  *
  *  Copyright (C) 1995, 1996  Gero Kuhlmann <gero@gkminix.han.de>
  *
@@ -78,7 +78,6 @@
 
 #include <asm/param.h>
 #include <linux/utsname.h>
-#include <linux/nametrans.h>
 #include <linux/in.h>
 #include <linux/if.h>
 #include <linux/inet.h>
@@ -833,9 +832,6 @@ __initfunc(static void root_do_bootp_ext(u8 *ext))
                        root_bootp_string(nfs_path, ext+1, *ext, NFS_MAXPATHLEN);
                        break;
        }
-#ifdef CONFIG_TRANS_NAMES
-       translations_dirty = 1;
-#endif
 }
 
 
@@ -1258,9 +1254,6 @@ __initfunc(static void root_nfs_addrs(char *addrs))
        system_utsname.domainname[0] = '\0';
        user_dev_name[0] = '\0';
        bootp_flag = rarp_flag = 1;
-#ifdef CONFIG_TRANS_NAMES
-       translations_dirty = 1;
-#endif
 
        /* The following is just a shortcut for automatic IP configuration */
        if (!strcmp(addrs, "bootp")) {
@@ -1306,9 +1299,6 @@ __initfunc(static void root_nfs_addrs(char *addrs))
                                }
                                strncpy(system_utsname.nodename, ip, __NEW_UTS_LEN);
                                system_utsname.nodename[__NEW_UTS_LEN] = '\0';
-#ifdef CONFIG_TRANS_NAMES
-                               translations_dirty = 1;
-#endif
                                break;
                        case 5:
                                strncpy(user_dev_name, ip, IFNAMSIZ);
@@ -1342,9 +1332,6 @@ __initfunc(static int root_nfs_setup(void))
        if (!system_utsname.nodename[0]) {
                strncpy(system_utsname.nodename, in_ntoa(myaddr), __NEW_UTS_LEN);
                system_utsname.nodename[__NEW_UTS_LEN] = '\0';
-#ifdef CONFIG_TRANS_NAMES
-               translations_dirty = 1;
-#endif
        }
 
        /* Set the correct netmask */
index e615854b17869d5cb1440b5f703ac0e9b0389a3d..346e72ed1a7bd8ef1529cdde5fd3f34de5a7c134 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: openpromfs.c,v 1.17 1997/07/15 05:35:05 davem Exp $
+/* $Id: openpromfs.c,v 1.18 1997/07/17 02:24:01 davem Exp $
  * openpromfs.c: /proc/openprom handling routines
  *
  * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
index b73e578769fb07b791cb6f1a433921dade83ebbc..72161d2bdf6b5112398d3795a8011ff42f8f36ed 100644 (file)
@@ -6,7 +6,7 @@
  * Laboratory for Computer Science Research Computing Facility
  * Rutgers, The State University of New Jersey
  *
- * $Id: ufs_file.c,v 1.8 1997/06/05 01:29:09 davem Exp $
+ * $Id: ufs_file.c,v 1.9 1997/07/17 02:24:13 davem Exp $
  *
  */
 
index a177ad494df1c46d0beaa2ef505b057580d35f28..c55092d54a9291742a7a5b1ddd3a485a6cb44c61 100644 (file)
@@ -6,7 +6,7 @@
  * Laboratory for Computer Science Research Computing Facility
  * Rutgers, The State University of New Jersey
  *
- * $Id: ufs_inode.c,v 1.8 1997/06/04 08:28:28 davem Exp $
+ * $Id: ufs_inode.c,v 1.9 1997/07/17 02:24:14 davem Exp $
  *
  */
 
index e849aabef3e048561eaaa99253153853ceb63e9d..8996c6ca0e4b4d931a1aeb150ba3edf852a3d5b9 100644 (file)
@@ -6,7 +6,7 @@
  * Laboratory for Computer Science Research Computing Facility
  * Rutgers, The State University of New Jersey
  *
- * $Id: ufs_namei.c,v 1.7 1996/06/01 14:56:49 ecd Exp $
+ * $Id: ufs_namei.c,v 1.8 1997/07/17 02:24:14 davem Exp $
  *
  */
 
index 56dbd24f29db0d2a6da8b37ca188a01684bc9e8c..c2ee0ded77830085218c574c896d3137ee8d58a0 100644 (file)
@@ -8,7 +8,7 @@
  *
  * Copyright (C) 1996  Eddie C. Dost  (ecd@skynet.be)
  *
- * $Id: ufs_super.c,v 1.24 1997/06/04 08:28:29 davem Exp $
+ * $Id: ufs_super.c,v 1.25 1997/07/17 02:24:15 davem Exp $
  *
  */
 
index 306cc54350e1efb7b7c2511ab378ffb0670078c5..8ce53ae357a6aa8185670e3d7207ebd6b07d383e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: namei.h,v 1.5 1997/06/07 08:32:54 ecd Exp $
+/* $Id: namei.h,v 1.6 1997/07/17 02:24:25 davem Exp $
  * linux/include/asm-sparc/namei.h
  *
  * Routines to handle famous /usr/gnemul/s*.
index b05ce6ed8be118c839806677f52f772a24876290..e80c11979028bf520d36113b1c1d4171fbc42206 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: namei.h,v 1.4 1997/06/07 08:32:56 ecd Exp $
+/* $Id: namei.h,v 1.5 1997/07/17 02:24:28 davem Exp $
  * linux/include/asm-sparc64/namei.h
  *
  * Routines to handle famous /usr/gnemul/s*.
index 36aa722b16f7feffb8e1e20faf7970779bcd033a..eb2f6ec0db41fad979f61ac9598f3a2bc4f323b7 100644 (file)
@@ -6,7 +6,7 @@
  * Laboratory for Computer Science Research Computing Facility
  * Rutgers, The State University of New Jersey
  *
- * $Id: ufs_fs.h,v 1.7 1996/08/13 19:27:59 ecd Exp $
+ * $Id: ufs_fs.h,v 1.8 1997/07/17 02:17:54 davem Exp $
  *
  */