X7ROOT File Manager
Current Path:
/opt/golang/1.19.4/src/math/big
opt
/
golang
/
1.19.4
/
src
/
math
/
big
/
馃搧
..
馃搫
accuracy_string.go
(414 B)
馃搫
alias_test.go
(8.81 KB)
馃搫
arith.go
(8.28 KB)
馃搫
arith_386.s
(4.07 KB)
馃搫
arith_amd64.go
(306 B)
馃搫
arith_amd64.s
(9.09 KB)
馃搫
arith_arm.s
(4.03 KB)
馃搫
arith_arm64.s
(11.88 KB)
馃搫
arith_decl.go
(594 B)
馃搫
arith_decl_pure.go
(1.04 KB)
馃搫
arith_decl_s390x.go
(531 B)
馃搫
arith_loong64.s
(745 B)
馃搫
arith_mips64x.s
(817 B)
馃搫
arith_mipsx.s
(809 B)
馃搫
arith_ppc64x.s
(16.36 KB)
馃搫
arith_riscv64.s
(786 B)
馃搫
arith_s390x.s
(20.32 KB)
馃搫
arith_s390x_test.go
(812 B)
馃搫
arith_test.go
(19.88 KB)
馃搫
arith_wasm.s
(641 B)
馃搫
bits_test.go
(5.07 KB)
馃搫
calibrate_test.go
(4.63 KB)
馃搫
decimal.go
(6.63 KB)
馃搫
decimal_test.go
(3.33 KB)
馃搫
doc.go
(3.79 KB)
馃搫
example_rat_test.go
(1.68 KB)
馃搫
example_test.go
(4.05 KB)
馃搫
float.go
(44.28 KB)
馃搫
float_test.go
(51.94 KB)
馃搫
floatconv.go
(8.34 KB)
馃搫
floatconv_test.go
(24.27 KB)
馃搫
floatexample_test.go
(3.63 KB)
馃搫
floatmarsh.go
(3.53 KB)
馃搫
floatmarsh_test.go
(3.92 KB)
馃搫
ftoa.go
(13.55 KB)
馃搫
gcd_test.go
(2.16 KB)
馃搫
hilbert_test.go
(2.88 KB)
馃搫
int.go
(30.26 KB)
馃搫
int_test.go
(53.14 KB)
馃搫
intconv.go
(6.69 KB)
馃搫
intconv_test.go
(10.01 KB)
馃搫
intmarsh.go
(2.14 KB)
馃搫
intmarsh_test.go
(3.07 KB)
馃搫
link_test.go
(1.4 KB)
馃搫
nat.go
(26.73 KB)
馃搫
nat_test.go
(23.56 KB)
馃搫
natconv.go
(14.55 KB)
馃搫
natconv_test.go
(16.85 KB)
馃搫
natdiv.go
(34.15 KB)
馃搫
prime.go
(10.34 KB)
馃搫
prime_test.go
(7.1 KB)
馃搫
rat.go
(13.47 KB)
馃搫
rat_test.go
(18.89 KB)
馃搫
ratconv.go
(9.78 KB)
馃搫
ratconv_test.go
(15.75 KB)
馃搫
ratmarsh.go
(2.1 KB)
馃搫
ratmarsh_test.go
(3.3 KB)
馃搫
roundingmode_string.go
(501 B)
馃搫
sqrt.go
(2.79 KB)
馃搫
sqrt_test.go
(4.81 KB)
Editing: arith_386.s
// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build !math_big_pure_go // +build !math_big_pure_go #include "textflag.h" // This file provides fast assembly versions for the elementary // arithmetic operations on vectors implemented in arith.go. // func addVV(z, x, y []Word) (c Word) TEXT 路addVV(SB),NOSPLIT,$0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL y+24(FP), CX MOVL z_len+4(FP), BP MOVL $0, BX // i = 0 MOVL $0, DX // c = 0 JMP E1 L1: MOVL (SI)(BX*4), AX ADDL DX, DX // restore CF ADCL (CX)(BX*4), AX SBBL DX, DX // save CF MOVL AX, (DI)(BX*4) ADDL $1, BX // i++ E1: CMPL BX, BP // i < n JL L1 NEGL DX MOVL DX, c+36(FP) RET // func subVV(z, x, y []Word) (c Word) // (same as addVV except for SBBL instead of ADCL and label names) TEXT 路subVV(SB),NOSPLIT,$0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL y+24(FP), CX MOVL z_len+4(FP), BP MOVL $0, BX // i = 0 MOVL $0, DX // c = 0 JMP E2 L2: MOVL (SI)(BX*4), AX ADDL DX, DX // restore CF SBBL (CX)(BX*4), AX SBBL DX, DX // save CF MOVL AX, (DI)(BX*4) ADDL $1, BX // i++ E2: CMPL BX, BP // i < n JL L2 NEGL DX MOVL DX, c+36(FP) RET // func addVW(z, x []Word, y Word) (c Word) TEXT 路addVW(SB),NOSPLIT,$0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL y+24(FP), AX // c = y MOVL z_len+4(FP), BP MOVL $0, BX // i = 0 JMP E3 L3: ADDL (SI)(BX*4), AX MOVL AX, (DI)(BX*4) SBBL AX, AX // save CF NEGL AX ADDL $1, BX // i++ E3: CMPL BX, BP // i < n JL L3 MOVL AX, c+28(FP) RET // func subVW(z, x []Word, y Word) (c Word) TEXT 路subVW(SB),NOSPLIT,$0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL y+24(FP), AX // c = y MOVL z_len+4(FP), BP MOVL $0, BX // i = 0 JMP E4 L4: MOVL (SI)(BX*4), DX SUBL AX, DX MOVL DX, (DI)(BX*4) SBBL AX, AX // save CF NEGL AX ADDL $1, BX // i++ E4: CMPL BX, BP // i < n JL L4 MOVL AX, c+28(FP) RET // func shlVU(z, x []Word, s uint) (c Word) TEXT 路shlVU(SB),NOSPLIT,$0 MOVL z_len+4(FP), BX // i = z SUBL $1, BX // i-- JL X8b // i < 0 (n <= 0) // n > 0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL s+24(FP), CX MOVL (SI)(BX*4), AX // w1 = x[n-1] MOVL $0, DX SHLL CX, AX, DX // w1>>艥 MOVL DX, c+28(FP) CMPL BX, $0 JLE X8a // i <= 0 // i > 0 L8: MOVL AX, DX // w = w1 MOVL -4(SI)(BX*4), AX // w1 = x[i-1] SHLL CX, AX, DX // w<<s | w1>>艥 MOVL DX, (DI)(BX*4) // z[i] = w<<s | w1>>艥 SUBL $1, BX // i-- JG L8 // i > 0 // i <= 0 X8a: SHLL CX, AX // w1<<s MOVL AX, (DI) // z[0] = w1<<s RET X8b: MOVL $0, c+28(FP) RET // func shrVU(z, x []Word, s uint) (c Word) TEXT 路shrVU(SB),NOSPLIT,$0 MOVL z_len+4(FP), BP SUBL $1, BP // n-- JL X9b // n < 0 (n <= 0) // n > 0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL s+24(FP), CX MOVL (SI), AX // w1 = x[0] MOVL $0, DX SHRL CX, AX, DX // w1<<艥 MOVL DX, c+28(FP) MOVL $0, BX // i = 0 JMP E9 // i < n-1 L9: MOVL AX, DX // w = w1 MOVL 4(SI)(BX*4), AX // w1 = x[i+1] SHRL CX, AX, DX // w>>s | w1<<艥 MOVL DX, (DI)(BX*4) // z[i] = w>>s | w1<<艥 ADDL $1, BX // i++ E9: CMPL BX, BP JL L9 // i < n-1 // i >= n-1 X9a: SHRL CX, AX // w1>>s MOVL AX, (DI)(BP*4) // z[n-1] = w1>>s RET X9b: MOVL $0, c+28(FP) RET // func mulAddVWW(z, x []Word, y, r Word) (c Word) TEXT 路mulAddVWW(SB),NOSPLIT,$0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL y+24(FP), BP MOVL r+28(FP), CX // c = r MOVL z_len+4(FP), BX LEAL (DI)(BX*4), DI LEAL (SI)(BX*4), SI NEGL BX // i = -n JMP E5 L5: MOVL (SI)(BX*4), AX MULL BP ADDL CX, AX ADCL $0, DX MOVL AX, (DI)(BX*4) MOVL DX, CX ADDL $1, BX // i++ E5: CMPL BX, $0 // i < 0 JL L5 MOVL CX, c+32(FP) RET // func addMulVVW(z, x []Word, y Word) (c Word) TEXT 路addMulVVW(SB),NOSPLIT,$0 MOVL z+0(FP), DI MOVL x+12(FP), SI MOVL y+24(FP), BP MOVL z_len+4(FP), BX LEAL (DI)(BX*4), DI LEAL (SI)(BX*4), SI NEGL BX // i = -n MOVL $0, CX // c = 0 JMP E6 L6: MOVL (SI)(BX*4), AX MULL BP ADDL CX, AX ADCL $0, DX ADDL AX, (DI)(BX*4) ADCL $0, DX MOVL DX, CX ADDL $1, BX // i++ E6: CMPL BX, $0 // i < 0 JL L6 MOVL CX, c+28(FP) RET
Upload File
Create Folder