From: Rémy Oudompheng Date: Tue, 27 Aug 2013 19:09:16 +0000 (+0200) Subject: cmd/5g: avoid clash between R13 and F3 registers. X-Git-Tag: go1.2rc2~414 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4fc7ff497d4133899afed2a3f866d32cb7df5df0;p=gostls13.git cmd/5g: avoid clash between R13 and F3 registers. Fixes #6247. R=golang-dev, lucio.dere, bradfitz CC=golang-dev https://golang.org/cl/13216043 --- diff --git a/src/cmd/5g/gg.h b/src/cmd/5g/gg.h index c0d0393ae2..860817f69e 100644 --- a/src/cmd/5g/gg.h +++ b/src/cmd/5g/gg.h @@ -51,7 +51,7 @@ struct Prog #define REGALLOC_R0 0 #define REGALLOC_RMAX REGEXT -#define REGALLOC_F0 (REGALLOC_RMAX+1) +#define REGALLOC_F0 NREG #define REGALLOC_FMAX (REGALLOC_F0 + FREGEXT) EXTERN int32 dynloc; diff --git a/test/fixedbugs/issue6247.go b/test/fixedbugs/issue6247.go new file mode 100644 index 0000000000..eea8f9c878 --- /dev/null +++ b/test/fixedbugs/issue6247.go @@ -0,0 +1,17 @@ +// compile + +// Copyright 2013 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. + +// Issue 6247: 5g used to be confused by the numbering +// of floating-point registers. + +package main + +var p map[string]interface{} +var v interface{} + +func F() { + p["hello"] = v.(complex128) * v.(complex128) +}