// 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.

#include "../../cmd/ld/textflag.h"

TEXT _rt0_386_plan9(SB),NOSPLIT, $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)

	MOVL	0(SP), AX
	LEAL	4(SP), BX
	PUSHL	BX
	PUSHL	AX
	PUSHL	$-1

	JMP	_rt0_go(SB)

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