Files
avo/examples/sum/sum.s

30 lines
543 B
ArmAsm
Raw Normal View History

2018-12-18 22:57:26 -08:00
// Code generated by command: go run asm.go -out sum.s -stubs stub.go. DO NOT EDIT.
#include "textflag.h"
// func Sum(xs []uint64) uint64
TEXT ·Sum(SB), NOSPLIT, $0-32
MOVQ xs_base+0(FP), AX
MOVQ xs_len+8(FP), CX
2019-01-11 10:57:38 -08:00
// Initialize sum register to zero.
XORQ DX, DX
loop:
// Loop until zero bytes remain.
CMPQ CX, $0x00
JE done
2019-01-11 10:57:38 -08:00
// Load from pointer and add to running sum.
ADDQ (AX), DX
2019-01-11 10:57:38 -08:00
// Advance pointer, decrement byte count.
ADDQ $0x08, AX
DECQ CX
JMP loop
done:
// Store sum to return value.
MOVQ DX, ret+24(FP)
2018-12-18 21:05:05 -08:00
RET