Commit 746d6ed4 by Ian Lance Taylor

libgo: add support for the Nios II architecture

    
    Reviewed-on: https://go-review.googlesource.com/90775

From-SVN: r259866
parent e1aeb9bc
380527c032f02446438c71b0ac0026bcab416be5 24cd2e0542cc227200c3f91b9e0eefaa726cbc1c
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -13653,10 +13653,10 @@ esac ...@@ -13653,10 +13653,10 @@ esac
# - libgo/go/syscall/endian_XX.go # - libgo/go/syscall/endian_XX.go
# - possibly others # - possibly others
# - possibly update files in libgo/go/internal/syscall/unix # - possibly update files in libgo/go/internal/syscall/unix
ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64" ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64"
# All known GOARCH family values. # All known GOARCH family values.
ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64" ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 NIOS2 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
GOARCH=unknown GOARCH=unknown
case ${host} in case ${host} in
...@@ -13745,6 +13745,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ...@@ -13745,6 +13745,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;; ;;
esac esac
;; ;;
nios2-*-*)
GOARCH=nios2
;;
rs6000*-*-* | powerpc*-*-*) rs6000*-*-* | powerpc*-*-*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
......
...@@ -224,10 +224,10 @@ AC_SUBST(USE_DEJAGNU) ...@@ -224,10 +224,10 @@ AC_SUBST(USE_DEJAGNU)
# - libgo/go/syscall/endian_XX.go # - libgo/go/syscall/endian_XX.go
# - possibly others # - possibly others
# - possibly update files in libgo/go/internal/syscall/unix # - possibly update files in libgo/go/internal/syscall/unix
ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64" ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64"
# All known GOARCH family values. # All known GOARCH family values.
ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64" ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 NIOS2 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
GOARCH=unknown GOARCH=unknown
case ${host} in case ${host} in
...@@ -290,6 +290,9 @@ changequote([,])dnl ...@@ -290,6 +290,9 @@ changequote([,])dnl
;; ;;
esac esac
;; ;;
nios2-*-*)
GOARCH=nios2
;;
rs6000*-*-* | powerpc*-*-*) rs6000*-*-* | powerpc*-*-*)
AC_COMPILE_IFELSE([ AC_COMPILE_IFELSE([
#ifdef _ARCH_PPC64 #ifdef _ARCH_PPC64
......
...@@ -165,6 +165,7 @@ var ptrSizeMap = map[string]int64{ ...@@ -165,6 +165,7 @@ var ptrSizeMap = map[string]int64{
"mips64le": 8, "mips64le": 8,
"mips64p32": 4, "mips64p32": 4,
"mips64p32le": 4, "mips64p32le": 4,
"nios2": 4,
"ppc": 4, "ppc": 4,
"ppc64": 8, "ppc64": 8,
"ppc64le": 8, "ppc64le": 8,
...@@ -190,6 +191,7 @@ var intSizeMap = map[string]int64{ ...@@ -190,6 +191,7 @@ var intSizeMap = map[string]int64{
"mips64le": 8, "mips64le": 8,
"mips64p32": 8, "mips64p32": 8,
"mips64p32le": 8, "mips64p32le": 8,
"nios2": 4,
"ppc": 4, "ppc": 4,
"ppc64": 8, "ppc64": 8,
"ppc64le": 8, "ppc64le": 8,
......
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
package build package build
const goosList = "aix android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows zos " 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 riscv64 s390 s390x sh shbe sparc sparc64" const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc riscv64 s390 s390x sh shbe sparc sparc64"
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build arm64 riscv64 // +build arm64 nios2 riscv64
package unix package unix
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
// xxhash: https://code.google.com/p/xxhash/ // xxhash: https://code.google.com/p/xxhash/
// cityhash: https://code.google.com/p/cityhash/ // cityhash: https://code.google.com/p/cityhash/
// +build 386 arm armbe m68k mips mipsle ppc s390 sh shbe sparc // +build 386 arm armbe m68k mips mipsle nios2 ppc s390 sh shbe sparc
package runtime package runtime
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le ppc s390 sh shbe sparc // +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le nios2 ppc s390 sh shbe sparc
package runtime package runtime
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build arm mips mipsle mips64 mips64le armbe m68k sparc alpha ia64 mips64p32 mips64p32le sh shbe sparc64 // +build alpha arm armbe ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 sh shbe sparc sparc64
package runtime package runtime
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// //
// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle alpha ia64 mips64p32le sh riscv64 // +build 386 alpha amd64 amd64p32 arm arm64 ia64 mips64le mipsle mips64p32le nios2 ppc64le riscv64 sh
package syscall package syscall
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// GNU/Linux library ustat call. // GNU/Linux library ustat call.
// This is not supported on some kernels, such as arm64. // This is not supported on some kernels, such as arm64.
// +build !arm64,!riscv64 // +build !arm64,!nios2,!riscv64
package syscall package syscall
......
...@@ -126,6 +126,13 @@ case $goarch in ...@@ -126,6 +126,13 @@ case $goarch in
;; ;;
esac esac
;; ;;
nios2)
family=NIOS2
cachelinesize=32
minframesize=16
pcquantum=4
ptrsize=4
;;
ppc) ppc)
family=PPC family=PPC
bigendian=true bigendian=true
......
...@@ -116,7 +116,7 @@ for f in $gofiles; do ...@@ -116,7 +116,7 @@ for f in $gofiles; do
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64) 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
esac esac
...@@ -128,7 +128,7 @@ for f in $gofiles; do ...@@ -128,7 +128,7 @@ for f in $gofiles; do
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64) 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
esac esac
......
...@@ -314,7 +314,7 @@ x) ...@@ -314,7 +314,7 @@ x)
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64) 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le·| nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
esac esac
...@@ -326,7 +326,7 @@ x) ...@@ -326,7 +326,7 @@ x)
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64) 386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le·| nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
esac esac
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment