arm: enable all tests

ARM functionality is now completely working.
(Or if it's not, we'll fix it.)

R=ken2
CC=golang-dev
https://golang.org/cl/2738041
diff --git a/src/all-arm.bash b/src/all-arm.bash
deleted file mode 100755
index 73db3fb..0000000
--- a/src/all-arm.bash
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2009 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-set -e
-
-export GOOS=linux
-export GOARCH=arm
-
-bash make.bash
-
-# TODO(kaib): add in proper tests
-#bash run.bash
-
-set -e
-
-xcd() {
-	echo
-	echo --- cd $1
-	builtin cd $1
-}
-
-# temporarily turn GC off
-# TODO(kaib): reenable GC once everything else works
-export GOGC=off
-
-(xcd ../test
-./run-arm
-) || exit $?
diff --git a/src/pkg/runtime/arm/asm.s b/src/pkg/runtime/arm/asm.s
index b9e7106..dd317cc 100644
--- a/src/pkg/runtime/arm/asm.s
+++ b/src/pkg/runtime/arm/asm.s
@@ -64,6 +64,8 @@
 TEXT mainstart(SB),7,$4
 	BL	mainĀ·init(SB)
 	BL	initdone(SB)
+	EOR	R0, R0
+	MOVW	R0, 0(R13)
 	BL	mainĀ·main(SB)
 	MOVW	$0, R0
 	MOVW	R0, 4(SP)
@@ -84,7 +86,7 @@
 	BL	_sfloat(SB)
 
 TEXT	breakpoint(SB),7,$0
-	BL	abort(SB)
+	// no breakpoint yet; let program exit
 	RET
 
 /*
diff --git a/src/pkg/strconv/atof.go b/src/pkg/strconv/atof.go
index 1e54801..262a8b5 100644
--- a/src/pkg/strconv/atof.go
+++ b/src/pkg/strconv/atof.go
@@ -15,11 +15,9 @@
 import (
 	"math"
 	"os"
-	"runtime"
 )
 
-// TODO(rsc): remove "arm" check
-var optimize = runtime.GOARCH != "arm" // can change for testing
+var optimize = true // can change for testing
 
 // TODO(rsc): Better truncation handling.
 func stringToDecimal(s string) (neg bool, d *decimal, trunc bool, ok bool) {
diff --git a/src/pkg/strconv/ftoa.go b/src/pkg/strconv/ftoa.go
index 2e0c043..3659243 100644
--- a/src/pkg/strconv/ftoa.go
+++ b/src/pkg/strconv/ftoa.go
@@ -11,7 +11,6 @@
 package strconv
 
 import "math"
-import "runtime"
 
 // TODO: move elsewhere?
 type floatInfo struct {
@@ -24,9 +23,6 @@
 var float64info = floatInfo{52, 11, -1023}
 
 func floatsize() int {
-	if runtime.GOARCH == "arm" { // TODO(rsc): remove
-		return 32
-	}
 	// Figure out whether float is float32 or float64.
 	// 1e-35 is representable in both, but 1e-70
 	// is too small for a float32.
diff --git a/src/pkg/strconv/internal_test.go b/src/pkg/strconv/internal_test.go
index 142fbe1..9a7f4f0 100644
--- a/src/pkg/strconv/internal_test.go
+++ b/src/pkg/strconv/internal_test.go
@@ -6,17 +6,9 @@
 
 package strconv
 
-import "runtime"
-
 func NewDecimal(i uint64) *decimal { return newDecimal(i) }
 
 func SetOptimize(b bool) bool {
-	if runtime.GOARCH == "arm" {
-		// optimize is always false on arm,
-		// because the software floating point
-		// has such terrible multiplication.
-		return false
-	}
 	old := optimize
 	optimize = b
 	return old