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.
17 19 * 2. Redistributions in binary form must reproduce the above copyright
18 20 * notice, this list of conditions and the following disclaimer in the
19 21 * documentation and/or other materials provided with the distribution.
20 22 * 3. All advertising materials mentioning features or use of this software
21 23 * must display the following acknowledgement:
22 24 * This product includes software developed by the University of
23 25 * California, Berkeley and its contributors.
24 26 * 4. Neither the name of the University nor the names of its contributors
25 27 * may be used to endorse or promote products derived from this software
26 28 * without specific prior written permission.
27 29 *
28 30 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29 31 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 32 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 33 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32 34 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 35 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 36 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
↓ 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 */
77 65 cld /* nope, copy forwards */
78 66 rep
79 67 movsq
80 68 movq %rdx,%rcx
81 69 andq $7,%rcx /* any bytes left? */
82 70 rep
83 71 movsb
84 72 ret
85 73
86 74 reverse:
87 75 addq %rcx,%rdi /* copy backwards */
88 76 addq %rcx,%rsi
89 77 decq %rdi
90 78 decq %rsi
91 79 andq $7,%rcx /* any fractional bytes? */
92 80 std
93 81 rep
94 82 movsb
↓ 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