~ubuntu-branches/ubuntu/saucy/juju-core/saucy-proposed

« back to all changes in this revision

Viewing changes to src/code.google.com/p/go.crypto/poly1305/poly1305_amd64.s

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-07-11 17:18:27 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20130711171827-vjqkg40r0dlf7ys2
Tags: 1.11.2-0ubuntu1
* New upstream release.
* Make juju-core the default juju (LP: #1190634):
  - d/control: Add virtual package juju -> juju-core.
  - d/juju-core.postinst.in: Bump priority of alternatives over that of
    python juju packages.
* Enable for all architectures (LP: #1172505):
  - d/control: Version BD on golang-go to >= 2:1.1.1 to ensure CGO
    support for non-x86 archs, make juju-core Arch: any.
  - d/README.source: Dropped - no longer required.
* d/watch: Updated for new upstream tarball naming.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
9
 
 
10
// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key)
 
11
TEXT ·poly1305(SB),0,$224-32
 
12
        MOVQ out+0(FP),DI
 
13
        MOVQ m+8(FP),SI
 
14
        MOVQ mlen+16(FP),DX
 
15
        MOVQ key+24(FP),CX
 
16
 
 
17
        MOVQ SP,R11
 
18
        MOVQ $31,R9
 
19
        NOTQ R9
 
20
        ANDQ R9,SP
 
21
        ADDQ $32,SP
 
22
 
 
23
        MOVQ R11,32(SP)
 
24
        MOVQ R12,40(SP)
 
25
        MOVQ R13,48(SP)
 
26
        MOVQ R14,56(SP)
 
27
        MOVQ R15,64(SP)
 
28
        MOVQ BX,72(SP)
 
29
        MOVQ BP,80(SP)
 
30
        FLDCW ·ROUNDING(SB)
 
31
        MOVL 0(CX),R8
 
32
        MOVL 4(CX),R9
 
33
        MOVL 8(CX),AX
 
34
        MOVL 12(CX),R10
 
35
        MOVQ DI,88(SP)
 
36
        MOVQ CX,96(SP)
 
37
        MOVL $0X43300000,108(SP)
 
38
        MOVL $0X45300000,116(SP)
 
39
        MOVL $0X47300000,124(SP)
 
40
        MOVL $0X49300000,132(SP)
 
41
        ANDL $0X0FFFFFFF,R8
 
42
        ANDL $0X0FFFFFFC,R9
 
43
        ANDL $0X0FFFFFFC,AX
 
44
        ANDL $0X0FFFFFFC,R10
 
45
        MOVL R8,104(SP)
 
46
        MOVL R9,112(SP)
 
47
        MOVL AX,120(SP)
 
48
        MOVL R10,128(SP)
 
49
        FMOVD 104(SP), F0
 
50
        FSUBD ·DOFFSET0(SB), F0
 
51
        FMOVD 112(SP), F0
 
52
        FSUBD ·DOFFSET1(SB), F0
 
53
        FMOVD 120(SP), F0
 
54
        FSUBD ·DOFFSET2(SB), F0
 
55
        FMOVD 128(SP), F0
 
56
        FSUBD ·DOFFSET3(SB), F0
 
57
        FXCHD F0, F3
 
58
        FMOVDP F0, 136(SP)
 
59
        FXCHD F0, F1
 
60
        FMOVD F0, 144(SP)
 
61
        FMULD ·SCALE(SB), F0
 
62
        FMOVDP F0, 152(SP)
 
63
        FMOVD F0, 160(SP)
 
64
        FMULD ·SCALE(SB), F0
 
65
        FMOVDP F0, 168(SP)
 
66
        FMOVD F0, 176(SP)
 
67
        FMULD ·SCALE(SB), F0
 
68
        FMOVDP F0, 184(SP)
 
69
        FLDZ
 
70
        FLDZ
 
71
        FLDZ
 
72
        FLDZ
 
73
        CMPQ DX,$16
 
74
        JB ADDATMOST15BYTES
 
75
        INITIALATLEAST16BYTES:
 
76
        MOVL 12(SI),DI
 
77
        MOVL 8(SI),CX
 
78
        MOVL 4(SI),R8
 
79
        MOVL 0(SI),R9
 
80
        MOVL DI,128(SP)
 
81
        MOVL CX,120(SP)
 
82
        MOVL R8,112(SP)
 
83
        MOVL R9,104(SP)
 
84
        ADDQ $16,SI
 
85
        SUBQ $16,DX
 
86
        FXCHD F0, F3
 
87
        FADDD 128(SP), F0
 
88
        FSUBD ·DOFFSET3MINUSTWO128(SB), F0
 
89
        FXCHD F0, F1
 
90
        FADDD 112(SP), F0
 
91
        FSUBD ·DOFFSET1(SB), F0
 
92
        FXCHD F0, F2
 
93
        FADDD 120(SP), F0
 
94
        FSUBD ·DOFFSET2(SB), F0
 
95
        FXCHD F0, F3
 
96
        FADDD 104(SP), F0
 
97
        FSUBD ·DOFFSET0(SB), F0
 
98
        CMPQ DX,$16
 
99
        JB MULTIPLYADDATMOST15BYTES
 
100
        MULTIPLYADDATLEAST16BYTES:
 
101
        MOVL 12(SI),DI
 
102
        MOVL 8(SI),CX
 
103
        MOVL 4(SI),R8
 
104
        MOVL 0(SI),R9
 
105
        MOVL DI,128(SP)
 
106
        MOVL CX,120(SP)
 
107
        MOVL R8,112(SP)
 
108
        MOVL R9,104(SP)
 
109
        ADDQ $16,SI
 
110
        SUBQ $16,DX
 
111
        FMOVD ·ALPHA130(SB), F0
 
112
        FADDD F2,F0
 
113
        FSUBD ·ALPHA130(SB), F0
 
114
        FSUBD F0,F2
 
115
        FMULD ·SCALE(SB), F0
 
116
        FMOVD ·ALPHA32(SB), F0
 
117
        FADDD F2,F0
 
118
        FSUBD ·ALPHA32(SB), F0
 
119
        FSUBD F0,F2
 
120
        FXCHD F0, F2
 
121
        FADDDP F0,F1
 
122
        FMOVD ·ALPHA64(SB), F0
 
123
        FADDD F4,F0
 
124
        FSUBD ·ALPHA64(SB), F0
 
125
        FSUBD F0,F4
 
126
        FMOVD ·ALPHA96(SB), F0
 
127
        FADDD F6,F0
 
128
        FSUBD ·ALPHA96(SB), F0
 
129
        FSUBD F0,F6
 
130
        FXCHD F0, F6
 
131
        FADDDP F0,F1
 
132
        FXCHD F0, F3
 
133
        FADDDP F0,F5
 
134
        FXCHD F0, F3
 
135
        FADDDP F0,F1
 
136
        FMOVD 176(SP), F0
 
137
        FMULD F3,F0
 
138
        FMOVD 160(SP), F0
 
139
        FMULD F4,F0
 
140
        FMOVD 144(SP), F0
 
141
        FMULD F5,F0
 
142
        FMOVD 136(SP), F0
 
143
        FMULDP F0,F6
 
144
        FMOVD 160(SP), F0
 
145
        FMULD F4,F0
 
146
        FADDDP F0,F3
 
147
        FMOVD 144(SP), F0
 
148
        FMULD F4,F0
 
149
        FADDDP F0,F2
 
150
        FMOVD 136(SP), F0
 
151
        FMULD F4,F0
 
152
        FADDDP F0,F1
 
153
        FMOVD 184(SP), F0
 
154
        FMULDP F0,F4
 
155
        FXCHD F0, F3
 
156
        FADDDP F0,F5
 
157
        FMOVD 144(SP), F0
 
158
        FMULD F4,F0
 
159
        FADDDP F0,F2
 
160
        FMOVD 136(SP), F0
 
161
        FMULD F4,F0
 
162
        FADDDP F0,F1
 
163
        FMOVD 184(SP), F0
 
164
        FMULD F4,F0
 
165
        FADDDP F0,F3
 
166
        FMOVD 168(SP), F0
 
167
        FMULDP F0,F4
 
168
        FXCHD F0, F3
 
169
        FADDDP F0,F4
 
170
        FMOVD 136(SP), F0
 
171
        FMULD F5,F0
 
172
        FADDDP F0,F1
 
173
        FXCHD F0, F3
 
174
        FMOVD 184(SP), F0
 
175
        FMULD F5,F0
 
176
        FADDDP F0,F3
 
177
        FXCHD F0, F1
 
178
        FMOVD 168(SP), F0
 
179
        FMULD F5,F0
 
180
        FADDDP F0,F1
 
181
        FMOVD 152(SP), F0
 
182
        FMULDP F0,F5
 
183
        FXCHD F0, F4
 
184
        FADDDP F0,F1
 
185
        CMPQ DX,$16
 
186
        FXCHD F0, F2
 
187
        FMOVD 128(SP), F0
 
188
        FSUBD ·DOFFSET3MINUSTWO128(SB), F0
 
189
        FADDDP F0,F1
 
190
        FXCHD F0, F1
 
191
        FMOVD 120(SP), F0
 
192
        FSUBD ·DOFFSET2(SB), F0
 
193
        FADDDP F0,F1
 
194
        FXCHD F0, F3
 
195
        FMOVD 112(SP), F0
 
196
        FSUBD ·DOFFSET1(SB), F0
 
197
        FADDDP F0,F1
 
198
        FXCHD F0, F2
 
199
        FMOVD 104(SP), F0
 
200
        FSUBD ·DOFFSET0(SB), F0
 
201
        FADDDP F0,F1
 
202
        JAE MULTIPLYADDATLEAST16BYTES
 
203
        MULTIPLYADDATMOST15BYTES:
 
204
        FMOVD ·ALPHA130(SB), F0
 
205
        FADDD F2,F0
 
206
        FSUBD ·ALPHA130(SB), F0
 
207
        FSUBD F0,F2
 
208
        FMULD ·SCALE(SB), F0
 
209
        FMOVD ·ALPHA32(SB), F0
 
210
        FADDD F2,F0
 
211
        FSUBD ·ALPHA32(SB), F0
 
212
        FSUBD F0,F2
 
213
        FMOVD ·ALPHA64(SB), F0
 
214
        FADDD F5,F0
 
215
        FSUBD ·ALPHA64(SB), F0
 
216
        FSUBD F0,F5
 
217
        FMOVD ·ALPHA96(SB), F0
 
218
        FADDD F7,F0
 
219
        FSUBD ·ALPHA96(SB), F0
 
220
        FSUBD F0,F7
 
221
        FXCHD F0, F7
 
222
        FADDDP F0,F1
 
223
        FXCHD F0, F5
 
224
        FADDDP F0,F1
 
225
        FXCHD F0, F3
 
226
        FADDDP F0,F5
 
227
        FADDDP F0,F1
 
228
        FMOVD 176(SP), F0
 
229
        FMULD F1,F0
 
230
        FMOVD 160(SP), F0
 
231
        FMULD F2,F0
 
232
        FMOVD 144(SP), F0
 
233
        FMULD F3,F0
 
234
        FMOVD 136(SP), F0
 
235
        FMULDP F0,F4
 
236
        FMOVD 160(SP), F0
 
237
        FMULD F5,F0
 
238
        FADDDP F0,F3
 
239
        FMOVD 144(SP), F0
 
240
        FMULD F5,F0
 
241
        FADDDP F0,F2
 
242
        FMOVD 136(SP), F0
 
243
        FMULD F5,F0
 
244
        FADDDP F0,F1
 
245
        FMOVD 184(SP), F0
 
246
        FMULDP F0,F5
 
247
        FXCHD F0, F4
 
248
        FADDDP F0,F3
 
249
        FMOVD 144(SP), F0
 
250
        FMULD F5,F0
 
251
        FADDDP F0,F2
 
252
        FMOVD 136(SP), F0
 
253
        FMULD F5,F0
 
254
        FADDDP F0,F1
 
255
        FMOVD 184(SP), F0
 
256
        FMULD F5,F0
 
257
        FADDDP F0,F4
 
258
        FMOVD 168(SP), F0
 
259
        FMULDP F0,F5
 
260
        FXCHD F0, F4
 
261
        FADDDP F0,F2
 
262
        FMOVD 136(SP), F0
 
263
        FMULD F5,F0
 
264
        FADDDP F0,F1
 
265
        FMOVD 184(SP), F0
 
266
        FMULD F5,F0
 
267
        FADDDP F0,F4
 
268
        FMOVD 168(SP), F0
 
269
        FMULD F5,F0
 
270
        FADDDP F0,F3
 
271
        FMOVD 152(SP), F0
 
272
        FMULDP F0,F5
 
273
        FXCHD F0, F4
 
274
        FADDDP F0,F1
 
275
        ADDATMOST15BYTES:
 
276
        CMPQ DX,$0
 
277
        JE NOMOREBYTES
 
278
        MOVL $0,0(SP)
 
279
        MOVL $0, 4 (SP)
 
280
        MOVL $0, 8 (SP)
 
281
        MOVL $0, 12 (SP)
 
282
        LEAQ 0(SP),DI
 
283
        MOVQ DX,CX
 
284
        REP; MOVSB
 
285
        MOVB $1,0(DI)
 
286
        MOVL  12 (SP),DI
 
287
        MOVL  8 (SP),SI
 
288
        MOVL  4 (SP),DX
 
289
        MOVL 0(SP),CX
 
290
        MOVL DI,128(SP)
 
291
        MOVL SI,120(SP)
 
292
        MOVL DX,112(SP)
 
293
        MOVL CX,104(SP)
 
294
        FXCHD F0, F3
 
295
        FADDD 128(SP), F0
 
296
        FSUBD ·DOFFSET3(SB), F0
 
297
        FXCHD F0, F2
 
298
        FADDD 120(SP), F0
 
299
        FSUBD ·DOFFSET2(SB), F0
 
300
        FXCHD F0, F1
 
301
        FADDD 112(SP), F0
 
302
        FSUBD ·DOFFSET1(SB), F0
 
303
        FXCHD F0, F3
 
304
        FADDD 104(SP), F0
 
305
        FSUBD ·DOFFSET0(SB), F0
 
306
        FMOVD ·ALPHA130(SB), F0
 
307
        FADDD F3,F0
 
308
        FSUBD ·ALPHA130(SB), F0
 
309
        FSUBD F0,F3
 
310
        FMULD ·SCALE(SB), F0
 
311
        FMOVD ·ALPHA32(SB), F0
 
312
        FADDD F2,F0
 
313
        FSUBD ·ALPHA32(SB), F0
 
314
        FSUBD F0,F2
 
315
        FMOVD ·ALPHA64(SB), F0
 
316
        FADDD F6,F0
 
317
        FSUBD ·ALPHA64(SB), F0
 
318
        FSUBD F0,F6
 
319
        FMOVD ·ALPHA96(SB), F0
 
320
        FADDD F5,F0
 
321
        FSUBD ·ALPHA96(SB), F0
 
322
        FSUBD F0,F5
 
323
        FXCHD F0, F4
 
324
        FADDDP F0,F3
 
325
        FXCHD F0, F6
 
326
        FADDDP F0,F1
 
327
        FXCHD F0, F3
 
328
        FADDDP F0,F5
 
329
        FXCHD F0, F3
 
330
        FADDDP F0,F1
 
331
        FMOVD 176(SP), F0
 
332
        FMULD F3,F0
 
333
        FMOVD 160(SP), F0
 
334
        FMULD F4,F0
 
335
        FMOVD 144(SP), F0
 
336
        FMULD F5,F0
 
337
        FMOVD 136(SP), F0
 
338
        FMULDP F0,F6
 
339
        FMOVD 160(SP), F0
 
340
        FMULD F5,F0
 
341
        FADDDP F0,F3
 
342
        FMOVD 144(SP), F0
 
343
        FMULD F5,F0
 
344
        FADDDP F0,F2
 
345
        FMOVD 136(SP), F0
 
346
        FMULD F5,F0
 
347
        FADDDP F0,F1
 
348
        FMOVD 184(SP), F0
 
349
        FMULDP F0,F5
 
350
        FXCHD F0, F4
 
351
        FADDDP F0,F5
 
352
        FMOVD 144(SP), F0
 
353
        FMULD F6,F0
 
354
        FADDDP F0,F2
 
355
        FMOVD 136(SP), F0
 
356
        FMULD F6,F0
 
357
        FADDDP F0,F1
 
358
        FMOVD 184(SP), F0
 
359
        FMULD F6,F0
 
360
        FADDDP F0,F4
 
361
        FMOVD 168(SP), F0
 
362
        FMULDP F0,F6
 
363
        FXCHD F0, F5
 
364
        FADDDP F0,F4
 
365
        FMOVD 136(SP), F0
 
366
        FMULD F2,F0
 
367
        FADDDP F0,F1
 
368
        FMOVD 184(SP), F0
 
369
        FMULD F2,F0
 
370
        FADDDP F0,F5
 
371
        FMOVD 168(SP), F0
 
372
        FMULD F2,F0
 
373
        FADDDP F0,F3
 
374
        FMOVD 152(SP), F0
 
375
        FMULDP F0,F2
 
376
        FXCHD F0, F1
 
377
        FADDDP F0,F3
 
378
        FXCHD F0, F3
 
379
        FXCHD F0, F2
 
380
        NOMOREBYTES:
 
381
        MOVL $0,R10
 
382
        FMOVD ·ALPHA130(SB), F0
 
383
        FADDD F4,F0
 
384
        FSUBD ·ALPHA130(SB), F0
 
385
        FSUBD F0,F4
 
386
        FMULD ·SCALE(SB), F0
 
387
        FMOVD ·ALPHA32(SB), F0
 
388
        FADDD F2,F0
 
389
        FSUBD ·ALPHA32(SB), F0
 
390
        FSUBD F0,F2
 
391
        FMOVD ·ALPHA64(SB), F0
 
392
        FADDD F4,F0
 
393
        FSUBD ·ALPHA64(SB), F0
 
394
        FSUBD F0,F4
 
395
        FMOVD ·ALPHA96(SB), F0
 
396
        FADDD F6,F0
 
397
        FSUBD ·ALPHA96(SB), F0
 
398
        FXCHD F0, F6
 
399
        FSUBD F6,F0
 
400
        FXCHD F0, F4
 
401
        FADDDP F0,F3
 
402
        FXCHD F0, F4
 
403
        FADDDP F0,F1
 
404
        FXCHD F0, F2
 
405
        FADDDP F0,F3
 
406
        FXCHD F0, F4
 
407
        FADDDP F0,F3
 
408
        FXCHD F0, F3
 
409
        FADDD ·HOFFSET0(SB), F0
 
410
        FXCHD F0, F3
 
411
        FADDD ·HOFFSET1(SB), F0
 
412
        FXCHD F0, F1
 
413
        FADDD ·HOFFSET2(SB), F0
 
414
        FXCHD F0, F2
 
415
        FADDD ·HOFFSET3(SB), F0
 
416
        FXCHD F0, F3
 
417
        FMOVDP F0, 104(SP)
 
418
        FMOVDP F0, 112(SP)
 
419
        FMOVDP F0, 120(SP)
 
420
        FMOVDP F0, 128(SP)
 
421
        MOVL 108(SP),DI
 
422
        ANDL $63,DI
 
423
        MOVL 116(SP),SI
 
424
        ANDL $63,SI
 
425
        MOVL 124(SP),DX
 
426
        ANDL $63,DX
 
427
        MOVL 132(SP),CX
 
428
        ANDL $63,CX
 
429
        MOVL 112(SP),R8
 
430
        ADDL DI,R8
 
431
        MOVQ R8,112(SP)
 
432
        MOVL 120(SP),DI
 
433
        ADCL SI,DI
 
434
        MOVQ DI,120(SP)
 
435
        MOVL 128(SP),DI
 
436
        ADCL DX,DI
 
437
        MOVQ DI,128(SP)
 
438
        MOVL R10,DI
 
439
        ADCL CX,DI
 
440
        MOVQ DI,136(SP)
 
441
        MOVQ $5,DI
 
442
        MOVL 104(SP),SI
 
443
        ADDL SI,DI
 
444
        MOVQ DI,104(SP)
 
445
        MOVL R10,DI
 
446
        MOVQ 112(SP),DX
 
447
        ADCL DX,DI
 
448
        MOVQ DI,112(SP)
 
449
        MOVL R10,DI
 
450
        MOVQ 120(SP),CX
 
451
        ADCL CX,DI
 
452
        MOVQ DI,120(SP)
 
453
        MOVL R10,DI
 
454
        MOVQ 128(SP),R8
 
455
        ADCL R8,DI
 
456
        MOVQ DI,128(SP)
 
457
        MOVQ $0XFFFFFFFC,DI
 
458
        MOVQ 136(SP),R9
 
459
        ADCL R9,DI
 
460
        SARL $16,DI
 
461
        MOVQ DI,R9
 
462
        XORL $0XFFFFFFFF,R9
 
463
        ANDQ DI,SI
 
464
        MOVQ 104(SP),AX
 
465
        ANDQ R9,AX
 
466
        ORQ AX,SI
 
467
        ANDQ DI,DX
 
468
        MOVQ 112(SP),AX
 
469
        ANDQ R9,AX
 
470
        ORQ AX,DX
 
471
        ANDQ DI,CX
 
472
        MOVQ 120(SP),AX
 
473
        ANDQ R9,AX
 
474
        ORQ AX,CX
 
475
        ANDQ DI,R8
 
476
        MOVQ 128(SP),DI
 
477
        ANDQ R9,DI
 
478
        ORQ DI,R8
 
479
        MOVQ 88(SP),DI
 
480
        MOVQ 96(SP),R9
 
481
        ADDL 16(R9),SI
 
482
        ADCL 20(R9),DX
 
483
        ADCL 24(R9),CX
 
484
        ADCL 28(R9),R8
 
485
        MOVL SI,0(DI)
 
486
        MOVL DX,4(DI)
 
487
        MOVL CX,8(DI)
 
488
        MOVL R8,12(DI)
 
489
        MOVQ 32(SP),R11
 
490
        MOVQ 40(SP),R12
 
491
        MOVQ 48(SP),R13
 
492
        MOVQ 56(SP),R14
 
493
        MOVQ 64(SP),R15
 
494
        MOVQ 72(SP),BX
 
495
        MOVQ 80(SP),BP
 
496
        MOVQ R11,SP
 
497
        RET