examples/sha1: use comments (#41)
This commit is contained in:
@@ -18,13 +18,13 @@ func main() {
|
||||
w := AllocLocal(64)
|
||||
W := func(r int) Mem { return w.Offset((r % 16) * 4) }
|
||||
|
||||
// Load initial hash.
|
||||
Comment("Load initial hash.")
|
||||
hash := [5]Register{GP32(), GP32(), GP32(), GP32(), GP32()}
|
||||
for i, r := range hash {
|
||||
MOVL(h.Offset(4*i), r)
|
||||
}
|
||||
|
||||
// Initialize registers.
|
||||
Comment("Initialize registers.")
|
||||
a, b, c, d, e := GP32(), GP32(), GP32(), GP32(), GP32()
|
||||
for i, r := range []Register{a, b, c, d, e} {
|
||||
MOVL(hash[i], r)
|
||||
@@ -42,6 +42,7 @@ func main() {
|
||||
}
|
||||
|
||||
for r := 0; r < 80; r++ {
|
||||
Commentf("Round %d.", r)
|
||||
q := quarter[r/20]
|
||||
|
||||
// Load message value.
|
||||
@@ -72,12 +73,12 @@ func main() {
|
||||
a, b, c, d, e = t, a, b, c, d
|
||||
}
|
||||
|
||||
// Final add.
|
||||
Comment("Final add.")
|
||||
for i, r := range []Register{a, b, c, d, e} {
|
||||
ADDL(r, hash[i])
|
||||
}
|
||||
|
||||
// Store results back.
|
||||
Comment("Store results back.")
|
||||
for i, r := range hash {
|
||||
MOVL(r, h.Offset(4*i))
|
||||
}
|
||||
|
||||
@@ -4,16 +4,22 @@
|
||||
TEXT ·block(SB), $64-32
|
||||
MOVQ h(FP), AX
|
||||
MOVQ m_base+8(FP), CX
|
||||
|
||||
// Load initial hash.
|
||||
MOVL (AX), DX
|
||||
MOVL 4(AX), BX
|
||||
MOVL 8(AX), BP
|
||||
MOVL 12(AX), SI
|
||||
MOVL 16(AX), DI
|
||||
|
||||
// Initialize registers.
|
||||
MOVL DX, R8
|
||||
MOVL BX, R9
|
||||
MOVL BP, R10
|
||||
MOVL SI, R11
|
||||
MOVL DI, R12
|
||||
|
||||
// Round 0.
|
||||
MOVL (CX), R13
|
||||
BSWAPL R13
|
||||
MOVL R13, (SP)
|
||||
@@ -28,6 +34,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R14
|
||||
ADDL R13, R14
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 1.
|
||||
MOVL 4(CX), R12
|
||||
BSWAPL R12
|
||||
MOVL R12, 4(SP)
|
||||
@@ -42,6 +50,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R13
|
||||
ADDL R12, R13
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 2.
|
||||
MOVL 8(CX), R11
|
||||
BSWAPL R11
|
||||
MOVL R11, 8(SP)
|
||||
@@ -56,6 +66,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R12
|
||||
ADDL R11, R12
|
||||
ROLL $0x1e, R14
|
||||
|
||||
// Round 3.
|
||||
MOVL 12(CX), R10
|
||||
BSWAPL R10
|
||||
MOVL R10, 12(SP)
|
||||
@@ -70,6 +82,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R11
|
||||
ADDL R10, R11
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 4.
|
||||
MOVL 16(CX), R9
|
||||
BSWAPL R9
|
||||
MOVL R9, 16(SP)
|
||||
@@ -84,6 +98,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R10
|
||||
ADDL R9, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 5.
|
||||
MOVL 20(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 20(SP)
|
||||
@@ -98,6 +114,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R9
|
||||
ADDL R8, R9
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 6.
|
||||
MOVL 24(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 24(SP)
|
||||
@@ -112,6 +130,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R14
|
||||
ADDL R8, R14
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 7.
|
||||
MOVL 28(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 28(SP)
|
||||
@@ -126,6 +146,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R13
|
||||
ADDL R8, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 8.
|
||||
MOVL 32(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 32(SP)
|
||||
@@ -140,6 +162,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R12
|
||||
ADDL R8, R12
|
||||
ROLL $0x1e, R14
|
||||
|
||||
// Round 9.
|
||||
MOVL 36(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 36(SP)
|
||||
@@ -154,6 +178,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R11
|
||||
ADDL R8, R11
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 10.
|
||||
MOVL 40(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 40(SP)
|
||||
@@ -168,6 +194,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R10
|
||||
ADDL R8, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 11.
|
||||
MOVL 44(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 44(SP)
|
||||
@@ -182,6 +210,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R9
|
||||
ADDL R8, R9
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 12.
|
||||
MOVL 48(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 48(SP)
|
||||
@@ -196,6 +226,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R14
|
||||
ADDL R8, R14
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 13.
|
||||
MOVL 52(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 52(SP)
|
||||
@@ -210,6 +242,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R13
|
||||
ADDL R8, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 14.
|
||||
MOVL 56(CX), R8
|
||||
BSWAPL R8
|
||||
MOVL R8, 56(SP)
|
||||
@@ -224,6 +258,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R12
|
||||
ADDL R8, R12
|
||||
ROLL $0x1e, R14
|
||||
|
||||
// Round 15.
|
||||
MOVL 60(CX), CX
|
||||
BSWAPL CX
|
||||
MOVL CX, 60(SP)
|
||||
@@ -238,6 +274,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 16.
|
||||
MOVL 52(SP), CX
|
||||
XORL 32(SP), CX
|
||||
XORL 8(SP), CX
|
||||
@@ -255,6 +293,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 17.
|
||||
MOVL 56(SP), CX
|
||||
XORL 36(SP), CX
|
||||
XORL 12(SP), CX
|
||||
@@ -272,6 +312,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 18.
|
||||
MOVL 60(SP), CX
|
||||
XORL 40(SP), CX
|
||||
XORL 16(SP), CX
|
||||
@@ -289,6 +331,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 19.
|
||||
MOVL (SP), CX
|
||||
XORL 44(SP), CX
|
||||
XORL 20(SP), CX
|
||||
@@ -306,6 +350,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x5a827999, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 20.
|
||||
MOVL 4(SP), CX
|
||||
XORL 48(SP), CX
|
||||
XORL 24(SP), CX
|
||||
@@ -322,6 +368,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 21.
|
||||
MOVL 8(SP), CX
|
||||
XORL 52(SP), CX
|
||||
XORL 28(SP), CX
|
||||
@@ -338,6 +386,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 22.
|
||||
MOVL 12(SP), CX
|
||||
XORL 56(SP), CX
|
||||
XORL 32(SP), CX
|
||||
@@ -354,6 +404,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 23.
|
||||
MOVL 16(SP), CX
|
||||
XORL 60(SP), CX
|
||||
XORL 36(SP), CX
|
||||
@@ -370,6 +422,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 24.
|
||||
MOVL 20(SP), CX
|
||||
XORL (SP), CX
|
||||
XORL 40(SP), CX
|
||||
@@ -386,6 +440,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 25.
|
||||
MOVL 24(SP), CX
|
||||
XORL 4(SP), CX
|
||||
XORL 44(SP), CX
|
||||
@@ -402,6 +458,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 26.
|
||||
MOVL 28(SP), CX
|
||||
XORL 8(SP), CX
|
||||
XORL 48(SP), CX
|
||||
@@ -418,6 +476,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 27.
|
||||
MOVL 32(SP), CX
|
||||
XORL 12(SP), CX
|
||||
XORL 52(SP), CX
|
||||
@@ -434,6 +494,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 28.
|
||||
MOVL 36(SP), CX
|
||||
XORL 16(SP), CX
|
||||
XORL 56(SP), CX
|
||||
@@ -450,6 +512,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 29.
|
||||
MOVL 40(SP), CX
|
||||
XORL 20(SP), CX
|
||||
XORL 60(SP), CX
|
||||
@@ -466,6 +530,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 30.
|
||||
MOVL 44(SP), CX
|
||||
XORL 24(SP), CX
|
||||
XORL (SP), CX
|
||||
@@ -482,6 +548,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 31.
|
||||
MOVL 48(SP), CX
|
||||
XORL 28(SP), CX
|
||||
XORL 4(SP), CX
|
||||
@@ -498,6 +566,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 32.
|
||||
MOVL 52(SP), CX
|
||||
XORL 32(SP), CX
|
||||
XORL 8(SP), CX
|
||||
@@ -514,6 +584,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 33.
|
||||
MOVL 56(SP), CX
|
||||
XORL 36(SP), CX
|
||||
XORL 12(SP), CX
|
||||
@@ -530,6 +602,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 34.
|
||||
MOVL 60(SP), CX
|
||||
XORL 40(SP), CX
|
||||
XORL 16(SP), CX
|
||||
@@ -546,6 +620,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 35.
|
||||
MOVL (SP), CX
|
||||
XORL 44(SP), CX
|
||||
XORL 20(SP), CX
|
||||
@@ -562,6 +638,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 36.
|
||||
MOVL 4(SP), CX
|
||||
XORL 48(SP), CX
|
||||
XORL 24(SP), CX
|
||||
@@ -578,6 +656,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 37.
|
||||
MOVL 8(SP), CX
|
||||
XORL 52(SP), CX
|
||||
XORL 28(SP), CX
|
||||
@@ -594,6 +674,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 38.
|
||||
MOVL 12(SP), CX
|
||||
XORL 56(SP), CX
|
||||
XORL 32(SP), CX
|
||||
@@ -610,6 +692,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 39.
|
||||
MOVL 16(SP), CX
|
||||
XORL 60(SP), CX
|
||||
XORL 36(SP), CX
|
||||
@@ -626,6 +710,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x6ed9eba1, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 40.
|
||||
MOVL 20(SP), CX
|
||||
XORL (SP), CX
|
||||
XORL 40(SP), CX
|
||||
@@ -645,6 +731,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 41.
|
||||
MOVL 24(SP), CX
|
||||
XORL 4(SP), CX
|
||||
XORL 44(SP), CX
|
||||
@@ -664,6 +752,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 42.
|
||||
MOVL 28(SP), CX
|
||||
XORL 8(SP), CX
|
||||
XORL 48(SP), CX
|
||||
@@ -683,6 +773,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 43.
|
||||
MOVL 32(SP), CX
|
||||
XORL 12(SP), CX
|
||||
XORL 52(SP), CX
|
||||
@@ -702,6 +794,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 44.
|
||||
MOVL 36(SP), CX
|
||||
XORL 16(SP), CX
|
||||
XORL 56(SP), CX
|
||||
@@ -721,6 +815,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 45.
|
||||
MOVL 40(SP), CX
|
||||
XORL 20(SP), CX
|
||||
XORL 60(SP), CX
|
||||
@@ -740,6 +836,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 46.
|
||||
MOVL 44(SP), CX
|
||||
XORL 24(SP), CX
|
||||
XORL (SP), CX
|
||||
@@ -759,6 +857,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 47.
|
||||
MOVL 48(SP), CX
|
||||
XORL 28(SP), CX
|
||||
XORL 4(SP), CX
|
||||
@@ -778,6 +878,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 48.
|
||||
MOVL 52(SP), CX
|
||||
XORL 32(SP), CX
|
||||
XORL 8(SP), CX
|
||||
@@ -797,6 +899,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 49.
|
||||
MOVL 56(SP), CX
|
||||
XORL 36(SP), CX
|
||||
XORL 12(SP), CX
|
||||
@@ -816,6 +920,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 50.
|
||||
MOVL 60(SP), CX
|
||||
XORL 40(SP), CX
|
||||
XORL 16(SP), CX
|
||||
@@ -835,6 +941,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 51.
|
||||
MOVL (SP), CX
|
||||
XORL 44(SP), CX
|
||||
XORL 20(SP), CX
|
||||
@@ -854,6 +962,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 52.
|
||||
MOVL 4(SP), CX
|
||||
XORL 48(SP), CX
|
||||
XORL 24(SP), CX
|
||||
@@ -873,6 +983,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 53.
|
||||
MOVL 8(SP), CX
|
||||
XORL 52(SP), CX
|
||||
XORL 28(SP), CX
|
||||
@@ -892,6 +1004,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 54.
|
||||
MOVL 12(SP), CX
|
||||
XORL 56(SP), CX
|
||||
XORL 32(SP), CX
|
||||
@@ -911,6 +1025,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 55.
|
||||
MOVL 16(SP), CX
|
||||
XORL 60(SP), CX
|
||||
XORL 36(SP), CX
|
||||
@@ -930,6 +1046,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 56.
|
||||
MOVL 20(SP), CX
|
||||
XORL (SP), CX
|
||||
XORL 40(SP), CX
|
||||
@@ -949,6 +1067,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 57.
|
||||
MOVL 24(SP), CX
|
||||
XORL 4(SP), CX
|
||||
XORL 44(SP), CX
|
||||
@@ -968,6 +1088,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 58.
|
||||
MOVL 28(SP), CX
|
||||
XORL 8(SP), CX
|
||||
XORL 48(SP), CX
|
||||
@@ -987,6 +1109,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 59.
|
||||
MOVL 32(SP), CX
|
||||
XORL 12(SP), CX
|
||||
XORL 52(SP), CX
|
||||
@@ -1006,6 +1130,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0x8f1bbcdc, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 60.
|
||||
MOVL 36(SP), CX
|
||||
XORL 16(SP), CX
|
||||
XORL 56(SP), CX
|
||||
@@ -1022,6 +1148,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 61.
|
||||
MOVL 40(SP), CX
|
||||
XORL 20(SP), CX
|
||||
XORL 60(SP), CX
|
||||
@@ -1038,6 +1166,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 62.
|
||||
MOVL 44(SP), CX
|
||||
XORL 24(SP), CX
|
||||
XORL (SP), CX
|
||||
@@ -1054,6 +1184,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 63.
|
||||
MOVL 48(SP), CX
|
||||
XORL 28(SP), CX
|
||||
XORL 4(SP), CX
|
||||
@@ -1070,6 +1202,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 64.
|
||||
MOVL 52(SP), CX
|
||||
XORL 32(SP), CX
|
||||
XORL 8(SP), CX
|
||||
@@ -1086,6 +1220,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 65.
|
||||
MOVL 56(SP), CX
|
||||
XORL 36(SP), CX
|
||||
XORL 12(SP), CX
|
||||
@@ -1102,6 +1238,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 66.
|
||||
MOVL 60(SP), CX
|
||||
XORL 40(SP), CX
|
||||
XORL 16(SP), CX
|
||||
@@ -1118,6 +1256,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 67.
|
||||
MOVL (SP), CX
|
||||
XORL 44(SP), CX
|
||||
XORL 20(SP), CX
|
||||
@@ -1134,6 +1274,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 68.
|
||||
MOVL 4(SP), CX
|
||||
XORL 48(SP), CX
|
||||
XORL 24(SP), CX
|
||||
@@ -1150,6 +1292,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 69.
|
||||
MOVL 8(SP), CX
|
||||
XORL 52(SP), CX
|
||||
XORL 28(SP), CX
|
||||
@@ -1166,6 +1310,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 70.
|
||||
MOVL 12(SP), CX
|
||||
XORL 56(SP), CX
|
||||
XORL 32(SP), CX
|
||||
@@ -1182,6 +1328,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 71.
|
||||
MOVL 16(SP), CX
|
||||
XORL 60(SP), CX
|
||||
XORL 36(SP), CX
|
||||
@@ -1198,6 +1346,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 72.
|
||||
MOVL 20(SP), CX
|
||||
XORL (SP), CX
|
||||
XORL 40(SP), CX
|
||||
@@ -1214,6 +1364,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 73.
|
||||
MOVL 24(SP), CX
|
||||
XORL 4(SP), CX
|
||||
XORL 44(SP), CX
|
||||
@@ -1230,6 +1382,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Round 74.
|
||||
MOVL 28(SP), CX
|
||||
XORL 8(SP), CX
|
||||
XORL 48(SP), CX
|
||||
@@ -1246,6 +1400,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R12
|
||||
ADDL CX, R12
|
||||
ROLL $0x1e, R11
|
||||
|
||||
// Round 75.
|
||||
MOVL 32(SP), CX
|
||||
XORL 12(SP), CX
|
||||
XORL 52(SP), CX
|
||||
@@ -1262,6 +1418,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R8
|
||||
ADDL CX, R8
|
||||
ROLL $0x1e, R13
|
||||
|
||||
// Round 76.
|
||||
MOVL 36(SP), CX
|
||||
XORL 16(SP), CX
|
||||
XORL 56(SP), CX
|
||||
@@ -1278,6 +1436,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R10
|
||||
ADDL CX, R10
|
||||
ROLL $0x1e, R12
|
||||
|
||||
// Round 77.
|
||||
MOVL 40(SP), CX
|
||||
XORL 20(SP), CX
|
||||
XORL 60(SP), CX
|
||||
@@ -1294,6 +1454,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R9
|
||||
ADDL CX, R9
|
||||
ROLL $0x1e, R8
|
||||
|
||||
// Round 78.
|
||||
MOVL 44(SP), CX
|
||||
XORL 24(SP), CX
|
||||
XORL (SP), CX
|
||||
@@ -1310,6 +1472,8 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R11
|
||||
ADDL CX, R11
|
||||
ROLL $0x1e, R10
|
||||
|
||||
// Round 79.
|
||||
MOVL 48(SP), CX
|
||||
XORL 28(SP), CX
|
||||
XORL 4(SP), CX
|
||||
@@ -1326,11 +1490,15 @@ TEXT ·block(SB), $64-32
|
||||
ADDL $0xca62c1d6, R13
|
||||
ADDL CX, R13
|
||||
ROLL $0x1e, R9
|
||||
|
||||
// Final add.
|
||||
ADDL R13, DX
|
||||
ADDL R11, BX
|
||||
ADDL R9, BP
|
||||
ADDL R10, SI
|
||||
ADDL R8, DI
|
||||
|
||||
// Store results back.
|
||||
MOVL DX, (AX)
|
||||
MOVL BX, 4(AX)
|
||||
MOVL BP, 8(AX)
|
||||
|
||||
Reference in New Issue
Block a user