more soft float support. passes several basic tests
but with less precision than hardware counterparts.

fixed a number of tests to output BUG when they failed.
changed the runner to distinghuish between output
and output containing ^BUG

R=rsc
CC=dho, golang-dev
https://golang.org/cl/1778041
diff --git a/test/cmplxdivide.go b/test/cmplxdivide.go
index ac4730d6..6a67b17 100644
--- a/test/cmplxdivide.go
+++ b/test/cmplxdivide.go
@@ -34,9 +34,14 @@
 }
 
 func main() {
+	bad := false
 	for _, t := range tests {
 		x := t.f/t.g
 		if !calike(x, t.out) {
+			if !bad {
+				fmt.Printf("BUG\n")
+				bad = true
+			}
 			fmt.Printf("%v/%v: expected %v error; got %v\n", t.f, t.g, t.out, x)
 		}
 	}