Print this page
de-linting of .s files
first

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/ia32/ml/ovbcopy.s
          +++ new/usr/src/uts/intel/ia32/ml/ovbcopy.s
   1    1  /*
   2    2   * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
   3    3   * Use is subject to license terms.
   4    4   */
   5    5  
   6      -#pragma ident   "%Z%%M% %I%     %E% SMI"
        6 +/*
        7 + * Copyright 2019 Joyent, Inc.
        8 + */
   7    9  
   8   10  /*-
   9   11   * Copyright (c) 1993 The Regents of the University of California.
  10   12   * All rights reserved.
  11   13   *
  12   14   * Redistribution and use in source and binary forms, with or without
  13   15   * modification, are permitted provided that the following conditions
  14   16   * are met:
  15   17   * 1. Redistributions of source code must retain the above copyright
  16   18   *    notice, this list of conditions and the following disclaimer.
↓ open down ↓ 18 lines elided ↑ open up ↑
  35   37   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  36   38   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  37   39   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  38   40   * SUCH DAMAGE.
  39   41   *
  40   42   * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.102 2003/10/02 05:08:13 alc Exp $
  41   43   */
  42   44  
  43   45  #include <sys/asm_linkage.h>
  44   46  
  45      -#if defined(__lint)
  46      -
  47   47  /*
  48      - * Overlapping bcopy (source and target may overlap arbitrarily).
  49      - */
  50      -/* ARGSUSED */
  51      -void
  52      -ovbcopy(const void *from, void *to, size_t count)
  53      -{}
  54      -
  55      -#else   /* __lint */
  56      -
  57      -/*
  58   48   * Adapted from fbsd bcopy().
  59   49   *
  60   50   * bcopy(src, dst, cnt)
  61   51   *       rdi, rsi, rdx
  62   52   *  ws@tools.de     (Wolfgang Solfrank, TooLs GmbH) +49-228-985800
  63   53   */
  64   54  
  65      -#if defined(__amd64)
  66      -
  67   55          ENTRY(ovbcopy)
  68   56          xchgq   %rsi,%rdi
  69   57          movq    %rdx,%rcx
  70   58  
  71   59          movq    %rdi,%rax
  72   60          subq    %rsi,%rax
  73   61          cmpq    %rcx,%rax               /* overlapping && src < dst? */
  74   62          jb      reverse
  75   63  
  76   64          shrq    $3,%rcx                 /* copy by 64-bit words */
↓ open down ↓ 18 lines elided ↑ open up ↑
  95   83          movq    %rdx,%rcx               /* copy remainder by 32-bit words */
  96   84          shrq    $3,%rcx
  97   85          subq    $7,%rsi
  98   86          subq    $7,%rdi
  99   87          rep
 100   88          movsq
 101   89          cld
 102   90          ret
 103   91          SET_SIZE(ovbcopy)
 104   92  
 105      -#elif defined(__i386)
 106      -
 107      -        ENTRY(ovbcopy)
 108      -        pushl   %esi
 109      -        pushl   %edi
 110      -        movl    12(%esp),%esi
 111      -        movl    16(%esp),%edi
 112      -        movl    20(%esp),%ecx
 113      -
 114      -        movl    %edi,%eax
 115      -        subl    %esi,%eax
 116      -        cmpl    %ecx,%eax               /* overlapping && src < dst? */
 117      -        jb      reverse
 118      -
 119      -        shrl    $2,%ecx                 /* copy by 32-bit words */
 120      -        cld                             /* nope, copy forwards */
 121      -        rep
 122      -        movsl
 123      -        movl    20(%esp),%ecx
 124      -        andl    $3,%ecx                 /* any bytes left? */
 125      -        rep
 126      -        movsb
 127      -        popl    %edi
 128      -        popl    %esi
 129      -        ret
 130      -
 131      -reverse:
 132      -        addl    %ecx,%edi               /* copy backwards */
 133      -        addl    %ecx,%esi
 134      -        decl    %edi
 135      -        decl    %esi
 136      -        andl    $3,%ecx                 /* any fractional bytes? */
 137      -        std
 138      -        rep
 139      -        movsb
 140      -        movl    20(%esp),%ecx           /* copy remainder by 32-bit words */
 141      -        shrl    $2,%ecx
 142      -        subl    $3,%esi
 143      -        subl    $3,%edi
 144      -        rep
 145      -        movsl
 146      -        popl    %edi
 147      -        popl    %esi
 148      -        cld
 149      -        ret
 150      -        SET_SIZE(ovbcopy)
 151      -
 152      -#endif  /* __i386 */
 153      -
 154      -#endif  /* __lint */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX