gorgonia.org/gorgonia@v0.9.17/mathutils_amd64.s (about)

     1  // +build !noasm,!wasm, !arm64
     2  
     3  #include "textflag.h"
     4  
     5  // divmod(a, b int) (q,r int)
     6  TEXT ·divmod(SB),NOSPLIT,$0
     7  	MOVQ	a+0(FP), SI
     8  	MOVQ	b+8(FP), CX
     9  	MOVQ	SI, AX
    10  	CMPQ	CX, $-1
    11  	JEQ	$1, denomIsOne 	// if denominator is 1, then jump to end
    12  
    13  	CQO
    14  	IDIVQ	CX
    15  	MOVQ	AX, q+16(FP)
    16  	MOVQ	DX, r+24(FP)
    17  bye:
    18  	RET
    19  denomIsOne:
    20  	NEGQ	AX
    21  	MOVQ	AX, q+16(FP)
    22  	MOVQ	$0, r+24(FP)
    23  	JMP	bye