arm: bugfixes (stack clobbering, indices)

also changed zerodivide to output "BUG"

R=rsc
CC=golang-dev
https://golang.org/cl/1871055
diff --git a/test/zerodivide.go b/test/zerodivide.go
index e0407df..e016d0d 100644
--- a/test/zerodivide.go
+++ b/test/zerodivide.go
@@ -147,10 +147,22 @@
 		case t.err == "" && err == "":
 			// fine
 		case t.err != "" && err == "":
+			if !bad {
+				bad = true
+				fmt.Printf("BUG\n")
+			}
 			fmt.Printf("%s: expected %q; got no error\n", t.name, t.err)
 		case t.err == "" && err != "":
+			if !bad {
+				bad = true
+				fmt.Printf("BUG\n")
+			}
 			fmt.Printf("%s: expected no error; got %q\n", t.name, err)
 		case t.err != "" && err != "":
+			if !bad {
+				bad = true
+				fmt.Printf("BUG\n")
+			}
 			if strings.Index(err, t.err) < 0 {
 				fmt.Printf("%s: expected %q; got %q\n", t.name, t.err, err)
 				continue