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.

Reply via email to