CALL runtime·schedinit(SB)
// create a new goroutine to start program
- PUSHL $runtime·main·f(SB) // entry
+ PUSHL $runtime·mainPC(SB) // entry
PUSHL $0 // arg size
CALL runtime·newproc(SB)
POPL AX
INT $3
RET
-DATA runtime·main·f+0(SB)/4,$runtime·main(SB)
-GLOBL runtime·main·f(SB),RODATA,$4
+DATA runtime·mainPC+0(SB)/4,$runtime·main(SB)
+GLOBL runtime·mainPC(SB),RODATA,$4
TEXT runtime·breakpoint(SB),NOSPLIT,$0-0
INT $3
CALL runtime·schedinit(SB)
// create a new goroutine to start program
- MOVQ $runtime·main·f(SB), AX // entry
+ MOVQ $runtime·mainPC(SB), AX // entry
PUSHQ AX
PUSHQ $0 // arg size
CALL runtime·newproc(SB)
MOVL $0xf1, 0xf1 // crash
RET
-DATA runtime·main·f+0(SB)/8,$runtime·main(SB)
-GLOBL runtime·main·f(SB),RODATA,$8
+DATA runtime·mainPC+0(SB)/8,$runtime·main(SB)
+GLOBL runtime·mainPC(SB),RODATA,$8
TEXT runtime·breakpoint(SB),NOSPLIT,$0-0
BYTE $0xcc
CALL runtime·schedinit(SB)
// create a new goroutine to start program
- MOVL $runtime·main·f(SB), AX // entry
+ MOVL $runtime·mainPC(SB), AX // entry
MOVL $0, 0(SP)
MOVL AX, 4(SP)
CALL runtime·newproc(SB)
MOVL $0xf1, 0xf1 // crash
RET
-DATA runtime·main·f+0(SB)/4,$runtime·main(SB)
-GLOBL runtime·main·f(SB),RODATA,$4
+DATA runtime·mainPC+0(SB)/4,$runtime·main(SB)
+GLOBL runtime·mainPC(SB),RODATA,$4
TEXT runtime·breakpoint(SB),NOSPLIT,$0-0
INT $3
BL runtime·schedinit(SB)
// create a new goroutine to start program
- MOVW $runtime·main·f(SB), R0
+ MOVW $runtime·mainPC(SB), R0
MOVW.W R0, -4(R13)
MOVW $8, R0
MOVW.W R0, -4(R13)
MOVW $1000, R1
MOVW R0, (R1) // fail hard
-DATA runtime·main·f+0(SB)/4,$runtime·main(SB)
-GLOBL runtime·main·f(SB),RODATA,$4
+DATA runtime·mainPC+0(SB)/4,$runtime·main(SB)
+GLOBL runtime·mainPC(SB),RODATA,$4
TEXT runtime·breakpoint(SB),NOSPLIT,$0-0
// gdb won't skip this breakpoint instruction automatically,
BL runtime·schedinit(SB)
// create a new goroutine to start program
- MOVD $runtime·main·f(SB), R0 // entry
+ MOVD $runtime·mainPC(SB), R0 // entry
MOVD RSP, R7
MOVD.W $0, -8(R7)
MOVD.W R0, -8(R7)
MOVD R0, (R0) // boom
UNDEF
-DATA runtime·main·f+0(SB)/8,$runtime·main(SB)
-GLOBL runtime·main·f(SB),RODATA,$8
+DATA runtime·mainPC+0(SB)/8,$runtime·main(SB)
+GLOBL runtime·mainPC(SB),RODATA,$8
TEXT runtime·breakpoint(SB),NOSPLIT,$-8-0
BRK
BL runtime·schedinit(SB)
// create a new goroutine to start program
- MOVD $runtime·main·f(SB), R3 // entry
+ MOVD $runtime·mainPC(SB), R3 // entry
MOVDU R3, -8(R1)
MOVDU R0, -8(R1)
MOVDU R0, -8(R1)
MOVD R0, 1(R0)
RETURN
-DATA runtime·main·f+0(SB)/8,$runtime·main(SB)
-GLOBL runtime·main·f(SB),RODATA,$8
+DATA runtime·mainPC+0(SB)/8,$runtime·main(SB)
+GLOBL runtime·mainPC(SB),RODATA,$8
TEXT runtime·breakpoint(SB),NOSPLIT,$-8-0
MOVD R0, 2(R0) // TODO: TD