mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 04:22:22 +00:00
23 lines
625 B
ArmAsm
23 lines
625 B
ArmAsm
// Copyright © 2018 ChaiShushan <chaishushan{AT}gmail.com>.
|
|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
|
|
|
#include "textflag.h"
|
|
|
|
TEXT ·ptrToFunc(SB), NOSPLIT, $0-16
|
|
MOVQ ptr+0(FP), AX // AX = ptr
|
|
MOVQ AX, ret+8(FP) // return AX
|
|
RET
|
|
|
|
TEXT ·asmFunTwiceClosureAddr(SB), NOSPLIT, $0-8
|
|
LEAQ ·asmFunTwiceClosureBody(SB), AX // AX = ·asmFunTwiceClosureBody(SB)
|
|
MOVQ AX, ret+0(FP) // return AX
|
|
RET
|
|
|
|
TEXT ·asmFunTwiceClosureBody(SB), NOSPLIT|NEEDCTXT, $0-8
|
|
MOVQ 8(DX), AX
|
|
ADDQ AX , AX // AX *= 2
|
|
MOVQ AX , 8(DX) // ctx.X = AX
|
|
MOVQ AX , ret+0(FP) // return AX
|
|
RET
|
|
|