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/float_lit.go b/test/float_lit.go
index 58bd4da..f77d24e 100644
--- a/test/float_lit.go
+++ b/test/float_lit.go
@@ -6,6 +6,20 @@
package main
+import "os"
+
+var deLim float64
+var bad bool
+
+func
+init() {
+ if os.Getenv("GOARCH") == "arm" {
+ deLim = 1.0e-8
+ } else {
+ deLim = 10.e-14
+ }
+}
+
func
pow10(pow int) float64 {
if pow < 0 { return 1/pow10(-pow); }
@@ -30,15 +44,18 @@
de = -de;
}
- if de < 1.0e-14 {
+ if de < deLim {
return true;
}
+ if !bad {
+ println("BUG")
+ bad = true
+ }
return false;
}
func
main() {
-
if !close(0., 0, 1, 0) { print("0. is ", 0., "\n"); }
if !close(+10., 10, 1, 0) { print("+10. is ", +10., "\n"); }
if !close(-210., -210, 1, 0) { print("-210. is ", -210., "\n"); }