aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/math/big/arith_amd64.s8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/math/big/arith_amd64.s b/src/math/big/arith_amd64.s
index e9c8887523..a0d1660f51 100644
--- a/src/math/big/arith_amd64.s
+++ b/src/math/big/arith_amd64.s
@@ -143,6 +143,8 @@ E2: NEGQ CX
// func addVW(z, x []Word, y Word) (c Word)
TEXT ·addVW(SB),NOSPLIT,$0
MOVQ z_len+8(FP), DI
+ CMPQ DI, $32
+ JG large
MOVQ x+24(FP), R8
MOVQ y+48(FP), CX // c = y
MOVQ z+0(FP), R10
@@ -189,12 +191,16 @@ L3: // n > 0
E3: MOVQ CX, c+56(FP) // return c
RET
+large:
+ JMP ·addVWlarge(SB)
// func subVW(z, x []Word, y Word) (c Word)
// (same as addVW except for SUBQ/SBBQ instead of ADDQ/ADCQ and label names)
TEXT ·subVW(SB),NOSPLIT,$0
MOVQ z_len+8(FP), DI
+ CMPQ DI, $32
+ JG large
MOVQ x+24(FP), R8
MOVQ y+48(FP), CX // c = y
MOVQ z+0(FP), R10
@@ -242,6 +248,8 @@ L4: // n > 0
E4: MOVQ CX, c+56(FP) // return c
RET
+large:
+ JMP ·subVWlarge(SB)
// func shlVU(z, x []Word, s uint) (c Word)