-// +build linux,!ppc64,!ppc64le
+// +build linux,!ppc64,!ppc64le,!mips64,!mips64le
// run
// Copyright 2015 The Go Authors. All rights reserved.
binary.BigEndian.PutUint32(ill, 0x7fe00008) // trap
case "ppc64le":
binary.LittleEndian.PutUint32(ill, 0x7fe00008) // trap
+ case "mips64":
+ binary.BigEndian.PutUint32(ill, 0x00000034) // trap
+ case "mips64le":
+ binary.LittleEndian.PutUint32(ill, 0x00000034) // trap
default:
// Just leave it as 0 and hope for the best.
}
// errorcheck -0 -d=nil
// Fails on ppc64x because of incomplete optimization.
// See issues 9058.
-// +build !ppc64,!ppc64le
+// Same reason for mips64x.
+// +build !ppc64,!ppc64le,!mips64,!mips64le
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
var buf bytes.Buffer
ptrSize := 4
switch goarch {
+ case "mips64", "mips64le":
+ ptrSize = 8
+ fmt.Fprintf(&buf, "#define CALL JAL\n#define REGISTER (R0)\n")
case "ppc64", "ppc64le":
ptrSize = 8
fmt.Fprintf(&buf, "#define CALL BL\n#define REGISTER (CTR)\n")