From: Filippo Valsorda Date: Fri, 14 Dec 2018 19:53:47 +0000 (+0000) Subject: Revert "[release-branch.go1.10] cmd/compile/internal/gc: OMUL should be evaluated... X-Git-Tag: go1.10.7~2 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a9ccbe0a69fdbede2ec51f7c2f04f202fab72bb9;p=gostls13.git Revert "[release-branch.go1.10] cmd/compile/internal/gc: OMUL should be evaluated when using soft-float" This reverts commit d74e69c7553fcb1e057821a089dc4f2c60f42e5d. Reason for revert: this fix has been backported to 1.11, and that makes it ineligible for backport to 1.10, since upgrading to 1.11 is a valid workaround according to https://github.com/golang/go/wiki/MinorReleases. Also, this triggers a bug on Wasm that would require a backport of CL 149965, too. Updates #28688 Updates #28959 Change-Id: I4e56554ea27b5db83bdb1e9d2103dd24e3da8cfc Reviewed-on: https://go-review.googlesource.com/c/154297 Reviewed-by: Cherry Zhang Run-TryBot: Cherry Zhang --- diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index eee5a37ad0..e0925dc7f2 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -1168,7 +1168,7 @@ func calcHasCall(n *Node) bool { // When using soft-float, these ops might be rewritten to function calls // so we ensure they are evaluated first. - case OADD, OSUB, OMINUS, OMUL: + case OADD, OSUB, OMINUS: if thearch.SoftFloat && (isFloat[n.Type.Etype] || isComplex[n.Type.Etype]) { return true } diff --git a/test/fixedbugs/issue28688.go b/test/fixedbugs/issue28688.go deleted file mode 100644 index 0d2000e149..0000000000 --- a/test/fixedbugs/issue28688.go +++ /dev/null @@ -1,31 +0,0 @@ -// run -gcflags=-d=softfloat - -// 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. - -package main - -import ( - "fmt" -) - -// When using soft-float, OMUL might be rewritten to function -// call so we should ensure it was evaluated first. Stack frame -// setup for "test" function call should happen after call to runtime.fmul32 - -var x int32 = 1 - -func main() { - var y float32 = 1.0 - test(x, y*y) -} - -//go:noinline -func test(id int32, a float32) { - - if id != x { - fmt.Printf("got: %d, want: %d\n", id, x) - panic("FAIL") - } -}