On Fri, Apr 14, 2017 at 3:06 PM, 代君 <sydna...@gmail.com> wrote: > // void gosave(Gobuf*) > // save state in Gobuf; setjmp > TEXT runtime·gosave(SB), NOSPLIT, $0-8 > MOVQ buf+0(FP), AX // gobuf > LEAQ buf+0(FP), BX // caller's SP > MOVQ BX, gobuf_sp(AX) > MOVQ 0(SP), BX // caller's PC > MOVQ BX, gobuf_pc(AX) > MOVQ $0, gobuf_ret(AX) > MOVQ BP, gobuf_bp(AX) > // Assert ctxt is zero. See func save. > MOVQ gobuf_ctxt(AX), BX > TESTQ BX, BX > JZ 2(PC) > CALL runtime·badctxt(SB) > get_tls(CX) > MOVQ g(CX), BX > MOVQ BX, gobuf_g(AX) > RET > > why dose these code(`LEAQ buf+0(FP), BX // caller's SP`) can get caller's > SP? (these code are from golang 1.8 asm_amd64.s) > > > > and where could I find some description for golang's assembler instruction > set. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout.
https://golang.org/doc/asm https://talks.golang.org/2016/asm.slide#1 -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.