go/src/cmd
Michael Munday a524616860 cmd/{asm,internal/obj/s390x}, math: remove emulated float instructions
The s390x port was based on the ppc64 port and, because of the way the
port was done, inherited some instructions from it. ppc64 supports
3-operand (4-operand for FMADD etc.) floating point instructions
but s390x doesn't (the destination register is always an input) and
so these were emulated.

There is a bug in the emulation of FMADD whereby if the destination
register is also a source for the multiplication it will be
clobbered. This doesn't break any assembly code in the std lib but
could affect future work.

To fix this I have gone through the floating point instructions and
removed all unnecessary 3-/4-operand emulation. The compiler doesn't
need it and assembly writers don't need it, it's just a source of
bugs.

I've also deleted the FNMADD family of emulated instructions. They
aren't used anywhere.

Change-Id: Ic07cedcf141a6a3b43a0c84895460f6cfbf56c04
Reviewed-on: https://go-review.googlesource.com/33350
Run-TryBot: Michael Munday <munday@ca.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
2017-02-10 16:11:25 +00:00
..
addr2line all: use testing.GoToolPath instead of "go" 2016-08-30 22:49:11 +00:00
api api: promote next.txt to go1.8.txt, update go tool 2016-12-01 02:54:21 +00:00
asm cmd/{asm,internal/obj/s390x}, math: remove emulated float instructions 2017-02-10 16:11:25 +00:00
cgo cmd/cgo: don't track same node twice in guessKinds 2017-02-02 17:20:37 +00:00
compile cmd/compile: use constants directly for fast map access calls 2017-02-10 04:57:20 +00:00
cover cmd/cover: fix spelling mistake 2016-12-20 04:45:25 +00:00
dist runtime: add definitions for SetGoroutineLabels and Do 2017-02-06 20:29:37 +00:00
doc [dev.typealias] cmd/doc: update for type alias 2017-01-25 17:27:07 +00:00
fix cmd/fix: add golang.org/x/net/context fix 2016-09-15 19:24:04 +00:00
go cmd/go: clarify that tag lists are space-separated 2017-02-08 00:59:03 +00:00
gofmt cmd/gofmt: fix diff on Plan 9 2017-02-08 22:29:33 +00:00
internal cmd/{asm,internal/obj/s390x}, math: remove emulated float instructions 2017-02-10 16:11:25 +00:00
link cmd/link, crypto/tls: don't use append loops 2017-02-07 16:42:32 +00:00
nm cmd/nm: skip TestInternalLinkerCgoFile if no internal linking is supported 2017-02-04 06:53:29 +00:00
objdump cmd/objdump: disable objdump_test with external linking on GOARCH=mips{,le} 2016-12-15 00:11:51 +00:00
pack all: use testing.GoToolPath instead of "go" 2016-08-30 22:49:11 +00:00
pprof net/http/pprof: return error when requested profile duration exceeds WriteTimeout 2017-02-08 20:23:20 +00:00
trace cmd/trace: fix goroutine view 2016-11-18 17:49:18 +00:00
vendor cmd/vendor/golang.org/x/arch/ppc64/ppc64asm: skip TestObjdumpPowerManual if not ppc64x 2016-11-01 17:00:46 +00:00
vet cmd/vet: include function name or value in copylock message 2017-01-03 19:23:23 +00:00