github.com/code-reading/golang@v0.0.0-20220303082512-ba5bc0e589a3/go/src/math/big/arith_riscv64.s (about) 1 // Copyright 2020 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build !math_big_pure_go && riscv64 6 // +build !math_big_pure_go,riscv64 7 8 #include "textflag.h" 9 10 // This file provides fast assembly versions for the elementary 11 // arithmetic operations on vectors implemented in arith.go. 12 13 // func mulWW(x, y Word) (z1, z0 Word) 14 TEXT ·mulWW(SB),NOSPLIT,$0 15 MOV x+0(FP), X5 16 MOV y+8(FP), X6 17 MULHU X5, X6, X7 18 MUL X5, X6, X8 19 MOV X7, z1+16(FP) 20 MOV X8, z0+24(FP) 21 RET 22 23 24 TEXT ·addVV(SB),NOSPLIT,$0 25 JMP ·addVV_g(SB) 26 27 TEXT ·subVV(SB),NOSPLIT,$0 28 JMP ·subVV_g(SB) 29 30 TEXT ·addVW(SB),NOSPLIT,$0 31 JMP ·addVW_g(SB) 32 33 TEXT ·subVW(SB),NOSPLIT,$0 34 JMP ·subVW_g(SB) 35 36 TEXT ·shlVU(SB),NOSPLIT,$0 37 JMP ·shlVU_g(SB) 38 39 TEXT ·shrVU(SB),NOSPLIT,$0 40 JMP ·shrVU_g(SB) 41 42 TEXT ·mulAddVWW(SB),NOSPLIT,$0 43 JMP ·mulAddVWW_g(SB) 44 45 TEXT ·addMulVVW(SB),NOSPLIT,$0 46 JMP ·addMulVVW_g(SB) 47