1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 20:52:22 +00:00
2018-12-16 12:37:35 +08:00

24 lines
667 B
ArmAsm

// Copyright © 2017 ChaiShushan <chaishushan{AT}gmail.com>.
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
#include "textflag.h"
// func AsmAdd(a, b int) int
TEXT ·AsmAdd(SB), NOSPLIT, $0-24
MOVQ a+0(FP), AX // a
MOVQ b+8(FP), BX // b
ADDQ AX, BX // a+b
MOVQ BX, ret+16(FP) // return a+b
RET
// func AsmAddSlice(dst, a, b []int)
TEXT ·AsmAddSlice__todo(SB), NOSPLIT, $0-72
MOVQ dst+0(FP), AX // AX: dst
MOVQ a+24(FP), BX // BX: &a
MOVQ b+48(FP), CX // CX: &b
MOVQ dst_len+8(FP), DX // DX: len(dst)
MOVQ a_len+32(FP), R8 // R8: len(a)
MOVQ b_len+56(FP), R9 // R9: len(b)
// TODO: DX = min(DX,R8,R9)
RET