]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.25] Revert "crypto/internal/fips140/subtle: add assembly implemen...
authorKeith Randall <khr@golang.org>
Tue, 7 Oct 2025 17:12:43 +0000 (10:12 -0700)
committerMichael Knyszek <mknyszek@google.com>
Tue, 28 Oct 2025 16:42:49 +0000 (09:42 -0700)
This reverts commit 343e486bfdbf9ca614d3e197afd79ad7ed5fef3e.

Reason for revert: doesn't handle unaligned accesses correctly.

Update #75790

Change-Id: I1d6210eeca9336f2ce311e99944cb270565563aa
Reviewed-on: https://go-review.googlesource.com/c/go/+/709795
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
(cherry picked from commit cb81270113968408d7cc41c0b1530adb51dd8496)
Reviewed-on: https://go-review.googlesource.com/c/go/+/709758
Reviewed-by: David Chase <drchase@google.com>
src/crypto/internal/fips140/subtle/xor_asm.go
src/crypto/internal/fips140/subtle/xor_generic.go
src/crypto/internal/fips140/subtle/xor_mipsx.s [deleted file]

index b07239da3e31c15c753048d391f0141c355d188c..e10ea8b441429ba12846935328cdb7de9aafed4a 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build (amd64 || arm64 || mips || mipsle || mips64 || mips64le || ppc64 || ppc64le || riscv64) && !purego
+//go:build (amd64 || arm64 || mips64 || mips64le || ppc64 || ppc64le || riscv64) && !purego
 
 package subtle
 
index ed484bc630e98d00ccd77d64bf5031c91c67a3fa..08af84de2a3dabc85ae9230be5056cf5e32e2eca 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build (!amd64 && !arm64 && !loong64 && !mips && !mipsle && !mips64 && !mips64le && !ppc64 && !ppc64le && !riscv64) || purego
+//go:build (!amd64 && !arm64 && !loong64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !riscv64) || purego
 
 package subtle
 
