usr/src/lib/libc/i386/crt/_rtboot.s
author Mark J. Nelson <Mark.J.Nelson@Sun.COM>
Wed, 06 Aug 2008 16:29:39 -0600
changeset 7298 b69e27387f74
parent 0 68f95e015346
child 11798 1e7f1f154004
permissions -rw-r--r--
6733918 Teamware has retired, please welcome your new manager, Mercurial 4758439 some files use "current date" sccs keywords 6560843 asm sources should not rely on .file "%M%" for naming STT_FILE symbols 6560958 Solaris:: perl modules should not use SCCS keywords in version information 6729074 webrev doesn't deal well with remote ssh hg parents
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
7298
b69e27387f74 6733918 Teamware has retired, please welcome your new manager, Mercurial
Mark J. Nelson <Mark.J.Nelson@Sun.COM>
parents: 0
diff changeset
     5
 * Common Development and Distribution License (the "License").
b69e27387f74 6733918 Teamware has retired, please welcome your new manager, Mercurial
Mark J. Nelson <Mark.J.Nelson@Sun.COM>
parents: 0
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
7298
b69e27387f74 6733918 Teamware has retired, please welcome your new manager, Mercurial
Mark J. Nelson <Mark.J.Nelson@Sun.COM>
parents: 0
diff changeset
    26
	.file	"_rtboot.s"
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
/ bootstrap routine for run-time linker
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
/ we get control from exec which has loaded our text and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
/ data into the process' address space and created the process 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
/ stack
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
/ on entry, the process stack looks like this:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
/			# <- %esp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
/_______________________#  high addresses
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
/	strings		#  
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
/	0 word		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
/	Auxiliary	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
/	entries		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
/	...		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
/	(size varies)	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
/	0 word		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
/	Environment	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
/	pointers	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
/	...		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
/	(one word each)	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
/	0 word		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
/	Argument	# low addresses
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
/	pointers	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
/	Argc words	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
/_______________________#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
/	argc		# 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
/_______________________# <- %ebp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
#include <SYS.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
	.set	EB_NULL,0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
	.set	EB_DYNAMIC,1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
	.set	EB_LDSO_BASE,2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
	.set	EB_ARGV,3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
	.set	EB_ENVP,4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
	.set	EB_AUXV,5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
	.set	EB_DEVZERO,6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
	.set	EB_PAGESIZE,7
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
	.set	EB_MAX,8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
	.set	EB_MAX_SIZE32,64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
	.text
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
	.globl	__rtboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
	.globl	__rtld
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
	.type	__rtboot,@function
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
	.align	4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
__rtboot:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
	movl	%esp,%ebp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
	subl	$EB_MAX_SIZE32,%esp	/ make room for a max sized boot vector
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
	movl	%esp,%esi		/ use esi as a pointer to &eb[0]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
	movl	$EB_ARGV,0(%esi)	/ set up tag for argv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
	leal	4(%ebp),%eax		/ get address of argv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
	movl	%eax,4(%esi)		/ put after tag
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
	movl	$EB_ENVP,8(%esi)	/ set up tag for envp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	movl	(%ebp),%eax		/ get # of args
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	addl	$2,%eax			/ one for the zero & one for argc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
	leal	(%ebp,%eax,4),%edi	/ now points past args & @ envp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	movl	%edi,12(%esi)		/ set envp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	addl	$-4,%edi		/ start loop at &env[-1]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
.L00:	addl	$4,%edi			/ next
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
	cmpl	$0,(%edi)		/ search for 0 at end of env
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
	jne	.L00
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	addl	$4,%edi			/ advance past 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	movl	$EB_AUXV,16(%esi)	/ set up tag for auxv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	movl	%edi,20(%esi)		/ point to auxv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	movl	$EB_NULL,24(%esi)	/ set up NULL tag
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
	call	.L01		/ only way to get IP into a register
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
.L01:	popl	%ebx		/ pop the IP we just "pushed"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	leal	s.EMPTY - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	leal	s.ZERO - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
	leal	s.LDSO - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
	movl	%esp,%edi	/ save pointer to strings
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
	leal	f.MUNMAP - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	leal	f.CLOSE - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
	leal	f.SYSCONFIG - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	leal	f.FSTAT - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	leal	f.MMAP - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	leal	f.OPEN - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	leal	f.PANIC - .L01(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
	movl	%esp,%ecx	/ save pointer to functions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
	pushl	%ecx		/ address of functions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	pushl	%edi		/ address of strings
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	pushl	%esi		/ &eb[0]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	call	__rtld		/ __rtld(&eb[0], strings, funcs)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
	movl	%esi,%esp	/ restore the stack (but leaving boot vector)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
	jmp	*%eax 		/ transfer control to ld.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
	.size	__rtboot,.-__rtboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
	.align	4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
s.LDSO:		.string	"/usr/lib/ld.so.1"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
s.ZERO:		.string	"/dev/zero"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
s.EMPTY:	.string	"(null)"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
s.ERROR:	.string	": no (or bad) /usr/lib/ld.so.1\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
l.ERROR:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
	.align	4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
f.PANIC:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
	movl	%esp,%ebp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
/ Add using of argument string
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
	pushl	$l.ERROR - s.ERROR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
	call	.L02
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
.L02:	popl	%ebx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
	leal	s.ERROR - .L02(%ebx),%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
	pushl	%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
	pushl	$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
	call	f.WRITE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
	jmp	f.EXIT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
/ Not reached
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
f.OPEN:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
	movl	$SYS_open,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
f.MMAP:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	movl	$SYS_mmap,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
f.MUNMAP:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
	movl	$SYS_munmap,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
f.READ:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
	movl	$SYS_read,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
f.WRITE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
	movl	$SYS_write,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
f.LSEEK:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
	movl	$SYS_lseek,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
f.CLOSE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
	movl	$SYS_close,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
f.FSTAT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
	movl	$SYS_fxstat,%eax	/ NEEDSWORK: temp kludge for G6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
f.SYSCONFIG:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	movl	$SYS_sysconfig,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
f.EXIT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
	movl	$SYS_exit,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
/	jmp	__syscall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
__syscall:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
	int	$T_SYSCALLINT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
	jc	__err_exit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
	ret
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
__err_exit:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
	movl	$-1,%eax
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
	ret