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