github.com/suiyunonghen/DxCommonLib@v0.5.3/system/goid/goid_amd64.s (about)

     1  #include "textflag.h"
     2  #include "go_tls.h"
     3  
     4  
     5  // func getg() interface{}
     6  TEXT ·getG(SB), NOSPLIT, $32-16
     7  	// get runtime.g
     8  	get_tls(CX)
     9  	MOVQ g(CX), AX
    10  	// get runtime.g type
    11  	MOVQ $type·runtime·g(SB), BX
    12  
    13  	// convert (*g) to interface{}
    14  	MOVQ AX, 8(SP)
    15  	MOVQ BX, 0(SP)
    16  	CALL ·runtime_convT2E_hack(SB)
    17  	MOVQ 16(SP), AX
    18  	MOVQ 24(SP), BX
    19  
    20  	// return interface{}
    21  	MOVQ AX, ret+0(FP)
    22  	MOVQ BX, ret+8(FP)
    23  	RET
    24  
    25  // func GetGoID() int64
    26  TEXT ·GetGoID(SB), NOSPLIT, $0-8
    27  	get_tls(CX)
    28  	MOVQ g(CX), AX
    29  	MOVQ ·offset(SB), BX
    30  	LEAQ 0(AX)(BX*1), DX
    31  	MOVQ (DX), AX
    32  	MOVQ AX, ret+0(FP)
    33  	RET