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