2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A * Copy string s2 to s1. s1 must be large enough. Return s1. 2N/A * Fast assembler language version of the following C-program strcpy 2N/A * which represents the `standard' for the C-library. 2N/A * register char *s1; 2N/A * register const char *s2; 2N/A * while(*s1++ = *s2++) 2N/A or %o4, %lo(0x01010101),%o4! finish loading magic1 2N/A sllx %o4, 32, %o1 ! spread magic1 2N/A and %o2, 3, %g4 ! dst<1:0> to examine offset 2N/A or %o4, %o1, %o4 ! to all 64 bits 2N/A cmp %g4, 1 ! dst offset of 1 or 5 2N/A andcc %
g4, %
g1, %
g0 ! ((x -
0x0101010101010101) & ~x &
0x8080808080808080)
2N/A andcc %
g4, %
g1, %
g0 ! ((x -
0x0101010101010101) & ~x &
0x8080808080808080)
2N/A andcc %
g4, %
g1, %
g0 ! ((x -
0x0101010101010101) & ~x &
0x8080808080808080)
2N/A andcc %
g4, %
g1, %
g0 ! ((x -
0x0101010101010101) & ~x &
0x8080808080808080)