libgo: add platform support for SuperH
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Jan 2018 19:19:02 +0000 (19:19 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Jan 2018 19:19:02 +0000 (19:19 +0000)
    Reviewed-on: https://go-review.googlesource.com/84555

From-SVN: r256446

12 files changed:
gcc/go/gofrontend/MERGE
libgo/configure
libgo/configure.ac
libgo/go/cmd/cgo/main.go
libgo/go/go/build/syslist.go
libgo/go/runtime/hash32.go
libgo/go/runtime/lfstack_32bit.go
libgo/go/runtime/unaligned2.go
libgo/go/syscall/endian_big.go
libgo/go/syscall/endian_little.go
libgo/match.sh
libgo/testsuite/gotest

index e66cc488769fdd58a843c9fd4d111f3d8a61ba9d..dd7febbd9c8e3d479270202c9726382e1fe7d282 100644 (file)
@@ -1,4 +1,4 @@
-9705a1f4c37ad2c099e9fe6cd587d22a2a2ab2c3
+d8a9f7433a9e8a81c992ad2908818d2e84f3698b
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index eeccf25bccc1afad4d4381430cb311d22b5afa43..28e283c6316beae1e3ce0dba5733a9b10fa6c5e6 100755 (executable)
@@ -13645,10 +13645,10 @@ esac
 # supported by the gofrontend and all architectures supported by the
 # gc toolchain.
 # N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
-ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
+ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sh shbe sparc sparc64"
 
 # All known GOARCH_FAMILY values.
-ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SPARC SPARC64"
+ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SH SPARC SPARC64"
 
 GOARCH=unknown
 GOARCH_FAMILY=unknown
@@ -13851,6 +13851,36 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     GOARCH_CACHELINESIZE=256
     GOARCH_PCQUANTUM=2
     ;;
+  sh3eb*-*-*)
+    GOARCH=shbe
+    GOARCH_FAMILY=SH
+    GOARCH_BIGENDIAN=true
+    GOARCH_CACHELINESIZE=16
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
+  sh3*-*-*)
+    GOARCH=sh
+    GOARCH_FAMILY=SH
+    GOARCH_CACHELINESIZE=16
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
+  sh4eb*-*-*)
+    GOARCH=shbe
+    GOARCH_FAMILY=SH
+    GOARCH_BIGENDIAN=true
+    GOARCH_CACHELINESIZE=32
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
+  sh4*-*-*)
+    GOARCH=sh
+    GOARCH_FAMILY=SH
+    GOARCH_CACHELINESIZE=32
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
   sparc*-*-*)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
index 9a9da38d605783f73f77787f07e3894d53f0608f..1077c9e114d273f5604d87ae00296bc5bff4c59a 100644 (file)
@@ -208,10 +208,10 @@ AC_SUBST(USE_DEJAGNU)
 # supported by the gofrontend and all architectures supported by the
 # gc toolchain.
 # N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
-ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
+ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sh shbe sparc sparc64"
 
 # All known GOARCH_FAMILY values.
-ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SPARC SPARC64"
+ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SH SPARC SPARC64"
 
 GOARCH=unknown
 GOARCH_FAMILY=unknown
@@ -366,6 +366,36 @@ GOARCH_MINFRAMESIZE=8
     GOARCH_CACHELINESIZE=256
     GOARCH_PCQUANTUM=2
     ;;
