xref: /illumos-gate/usr/src/lib/c_synonyms/i386/synonyms.S (revision da7fc762b82ced1a0ec19a51e04cdf823187ec77)
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 2008 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27	.file	"synonyms.s"
28
29#define	SYN(name)					\
30	.align	16;					\
31	.globl	name;					\
32	.globl	_##name;				\
33	.type	_##name, @function;			\
34_##name:						\
35	call	1f;					\
361:	popl	%eax;					\
37	addl	$_GLOBAL_OFFSET_TABLE_ + [. - 1b], %eax;\
38	movl	name@GOT(%eax), %eax;			\
39	jmp	*%eax;					\
40	.size	_##name, [. - _##name]
41
42#define	SYN2(name)					\
43	.align	16;					\
44	.globl	name;					\
45	.globl	__##name;				\
46	.type	__##name, @function;			\
47__##name:						\
48	call	1f;					\
491:	popl	%eax;					\
50	addl	$_GLOBAL_OFFSET_TABLE_ + [. - 1b], %eax;\
51	movl	name@GOT(%eax), %eax;			\
52	jmp	*%eax;					\
53	.size	__##name, [. - __##name]
54
55#include "synonym_list"
56