]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blob - vendor/golang.org/x/crypto/curve25519/square_amd64.s
Initial transfer of provider code
[github/fretlink/terraform-provider-statuscake.git] / vendor / golang.org / x / crypto / curve25519 / square_amd64.s
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 // +build amd64,!gccgo,!appengine
9
10 #include "const_amd64.h"
11
12 // func square(out, in *[5]uint64)
13 TEXT ·square(SB),7,$0-16
14 MOVQ out+0(FP), DI
15 MOVQ in+8(FP), SI
16
17 MOVQ 0(SI),AX
18 MULQ 0(SI)
19 MOVQ AX,CX
20 MOVQ DX,R8
21 MOVQ 0(SI),AX
22 SHLQ $1,AX
23 MULQ 8(SI)
24 MOVQ AX,R9
25 MOVQ DX,R10
26 MOVQ 0(SI),AX
27 SHLQ $1,AX
28 MULQ 16(SI)
29 MOVQ AX,R11
30 MOVQ DX,R12
31 MOVQ 0(SI),AX
32 SHLQ $1,AX
33 MULQ 24(SI)
34 MOVQ AX,R13
35 MOVQ DX,R14
36 MOVQ 0(SI),AX
37 SHLQ $1,AX
38 MULQ 32(SI)
39 MOVQ AX,R15
40 MOVQ DX,BX
41 MOVQ 8(SI),AX
42 MULQ 8(SI)
43 ADDQ AX,R11
44 ADCQ DX,R12
45 MOVQ 8(SI),AX
46 SHLQ $1,AX
47 MULQ 16(SI)
48 ADDQ AX,R13
49 ADCQ DX,R14
50 MOVQ 8(SI),AX
51 SHLQ $1,AX
52 MULQ 24(SI)
53 ADDQ AX,R15
54 ADCQ DX,BX
55 MOVQ 8(SI),DX
56 IMUL3Q $38,DX,AX
57 MULQ 32(SI)
58 ADDQ AX,CX
59 ADCQ DX,R8
60 MOVQ 16(SI),AX
61 MULQ 16(SI)
62 ADDQ AX,R15
63 ADCQ DX,BX
64 MOVQ 16(SI),DX
65 IMUL3Q $38,DX,AX
66 MULQ 24(SI)
67 ADDQ AX,CX
68 ADCQ DX,R8
69 MOVQ 16(SI),DX
70 IMUL3Q $38,DX,AX
71 MULQ 32(SI)
72 ADDQ AX,R9
73 ADCQ DX,R10
74 MOVQ 24(SI),DX
75 IMUL3Q $19,DX,AX
76 MULQ 24(SI)
77 ADDQ AX,R9
78 ADCQ DX,R10
79 MOVQ 24(SI),DX
80 IMUL3Q $38,DX,AX
81 MULQ 32(SI)
82 ADDQ AX,R11
83 ADCQ DX,R12
84 MOVQ 32(SI),DX
85 IMUL3Q $19,DX,AX
86 MULQ 32(SI)
87 ADDQ AX,R13
88 ADCQ DX,R14
89 MOVQ $REDMASK51,SI
90 SHLQ $13,R8:CX
91 ANDQ SI,CX
92 SHLQ $13,R10:R9
93 ANDQ SI,R9
94 ADDQ R8,R9
95 SHLQ $13,R12:R11
96 ANDQ SI,R11
97 ADDQ R10,R11
98 SHLQ $13,R14:R13
99 ANDQ SI,R13
100 ADDQ R12,R13
101 SHLQ $13,BX:R15
102 ANDQ SI,R15
103 ADDQ R14,R15
104 IMUL3Q $19,BX,DX
105 ADDQ DX,CX
106 MOVQ CX,DX
107 SHRQ $51,DX
108 ADDQ R9,DX
109 ANDQ SI,CX
110 MOVQ DX,R8
111 SHRQ $51,DX
112 ADDQ R11,DX
113 ANDQ SI,R8
114 MOVQ DX,R9
115 SHRQ $51,DX
116 ADDQ R13,DX
117 ANDQ SI,R9
118 MOVQ DX,AX
119 SHRQ $51,DX
120 ADDQ R15,DX
121 ANDQ SI,AX
122 MOVQ DX,R10
123 SHRQ $51,DX
124 IMUL3Q $19,DX,DX
125 ADDQ DX,CX
126 ANDQ SI,R10
127 MOVQ CX,0(DI)
128 MOVQ R8,8(DI)
129 MOVQ R9,16(DI)
130 MOVQ AX,24(DI)
131 MOVQ R10,32(DI)
132 RET