+  sh3eb*-*-*)
+    GOARCH=shbe
+    GOARCH_FAMILY=SH
+    GOARCH_BIGENDIAN=true
+    GOARCH_CACHELINESIZE=16
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
+  sh3*-*-*)
+    GOARCH=sh
+    GOARCH_FAMILY=SH
+    GOARCH_CACHELINESIZE=16
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
+  sh4eb*-*-*)
+    GOARCH=shbe
+    GOARCH_FAMILY=SH
+    GOARCH_BIGENDIAN=true
+    GOARCH_CACHELINESIZE=32
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
+  sh4*-*-*)
+    GOARCH=sh
+    GOARCH_FAMILY=SH
+    GOARCH_CACHELINESIZE=32
+    GOARCH_PCQUANTUM=2
+    GOARCH_MINFRAMESIZE=4
+    ;;
   sparc*-*-*)
     AC_COMPILE_IFELSE([
 #if defined(__sparcv9) || defined(__arch64__)
index 7e522a35f9983f7f2ec7364a229666b726a84ec5..f5c231ced6d302fdadf5d82abe6a04c95f472a9f 100644 (file)
@@ -170,6 +170,8 @@ var ptrSizeMap = map[string]int64{
        "ppc64le":     8,
        "s390":        4,
        "s390x":       8,
+       "sh":          4,
+       "shbe":        4,
        "sparc":       4,
        "sparc64":     8,
 }
@@ -192,6 +194,8 @@ var intSizeMap = map[string]int64{
        "ppc64le":     8,
        "s390":        4,
        "s390x":       8,
+       "sh":          4,
+       "shbe":        4,
        "sparc":       4,
        "sparc64":     8,
 }
index 290ba9efa0cf6b770617c29c494c1f28b6f687c9..6bf72630e7cea2a9072662f0f1e4e4fe99cacb56 100644 (file)
@@ -5,4 +5,4 @@
 package build
 
 const goosList = "aix android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows zos "
-const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc s390 s390x sparc sparc64 "
+const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc s390 s390x sh shbe sparc sparc64"
index 401fe2857d9795be72076f9bc7374664e927ec28..22daec52526929f34e659ed0f30106a5c447775a 100644 (file)
@@ -6,7 +6,7 @@
 //   xxhash: https://code.google.com/p/xxhash/
 // cityhash: https://code.google.com/p/cityhash/
 
-// +build 386 arm armbe m68k mips mipsle ppc s390 sparc
+// +build 386 arm armbe m68k mips mipsle ppc s390 sh shbe sparc
 
 package runtime
 
index ab0edab68f50f0efeaf28e7e9c0adf361142c43c..bbc421a90fd37aa8bedb48659489a95ea4e53725 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le ppc s390 sparc
+// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le ppc s390 sh shbe sparc
 
 package runtime
 
index a33c87acd56a0cf466dcdc2fcf41f685b508e0f4..891459ea842070b1e26f9fdedbc2ba165a9689dc 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build arm mips mipsle mips64 mips64le armbe m68k sparc alpha ia64 mips64p32 mips64p32le sparc64
+// +build arm mips mipsle mips64 mips64le armbe m68k sparc alpha ia64 mips64p32 mips64p32le sh shbe sparc64
 
 package runtime
 
index f8ee7cfc233f6686cc1601e111d309d291310659..24a4d1df2409adde7dd9af9388c979635c35179d 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 //
-// +build ppc64 s390x mips mips64 armbe arm64be m68k ppc mips64p32 s390 sparc sparc64
+// +build ppc64 s390x mips mips64 armbe arm64be m68k ppc mips64p32 s390 shbe sparc sparc64
 
 package syscall
 
index b6c9ed0f9f71a290cac8227466f560349bf5334c..b91d4bb72de745d80ebbf57a538137085e585bcc 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 //
-// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle alpha ia64 mips64p32le
+// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle alpha ia64 mips64p32le sh
 
 package syscall
 
index fac75eabec64868ddcf154c2a29946b3699e83ec..62405556ede915d3d036f6987c15fbb6bacf82c0 100755 (executable)
@@ -116,7 +116,7 @@ for f in $gofiles; do
        aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
            tag1=nonmatchingtag
            ;;
-       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64)
            tag1=nonmatchingtag
            ;;
     esac
@@ -128,7 +128,7 @@ for f in $gofiles; do
        aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
            tag2=nonmatchingtag
            ;;
-       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64)
            tag2=nonmatchingtag
            ;;
     esac
index 2b6e472d6c22705fe29dbc9c65d314e403a2545f..8ec12cd166799f247b4299f317bc7a20fa9d3b5a 100755 (executable)
@@ -314,7 +314,7 @@ x)
            aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
                tag1=nonmatchingtag
                ;;
-           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64)
                tag1=nonmatchingtag
                ;;
            esac
@@ -326,7 +326,7 @@ x)
            aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
                tag2=nonmatchingtag
                ;;
-           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sparc | sparc64)
+           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64)
                tag2=nonmatchingtag
                ;;
            esac