@@ -25,6 +25,7 @@ TEXT ·block(SB),NOSPLIT,$8-32
25
25
MOVL (1*4 )(BP), BX
26
26
MOVL (2*4 )(BP), CX
27
27
MOVL (3*4 )(BP), DX
28
+ MOVL $0xffffffff , R11
28
29
29
30
CMPQ SI, DI
30
31
JEQ end
40
41
41
42
#define ROUND1(a, b, c, d, index, const, shift) \
42
43
XORL c, R9; \
43
- LEAL const(a)(R8*1 ), a; \
44
+ ADDL $const, a; \
45
+ ADDL R8, a; \
44
46
ANDL b, R9; \
45
47
XORL d, R9; \
46
48
MOVL (index*4 )(SI), R8; \
@@ -64,15 +66,15 @@ loop:
64
66
ROUND1(AX,BX,CX,DX,13 ,0x6b901122 , 7 );
65
67
ROUND1(DX,AX,BX,CX,14 ,0xfd987193 ,12 );
66
68
ROUND1(CX,DX,AX,BX,15 ,0xa679438e ,17 );
67
- ROUND1(BX,CX,DX,AX, 0 ,0x49b40821 ,22 );
69
+ ROUND1(BX,CX,DX,AX, 1 ,0x49b40821 ,22 );
68
70
69
- MOVL (1*4 )(SI), R8
70
71
MOVL DX, R9
71
72
MOVL DX, R10
72
73
73
74
#define ROUND2(a, b, c, d, index, const, shift) \
74
- NOTL R9; \
75
- LEAL const(a)(R8*1 ),a; \
75
+ XORL R11, R9; \
76
+ ADDL $const, a; \
77
+ ADDL R8, a; \
76
78
ANDL b, R10; \
77
79
ANDL c, R9; \
78
80
MOVL (index*4 )(SI),R8; \
@@ -98,13 +100,13 @@ loop:
98
100
ROUND2(AX,BX,CX,DX, 2 ,0xa9e3e905 , 5 );
99
101
ROUND2(DX,AX,BX,CX, 7 ,0xfcefa3f8 , 9 );
100
102
ROUND2(CX,DX,AX,BX,12 ,0x676f02d9 ,14 );
101
- ROUND2(BX,CX,DX,AX, 0 ,0x8d2a4c8a ,20 );
103
+ ROUND2(BX,CX,DX,AX, 5 ,0x8d2a4c8a ,20 );
102
104
103
- MOVL (5*4 )(SI), R8
104
105
MOVL CX, R9
105
106
106
107
#define ROUND3(a, b, c, d, index, const, shift) \
107
- LEAL const(a)(R8*1 ),a; \
108
+ ADDL $const, a; \
109
+ ADDL R8, a; \
108
110
MOVL (index*4 )(SI),R8; \
109
111
XORL d, R9; \
110
112
XORL b, R9; \
@@ -130,12 +132,12 @@ loop:
130
132
ROUND3(CX,DX,AX,BX, 2 ,0x1fa27cf8 ,16 );
131
133
ROUND3(BX,CX,DX,AX, 0 ,0xc4ac5665 ,23 );
132
134
133
- MOVL (0 *4 )(SI), R8
134
- MOVL $0xffffffff , R9
135
+ MOVL R11, R9
135
136
XORL DX, R9
136
137
137
138
#define ROUND4(a, b, c, d, index, const, shift) \
138
- LEAL const(a)(R8*1 ),a; \
139
+ ADDL $const, a; \
140
+ ADDL R8, a; \
139
141
ORL b, R9; \
140
142
XORL c, R9; \
141
143
ADDL R9, a; \
0 commit comments