From a9ccbe0a69fdbede2ec51f7c2f04f202fab72bb9 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Fri, 14 Dec 2018 19:53:47 +0000 Subject: 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 --- src/cmd/compile/internal/gc/subr.go | 2 +- test/fixedbugs/issue28688.go | 31 ------------------------------- 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 test/fixedbugs/issue28688.go 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") - } -} -- cgit v1.2.3-54-g00ecf