mirror of
https://github.com/golang/go
synced 2024-09-05 16:04:50 +00:00
runtime: add s390x support (modified files only)
Change-Id: Ib79ad4a890994ad64edb1feb79bd242d26b5b08a Reviewed-on: https://go-review.googlesource.com/20945 Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
a2eded3421
commit
0f08dd2183
|
@ -246,8 +246,8 @@ func cgocallbackg1() {
|
|||
case "386":
|
||||
// On 386, stack frame is three words, plus caller PC.
|
||||
cb = (*args)(unsafe.Pointer(sp + 4*sys.PtrSize))
|
||||
case "ppc64", "ppc64le":
|
||||
// On ppc64, the callback arguments are in the arguments area of
|
||||
case "ppc64", "ppc64le", "s390x":
|
||||
// On ppc64 and s390x, the callback arguments are in the arguments area of
|
||||
// cgocallback's stack frame. The stack looks like this:
|
||||
// +--------------------+------------------------------+
|
||||
// | | ... |
|
||||
|
@ -300,7 +300,7 @@ func unwindm(restore *bool) {
|
|||
switch GOARCH {
|
||||
default:
|
||||
throw("unwindm not implemented")
|
||||
case "386", "amd64", "arm", "ppc64", "ppc64le":
|
||||
case "386", "amd64", "arm", "ppc64", "ppc64le", "s390x":
|
||||
sched.sp = *(*uintptr)(unsafe.Pointer(sched.sp + sys.MinFrameSize))
|
||||
case "arm64":
|
||||
sched.sp = *(*uintptr)(unsafe.Pointer(sched.sp + 16))
|
||||
|
|
|
@ -227,5 +227,5 @@ func Version() string {
|
|||
const GOOS string = sys.TheGoos
|
||||
|
||||
// GOARCH is the running program's architecture target:
|
||||
// 386, amd64, or arm.
|
||||
// 386, amd64, arm, or s390x.
|
||||
const GOARCH string = sys.TheGoarch
|
||||
|
|
|
@ -144,7 +144,7 @@ func infoBigStruct() []byte {
|
|||
typeScalar, typeScalar, typeScalar, typeScalar, // t int; y uint16; u uint64
|
||||
typePointer, typeScalar, // i string
|
||||
}
|
||||
case "arm64", "amd64", "mips64", "mips64le", "ppc64", "ppc64le":
|
||||
case "arm64", "amd64", "mips64", "mips64le", "ppc64", "ppc64le", "s390x":
|
||||
return []byte{
|
||||
typePointer, // q *int
|
||||
typeScalar, typeScalar, typeScalar, // w byte; e [17]byte
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// xxhash: https://code.google.com/p/xxhash/
|
||||
// cityhash: https://code.google.com/p/cityhash/
|
||||
|
||||
// +build amd64 amd64p32 arm64 mips64 mips64le ppc64 ppc64le
|
||||
// +build amd64 amd64p32 arm64 mips64 mips64le ppc64 ppc64le s390x
|
||||
|
||||
package runtime
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Routines that are implemented in assembly in asm_{amd64,386,arm,arm64,ppc64x}.s
|
||||
// Routines that are implemented in assembly in asm_{amd64,386,arm,arm64,ppc64x,s390x}.s
|
||||
|
||||
// +build mips64 mips64le
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
// +build !mips64
|
||||
// +build !mips64le
|
||||
// +build !s390x
|
||||
// +build linux
|
||||
|
||||
package runtime
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
// +build !mips64
|
||||
// +build !mips64le
|
||||
// +build !s390x
|
||||
// +build linux
|
||||
|
||||
package runtime
|
||||
|
|
|
@ -104,7 +104,7 @@ func TestGdbPython(t *testing.T) {
|
|||
// stack frames on RISC architectures.
|
||||
canBackTrace := false
|
||||
switch runtime.GOARCH {
|
||||
case "amd64", "386", "ppc64", "ppc64le", "arm", "arm64", "mips64", "mips64le":
|
||||
case "amd64", "386", "ppc64", "ppc64le", "arm", "arm64", "mips64", "mips64le", "s390x":
|
||||
canBackTrace = true
|
||||
args = append(args,
|
||||
"-ex", "echo BEGIN goroutine 2 bt\n",
|
||||
|
|
|
@ -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 arm64 ppc64 ppc64le
|
||||
// +build 386 amd64 amd64p32 arm64 ppc64 ppc64le s390x
|
||||
|
||||
package runtime
|
||||
|
||||
|
|
Loading…
Reference in a new issue