Skip to content

Commit ab5ad25

Browse files
crypto/bn256/cloudflare: pull in upstream fix for R27 and R29 usage (ethereum#32057)
Pulls in cloudflare/bn256#48 to remove usage of R27 and R29 [which are reserved](https://go.dev/doc/asm#arm64).
1 parent 0bfe4a0 commit ab5ad25

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

crypto/bn256/cloudflare/mul_arm64.h

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
// mul multiplies two 256-bit numbers in little-endian order.
2+
// The inputs are (R1,R2,R3,R4) times (R5,R6,R7,R8)
3+
// and the product is stored in (c0,c1,c2,c3,c4,c5,c6,c7).
4+
// Note that the input registers (R1,R2,R3) are overwritten.
15
#define mul(c0,c1,c2,c3,c4,c5,c6,c7) \
26
MUL R1, R5, c0 \
37
UMULH R1, R5, c1 \
@@ -16,54 +20,54 @@
1620
UMULH R2, R5, R26 \
1721
MUL R2, R6, R0 \
1822
ADDS R0, R26 \
19-
UMULH R2, R6, R27 \
23+
UMULH R2, R6, c6 \
2024
MUL R2, R7, R0 \
21-
ADCS R0, R27 \
22-
UMULH R2, R7, R29 \
25+
ADCS R0, c6 \
26+
UMULH R2, R7, c7 \
2327
MUL R2, R8, R0 \
24-
ADCS R0, R29 \
28+
ADCS R0, c7 \
2529
UMULH R2, R8, c5 \
2630
ADCS ZR, c5 \
2731
ADDS R1, c1 \
2832
ADCS R26, c2 \
29-
ADCS R27, c3 \
30-
ADCS R29, c4 \
33+
ADCS c6, c3 \
34+
ADCS c7, c4 \
3135
ADCS ZR, c5 \
3236
\
3337
MUL R3, R5, R1 \
3438
UMULH R3, R5, R26 \
3539
MUL R3, R6, R0 \
3640
ADDS R0, R26 \
37-
UMULH R3, R6, R27 \
41+
UMULH R3, R6, R2 \
3842
MUL R3, R7, R0 \
39-
ADCS R0, R27 \
40-
UMULH R3, R7, R29 \
43+
ADCS R0, R2 \
44+
UMULH R3, R7, c7 \
4145
MUL R3, R8, R0 \
42-
ADCS R0, R29 \
46+
ADCS R0, c7 \
4347
UMULH R3, R8, c6 \
4448
ADCS ZR, c6 \
4549
ADDS R1, c2 \
4650
ADCS R26, c3 \
47-
ADCS R27, c4 \
48-
ADCS R29, c5 \
51+
ADCS R2, c4 \
52+
ADCS c7, c5 \
4953
ADCS ZR, c6 \
5054
\
5155
MUL R4, R5, R1 \
5256
UMULH R4, R5, R26 \
5357
MUL R4, R6, R0 \
5458
ADDS R0, R26 \
55-
UMULH R4, R6, R27 \
59+
UMULH R4, R6, R2 \
5660
MUL R4, R7, R0 \
57-
ADCS R0, R27 \
58-
UMULH R4, R7, R29 \
61+
ADCS R0, R2 \
62+
UMULH R4, R7, R3 \
5963
MUL R4, R8, R0 \
60-
ADCS R0, R29 \
64+
ADCS R0, R3 \
6165
UMULH R4, R8, c7 \
6266
ADCS ZR, c7 \
6367
ADDS R1, c3 \
6468
ADCS R26, c4 \
65-
ADCS R27, c5 \
66-
ADCS R29, c6 \
69+
ADCS R2, c5 \
70+
ADCS R3, c6 \
6771
ADCS ZR, c7
6872

6973
#define gfpReduce() \

0 commit comments

Comments
 (0)