1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // This code was translated into a form compatible with 6a from the public
6 // domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
7
8 // func square(dest, src *[5]uint64)
9 TEXT ·square(SB),7,$96-16
10 MOVQ dest+0(FP), DI
11 MOVQ src+8(FP), SI
12
13 MOVQ SP,R11
14 MOVQ $31,CX
15 NOTQ CX
16 ANDQ CX,SP
17 ADDQ $32, SP
18
19 MOVQ R11,0(SP)
20 MOVQ R12,8(SP)
21 MOVQ R13,16(SP)
22 MOVQ R14,24(SP)
23 MOVQ R15,32(SP)
24 MOVQ BX,40(SP)
25 MOVQ BP,48(SP)
26 MOVQ 0(SI),AX
27 MULQ 0(SI)
28 MOVQ AX,CX
29 MOVQ DX,R8
30 MOVQ 0(SI),AX
31 SHLQ $1,AX
32 MULQ 8(SI)
33 MOVQ AX,R9
34 MOVQ DX,R10
35 MOVQ 0(SI),AX
36 SHLQ $1,AX
37 MULQ 16(SI)
38 MOVQ AX,R11
39 MOVQ DX,R12
40 MOVQ 0(SI),AX
41 SHLQ $1,AX
42 MULQ 24(SI)
43 MOVQ AX,R13
44 MOVQ DX,R14
45 MOVQ 0(SI),AX
46 SHLQ $1,AX
47 MULQ 32(SI)
48 MOVQ AX,R15
49 MOVQ DX,BX
50 MOVQ 8(SI),AX
51 MULQ 8(SI)
52 ADDQ AX,R11
53 ADCQ DX,R12
54 MOVQ 8(SI),AX
55 SHLQ $1,AX
56 MULQ 16(SI)
57 ADDQ AX,R13
58 ADCQ DX,R14
59 MOVQ 8(SI),AX
60 SHLQ $1,AX
61 MULQ 24(SI)
62 ADDQ AX,R15
63 ADCQ DX,BX
64 MOVQ 8(SI),DX
65 IMUL3Q $38,DX,AX
66 MULQ 32(SI)
67 ADDQ AX,CX
68 ADCQ DX,R8
69 MOVQ 16(SI),AX
70 MULQ 16(SI)
71 ADDQ AX,R15
72 ADCQ DX,BX
73 MOVQ 16(SI),DX
74 IMUL3Q $38,DX,AX
75 MULQ 24(SI)
76 ADDQ AX,CX
77 ADCQ DX,R8
78 MOVQ 16(SI),DX
79 IMUL3Q $38,DX,AX
80 MULQ 32(SI)
81 ADDQ AX,R9
82 ADCQ DX,R10
83 MOVQ 24(SI),DX
84 IMUL3Q $19,DX,AX
85 MULQ 24(SI)
86 ADDQ AX,R9
87 ADCQ DX,R10
88 MOVQ 24(SI),DX
89 IMUL3Q $38,DX,AX
90 MULQ 32(SI)
91 ADDQ AX,R11
92 ADCQ DX,R12
93 MOVQ 32(SI),DX
94 IMUL3Q $19,DX,AX
95 MULQ 32(SI)
96 ADDQ AX,R13
97 ADCQ DX,R14
98 MOVQ ·REDMASK51(SB),SI
99 SHLQ $13,R8:CX
100 ANDQ SI,CX
101 SHLQ $13,R10:R9
102 ANDQ SI,R9
103 ADDQ R8,R9
104 SHLQ $13,R12:R11
105 ANDQ SI,R11
106 ADDQ R10,R11
107 SHLQ $13,R14:R13
108 ANDQ SI,R13
109 ADDQ R12,R13
110 SHLQ $13,BX:R15
111 ANDQ SI,R15
112 ADDQ R14,R15
113 IMUL3Q $19,BX,DX
114 ADDQ DX,CX
115 MOVQ CX,DX
116 SHRQ $51,DX
117 ADDQ R9,DX
118 ANDQ SI,CX
119 MOVQ DX,R8
120 SHRQ $51,DX
121 ADDQ R11,DX
122 ANDQ SI,R8
123 MOVQ DX,R9
124 SHRQ $51,DX
125 ADDQ R13,DX
126 ANDQ SI,R9
127 MOVQ DX,AX
128 SHRQ $51,DX
129 ADDQ R15,DX
130 ANDQ SI,AX
131 MOVQ DX,R10
132 SHRQ $51,DX
133 IMUL3Q $19,DX,DX
134 ADDQ DX,CX
135 ANDQ SI,R10
136 MOVQ CX,0(DI)
137 MOVQ R8,8(DI)
138 MOVQ R9,16(DI)
139 MOVQ AX,24(DI)
140 MOVQ R10,32(DI)
141 MOVQ 0(SP),R11
142 MOVQ 8(SP),R12
143 MOVQ 16(SP),R13
144 MOVQ 24(SP),R14
145 MOVQ 32(SP),R15
146 MOVQ 40(SP),BX
147 MOVQ 48(SP),BP
148 MOVQ R11,SP
149 MOVQ DI,AX
150 MOVQ SI,DX
151 RET
OLD
NEW
« no previous file with comments
|
« curve25519/mul_amd64.s ('k')
|
no next file »
|
no next file with comments »
Issue 5786045: code review 5786045: go.crypto/curve25519: add package.
(Closed)
Created 13 years ago by agl1
Modified 13 years ago
Reviewers:
Base URL:
Comments: 32