]> Cypherpunks repositories - gostls13.git/commitdiff
implement spec: when main.main returns, the program exits
authorRuss Cox <rsc@golang.org>
Mon, 22 Sep 2008 20:47:59 +0000 (13:47 -0700)
committerRuss Cox <rsc@golang.org>
Mon, 22 Sep 2008 20:47:59 +0000 (13:47 -0700)
R=r
DELTA=9  (7 added, 2 deleted, 0 changed)
OCL=15628
CL=15643

src/runtime/rt0_amd64.s

index 9f354a71aecc087ebbcbbd0d54f6f3b42ee4d0cc..35448e07cc6c794bc0cc3e262bf7d88569276f7f 100644 (file)
@@ -37,13 +37,14 @@ TEXT        _rt0_amd64(SB),7,$-8
        CALL    schedinit(SB)
 
        // create a new goroutine to start program
-
        PUSHQ   $mainstart(SB)          // entry
        PUSHQ   $16                     // arg size
        CALL    sys·newproc(SB)
-       CALL    mstart(SB)
        POPQ    AX
        POPQ    AX
+       
+       // start this M
+       CALL    mstart(SB)
 
        CALL    notok(SB)               // never returns
        RET
@@ -52,6 +53,10 @@ TEXT mainstart(SB),7,$0
        CALL    main·init_function(SB)
        CALL    initdone(SB)
        CALL    main·main(SB)
+       PUSHQ   $0
+       CALL    sys·exit(SB)
+       POPQ    AX
+       CALL    notok(SB)
        RET
 
 TEXT   sys·breakpoint(SB),7,$0