cpu: fix gccgo build

Current versions of gccgo report a redefinition error for both a
declaration and definition, as of https://golang.org/cl/93083.
Fix the last change to work with this.

Change-Id: Iae6a664fcc9fe97d4e3b7845a05dab3a8ad56830
Reviewed-on: https://go-review.googlesource.com/116776
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/cpu/cpu_gc_x86.go b/cpu/cpu_gc_x86.go
new file mode 100644
index 0000000..f7cb469
--- /dev/null
+++ b/cpu/cpu_gc_x86.go
@@ -0,0 +1,16 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386 amd64 amd64p32
+// +build !gccgo
+
+package cpu
+
+// cpuid is implemented in cpu_x86.s for gc compiler
+// and in cpu_gccgo.c for gccgo.
+func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)
+
+// xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler
+// and in cpu_gccgo.c for gccgo.
+func xgetbv() (eax, edx uint32)
diff --git a/cpu/cpu_x86.go b/cpu/cpu_x86.go
index ffc90d6..71e288b 100644
--- a/cpu/cpu_x86.go
+++ b/cpu/cpu_x86.go
@@ -8,14 +8,6 @@
 
 const cacheLineSize = 64
 
-// cpuid is implemented in cpu_x86.s for gc compiler
-// and in cpu_gccgo.c for gccgo.
-func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)
-
-// xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler
-// and in cpu_gccgo.c for gccgo.
-func xgetbv() (eax, edx uint32)
-
 func init() {
 	maxID, _, _, _ := cpuid(0, 0)