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/zerodivide.go b/test/zerodivide.go
index 9d35b39..e0407df 100644
--- a/test/zerodivide.go
+++ b/test/zerodivide.go
@@ -137,6 +137,7 @@
 }
 
 func main() {
+	bad := false
 	for _, t := range errorTests {
 		if t.err != "" && syscall.OS == "nacl" {
 			continue
@@ -161,6 +162,10 @@
 	for _, t := range floatTests {
 		x := t.f/t.g
 		if !alike(x, t.out) {
+			if !bad {
+				bad = true
+				fmt.Printf("BUG\n")
+			}
 			fmt.Printf("%v/%v: expected %g error; got %g\n", t.f, t.g, t.out, x)
 		}
 	}