summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/rt0_plan9_386.s
blob: 56f3a0f6c72a81f82c3dcc7823c7350bf0ad9987 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

TEXT _rt0_386_plan9(SB),7, $0
	MOVL	AX, _tos(SB)
	
	// move arguments down to make room for
	// m and g at top of stack, right before Tos.
	MOVL	SP, SI
	SUBL	$8, SP
	MOVL	SP, DI
		
	MOVL	AX, CX
	SUBL	SI, CX
	CLD
	REP; MOVSB
	
	// adjust argv
	SUBL	SI, DI
	MOVL	newargc+0(SP), CX
	LEAL	newargv+4(SP), BP
argv_fix:
	ADDL	DI, 0(BP)
	ADDL	$4, BP
	LOOP	argv_fix
	
	CALL	runtime·asminit(SB)
	JMP	_rt0_386(SB)

DATA  runtime·isplan9(SB)/4, $1
GLOBL runtime·isplan9(SB), $4
GLOBL _tos(SB), $4