FAQ
Reviewers: golang-dev_googlegroups.com,

Message:
Hello golang-dev@googlegroups.com (cc: golang-dev@googlegroups.com,
remy@archlinux.org),

I'd like you to review this change to
https://go.googlecode.com/hg/


Description:
cmd/6g: fix internal error with SSE registers.

Revision 63f7abcae015 introduced a bug caused by
code assuming registers started at X5, not X0.

Fixes issue 4138.

Please review this at http://codereview.appspot.com/6558043/

Affected files:
M src/cmd/6g/reg.c
A test/fixedbugs/bug453.go


Index: src/cmd/6g/reg.c
===================================================================
--- a/src/cmd/6g/reg.c
+++ b/src/cmd/6g/reg.c
@@ -1600,16 +1600,16 @@

/*
* bit reg
- * 16 X5 (FREGMIN)
+ * 21 X5 (FREGMIN)
* ...
- * 26 X15 (FREGEXT)
+ * 31 X15 (FREGEXT)
*/
int32
FtoB(int f)
{
- if(f < FREGMIN || f > FREGEXT)
+ if(f < D_X0 || f > D_X15)
return 0;
- return 1L << (f - FREGMIN + 16);
+ return 1L << (f - D_X0 + 16);
}

int
@@ -1619,7 +1619,7 @@
b &= 0xFFFF0000L;
if(b == 0)
return 0;
- return bitno(b) - 16 + FREGMIN;
+ return bitno(b) - 16 + D_X0;
}

void
Index: test/fixedbugs/bug453.go
===================================================================
new file mode 100644
--- /dev/null
+++ b/test/fixedbugs/bug453.go
@@ -0,0 +1,39 @@
+// run
+
+// Copyright 2012 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 4138: bug in floating-point registers numbering.
+// Makes 6g unable to use more than 11 registers.
+
+package main
+
+func formula() float32 {
+ mA := [1]float32{1.0}
+ det1 := mA[0]
+ det2 := mA[0]
+ det3 := mA[0]
+ det4 := mA[0]
+ det5 := mA[0]
+ det6 := mA[0]
+ det7 := mA[0]
+ det8 := mA[0]
+ det9 := mA[0]
+ det10 := mA[0]
+ det11 := mA[0]
+ det12 := mA[0]
+
+ return det1 + det2*det3 +
+ det4*det5 + det6*det7 +
+ det8*det9 + det10*det11 +
+ det12
+}
+
+func main() {
+ x := formula()
+ if x != 7.0 {
+ println(x, 7.0)
+ panic("x != 7.0")
+ }
+}

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupgolang-dev @
categoriesgo
postedSep 23, '12 at 3:08p
activeSep 23, '12 at 4:22p
posts3
users2
websitegolang.org

2 users in discussion

Remyoudompheng: 2 posts Rsc: 1 post

People

Translate

site design / logo © 2022 Grokbase