xref: /titanic_50/usr/src/common/crypto/md5/sparc/sun4v/byteswap.il (revision 3db86aab554edbb4244c8d1a1c90f152eee768af)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27#pragma ident	"%Z%%M%	%I%	%E% SMI"
28
29/*
30 * byteswap.il -- definitions for .inline functions for little-endian loads.
31 *
32 * right now, this file is only used on UltraSPARC architectures,
33 * which have a special address space identifier for loading 32 and 16 bit
34 * integers in little-endian byte order.
35 *
36 * note: apparently these files are not preprocessed, so we cannot
37 *       use `ASI_PL'.
38 *
39 * This file and common/crypto/md5/md5_byteswap.h implement the
40 * same thing and must be changed together.
41 */
42
43	.inline load_little_32, 4
44        lduwa   [%o0]0x88, %o0
45        .end
46
47	.inline load_little_16, 4
48        lduha   [%o0]0x88, %o0
49        .end
50
51	.inline set_little,4
52	wr	%g0, %o0, %asi
53	.end
54
55	.inline get_little,0
56	rd	%asi, %o0
57	.end
58
59	.inline	load_little_32_0, 4
60	lduwa	[%o0]%asi, %o0
61	.end
62
63	.inline	load_little_32_1, 4
64	lduwa	[%o0 + 4]%asi, %o0
65	.end
66
67	.inline	load_little_32_2, 4
68	lduwa	[%o0 + 8]%asi, %o0
69	.end
70
71	.inline	load_little_32_3, 4
72	lduwa	[%o0 + 12]%asi, %o0
73	.end
74
75	.inline	load_little_32_4, 4
76	lduwa	[%o0 + 16]%asi, %o0
77	.end
78
79	.inline	load_little_32_5, 4
80	lduwa	[%o0 + 20]%asi, %o0
81	.end
82
83	.inline	load_little_32_6, 4
84	lduwa	[%o0 + 24]%asi, %o0
85	.end
86
87	.inline	load_little_32_7, 4
88	lduwa	[%o0 + 28]%asi, %o0
89	.end
90
91	.inline	load_little_32_8, 4
92	lduwa	[%o0 + 32]%asi, %o0
93	.end
94
95	.inline	load_little_32_9, 4
96	lduwa	[%o0 + 36]%asi, %o0
97	.end
98
99	.inline	load_little_32_a, 4
100	lduwa	[%o0 + 40]%asi, %o0
101	.end
102
103	.inline	load_little_32_b, 4
104	lduwa	[%o0 + 44]%asi, %o0
105	.end
106
107	.inline	load_little_32_c, 4
108	lduwa	[%o0 + 48]%asi, %o0
109	.end
110
111	.inline	load_little_32_d, 4
112	lduwa	[%o0 + 52]%asi, %o0
113	.end
114
115	.inline	load_little_32_e, 4
116	lduwa	[%o0 + 56]%asi, %o0
117	.end
118
119	.inline	load_little_32_f, 4
120	lduwa	[%o0 + 60]%asi, %o0
121	.end
122
123