File: issue122.s

package info (click to toggle)
golang-github-mmcloughlin-avo 0.0~git20200523.4439b6b-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 8,304 kB
  • sloc: xml: 71,029; asm: 13,138; sh: 179; makefile: 35
file content (32 lines) | stat: -rw-r--r-- 562 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Code generated by command: go run asm.go -out issue122.s -stubs stub.go. DO NOT EDIT.

#include "textflag.h"

// func Triangle(n uint64) uint64
TEXT ·Triangle(SB), NOSPLIT, $0-16
	MOVQ n+0(FP), AX

	// Initialize sum register to zero.
	XORQ CX, CX

loop_even:
loop_odd:
	// Loop until n is zero.
	CMPQ AX, $0x00
	JE   done

	// Add n to sum.
	ADDQ AX, CX

	// Decrement n.
	DECQ AX

	// Jump to one of the loop labels depending on parity.
	TESTQ $0x00000001, AX
	JZ    loop_even
	JMP   loop_odd

done:
	// Store sum to return value.
	MOVQ CX, ret+8(FP)
	RET