diff --git a/src/crypto/internal/fips140/subtle/xor_mipsx.s b/src/crypto/internal/fips140/subtle/xor_mipsx.s
deleted file mode 100644 (file)
index 1a6b3f4..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-// Copyright 2025 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 (mips || mipsle) && !purego
-
-#include "textflag.h"
-
-// func xorBytes(dst, a, b *byte, n int)
-TEXT ·xorBytes(SB), NOSPLIT|NOFRAME, $0
-       MOVW    dst+0(FP), R1
-       MOVW    a+4(FP), R2
-       MOVW    b+8(FP), R3
-       MOVW    n+12(FP), R4
-
-       SGTU    $64, R4, R5 // R5 = 1 if (64 > R4)
-       BNE     R5, xor_32_check
-xor_64:
-       MOVW    (R2), R6
-       MOVW    4(R2), R7
-       MOVW    8(R2), R8
-       MOVW    12(R2), R9
-       MOVW    (R3), R10
-       MOVW    4(R3), R11
-       MOVW    8(R3), R12
-       MOVW    12(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, (R1)
-       MOVW    R11, 4(R1)
-       MOVW    R12, 8(R1)
-       MOVW    R13, 12(R1)
-       MOVW    16(R2), R6
-       MOVW    20(R2), R7
-       MOVW    24(R2), R8
-       MOVW    28(R2), R9
-       MOVW    16(R3), R10
-       MOVW    20(R3), R11
-       MOVW    24(R3), R12
-       MOVW    28(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, 16(R1)
-       MOVW    R11, 20(R1)
-       MOVW    R12, 24(R1)
-       MOVW    R13, 28(R1)
-       MOVW    32(R2), R6
-       MOVW    36(R2), R7
-       MOVW    40(R2), R8
-       MOVW    44(R2), R9
-       MOVW    32(R3), R10
-       MOVW    36(R3), R11
-       MOVW    40(R3), R12
-       MOVW    44(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, 32(R1)
-       MOVW    R11, 36(R1)
-       MOVW    R12, 40(R1)
-       MOVW    R13, 44(R1)
-       MOVW    48(R2), R6
-       MOVW    52(R2), R7
-       MOVW    56(R2), R8
-       MOVW    60(R2), R9
-       MOVW    48(R3), R10
-       MOVW    52(R3), R11
-       MOVW    56(R3), R12
-       MOVW    60(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, 48(R1)
-       MOVW    R11, 52(R1)
-       MOVW    R12, 56(R1)
-       MOVW    R13, 60(R1)
-       ADD     $64, R2
-       ADD     $64, R3
-       ADD     $64, R1
-       SUB     $64, R4
-       SGTU    $64, R4, R5
-       BEQ     R0, R5, xor_64
-       BEQ     R0, R4, end
-
-xor_32_check:
-       SGTU    $32, R4, R5
-       BNE     R5, xor_16_check
-xor_32:
-       MOVW    (R2), R6
-       MOVW    4(R2), R7
-       MOVW    8(R2), R8
-       MOVW    12(R2), R9
-       MOVW    (R3), R10
-       MOVW    4(R3), R11
-       MOVW    8(R3), R12
-       MOVW    12(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, (R1)
-       MOVW    R11, 4(R1)
-       MOVW    R12, 8(R1)
-       MOVW    R13, 12(R1)
-       MOVW    16(R2), R6
-       MOVW    20(R2), R7
-       MOVW    24(R2), R8
-       MOVW    28(R2), R9
-       MOVW    16(R3), R10
-       MOVW    20(R3), R11
-       MOVW    24(R3), R12
-       MOVW    28(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, 16(R1)
-       MOVW    R11, 20(R1)
-       MOVW    R12, 24(R1)
-       MOVW    R13, 28(R1)
-       ADD     $32, R2
-       ADD     $32, R3
-       ADD     $32, R1
-       SUB     $32, R4
-       BEQ     R0, R4, end
-
-xor_16_check:
-       SGTU    $16, R4, R5
-       BNE     R5, xor_8_check
-xor_16:
-       MOVW    (R2), R6
-       MOVW    4(R2), R7
-       MOVW    8(R2), R8
-       MOVW    12(R2), R9
-       MOVW    (R3), R10
-       MOVW    4(R3), R11
-       MOVW    8(R3), R12
-       MOVW    12(R3), R13
-       XOR     R6, R10
-       XOR     R7, R11
-       XOR     R8, R12
-       XOR     R9, R13
-       MOVW    R10, (R1)
-       MOVW    R11, 4(R1)
-       MOVW    R12, 8(R1)
-       MOVW    R13, 12(R1)
-       ADD     $16, R2
-       ADD     $16, R3
-       ADD     $16, R1
-       SUB     $16, R4
-       BEQ     R0, R4, end
-
-xor_8_check:
-       SGTU    $8, R4, R5
-       BNE     R5, xor_4_check
-xor_8:
-       MOVW    (R2), R6
-       MOVW    4(R2), R7
-       MOVW    (R3), R8
-       MOVW    4(R3), R9
-       XOR     R6, R8
-       XOR     R7, R9
-       MOVW    R8, (R1)
-       MOVW    R9, 4(R1)
-       ADD     $8, R1
-       ADD     $8, R2
-       ADD     $8, R3
-       SUB     $8, R4
-       BEQ     R0, R4, end
-
-xor_4_check:
-       SGTU    $4, R4, R5
-       BNE     R5, xor_2_check
-xor_4:
-       MOVW    (R2), R6
-       MOVW    (R3), R7
-       XOR     R6, R7
-       MOVW    R7, (R1)
-       ADD     $4, R2
-       ADD     $4, R3
-       ADD     $4, R1
-       SUB     $4, R4
-       BEQ     R0, R4, end
-
-xor_2_check:
-       SGTU    $2, R4, R5
-       BNE     R5, xor_1
-xor_2:
-       MOVH    (R2), R6
-       MOVH    (R3), R7
-       XOR     R6, R7
-       MOVH    R7, (R1)
-       ADD     $2, R2
-       ADD     $2, R3
-       ADD     $2, R1
-       SUB     $2, R4
-       BEQ     R0, R4, end
-
-xor_1:
-       MOVB    (R2), R6
-       MOVB    (R3), R7
-       XOR     R6, R7
-       MOVB    R7, (R1)
-
-end:
-       RET