R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6827061
@@ -5,6 +5,8 @@
// This code was translated into a form compatible with 6a from the public
// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
+// +build amd64,!gccgo
+
DATA ·REDMASK51(SB)/8, $0x0007FFFFFFFFFFFF
GLOBL ·REDMASK51(SB), $8
// func cswap(inout *[5]uint64, v uint64)
TEXT ·cswap(SB),7,$0
MOVQ inout+0(FP),DI
@@ -3,8 +3,8 @@
// license that can be found in the LICENSE file.
// We have a implementation in amd64 assembly so this code is only run on
-// non-amd64 platforms.
-// +build !amd64
+// non-amd64 platforms. The amd64 assembly does not support gccgo.
+// +build !amd64 gccgo
package curve25519
// func freeze(inout *[5]uint64)
TEXT ·freeze(SB),7,$96-8
MOVQ inout+0(FP), DI
// func ladderstep(inout *[5][5]uint64)
TEXT ·ladderstep(SB),0,$384-8
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style
// These functions are implemented in the .s files. The names of the functions
// func mul(dest, a, b *[5]uint64)
TEXT ·mul(SB),0,$128-24
MOVQ dest+0(FP), DI
// func square(out, in *[5]uint64)
TEXT ·square(SB),7,$96-16
MOVQ out+0(FP), DI
DATA ·SCALE(SB)/8, $0x37F4000000000000
GLOBL ·SCALE(SB), $8
DATA ·TWO32(SB)/8, $0x41F0000000000000
// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key)
TEXT ·poly1305(SB),0,$224-32
MOVQ out+0(FP),DI
package poly1305
// This function is implemented in poly1305_amd64.s
@@ -2,7 +2,7 @@
-// +build !appengine
+// +build amd64,!appengine,!gccgo
package salsa
-// +build !amd64 appengine
+// +build !amd64 appengine gccgo