[Pkg-golang-commits] [golang] 16/27: - Add d/patches/0001-s390x-port.patch
Michael Hudson-Doyle
mwhudson-guest at moszumanska.debian.org
Tue Mar 1 02:57:42 UTC 2016
This is an automated email from the git hooks/post-receive script.
mwhudson-guest pushed a commit to branch gbp
in repository golang.
commit 9adfd672f868e0bfae5df749890710cd647ef718
Author: Michael Hudson-Doyle <michael.hudson at canonical.com>
Date: Fri Feb 12 10:30:50 2016 +1300
- Add d/patches/0001-s390x-port.patch
---
debian/patches/0001-s390x-port.patch | 30485 +++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 30486 insertions(+)
diff --git a/debian/patches/0001-s390x-port.patch b/debian/patches/0001-s390x-port.patch
new file mode 100644
index 0000000..e91f8a6
--- /dev/null
+++ b/debian/patches/0001-s390x-port.patch
@@ -0,0 +1,30485 @@
+From 0a8f1b89b079033d8d21bf3b75a276f7fa8dd6fe Mon Sep 17 00:00:00 2001
+From: wgo <billo at ca.ibm.com>
+Date: Sun, 12 Jul 2015 23:28:19 -0400
+Subject: [PATCH] [s390x] Add support for Linux on IBM z architecture (s390x)
+
+---
+ api/go1.6.txt | 9279 ++++++++++++++++++++
+ misc/cgo/test/issue9400/asm_s390x.s | 32 +
+ src/cmd/api/goapi.go | 2 +
+ src/cmd/asm/internal/arch/arch.go | 55 +
+ src/cmd/asm/internal/arch/s390x.go | 116 +
+ src/cmd/asm/internal/asm/asm.go | 23 +
+ src/cmd/cgo/main.go | 4 +-
+ src/cmd/cgo/out.go | 1 +
+ src/cmd/compile/internal/gc/cgen.go | 14 +-
+ src/cmd/compile/internal/gc/go.go | 4 +
+ src/cmd/compile/internal/gc/gsubr.go | 6 +-
+ src/cmd/compile/internal/gc/lex.go | 3 +
+ src/cmd/compile/internal/gc/pgen.go | 4 +-
+ src/cmd/compile/internal/gc/reg.go | 6 +-
+ src/cmd/compile/internal/gc/walk.go | 4 +-
+ src/cmd/compile/internal/s390x/cgen.go | 178 +
+ src/cmd/compile/internal/s390x/galign.go | 95 +
+ src/cmd/compile/internal/s390x/ggen.go | 611 ++
+ src/cmd/compile/internal/s390x/gsubr.go | 1048 +++
+ src/cmd/compile/internal/s390x/opt.go | 12 +
+ src/cmd/compile/internal/s390x/peep.go | 1303 +++
+ src/cmd/compile/internal/s390x/prog.go | 182 +
+ src/cmd/compile/internal/s390x/reg.go | 131 +
+ src/cmd/compile/main.go | 3 +
+ src/cmd/dist/build.go | 1 +
+ src/cmd/dist/buildtool.go | 3 +
+ src/cmd/dist/util.go | 2 +
+ src/cmd/go/build.go | 2 +
+ src/cmd/internal/obj/link.go | 3 +
+ src/cmd/internal/obj/s390x/a.out.go | 370 +
+ src/cmd/internal/obj/s390x/anames.go | 152 +
+ src/cmd/internal/obj/s390x/anamesz.go | 64 +
+ src/cmd/internal/obj/s390x/asmz.go | 3983 +++++++++
+ src/cmd/internal/obj/s390x/listz.go | 70 +
+ src/cmd/internal/obj/s390x/objz.go | 873 ++
+ src/cmd/internal/obj/util.go | 2 +
+ src/cmd/internal/objfile/disasm.go | 1 +
+ src/cmd/internal/objfile/elf.go | 2 +
+ src/cmd/link/internal/ld/arch.go | 9 +
+ src/cmd/link/internal/ld/data.go | 47 +-
+ src/cmd/link/internal/ld/dwarf.go | 37 +-
+ src/cmd/link/internal/ld/elf.go | 120 +-
+ src/cmd/link/internal/ld/ldelf.go | 45 +-
+ src/cmd/link/internal/ld/link.go | 1 +
+ src/cmd/link/internal/ld/symtab.go | 5 +-
+ src/cmd/link/internal/s390x/asm.go | 564 ++
+ src/cmd/link/internal/s390x/l.go | 78 +
+ src/cmd/link/internal/s390x/obj.go | 111 +
+ src/cmd/link/main.go | 3 +
+ src/cmd/objdump/objdump_test.go | 4 +
+ src/cmd/vet/asmdecl.go | 2 +
+ src/crypto/aes/asm_s390x.s | 97 +
+ src/crypto/aes/cipher_asm.go | 2 +-
+ src/crypto/aes/cipher_generic.go | 10 +-
+ src/crypto/aes/gcm_generic.go | 15 +
+ src/crypto/sha1/sha1block_decl.go | 2 +-
+ src/crypto/sha1/sha1block_generic.go | 2 +-
+ src/crypto/sha1/sha1block_s390x.s | 37 +
+ src/crypto/sha256/sha256block.go | 2 +-
+ src/crypto/sha256/sha256block_decl.go | 2 +-
+ src/crypto/sha256/sha256block_generic.go | 9 +
+ src/crypto/sha256/sha256block_s390x.s | 37 +
+ src/crypto/sha512/sha512block.go | 2 +-
+ src/crypto/sha512/sha512block_decl.go | 2 +-
+ src/crypto/sha512/sha512block_generic.go | 9 +
+ src/crypto/sha512/sha512block_s390x.s | 37 +
+ src/debug/elf/elf.go | 66 +
+ src/debug/elf/file.go | 51 +
+ src/debug/gosym/pclntab.go | 2 +-
+ src/go/build/build.go | 1 +
+ src/hash/crc32/crc32_generic.go | 2 +-
+ src/internal/syscall/unix/getrandom_linux_s390x.go | 9 +
+ src/math/big/arith_s390x.s | 340 +
+ src/math/dim_s390x.s | 132 +
+ src/math/sqrt_s390x.s | 12 +
+ src/math/stubs_s390x.s | 79 +
+ src/net/dnsclient_unix_test.go | 2 +-
+ src/net/lookup_test.go | 5 +
+ src/reflect/asm_s390x.s | 32 +
+ src/runtime/asm_s390x.s | 1165 +++
+ src/runtime/cgo/asm_s390x.s | 58 +
+ src/runtime/cgo/callbacks_s390x.go | 12 +
+ src/runtime/cgo/gcc_linux_s390x.c | 70 +
+ src/runtime/cgo/gcc_s390x.S | 46 +
+ src/runtime/cgocall.go | 6 +-
+ src/runtime/defs_linux_s390x.go | 176 +
+ src/runtime/extern.go | 2 +-
+ src/runtime/gcinfo_test.go | 2 +-
+ src/runtime/hash64.go | 2 +-
+ src/runtime/internal/atomic/asm_s390x.s | 160 +
+ src/runtime/internal/atomic/atomic_s390x.go | 96 +
+ src/runtime/internal/sys/arch_s390x.go | 18 +
+ src/runtime/internal/sys/zgoarch_s390x.go | 26 +
+ src/runtime/lfstack_linux_s390x.go | 32 +
+ src/runtime/memclr_s390x.s | 124 +
+ src/runtime/memmove_s390x.s | 191 +
+ src/runtime/noasm.go | 2 +-
+ src/runtime/os1_linux_generic.go | 1 +
+ src/runtime/os1_linux_s390x.go | 32 +
+ src/runtime/os2_linux_generic.go | 1 +
+ src/runtime/os2_linux_s390x.go | 25 +
+ src/runtime/rt0_linux_s390x.s | 16 +
+ src/runtime/runtime-gdb_test.go | 2 +-
+ src/runtime/signal_linux_s390x.go | 53 +
+ src/runtime/signal_s390x.go | 171 +
+ src/runtime/sys_linux_s390x.s | 440 +
+ src/runtime/sys_s390x.go | 50 +
+ src/runtime/tls_s390x.s | 69 +
+ src/runtime/unaligned1.go | 2 +-
+ src/sync/atomic/asm_s390x.s | 151 +
+ src/syscall/asm_linux_s390x.s | 176 +
+ src/syscall/exec_linux.go | 7 +-
+ src/syscall/mkall.sh | 7 +
+ src/syscall/syscall_linux_s390x.go | 299 +
+ src/syscall/types_linux.go | 18 +
+ src/syscall/zerrors_linux_s390x.go | 1869 ++++
+ src/syscall/zsyscall_linux_s390x.go | 1578 ++++
+ src/syscall/zsysnum_linux_s390x.go | 293 +
+ src/syscall/ztypes_linux_s390x.go | 623 ++
+ test/fixedbugs/issue11656.go | 2 +
+ test/init1.go | 2 +-
+ test/nilptr3.go | 3 +-
+ test/nosplit.go | 3 +
+ 123 files changed, 28653 insertions(+), 96 deletions(-)
+ create mode 100644 misc/cgo/test/issue9400/asm_s390x.s
+ create mode 100644 src/cmd/asm/internal/arch/s390x.go
+ create mode 100644 src/cmd/compile/internal/s390x/cgen.go
+ create mode 100644 src/cmd/compile/internal/s390x/galign.go
+ create mode 100644 src/cmd/compile/internal/s390x/ggen.go
+ create mode 100644 src/cmd/compile/internal/s390x/gsubr.go
+ create mode 100644 src/cmd/compile/internal/s390x/opt.go
+ create mode 100644 src/cmd/compile/internal/s390x/peep.go
+ create mode 100644 src/cmd/compile/internal/s390x/prog.go
+ create mode 100644 src/cmd/compile/internal/s390x/reg.go
+ create mode 100644 src/cmd/internal/obj/s390x/a.out.go
+ create mode 100644 src/cmd/internal/obj/s390x/anames.go
+ create mode 100644 src/cmd/internal/obj/s390x/anamesz.go
+ create mode 100644 src/cmd/internal/obj/s390x/asmz.go
+ create mode 100644 src/cmd/internal/obj/s390x/listz.go
+ create mode 100644 src/cmd/internal/obj/s390x/objz.go
+ create mode 100644 src/cmd/link/internal/s390x/asm.go
+ create mode 100644 src/cmd/link/internal/s390x/l.go
+ create mode 100644 src/cmd/link/internal/s390x/obj.go
+ create mode 100644 src/crypto/aes/asm_s390x.s
+ create mode 100644 src/crypto/aes/gcm_generic.go
+ create mode 100644 src/crypto/sha1/sha1block_s390x.s
+ create mode 100644 src/crypto/sha256/sha256block_generic.go
+ create mode 100644 src/crypto/sha256/sha256block_s390x.s
+ create mode 100644 src/crypto/sha512/sha512block_generic.go
+ create mode 100644 src/crypto/sha512/sha512block_s390x.s
+ create mode 100644 src/internal/syscall/unix/getrandom_linux_s390x.go
+ create mode 100644 src/math/big/arith_s390x.s
+ create mode 100644 src/math/dim_s390x.s
+ create mode 100644 src/math/sqrt_s390x.s
+ create mode 100644 src/math/stubs_s390x.s
+ create mode 100644 src/reflect/asm_s390x.s
+ create mode 100644 src/runtime/asm_s390x.s
+ create mode 100644 src/runtime/cgo/asm_s390x.s
+ create mode 100644 src/runtime/cgo/callbacks_s390x.go
+ create mode 100644 src/runtime/cgo/gcc_linux_s390x.c
+ create mode 100644 src/runtime/cgo/gcc_s390x.S
+ create mode 100644 src/runtime/defs_linux_s390x.go
+ create mode 100644 src/runtime/internal/atomic/asm_s390x.s
+ create mode 100644 src/runtime/internal/atomic/atomic_s390x.go
+ create mode 100644 src/runtime/internal/sys/arch_s390x.go
+ create mode 100644 src/runtime/internal/sys/zgoarch_s390x.go
+ create mode 100644 src/runtime/lfstack_linux_s390x.go
+ create mode 100644 src/runtime/memclr_s390x.s
+ create mode 100644 src/runtime/memmove_s390x.s
+ create mode 100644 src/runtime/os1_linux_s390x.go
+ create mode 100644 src/runtime/os2_linux_s390x.go
+ create mode 100644 src/runtime/rt0_linux_s390x.s
+ create mode 100644 src/runtime/signal_linux_s390x.go
+ create mode 100644 src/runtime/signal_s390x.go
+ create mode 100644 src/runtime/sys_linux_s390x.s
+ create mode 100644 src/runtime/sys_s390x.go
+ create mode 100644 src/runtime/tls_s390x.s
+ create mode 100644 src/sync/atomic/asm_s390x.s
+ create mode 100644 src/syscall/asm_linux_s390x.s
+ create mode 100644 src/syscall/syscall_linux_s390x.go
+ create mode 100644 src/syscall/zerrors_linux_s390x.go
+ create mode 100644 src/syscall/zsyscall_linux_s390x.go
+ create mode 100644 src/syscall/zsysnum_linux_s390x.go
+ create mode 100644 src/syscall/ztypes_linux_s390x.go
+
+diff --git a/api/go1.6.txt b/api/go1.6.txt
+index d63efd0..6261e9c 100644
+--- a/api/go1.6.txt
++++ b/api/go1.6.txt
+@@ -273,3 +273,9282 @@ pkg text/template, method (ExecError) Error() string
+ pkg text/template, type ExecError struct
+ pkg text/template, type ExecError struct, Err error
+ pkg text/template, type ExecError struct, Name string
++pkg debug/elf, const R_390_12 = 2
++pkg debug/elf, const R_390_12 R_S390X
++pkg debug/elf, const R_390_16 = 3
++pkg debug/elf, const R_390_16 R_S390X
++pkg debug/elf, const R_390_32 = 4
++pkg debug/elf, const R_390_32 R_S390X
++pkg debug/elf, const R_390_64 = 22
++pkg debug/elf, const R_390_64 R_S390X
++pkg debug/elf, const R_390_8 = 1
++pkg debug/elf, const R_390_8 R_S390X
++pkg debug/elf, const R_390_COPY = 9
++pkg debug/elf, const R_390_COPY R_S390X
++pkg debug/elf, const R_390_GLOB_DAT = 10
++pkg debug/elf, const R_390_GLOB_DAT R_S390X
++pkg debug/elf, const R_390_GOT12 = 6
++pkg debug/elf, const R_390_GOT12 R_S390X
++pkg debug/elf, const R_390_GOT16 = 15
++pkg debug/elf, const R_390_GOT16 R_S390X
++pkg debug/elf, const R_390_GOT32 = 7
++pkg debug/elf, const R_390_GOT32 R_S390X
++pkg debug/elf, const R_390_GOT64 = 24
++pkg debug/elf, const R_390_GOT64 R_S390X
++pkg debug/elf, const R_390_GOTENT = 26
++pkg debug/elf, const R_390_GOTENT R_S390X
++pkg debug/elf, const R_390_GOTOFF = 13
++pkg debug/elf, const R_390_GOTOFF R_S390X
++pkg debug/elf, const R_390_GOTPC = 14
++pkg debug/elf, const R_390_GOTPCDBL = 21
++pkg debug/elf, const R_390_GOTPCDBL R_S390X
++pkg debug/elf, const R_390_GOTPC R_S390X
++pkg debug/elf, const R_390_JMP_SLOT = 11
++pkg debug/elf, const R_390_JMP_SLOT R_S390X
++pkg debug/elf, const R_390_NONE = 0
++pkg debug/elf, const R_390_NONE R_S390X
++pkg debug/elf, const R_390_PC16 = 16
++pkg debug/elf, const R_390_PC16DBL = 17
++pkg debug/elf, const R_390_PC16DBL R_S390X
++pkg debug/elf, const R_390_PC16 R_S390X
++pkg debug/elf, const R_390_PC32 = 5
++pkg debug/elf, const R_390_PC32DBL = 19
++pkg debug/elf, const R_390_PC32DBL R_S390X
++pkg debug/elf, const R_390_PC32 R_S390X
++pkg debug/elf, const R_390_PC64 = 23
++pkg debug/elf, const R_390_PC64 R_S390X
++pkg debug/elf, const R_390_PLT16DBL = 18
++pkg debug/elf, const R_390_PLT16DBL R_S390X
++pkg debug/elf, const R_390_PLT32 = 8
++pkg debug/elf, const R_390_PLT32DBL = 20
++pkg debug/elf, const R_390_PLT32DBL R_S390X
++pkg debug/elf, const R_390_PLT32 R_S390X
++pkg debug/elf, const R_390_PLT64 = 25
++pkg debug/elf, const R_390_PLT64 R_S390X
++pkg debug/elf, const R_390_RELATIVE = 12
++pkg debug/elf, const R_390_RELATIVE R_S390X
++pkg debug/elf, method (R_S390X) GoString() string
++pkg debug/elf, method (R_S390X) String() string
++pkg debug/elf, type R_S390X int
++pkg log/syslog (linux-s390x-cgo), const LOG_ALERT = 1
++pkg log/syslog (linux-s390x-cgo), const LOG_ALERT Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_AUTH = 32
++pkg log/syslog (linux-s390x-cgo), const LOG_AUTH Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_AUTHPRIV = 80
++pkg log/syslog (linux-s390x-cgo), const LOG_AUTHPRIV Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_CRIT = 2
++pkg log/syslog (linux-s390x-cgo), const LOG_CRIT Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_CRON = 72
++pkg log/syslog (linux-s390x-cgo), const LOG_CRON Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_DAEMON = 24
++pkg log/syslog (linux-s390x-cgo), const LOG_DAEMON Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_DEBUG = 7
++pkg log/syslog (linux-s390x-cgo), const LOG_DEBUG Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_EMERG = 0
++pkg log/syslog (linux-s390x-cgo), const LOG_EMERG Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_ERR = 3
++pkg log/syslog (linux-s390x-cgo), const LOG_ERR Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_FTP = 88
++pkg log/syslog (linux-s390x-cgo), const LOG_FTP Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_INFO = 6
++pkg log/syslog (linux-s390x-cgo), const LOG_INFO Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_KERN = 0
++pkg log/syslog (linux-s390x-cgo), const LOG_KERN Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL0 = 128
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL0 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL1 = 136
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL1 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL2 = 144
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL2 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL3 = 152
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL3 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL4 = 160
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL4 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL5 = 168
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL5 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL6 = 176
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL6 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL7 = 184
++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL7 Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_LPR = 48
++pkg log/syslog (linux-s390x-cgo), const LOG_LPR Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_MAIL = 16
++pkg log/syslog (linux-s390x-cgo), const LOG_MAIL Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_NEWS = 56
++pkg log/syslog (linux-s390x-cgo), const LOG_NEWS Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_NOTICE = 5
++pkg log/syslog (linux-s390x-cgo), const LOG_NOTICE Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_SYSLOG = 40
++pkg log/syslog (linux-s390x-cgo), const LOG_SYSLOG Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_USER = 8
++pkg log/syslog (linux-s390x-cgo), const LOG_USER Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_UUCP = 64
++pkg log/syslog (linux-s390x-cgo), const LOG_UUCP Priority
++pkg log/syslog (linux-s390x-cgo), const LOG_WARNING = 4
++pkg log/syslog (linux-s390x-cgo), const LOG_WARNING Priority
++pkg log/syslog (linux-s390x-cgo), func Dial(string, string, Priority, string) (*Writer, error)
++pkg log/syslog (linux-s390x-cgo), func NewLogger(Priority, int) (*log.Logger, error)
++pkg log/syslog (linux-s390x-cgo), func New(Priority, string) (*Writer, error)
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Alert(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Close() error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Crit(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Debug(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Emerg(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Err(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Info(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Notice(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Warning(string) error
++pkg log/syslog (linux-s390x-cgo), method (*Writer) Write([]uint8) (int, error)
++pkg log/syslog (linux-s390x-cgo), type Priority int
++pkg log/syslog (linux-s390x-cgo), type Writer struct
++pkg log/syslog (linux-s390x), const LOG_ALERT = 1
++pkg log/syslog (linux-s390x), const LOG_ALERT Priority
++pkg log/syslog (linux-s390x), const LOG_AUTH = 32
++pkg log/syslog (linux-s390x), const LOG_AUTH Priority
++pkg log/syslog (linux-s390x), const LOG_AUTHPRIV = 80
++pkg log/syslog (linux-s390x), const LOG_AUTHPRIV Priority
++pkg log/syslog (linux-s390x), const LOG_CRIT = 2
++pkg log/syslog (linux-s390x), const LOG_CRIT Priority
++pkg log/syslog (linux-s390x), const LOG_CRON = 72
++pkg log/syslog (linux-s390x), const LOG_CRON Priority
++pkg log/syslog (linux-s390x), const LOG_DAEMON = 24
++pkg log/syslog (linux-s390x), const LOG_DAEMON Priority
++pkg log/syslog (linux-s390x), const LOG_DEBUG = 7
++pkg log/syslog (linux-s390x), const LOG_DEBUG Priority
++pkg log/syslog (linux-s390x), const LOG_EMERG = 0
++pkg log/syslog (linux-s390x), const LOG_EMERG Priority
++pkg log/syslog (linux-s390x), const LOG_ERR = 3
++pkg log/syslog (linux-s390x), const LOG_ERR Priority
++pkg log/syslog (linux-s390x), const LOG_FTP = 88
++pkg log/syslog (linux-s390x), const LOG_FTP Priority
++pkg log/syslog (linux-s390x), const LOG_INFO = 6
++pkg log/syslog (linux-s390x), const LOG_INFO Priority
++pkg log/syslog (linux-s390x), const LOG_KERN = 0
++pkg log/syslog (linux-s390x), const LOG_KERN Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL0 = 128
++pkg log/syslog (linux-s390x), const LOG_LOCAL0 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL1 = 136
++pkg log/syslog (linux-s390x), const LOG_LOCAL1 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL2 = 144
++pkg log/syslog (linux-s390x), const LOG_LOCAL2 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL3 = 152
++pkg log/syslog (linux-s390x), const LOG_LOCAL3 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL4 = 160
++pkg log/syslog (linux-s390x), const LOG_LOCAL4 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL5 = 168
++pkg log/syslog (linux-s390x), const LOG_LOCAL5 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL6 = 176
++pkg log/syslog (linux-s390x), const LOG_LOCAL6 Priority
++pkg log/syslog (linux-s390x), const LOG_LOCAL7 = 184
++pkg log/syslog (linux-s390x), const LOG_LOCAL7 Priority
++pkg log/syslog (linux-s390x), const LOG_LPR = 48
++pkg log/syslog (linux-s390x), const LOG_LPR Priority
++pkg log/syslog (linux-s390x), const LOG_MAIL = 16
++pkg log/syslog (linux-s390x), const LOG_MAIL Priority
++pkg log/syslog (linux-s390x), const LOG_NEWS = 56
++pkg log/syslog (linux-s390x), const LOG_NEWS Priority
++pkg log/syslog (linux-s390x), const LOG_NOTICE = 5
++pkg log/syslog (linux-s390x), const LOG_NOTICE Priority
++pkg log/syslog (linux-s390x), const LOG_SYSLOG = 40
++pkg log/syslog (linux-s390x), const LOG_SYSLOG Priority
++pkg log/syslog (linux-s390x), const LOG_USER = 8
++pkg log/syslog (linux-s390x), const LOG_USER Priority
++pkg log/syslog (linux-s390x), const LOG_UUCP = 64
++pkg log/syslog (linux-s390x), const LOG_UUCP Priority
++pkg log/syslog (linux-s390x), const LOG_WARNING = 4
++pkg log/syslog (linux-s390x), const LOG_WARNING Priority
++pkg log/syslog (linux-s390x), func Dial(string, string, Priority, string) (*Writer, error)
++pkg log/syslog (linux-s390x), func NewLogger(Priority, int) (*log.Logger, error)
++pkg log/syslog (linux-s390x), func New(Priority, string) (*Writer, error)
++pkg log/syslog (linux-s390x), method (*Writer) Alert(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Close() error
++pkg log/syslog (linux-s390x), method (*Writer) Crit(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Debug(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Emerg(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Err(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Info(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Notice(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Warning(string) error
++pkg log/syslog (linux-s390x), method (*Writer) Write([]uint8) (int, error)
++pkg log/syslog (linux-s390x), type Priority int
++pkg log/syslog (linux-s390x), type Writer struct
++pkg os (linux-s390x-cgo), const DevNull = "/dev/null"
++pkg os (linux-s390x-cgo), const O_APPEND = 1024
++pkg os (linux-s390x-cgo), const O_CREATE = 64
++pkg os (linux-s390x-cgo), const O_EXCL = 128
++pkg os (linux-s390x-cgo), const O_SYNC = 1052672
++pkg os (linux-s390x-cgo), const O_TRUNC = 512
++pkg os (linux-s390x-cgo), const PathListSeparator = 58
++pkg os (linux-s390x-cgo), const PathSeparator = 47
++pkg os (linux-s390x), const DevNull = "/dev/null"
++pkg os (linux-s390x), const O_APPEND = 1024
++pkg os (linux-s390x), const O_CREATE = 64
++pkg os (linux-s390x), const O_EXCL = 128
++pkg os (linux-s390x), const O_SYNC = 1052672
++pkg os (linux-s390x), const O_TRUNC = 512
++pkg os (linux-s390x), const PathListSeparator = 58
++pkg os (linux-s390x), const PathSeparator = 47
++pkg path/filepath (linux-s390x-cgo), const ListSeparator = 58
++pkg path/filepath (linux-s390x-cgo), const Separator = 47
++pkg path/filepath (linux-s390x), const ListSeparator = 58
++pkg path/filepath (linux-s390x), const Separator = 47
++pkg runtime (linux-s390x-cgo), const GOARCH = "s390x"
++pkg runtime (linux-s390x-cgo), const GOOS = "linux"
++pkg runtime (linux-s390x), const GOARCH = "s390x"
++pkg runtime (linux-s390x), const GOOS = "linux"
++pkg syscall (linux-s390x-cgo), const AF_ALG = 38
++pkg syscall (linux-s390x-cgo), const AF_ALG ideal-int
++pkg syscall (linux-s390x-cgo), const AF_APPLETALK = 5
++pkg syscall (linux-s390x-cgo), const AF_APPLETALK ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ASH = 18
++pkg syscall (linux-s390x-cgo), const AF_ASH ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ATMPVC = 8
++pkg syscall (linux-s390x-cgo), const AF_ATMPVC ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ATMSVC = 20
++pkg syscall (linux-s390x-cgo), const AF_ATMSVC ideal-int
++pkg syscall (linux-s390x-cgo), const AF_AX25 = 3
++pkg syscall (linux-s390x-cgo), const AF_AX25 ideal-int
++pkg syscall (linux-s390x-cgo), const AF_BLUETOOTH = 31
++pkg syscall (linux-s390x-cgo), const AF_BLUETOOTH ideal-int
++pkg syscall (linux-s390x-cgo), const AF_BRIDGE = 7
++pkg syscall (linux-s390x-cgo), const AF_BRIDGE ideal-int
++pkg syscall (linux-s390x-cgo), const AF_CAIF = 37
++pkg syscall (linux-s390x-cgo), const AF_CAIF ideal-int
++pkg syscall (linux-s390x-cgo), const AF_CAN = 29
++pkg syscall (linux-s390x-cgo), const AF_CAN ideal-int
++pkg syscall (linux-s390x-cgo), const AF_DECnet = 12
++pkg syscall (linux-s390x-cgo), const AF_DECnet ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ECONET = 19
++pkg syscall (linux-s390x-cgo), const AF_ECONET ideal-int
++pkg syscall (linux-s390x-cgo), const AF_FILE = 1
++pkg syscall (linux-s390x-cgo), const AF_FILE ideal-int
++pkg syscall (linux-s390x-cgo), const AF_IEEE802154 = 36
++pkg syscall (linux-s390x-cgo), const AF_IEEE802154 ideal-int
++pkg syscall (linux-s390x-cgo), const AF_INET6 = 10
++pkg syscall (linux-s390x-cgo), const AF_IPX = 4
++pkg syscall (linux-s390x-cgo), const AF_IPX ideal-int
++pkg syscall (linux-s390x-cgo), const AF_IRDA = 23
++pkg syscall (linux-s390x-cgo), const AF_IRDA ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ISDN = 34
++pkg syscall (linux-s390x-cgo), const AF_ISDN ideal-int
++pkg syscall (linux-s390x-cgo), const AF_IUCV = 32
++pkg syscall (linux-s390x-cgo), const AF_IUCV ideal-int
++pkg syscall (linux-s390x-cgo), const AF_KEY = 15
++pkg syscall (linux-s390x-cgo), const AF_KEY ideal-int
++pkg syscall (linux-s390x-cgo), const AF_LLC = 26
++pkg syscall (linux-s390x-cgo), const AF_LLC ideal-int
++pkg syscall (linux-s390x-cgo), const AF_LOCAL = 1
++pkg syscall (linux-s390x-cgo), const AF_LOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const AF_MAX = 40
++pkg syscall (linux-s390x-cgo), const AF_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const AF_NETBEUI = 13
++pkg syscall (linux-s390x-cgo), const AF_NETBEUI ideal-int
++pkg syscall (linux-s390x-cgo), const AF_NETLINK = 16
++pkg syscall (linux-s390x-cgo), const AF_NETLINK ideal-int
++pkg syscall (linux-s390x-cgo), const AF_NETROM = 6
++pkg syscall (linux-s390x-cgo), const AF_NETROM ideal-int
++pkg syscall (linux-s390x-cgo), const AF_NFC = 39
++pkg syscall (linux-s390x-cgo), const AF_NFC ideal-int
++pkg syscall (linux-s390x-cgo), const AF_PACKET = 17
++pkg syscall (linux-s390x-cgo), const AF_PACKET ideal-int
++pkg syscall (linux-s390x-cgo), const AF_PHONET = 35
++pkg syscall (linux-s390x-cgo), const AF_PHONET ideal-int
++pkg syscall (linux-s390x-cgo), const AF_PPPOX = 24
++pkg syscall (linux-s390x-cgo), const AF_PPPOX ideal-int
++pkg syscall (linux-s390x-cgo), const AF_RDS = 21
++pkg syscall (linux-s390x-cgo), const AF_RDS ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ROSE = 11
++pkg syscall (linux-s390x-cgo), const AF_ROSE ideal-int
++pkg syscall (linux-s390x-cgo), const AF_ROUTE = 16
++pkg syscall (linux-s390x-cgo), const AF_ROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const AF_RXRPC = 33
++pkg syscall (linux-s390x-cgo), const AF_RXRPC ideal-int
++pkg syscall (linux-s390x-cgo), const AF_SECURITY = 14
++pkg syscall (linux-s390x-cgo), const AF_SECURITY ideal-int
++pkg syscall (linux-s390x-cgo), const AF_SNA = 22
++pkg syscall (linux-s390x-cgo), const AF_SNA ideal-int
++pkg syscall (linux-s390x-cgo), const AF_TIPC = 30
++pkg syscall (linux-s390x-cgo), const AF_TIPC ideal-int
++pkg syscall (linux-s390x-cgo), const AF_WANPIPE = 25
++pkg syscall (linux-s390x-cgo), const AF_WANPIPE ideal-int
++pkg syscall (linux-s390x-cgo), const AF_X25 = 9
++pkg syscall (linux-s390x-cgo), const AF_X25 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ADAPT = 264
++pkg syscall (linux-s390x-cgo), const ARPHRD_ADAPT ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_APPLETLK = 8
++pkg syscall (linux-s390x-cgo), const ARPHRD_APPLETLK ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ARCNET = 7
++pkg syscall (linux-s390x-cgo), const ARPHRD_ARCNET ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ASH = 781
++pkg syscall (linux-s390x-cgo), const ARPHRD_ASH ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ATM = 19
++pkg syscall (linux-s390x-cgo), const ARPHRD_ATM ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_AX25 = 3
++pkg syscall (linux-s390x-cgo), const ARPHRD_AX25 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_BIF = 775
++pkg syscall (linux-s390x-cgo), const ARPHRD_BIF ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_CAIF = 822
++pkg syscall (linux-s390x-cgo), const ARPHRD_CAIF ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_CAN = 280
++pkg syscall (linux-s390x-cgo), const ARPHRD_CAN ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_CHAOS = 5
++pkg syscall (linux-s390x-cgo), const ARPHRD_CHAOS ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_CISCO = 513
++pkg syscall (linux-s390x-cgo), const ARPHRD_CISCO ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP = 257
++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP6 = 259
++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP6 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_DDCMP = 517
++pkg syscall (linux-s390x-cgo), const ARPHRD_DDCMP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_DLCI = 15
++pkg syscall (linux-s390x-cgo), const ARPHRD_DLCI ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ECONET = 782
++pkg syscall (linux-s390x-cgo), const ARPHRD_ECONET ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_EETHER = 2
++pkg syscall (linux-s390x-cgo), const ARPHRD_EETHER ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ETHER = 1
++pkg syscall (linux-s390x-cgo), const ARPHRD_ETHER ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_EUI64 = 27
++pkg syscall (linux-s390x-cgo), const ARPHRD_EUI64 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCAL = 785
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCAL ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCFABRIC = 787
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCFABRIC ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPL = 786
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPL ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPP = 784
++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_FDDI = 774
++pkg syscall (linux-s390x-cgo), const ARPHRD_FDDI ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_FRAD = 770
++pkg syscall (linux-s390x-cgo), const ARPHRD_FRAD ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_HDLC = 513
++pkg syscall (linux-s390x-cgo), const ARPHRD_HDLC ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_HIPPI = 780
++pkg syscall (linux-s390x-cgo), const ARPHRD_HIPPI ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_HWX25 = 272
++pkg syscall (linux-s390x-cgo), const ARPHRD_HWX25 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE1394 = 24
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE1394 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211 = 801
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_PRISM = 802
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_PRISM ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_RADIOTAP = 803
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_RADIOTAP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154 = 804
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154_MONITOR = 805
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154_MONITOR ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802 = 6
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802_TR = 800
++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802_TR ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_INFINIBAND = 32
++pkg syscall (linux-s390x-cgo), const ARPHRD_INFINIBAND ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IP6GRE = 823
++pkg syscall (linux-s390x-cgo), const ARPHRD_IP6GRE ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IPDDP = 777
++pkg syscall (linux-s390x-cgo), const ARPHRD_IPDDP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IPGRE = 778
++pkg syscall (linux-s390x-cgo), const ARPHRD_IPGRE ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_IRDA = 783
++pkg syscall (linux-s390x-cgo), const ARPHRD_IRDA ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_LAPB = 516
++pkg syscall (linux-s390x-cgo), const ARPHRD_LAPB ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_LOCALTLK = 773
++pkg syscall (linux-s390x-cgo), const ARPHRD_LOCALTLK ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_LOOPBACK = 772
++pkg syscall (linux-s390x-cgo), const ARPHRD_LOOPBACK ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_METRICOM = 23
++pkg syscall (linux-s390x-cgo), const ARPHRD_METRICOM ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_NETLINK = 824
++pkg syscall (linux-s390x-cgo), const ARPHRD_NETLINK ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_NETROM = 0
++pkg syscall (linux-s390x-cgo), const ARPHRD_NETROM ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_NONE = 65534
++pkg syscall (linux-s390x-cgo), const ARPHRD_NONE ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET = 820
++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET_PIPE = 821
++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET_PIPE ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_PIMREG = 779
++pkg syscall (linux-s390x-cgo), const ARPHRD_PIMREG ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_PPP = 512
++pkg syscall (linux-s390x-cgo), const ARPHRD_PPP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_PRONET = 4
++pkg syscall (linux-s390x-cgo), const ARPHRD_PRONET ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_RAWHDLC = 518
++pkg syscall (linux-s390x-cgo), const ARPHRD_RAWHDLC ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_ROSE = 270
++pkg syscall (linux-s390x-cgo), const ARPHRD_ROSE ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_RSRVD = 260
++pkg syscall (linux-s390x-cgo), const ARPHRD_RSRVD ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_SIT = 776
++pkg syscall (linux-s390x-cgo), const ARPHRD_SIT ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_SKIP = 771
++pkg syscall (linux-s390x-cgo), const ARPHRD_SKIP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP = 256
++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP6 = 258
++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP6 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL6 = 769
++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL6 ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL = 768
++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_VOID = 65535
++pkg syscall (linux-s390x-cgo), const ARPHRD_VOID ideal-int
++pkg syscall (linux-s390x-cgo), const ARPHRD_X25 = 271
++pkg syscall (linux-s390x-cgo), const ARPHRD_X25 ideal-int
++pkg syscall (linux-s390x-cgo), const B0 = 0
++pkg syscall (linux-s390x-cgo), const B0 ideal-int
++pkg syscall (linux-s390x-cgo), const B1000000 = 4104
++pkg syscall (linux-s390x-cgo), const B1000000 ideal-int
++pkg syscall (linux-s390x-cgo), const B110 = 3
++pkg syscall (linux-s390x-cgo), const B110 ideal-int
++pkg syscall (linux-s390x-cgo), const B1152000 = 4105
++pkg syscall (linux-s390x-cgo), const B1152000 ideal-int
++pkg syscall (linux-s390x-cgo), const B115200 = 4098
++pkg syscall (linux-s390x-cgo), const B115200 ideal-int
++pkg syscall (linux-s390x-cgo), const B1200 = 9
++pkg syscall (linux-s390x-cgo), const B1200 ideal-int
++pkg syscall (linux-s390x-cgo), const B134 = 4
++pkg syscall (linux-s390x-cgo), const B134 ideal-int
++pkg syscall (linux-s390x-cgo), const B1500000 = 4106
++pkg syscall (linux-s390x-cgo), const B1500000 ideal-int
++pkg syscall (linux-s390x-cgo), const B150 = 5
++pkg syscall (linux-s390x-cgo), const B150 ideal-int
++pkg syscall (linux-s390x-cgo), const B1800 = 10
++pkg syscall (linux-s390x-cgo), const B1800 ideal-int
++pkg syscall (linux-s390x-cgo), const B19200 = 14
++pkg syscall (linux-s390x-cgo), const B19200 ideal-int
++pkg syscall (linux-s390x-cgo), const B2000000 = 4107
++pkg syscall (linux-s390x-cgo), const B2000000 ideal-int
++pkg syscall (linux-s390x-cgo), const B200 = 6
++pkg syscall (linux-s390x-cgo), const B200 ideal-int
++pkg syscall (linux-s390x-cgo), const B230400 = 4099
++pkg syscall (linux-s390x-cgo), const B230400 ideal-int
++pkg syscall (linux-s390x-cgo), const B2400 = 11
++pkg syscall (linux-s390x-cgo), const B2400 ideal-int
++pkg syscall (linux-s390x-cgo), const B2500000 = 4108
++pkg syscall (linux-s390x-cgo), const B2500000 ideal-int
++pkg syscall (linux-s390x-cgo), const B3000000 = 4109
++pkg syscall (linux-s390x-cgo), const B3000000 ideal-int
++pkg syscall (linux-s390x-cgo), const B300 = 7
++pkg syscall (linux-s390x-cgo), const B300 ideal-int
++pkg syscall (linux-s390x-cgo), const B3500000 = 4110
++pkg syscall (linux-s390x-cgo), const B3500000 ideal-int
++pkg syscall (linux-s390x-cgo), const B38400 = 15
++pkg syscall (linux-s390x-cgo), const B38400 ideal-int
++pkg syscall (linux-s390x-cgo), const B4000000 = 4111
++pkg syscall (linux-s390x-cgo), const B4000000 ideal-int
++pkg syscall (linux-s390x-cgo), const B460800 = 4100
++pkg syscall (linux-s390x-cgo), const B460800 ideal-int
++pkg syscall (linux-s390x-cgo), const B4800 = 12
++pkg syscall (linux-s390x-cgo), const B4800 ideal-int
++pkg syscall (linux-s390x-cgo), const B500000 = 4101
++pkg syscall (linux-s390x-cgo), const B500000 ideal-int
++pkg syscall (linux-s390x-cgo), const B50 = 1
++pkg syscall (linux-s390x-cgo), const B50 ideal-int
++pkg syscall (linux-s390x-cgo), const B576000 = 4102
++pkg syscall (linux-s390x-cgo), const B576000 ideal-int
++pkg syscall (linux-s390x-cgo), const B57600 = 4097
++pkg syscall (linux-s390x-cgo), const B57600 ideal-int
++pkg syscall (linux-s390x-cgo), const B600 = 8
++pkg syscall (linux-s390x-cgo), const B600 ideal-int
++pkg syscall (linux-s390x-cgo), const B75 = 2
++pkg syscall (linux-s390x-cgo), const B75 ideal-int
++pkg syscall (linux-s390x-cgo), const B921600 = 4103
++pkg syscall (linux-s390x-cgo), const B921600 ideal-int
++pkg syscall (linux-s390x-cgo), const B9600 = 13
++pkg syscall (linux-s390x-cgo), const B9600 ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_A = 16
++pkg syscall (linux-s390x-cgo), const BPF_ABS = 32
++pkg syscall (linux-s390x-cgo), const BPF_ABS ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_ADD = 0
++pkg syscall (linux-s390x-cgo), const BPF_ADD ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_A ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_ALU = 4
++pkg syscall (linux-s390x-cgo), const BPF_ALU ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_AND = 80
++pkg syscall (linux-s390x-cgo), const BPF_AND ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_B = 16
++pkg syscall (linux-s390x-cgo), const BPF_B ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_DIV = 48
++pkg syscall (linux-s390x-cgo), const BPF_DIV ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_H = 8
++pkg syscall (linux-s390x-cgo), const BPF_H ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_IMM = 0
++pkg syscall (linux-s390x-cgo), const BPF_IMM ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_IND = 64
++pkg syscall (linux-s390x-cgo), const BPF_IND ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_JA = 0
++pkg syscall (linux-s390x-cgo), const BPF_JA ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_JEQ = 16
++pkg syscall (linux-s390x-cgo), const BPF_JEQ ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_JGE = 48
++pkg syscall (linux-s390x-cgo), const BPF_JGE ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_JGT = 32
++pkg syscall (linux-s390x-cgo), const BPF_JGT ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_JMP = 5
++pkg syscall (linux-s390x-cgo), const BPF_JMP ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_JSET = 64
++pkg syscall (linux-s390x-cgo), const BPF_JSET ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_K = 0
++pkg syscall (linux-s390x-cgo), const BPF_K ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_LD = 0
++pkg syscall (linux-s390x-cgo), const BPF_LD ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_LDX = 1
++pkg syscall (linux-s390x-cgo), const BPF_LDX ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_LEN = 128
++pkg syscall (linux-s390x-cgo), const BPF_LEN ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_LSH = 96
++pkg syscall (linux-s390x-cgo), const BPF_LSH ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MAJOR_VERSION = 1
++pkg syscall (linux-s390x-cgo), const BPF_MAJOR_VERSION ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MAXINSNS = 4096
++pkg syscall (linux-s390x-cgo), const BPF_MAXINSNS ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MEM = 96
++pkg syscall (linux-s390x-cgo), const BPF_MEM ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MEMWORDS = 16
++pkg syscall (linux-s390x-cgo), const BPF_MEMWORDS ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MINOR_VERSION = 1
++pkg syscall (linux-s390x-cgo), const BPF_MINOR_VERSION ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MISC = 7
++pkg syscall (linux-s390x-cgo), const BPF_MISC ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MOD = 144
++pkg syscall (linux-s390x-cgo), const BPF_MOD ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MSH = 160
++pkg syscall (linux-s390x-cgo), const BPF_MSH ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_MUL = 32
++pkg syscall (linux-s390x-cgo), const BPF_MUL ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_NEG = 128
++pkg syscall (linux-s390x-cgo), const BPF_NEG ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_OR = 64
++pkg syscall (linux-s390x-cgo), const BPF_OR ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_RET = 6
++pkg syscall (linux-s390x-cgo), const BPF_RET ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_RSH = 112
++pkg syscall (linux-s390x-cgo), const BPF_RSH ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_ST = 2
++pkg syscall (linux-s390x-cgo), const BPF_ST ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_STX = 3
++pkg syscall (linux-s390x-cgo), const BPF_STX ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_SUB = 16
++pkg syscall (linux-s390x-cgo), const BPF_SUB ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_TAX = 0
++pkg syscall (linux-s390x-cgo), const BPF_TAX ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_TXA = 128
++pkg syscall (linux-s390x-cgo), const BPF_TXA ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_W = 0
++pkg syscall (linux-s390x-cgo), const BPF_W ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_X = 8
++pkg syscall (linux-s390x-cgo), const BPF_X ideal-int
++pkg syscall (linux-s390x-cgo), const BPF_XOR = 160
++pkg syscall (linux-s390x-cgo), const BPF_XOR ideal-int
++pkg syscall (linux-s390x-cgo), const BRKINT = 2
++pkg syscall (linux-s390x-cgo), const BRKINT ideal-int
++pkg syscall (linux-s390x-cgo), const CFLUSH = 15
++pkg syscall (linux-s390x-cgo), const CFLUSH ideal-int
++pkg syscall (linux-s390x-cgo), const CLOCAL = 2048
++pkg syscall (linux-s390x-cgo), const CLOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_CLEARTID = 2097152
++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_CLEARTID ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_SETTID = 16777216
++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_SETTID ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_DETACHED = 4194304
++pkg syscall (linux-s390x-cgo), const CLONE_DETACHED ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_FILES = 1024
++pkg syscall (linux-s390x-cgo), const CLONE_FILES ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_FS = 512
++pkg syscall (linux-s390x-cgo), const CLONE_FS ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_IO = 2147483648
++pkg syscall (linux-s390x-cgo), const CLONE_IO ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_NEWIPC = 134217728
++pkg syscall (linux-s390x-cgo), const CLONE_NEWIPC ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_NEWNET = 1073741824
++pkg syscall (linux-s390x-cgo), const CLONE_NEWNET ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_NEWNS = 131072
++pkg syscall (linux-s390x-cgo), const CLONE_NEWNS ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_NEWPID = 536870912
++pkg syscall (linux-s390x-cgo), const CLONE_NEWPID ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_NEWUSER = 268435456
++pkg syscall (linux-s390x-cgo), const CLONE_NEWUSER ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_NEWUTS = 67108864
++pkg syscall (linux-s390x-cgo), const CLONE_NEWUTS ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_PARENT = 32768
++pkg syscall (linux-s390x-cgo), const CLONE_PARENT ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_PARENT_SETTID = 1048576
++pkg syscall (linux-s390x-cgo), const CLONE_PARENT_SETTID ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_PTRACE = 8192
++pkg syscall (linux-s390x-cgo), const CLONE_PTRACE ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_SETTLS = 524288
++pkg syscall (linux-s390x-cgo), const CLONE_SETTLS ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_SIGHAND = 2048
++pkg syscall (linux-s390x-cgo), const CLONE_SIGHAND ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_SYSVSEM = 262144
++pkg syscall (linux-s390x-cgo), const CLONE_SYSVSEM ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_THREAD = 65536
++pkg syscall (linux-s390x-cgo), const CLONE_THREAD ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_UNTRACED = 8388608
++pkg syscall (linux-s390x-cgo), const CLONE_UNTRACED ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_VFORK = 16384
++pkg syscall (linux-s390x-cgo), const CLONE_VFORK ideal-int
++pkg syscall (linux-s390x-cgo), const CLONE_VM = 256
++pkg syscall (linux-s390x-cgo), const CLONE_VM ideal-int
++pkg syscall (linux-s390x-cgo), const CREAD = 128
++pkg syscall (linux-s390x-cgo), const CREAD ideal-int
++pkg syscall (linux-s390x-cgo), const CS5 = 0
++pkg syscall (linux-s390x-cgo), const CS5 ideal-int
++pkg syscall (linux-s390x-cgo), const CS6 = 16
++pkg syscall (linux-s390x-cgo), const CS6 ideal-int
++pkg syscall (linux-s390x-cgo), const CS7 = 32
++pkg syscall (linux-s390x-cgo), const CS7 ideal-int
++pkg syscall (linux-s390x-cgo), const CS8 = 48
++pkg syscall (linux-s390x-cgo), const CS8 ideal-int
++pkg syscall (linux-s390x-cgo), const CSIGNAL = 255
++pkg syscall (linux-s390x-cgo), const CSIGNAL ideal-int
++pkg syscall (linux-s390x-cgo), const CSIZE = 48
++pkg syscall (linux-s390x-cgo), const CSIZE ideal-int
++pkg syscall (linux-s390x-cgo), const CSTART = 17
++pkg syscall (linux-s390x-cgo), const CSTART ideal-int
++pkg syscall (linux-s390x-cgo), const CSTATUS = 0
++pkg syscall (linux-s390x-cgo), const CSTATUS ideal-int
++pkg syscall (linux-s390x-cgo), const CSTOP = 19
++pkg syscall (linux-s390x-cgo), const CSTOPB = 64
++pkg syscall (linux-s390x-cgo), const CSTOPB ideal-int
++pkg syscall (linux-s390x-cgo), const CSTOP ideal-int
++pkg syscall (linux-s390x-cgo), const CSUSP = 26
++pkg syscall (linux-s390x-cgo), const CSUSP ideal-int
++pkg syscall (linux-s390x-cgo), const DT_BLK = 6
++pkg syscall (linux-s390x-cgo), const DT_BLK ideal-int
++pkg syscall (linux-s390x-cgo), const DT_CHR = 2
++pkg syscall (linux-s390x-cgo), const DT_CHR ideal-int
++pkg syscall (linux-s390x-cgo), const DT_DIR = 4
++pkg syscall (linux-s390x-cgo), const DT_DIR ideal-int
++pkg syscall (linux-s390x-cgo), const DT_FIFO = 1
++pkg syscall (linux-s390x-cgo), const DT_FIFO ideal-int
++pkg syscall (linux-s390x-cgo), const DT_LNK = 10
++pkg syscall (linux-s390x-cgo), const DT_LNK ideal-int
++pkg syscall (linux-s390x-cgo), const DT_REG = 8
++pkg syscall (linux-s390x-cgo), const DT_REG ideal-int
++pkg syscall (linux-s390x-cgo), const DT_SOCK = 12
++pkg syscall (linux-s390x-cgo), const DT_SOCK ideal-int
++pkg syscall (linux-s390x-cgo), const DT_UNKNOWN = 0
++pkg syscall (linux-s390x-cgo), const DT_UNKNOWN ideal-int
++pkg syscall (linux-s390x-cgo), const DT_WHT = 14
++pkg syscall (linux-s390x-cgo), const DT_WHT ideal-int
++pkg syscall (linux-s390x-cgo), const E2BIG = 7
++pkg syscall (linux-s390x-cgo), const EACCES = 13
++pkg syscall (linux-s390x-cgo), const EADDRINUSE = 98
++pkg syscall (linux-s390x-cgo), const EADDRNOTAVAIL = 99
++pkg syscall (linux-s390x-cgo), const EADV = 68
++pkg syscall (linux-s390x-cgo), const EADV Errno
++pkg syscall (linux-s390x-cgo), const EAFNOSUPPORT = 97
++pkg syscall (linux-s390x-cgo), const EAGAIN = 11
++pkg syscall (linux-s390x-cgo), const EALREADY = 114
++pkg syscall (linux-s390x-cgo), const EBADE = 52
++pkg syscall (linux-s390x-cgo), const EBADE Errno
++pkg syscall (linux-s390x-cgo), const EBADF = 9
++pkg syscall (linux-s390x-cgo), const EBADFD = 77
++pkg syscall (linux-s390x-cgo), const EBADFD Errno
++pkg syscall (linux-s390x-cgo), const EBADMSG = 74
++pkg syscall (linux-s390x-cgo), const EBADMSG Errno
++pkg syscall (linux-s390x-cgo), const EBADR = 53
++pkg syscall (linux-s390x-cgo), const EBADR Errno
++pkg syscall (linux-s390x-cgo), const EBADRQC = 56
++pkg syscall (linux-s390x-cgo), const EBADRQC Errno
++pkg syscall (linux-s390x-cgo), const EBADSLT = 57
++pkg syscall (linux-s390x-cgo), const EBADSLT Errno
++pkg syscall (linux-s390x-cgo), const EBFONT = 59
++pkg syscall (linux-s390x-cgo), const EBFONT Errno
++pkg syscall (linux-s390x-cgo), const EBUSY = 16
++pkg syscall (linux-s390x-cgo), const ECANCELED = 125
++pkg syscall (linux-s390x-cgo), const ECHILD = 10
++pkg syscall (linux-s390x-cgo), const ECHO = 8
++pkg syscall (linux-s390x-cgo), const ECHOCTL = 512
++pkg syscall (linux-s390x-cgo), const ECHOCTL ideal-int
++pkg syscall (linux-s390x-cgo), const ECHOE = 16
++pkg syscall (linux-s390x-cgo), const ECHOE ideal-int
++pkg syscall (linux-s390x-cgo), const ECHO ideal-int
++pkg syscall (linux-s390x-cgo), const ECHOK = 32
++pkg syscall (linux-s390x-cgo), const ECHOKE = 2048
++pkg syscall (linux-s390x-cgo), const ECHOKE ideal-int
++pkg syscall (linux-s390x-cgo), const ECHOK ideal-int
++pkg syscall (linux-s390x-cgo), const ECHONL = 64
++pkg syscall (linux-s390x-cgo), const ECHONL ideal-int
++pkg syscall (linux-s390x-cgo), const ECHOPRT = 1024
++pkg syscall (linux-s390x-cgo), const ECHOPRT ideal-int
++pkg syscall (linux-s390x-cgo), const ECHRNG = 44
++pkg syscall (linux-s390x-cgo), const ECHRNG Errno
++pkg syscall (linux-s390x-cgo), const ECOMM = 70
++pkg syscall (linux-s390x-cgo), const ECOMM Errno
++pkg syscall (linux-s390x-cgo), const ECONNABORTED = 103
++pkg syscall (linux-s390x-cgo), const ECONNREFUSED = 111
++pkg syscall (linux-s390x-cgo), const ECONNRESET = 104
++pkg syscall (linux-s390x-cgo), const EDEADLK = 35
++pkg syscall (linux-s390x-cgo), const EDEADLOCK = 35
++pkg syscall (linux-s390x-cgo), const EDEADLOCK Errno
++pkg syscall (linux-s390x-cgo), const EDESTADDRREQ = 89
++pkg syscall (linux-s390x-cgo), const EDOM = 33
++pkg syscall (linux-s390x-cgo), const EDOTDOT = 73
++pkg syscall (linux-s390x-cgo), const EDOTDOT Errno
++pkg syscall (linux-s390x-cgo), const EDQUOT = 122
++pkg syscall (linux-s390x-cgo), const EEXIST = 17
++pkg syscall (linux-s390x-cgo), const EFAULT = 14
++pkg syscall (linux-s390x-cgo), const EFBIG = 27
++pkg syscall (linux-s390x-cgo), const EHOSTDOWN = 112
++pkg syscall (linux-s390x-cgo), const EHOSTUNREACH = 113
++pkg syscall (linux-s390x-cgo), const EHWPOISON = 133
++pkg syscall (linux-s390x-cgo), const EHWPOISON Errno
++pkg syscall (linux-s390x-cgo), const EIDRM = 43
++pkg syscall (linux-s390x-cgo), const EILSEQ = 84
++pkg syscall (linux-s390x-cgo), const EINPROGRESS = 115
++pkg syscall (linux-s390x-cgo), const EINTR = 4
++pkg syscall (linux-s390x-cgo), const EINVAL = 22
++pkg syscall (linux-s390x-cgo), const EIO = 5
++pkg syscall (linux-s390x-cgo), const EISCONN = 106
++pkg syscall (linux-s390x-cgo), const EISDIR = 21
++pkg syscall (linux-s390x-cgo), const EISNAM = 120
++pkg syscall (linux-s390x-cgo), const EISNAM Errno
++pkg syscall (linux-s390x-cgo), const EKEYEXPIRED = 127
++pkg syscall (linux-s390x-cgo), const EKEYEXPIRED Errno
++pkg syscall (linux-s390x-cgo), const EKEYREJECTED = 129
++pkg syscall (linux-s390x-cgo), const EKEYREJECTED Errno
++pkg syscall (linux-s390x-cgo), const EKEYREVOKED = 128
++pkg syscall (linux-s390x-cgo), const EKEYREVOKED Errno
++pkg syscall (linux-s390x-cgo), const EL2HLT = 51
++pkg syscall (linux-s390x-cgo), const EL2HLT Errno
++pkg syscall (linux-s390x-cgo), const EL2NSYNC = 45
++pkg syscall (linux-s390x-cgo), const EL2NSYNC Errno
++pkg syscall (linux-s390x-cgo), const EL3HLT = 46
++pkg syscall (linux-s390x-cgo), const EL3HLT Errno
++pkg syscall (linux-s390x-cgo), const EL3RST = 47
++pkg syscall (linux-s390x-cgo), const EL3RST Errno
++pkg syscall (linux-s390x-cgo), const ELIBACC = 79
++pkg syscall (linux-s390x-cgo), const ELIBACC Errno
++pkg syscall (linux-s390x-cgo), const ELIBBAD = 80
++pkg syscall (linux-s390x-cgo), const ELIBBAD Errno
++pkg syscall (linux-s390x-cgo), const ELIBEXEC = 83
++pkg syscall (linux-s390x-cgo), const ELIBEXEC Errno
++pkg syscall (linux-s390x-cgo), const ELIBMAX = 82
++pkg syscall (linux-s390x-cgo), const ELIBMAX Errno
++pkg syscall (linux-s390x-cgo), const ELIBSCN = 81
++pkg syscall (linux-s390x-cgo), const ELIBSCN Errno
++pkg syscall (linux-s390x-cgo), const ELNRNG = 48
++pkg syscall (linux-s390x-cgo), const ELNRNG Errno
++pkg syscall (linux-s390x-cgo), const ELOOP = 40
++pkg syscall (linux-s390x-cgo), const EMEDIUMTYPE = 124
++pkg syscall (linux-s390x-cgo), const EMEDIUMTYPE Errno
++pkg syscall (linux-s390x-cgo), const EMFILE = 24
++pkg syscall (linux-s390x-cgo), const EMLINK = 31
++pkg syscall (linux-s390x-cgo), const EMSGSIZE = 90
++pkg syscall (linux-s390x-cgo), const EMULTIHOP = 72
++pkg syscall (linux-s390x-cgo), const EMULTIHOP Errno
++pkg syscall (linux-s390x-cgo), const ENAMETOOLONG = 36
++pkg syscall (linux-s390x-cgo), const ENAVAIL = 119
++pkg syscall (linux-s390x-cgo), const ENAVAIL Errno
++pkg syscall (linux-s390x-cgo), const ENCODING_DEFAULT = 0
++pkg syscall (linux-s390x-cgo), const ENCODING_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const ENCODING_FM_MARK = 3
++pkg syscall (linux-s390x-cgo), const ENCODING_FM_MARK ideal-int
++pkg syscall (linux-s390x-cgo), const ENCODING_FM_SPACE = 4
++pkg syscall (linux-s390x-cgo), const ENCODING_FM_SPACE ideal-int
++pkg syscall (linux-s390x-cgo), const ENCODING_MANCHESTER = 5
++pkg syscall (linux-s390x-cgo), const ENCODING_MANCHESTER ideal-int
++pkg syscall (linux-s390x-cgo), const ENCODING_NRZ = 1
++pkg syscall (linux-s390x-cgo), const ENCODING_NRZI = 2
++pkg syscall (linux-s390x-cgo), const ENCODING_NRZ ideal-int
++pkg syscall (linux-s390x-cgo), const ENCODING_NRZI ideal-int
++pkg syscall (linux-s390x-cgo), const ENETDOWN = 100
++pkg syscall (linux-s390x-cgo), const ENETRESET = 102
++pkg syscall (linux-s390x-cgo), const ENETUNREACH = 101
++pkg syscall (linux-s390x-cgo), const ENFILE = 23
++pkg syscall (linux-s390x-cgo), const ENOANO = 55
++pkg syscall (linux-s390x-cgo), const ENOANO Errno
++pkg syscall (linux-s390x-cgo), const ENOBUFS = 105
++pkg syscall (linux-s390x-cgo), const ENOCSI = 50
++pkg syscall (linux-s390x-cgo), const ENOCSI Errno
++pkg syscall (linux-s390x-cgo), const ENODATA = 61
++pkg syscall (linux-s390x-cgo), const ENODATA Errno
++pkg syscall (linux-s390x-cgo), const ENODEV = 19
++pkg syscall (linux-s390x-cgo), const ENOEXEC = 8
++pkg syscall (linux-s390x-cgo), const ENOKEY = 126
++pkg syscall (linux-s390x-cgo), const ENOKEY Errno
++pkg syscall (linux-s390x-cgo), const ENOLCK = 37
++pkg syscall (linux-s390x-cgo), const ENOLINK = 67
++pkg syscall (linux-s390x-cgo), const ENOLINK Errno
++pkg syscall (linux-s390x-cgo), const ENOMEDIUM = 123
++pkg syscall (linux-s390x-cgo), const ENOMEDIUM Errno
++pkg syscall (linux-s390x-cgo), const ENOMEM = 12
++pkg syscall (linux-s390x-cgo), const ENOMSG = 42
++pkg syscall (linux-s390x-cgo), const ENONET = 64
++pkg syscall (linux-s390x-cgo), const ENONET Errno
++pkg syscall (linux-s390x-cgo), const ENOPKG = 65
++pkg syscall (linux-s390x-cgo), const ENOPKG Errno
++pkg syscall (linux-s390x-cgo), const ENOPROTOOPT = 92
++pkg syscall (linux-s390x-cgo), const ENOSPC = 28
++pkg syscall (linux-s390x-cgo), const ENOSR = 63
++pkg syscall (linux-s390x-cgo), const ENOSR Errno
++pkg syscall (linux-s390x-cgo), const ENOSTR = 60
++pkg syscall (linux-s390x-cgo), const ENOSTR Errno
++pkg syscall (linux-s390x-cgo), const ENOSYS = 38
++pkg syscall (linux-s390x-cgo), const ENOTBLK = 15
++pkg syscall (linux-s390x-cgo), const ENOTCONN = 107
++pkg syscall (linux-s390x-cgo), const ENOTDIR = 20
++pkg syscall (linux-s390x-cgo), const ENOTEMPTY = 39
++pkg syscall (linux-s390x-cgo), const ENOTNAM = 118
++pkg syscall (linux-s390x-cgo), const ENOTNAM Errno
++pkg syscall (linux-s390x-cgo), const ENOTRECOVERABLE = 131
++pkg syscall (linux-s390x-cgo), const ENOTRECOVERABLE Errno
++pkg syscall (linux-s390x-cgo), const ENOTSOCK = 88
++pkg syscall (linux-s390x-cgo), const ENOTSUP = 95
++pkg syscall (linux-s390x-cgo), const ENOTTY = 25
++pkg syscall (linux-s390x-cgo), const ENOTUNIQ = 76
++pkg syscall (linux-s390x-cgo), const ENOTUNIQ Errno
++pkg syscall (linux-s390x-cgo), const ENXIO = 6
++pkg syscall (linux-s390x-cgo), const EOPNOTSUPP = 95
++pkg syscall (linux-s390x-cgo), const EOVERFLOW = 75
++pkg syscall (linux-s390x-cgo), const EOWNERDEAD = 130
++pkg syscall (linux-s390x-cgo), const EOWNERDEAD Errno
++pkg syscall (linux-s390x-cgo), const EPERM = 1
++pkg syscall (linux-s390x-cgo), const EPFNOSUPPORT = 96
++pkg syscall (linux-s390x-cgo), const EPIPE = 32
++pkg syscall (linux-s390x-cgo), const EPOLL_CLOEXEC = 524288
++pkg syscall (linux-s390x-cgo), const EPOLL_CLOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_ADD = 1
++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_ADD ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_DEL = 2
++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_DEL ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_MOD = 3
++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_MOD ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLERR = 8
++pkg syscall (linux-s390x-cgo), const EPOLLERR ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLET = 2147483648
++pkg syscall (linux-s390x-cgo), const EPOLLET ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLHUP = 16
++pkg syscall (linux-s390x-cgo), const EPOLLHUP ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLIN = 1
++pkg syscall (linux-s390x-cgo), const EPOLLIN ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLMSG = 1024
++pkg syscall (linux-s390x-cgo), const EPOLLMSG ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLL_NONBLOCK = 2048
++pkg syscall (linux-s390x-cgo), const EPOLL_NONBLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLONESHOT = 1073741824
++pkg syscall (linux-s390x-cgo), const EPOLLONESHOT ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLOUT = 4
++pkg syscall (linux-s390x-cgo), const EPOLLOUT ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLPRI = 2
++pkg syscall (linux-s390x-cgo), const EPOLLPRI ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLRDBAND = 128
++pkg syscall (linux-s390x-cgo), const EPOLLRDBAND ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLRDHUP = 8192
++pkg syscall (linux-s390x-cgo), const EPOLLRDHUP ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLRDNORM = 64
++pkg syscall (linux-s390x-cgo), const EPOLLRDNORM ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLWAKEUP = 536870912
++pkg syscall (linux-s390x-cgo), const EPOLLWAKEUP ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLWRBAND = 512
++pkg syscall (linux-s390x-cgo), const EPOLLWRBAND ideal-int
++pkg syscall (linux-s390x-cgo), const EPOLLWRNORM = 256
++pkg syscall (linux-s390x-cgo), const EPOLLWRNORM ideal-int
++pkg syscall (linux-s390x-cgo), const EPROTO = 71
++pkg syscall (linux-s390x-cgo), const EPROTO Errno
++pkg syscall (linux-s390x-cgo), const EPROTONOSUPPORT = 93
++pkg syscall (linux-s390x-cgo), const EPROTOTYPE = 91
++pkg syscall (linux-s390x-cgo), const ERANGE = 34
++pkg syscall (linux-s390x-cgo), const EREMCHG = 78
++pkg syscall (linux-s390x-cgo), const EREMCHG Errno
++pkg syscall (linux-s390x-cgo), const EREMOTE = 66
++pkg syscall (linux-s390x-cgo), const EREMOTEIO = 121
++pkg syscall (linux-s390x-cgo), const EREMOTEIO Errno
++pkg syscall (linux-s390x-cgo), const ERESTART = 85
++pkg syscall (linux-s390x-cgo), const ERESTART Errno
++pkg syscall (linux-s390x-cgo), const ERFKILL = 132
++pkg syscall (linux-s390x-cgo), const ERFKILL Errno
++pkg syscall (linux-s390x-cgo), const EROFS = 30
++pkg syscall (linux-s390x-cgo), const ESHUTDOWN = 108
++pkg syscall (linux-s390x-cgo), const ESOCKTNOSUPPORT = 94
++pkg syscall (linux-s390x-cgo), const ESPIPE = 29
++pkg syscall (linux-s390x-cgo), const ESRCH = 3
++pkg syscall (linux-s390x-cgo), const ESRMNT = 69
++pkg syscall (linux-s390x-cgo), const ESRMNT Errno
++pkg syscall (linux-s390x-cgo), const ESTALE = 116
++pkg syscall (linux-s390x-cgo), const ESTRPIPE = 86
++pkg syscall (linux-s390x-cgo), const ESTRPIPE Errno
++pkg syscall (linux-s390x-cgo), const ETH_P_1588 = 35063
++pkg syscall (linux-s390x-cgo), const ETH_P_1588 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_8021AD = 34984
++pkg syscall (linux-s390x-cgo), const ETH_P_8021AD ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_8021AH = 35047
++pkg syscall (linux-s390x-cgo), const ETH_P_8021AH ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_8021Q = 33024
++pkg syscall (linux-s390x-cgo), const ETH_P_8021Q ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_80221 = 35095
++pkg syscall (linux-s390x-cgo), const ETH_P_80221 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_802_2 = 4
++pkg syscall (linux-s390x-cgo), const ETH_P_802_2 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_802_3 = 1
++pkg syscall (linux-s390x-cgo), const ETH_P_802_3 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_802_3_MIN = 1536
++pkg syscall (linux-s390x-cgo), const ETH_P_802_3_MIN ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_802_EX1 = 34997
++pkg syscall (linux-s390x-cgo), const ETH_P_802_EX1 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_AARP = 33011
++pkg syscall (linux-s390x-cgo), const ETH_P_AARP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_AF_IUCV = 64507
++pkg syscall (linux-s390x-cgo), const ETH_P_AF_IUCV ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ALL = 3
++pkg syscall (linux-s390x-cgo), const ETH_P_ALL ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_AOE = 34978
++pkg syscall (linux-s390x-cgo), const ETH_P_AOE ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ARCNET = 26
++pkg syscall (linux-s390x-cgo), const ETH_P_ARCNET ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ARP = 2054
++pkg syscall (linux-s390x-cgo), const ETH_P_ARP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ATALK = 32923
++pkg syscall (linux-s390x-cgo), const ETH_P_ATALK ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ATMFATE = 34948
++pkg syscall (linux-s390x-cgo), const ETH_P_ATMFATE ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ATMMPOA = 34892
++pkg syscall (linux-s390x-cgo), const ETH_P_ATMMPOA ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_AX25 = 2
++pkg syscall (linux-s390x-cgo), const ETH_P_AX25 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_BATMAN = 17157
++pkg syscall (linux-s390x-cgo), const ETH_P_BATMAN ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_BPQ = 2303
++pkg syscall (linux-s390x-cgo), const ETH_P_BPQ ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_CAIF = 247
++pkg syscall (linux-s390x-cgo), const ETH_P_CAIF ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_CAN = 12
++pkg syscall (linux-s390x-cgo), const ETH_P_CANFD = 13
++pkg syscall (linux-s390x-cgo), const ETH_P_CANFD ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_CAN ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_CONTROL = 22
++pkg syscall (linux-s390x-cgo), const ETH_P_CONTROL ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_CUST = 24582
++pkg syscall (linux-s390x-cgo), const ETH_P_CUST ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DDCMP = 6
++pkg syscall (linux-s390x-cgo), const ETH_P_DDCMP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DEC = 24576
++pkg syscall (linux-s390x-cgo), const ETH_P_DEC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DIAG = 24581
++pkg syscall (linux-s390x-cgo), const ETH_P_DIAG ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_DL = 24577
++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_DL ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RC = 24578
++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RT = 24579
++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RT ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_DSA = 27
++pkg syscall (linux-s390x-cgo), const ETH_P_DSA ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_ECONET = 24
++pkg syscall (linux-s390x-cgo), const ETH_P_ECONET ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_EDSA = 56026
++pkg syscall (linux-s390x-cgo), const ETH_P_EDSA ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_FCOE = 35078
++pkg syscall (linux-s390x-cgo), const ETH_P_FCOE ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_FIP = 35092
++pkg syscall (linux-s390x-cgo), const ETH_P_FIP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_HDLC = 25
++pkg syscall (linux-s390x-cgo), const ETH_P_HDLC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IEEE802154 = 246
++pkg syscall (linux-s390x-cgo), const ETH_P_IEEE802154 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUP = 2560
++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUPAT = 2561
++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUPAT ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IP = 2048
++pkg syscall (linux-s390x-cgo), const ETH_P_IP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IPV6 = 34525
++pkg syscall (linux-s390x-cgo), const ETH_P_IPV6 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IPX = 33079
++pkg syscall (linux-s390x-cgo), const ETH_P_IPX ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_IRDA = 23
++pkg syscall (linux-s390x-cgo), const ETH_P_IRDA ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_LAT = 24580
++pkg syscall (linux-s390x-cgo), const ETH_P_LAT ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_LINK_CTL = 34924
++pkg syscall (linux-s390x-cgo), const ETH_P_LINK_CTL ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_LOCALTALK = 9
++pkg syscall (linux-s390x-cgo), const ETH_P_LOCALTALK ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_LOOP = 96
++pkg syscall (linux-s390x-cgo), const ETH_P_LOOP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_MOBITEX = 21
++pkg syscall (linux-s390x-cgo), const ETH_P_MOBITEX ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_MC = 34888
++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_MC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_UC = 34887
++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_UC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_MVRP = 35061
++pkg syscall (linux-s390x-cgo), const ETH_P_MVRP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PAE = 34958
++pkg syscall (linux-s390x-cgo), const ETH_P_PAE ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PAUSE = 34824
++pkg syscall (linux-s390x-cgo), const ETH_P_PAUSE ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PHONET = 245
++pkg syscall (linux-s390x-cgo), const ETH_P_PHONET ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_DISC = 34915
++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_DISC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_MP = 8
++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_MP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_SES = 34916
++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_SES ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PPPTALK = 16
++pkg syscall (linux-s390x-cgo), const ETH_P_PPPTALK ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PUP = 512
++pkg syscall (linux-s390x-cgo), const ETH_P_PUPAT = 513
++pkg syscall (linux-s390x-cgo), const ETH_P_PUPAT ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_PUP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ1 = 37120
++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ1 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ2 = 37376
++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ2 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ3 = 37632
++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ3 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_RARP = 32821
++pkg syscall (linux-s390x-cgo), const ETH_P_RARP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_SCA = 24583
++pkg syscall (linux-s390x-cgo), const ETH_P_SCA ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_SLOW = 34825
++pkg syscall (linux-s390x-cgo), const ETH_P_SLOW ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_SNAP = 5
++pkg syscall (linux-s390x-cgo), const ETH_P_SNAP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_TDLS = 35085
++pkg syscall (linux-s390x-cgo), const ETH_P_TDLS ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_TEB = 25944
++pkg syscall (linux-s390x-cgo), const ETH_P_TEB ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_TIPC = 35018
++pkg syscall (linux-s390x-cgo), const ETH_P_TIPC ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_TR_802_2 = 17
++pkg syscall (linux-s390x-cgo), const ETH_P_TR_802_2 ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_TRAILER = 28
++pkg syscall (linux-s390x-cgo), const ETH_P_TRAILER ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_WAN_PPP = 7
++pkg syscall (linux-s390x-cgo), const ETH_P_WAN_PPP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_WCCP = 34878
++pkg syscall (linux-s390x-cgo), const ETH_P_WCCP ideal-int
++pkg syscall (linux-s390x-cgo), const ETH_P_X25 = 2053
++pkg syscall (linux-s390x-cgo), const ETH_P_X25 ideal-int
++pkg syscall (linux-s390x-cgo), const ETIME = 62
++pkg syscall (linux-s390x-cgo), const ETIMEDOUT = 110
++pkg syscall (linux-s390x-cgo), const ETIME Errno
++pkg syscall (linux-s390x-cgo), const ETOOMANYREFS = 109
++pkg syscall (linux-s390x-cgo), const ETXTBSY = 26
++pkg syscall (linux-s390x-cgo), const EUCLEAN = 117
++pkg syscall (linux-s390x-cgo), const EUCLEAN Errno
++pkg syscall (linux-s390x-cgo), const EUNATCH = 49
++pkg syscall (linux-s390x-cgo), const EUNATCH Errno
++pkg syscall (linux-s390x-cgo), const EUSERS = 87
++pkg syscall (linux-s390x-cgo), const EWOULDBLOCK = 11
++pkg syscall (linux-s390x-cgo), const EXDEV = 18
++pkg syscall (linux-s390x-cgo), const EXFULL = 54
++pkg syscall (linux-s390x-cgo), const EXFULL Errno
++pkg syscall (linux-s390x-cgo), const EXTA = 14
++pkg syscall (linux-s390x-cgo), const EXTA ideal-int
++pkg syscall (linux-s390x-cgo), const EXTB = 15
++pkg syscall (linux-s390x-cgo), const EXTB ideal-int
++pkg syscall (linux-s390x-cgo), const EXTPROC = 65536
++pkg syscall (linux-s390x-cgo), const EXTPROC ideal-int
++pkg syscall (linux-s390x-cgo), const FD_CLOEXEC = 1
++pkg syscall (linux-s390x-cgo), const FD_CLOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const FD_SETSIZE = 1024
++pkg syscall (linux-s390x-cgo), const FD_SETSIZE ideal-int
++pkg syscall (linux-s390x-cgo), const F_DUPFD = 0
++pkg syscall (linux-s390x-cgo), const F_DUPFD_CLOEXEC = 1030
++pkg syscall (linux-s390x-cgo), const F_DUPFD_CLOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const F_DUPFD ideal-int
++pkg syscall (linux-s390x-cgo), const F_EXLCK = 4
++pkg syscall (linux-s390x-cgo), const F_EXLCK ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETFD = 1
++pkg syscall (linux-s390x-cgo), const F_GETFD ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETFL = 3
++pkg syscall (linux-s390x-cgo), const F_GETFL ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETLEASE = 1025
++pkg syscall (linux-s390x-cgo), const F_GETLEASE ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETLK = 5
++pkg syscall (linux-s390x-cgo), const F_GETLK64 = 5
++pkg syscall (linux-s390x-cgo), const F_GETLK64 ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETLK ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETOWN = 9
++pkg syscall (linux-s390x-cgo), const F_GETOWN_EX = 16
++pkg syscall (linux-s390x-cgo), const F_GETOWN_EX ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETOWN ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETPIPE_SZ = 1032
++pkg syscall (linux-s390x-cgo), const F_GETPIPE_SZ ideal-int
++pkg syscall (linux-s390x-cgo), const F_GETSIG = 11
++pkg syscall (linux-s390x-cgo), const F_GETSIG ideal-int
++pkg syscall (linux-s390x-cgo), const F_LOCK = 1
++pkg syscall (linux-s390x-cgo), const F_LOCK ideal-int
++pkg syscall (linux-s390x-cgo), const FLUSHO = 4096
++pkg syscall (linux-s390x-cgo), const FLUSHO ideal-int
++pkg syscall (linux-s390x-cgo), const F_NOTIFY = 1026
++pkg syscall (linux-s390x-cgo), const F_NOTIFY ideal-int
++pkg syscall (linux-s390x-cgo), const F_OK = 0
++pkg syscall (linux-s390x-cgo), const F_OK ideal-int
++pkg syscall (linux-s390x-cgo), const F_RDLCK = 0
++pkg syscall (linux-s390x-cgo), const F_RDLCK ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETFD = 2
++pkg syscall (linux-s390x-cgo), const F_SETFD ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETFL = 4
++pkg syscall (linux-s390x-cgo), const F_SETFL ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETLEASE = 1024
++pkg syscall (linux-s390x-cgo), const F_SETLEASE ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETLK = 6
++pkg syscall (linux-s390x-cgo), const F_SETLK64 = 6
++pkg syscall (linux-s390x-cgo), const F_SETLK64 ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETLK ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETLKW64 = 7
++pkg syscall (linux-s390x-cgo), const F_SETLKW64 ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETLKW = 7
++pkg syscall (linux-s390x-cgo), const F_SETLKW ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETOWN = 8
++pkg syscall (linux-s390x-cgo), const F_SETOWN_EX = 15
++pkg syscall (linux-s390x-cgo), const F_SETOWN_EX ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETOWN ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETPIPE_SZ = 1031
++pkg syscall (linux-s390x-cgo), const F_SETPIPE_SZ ideal-int
++pkg syscall (linux-s390x-cgo), const F_SETSIG = 10
++pkg syscall (linux-s390x-cgo), const F_SETSIG ideal-int
++pkg syscall (linux-s390x-cgo), const F_SHLCK = 8
++pkg syscall (linux-s390x-cgo), const F_SHLCK ideal-int
++pkg syscall (linux-s390x-cgo), const F_TEST = 3
++pkg syscall (linux-s390x-cgo), const F_TEST ideal-int
++pkg syscall (linux-s390x-cgo), const F_TLOCK = 2
++pkg syscall (linux-s390x-cgo), const F_TLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const F_ULOCK = 0
++pkg syscall (linux-s390x-cgo), const F_ULOCK ideal-int
++pkg syscall (linux-s390x-cgo), const F_UNLCK = 2
++pkg syscall (linux-s390x-cgo), const F_UNLCK ideal-int
++pkg syscall (linux-s390x-cgo), const F_WRLCK = 1
++pkg syscall (linux-s390x-cgo), const F_WRLCK ideal-int
++pkg syscall (linux-s390x-cgo), const HUPCL = 1024
++pkg syscall (linux-s390x-cgo), const HUPCL ideal-int
++pkg syscall (linux-s390x-cgo), const ICANON = 2
++pkg syscall (linux-s390x-cgo), const ICANON ideal-int
++pkg syscall (linux-s390x-cgo), const ICMPV6_FILTER = 1
++pkg syscall (linux-s390x-cgo), const ICMPV6_FILTER ideal-int
++pkg syscall (linux-s390x-cgo), const ICRNL = 256
++pkg syscall (linux-s390x-cgo), const ICRNL ideal-int
++pkg syscall (linux-s390x-cgo), const IEXTEN = 32768
++pkg syscall (linux-s390x-cgo), const IEXTEN ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_ADDRESS = 1
++pkg syscall (linux-s390x-cgo), const IFA_ADDRESS ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_ANYCAST = 5
++pkg syscall (linux-s390x-cgo), const IFA_ANYCAST ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_BROADCAST = 4
++pkg syscall (linux-s390x-cgo), const IFA_BROADCAST ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_CACHEINFO = 6
++pkg syscall (linux-s390x-cgo), const IFA_CACHEINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_DADFAILED = 8
++pkg syscall (linux-s390x-cgo), const IFA_F_DADFAILED ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_DEPRECATED = 32
++pkg syscall (linux-s390x-cgo), const IFA_F_DEPRECATED ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_HOMEADDRESS = 16
++pkg syscall (linux-s390x-cgo), const IFA_F_HOMEADDRESS ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_MANAGETEMPADDR = 256
++pkg syscall (linux-s390x-cgo), const IFA_F_MANAGETEMPADDR ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_NODAD = 2
++pkg syscall (linux-s390x-cgo), const IFA_F_NODAD ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_NOPREFIXROUTE = 512
++pkg syscall (linux-s390x-cgo), const IFA_F_NOPREFIXROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_OPTIMISTIC = 4
++pkg syscall (linux-s390x-cgo), const IFA_F_OPTIMISTIC ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_PERMANENT = 128
++pkg syscall (linux-s390x-cgo), const IFA_F_PERMANENT ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_SECONDARY = 1
++pkg syscall (linux-s390x-cgo), const IFA_F_SECONDARY ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_TEMPORARY = 1
++pkg syscall (linux-s390x-cgo), const IFA_F_TEMPORARY ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_F_TENTATIVE = 64
++pkg syscall (linux-s390x-cgo), const IFA_F_TENTATIVE ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_LABEL = 3
++pkg syscall (linux-s390x-cgo), const IFA_LABEL ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_LOCAL = 2
++pkg syscall (linux-s390x-cgo), const IFA_LOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_MAX = 8
++pkg syscall (linux-s390x-cgo), const IFA_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_MULTICAST = 7
++pkg syscall (linux-s390x-cgo), const IFA_MULTICAST ideal-int
++pkg syscall (linux-s390x-cgo), const IFA_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const IFA_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_802_1Q_VLAN = 1
++pkg syscall (linux-s390x-cgo), const IFF_802_1Q_VLAN ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_ALLMULTI = 512
++pkg syscall (linux-s390x-cgo), const IFF_ALLMULTI ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_ATTACH_QUEUE = 512
++pkg syscall (linux-s390x-cgo), const IFF_ATTACH_QUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_AUTOMEDIA = 16384
++pkg syscall (linux-s390x-cgo), const IFF_AUTOMEDIA ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_BONDING = 32
++pkg syscall (linux-s390x-cgo), const IFF_BONDING ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_BRIDGE_PORT = 16384
++pkg syscall (linux-s390x-cgo), const IFF_BRIDGE_PORT ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_DEBUG = 4
++pkg syscall (linux-s390x-cgo), const IFF_DEBUG ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_DETACH_QUEUE = 1024
++pkg syscall (linux-s390x-cgo), const IFF_DETACH_QUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_DISABLE_NETPOLL = 4096
++pkg syscall (linux-s390x-cgo), const IFF_DISABLE_NETPOLL ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_DONT_BRIDGE = 2048
++pkg syscall (linux-s390x-cgo), const IFF_DONT_BRIDGE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_DORMANT = 131072
++pkg syscall (linux-s390x-cgo), const IFF_DORMANT ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_DYNAMIC = 32768
++pkg syscall (linux-s390x-cgo), const IFF_DYNAMIC ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_EBRIDGE = 2
++pkg syscall (linux-s390x-cgo), const IFF_EBRIDGE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_ECHO = 262144
++pkg syscall (linux-s390x-cgo), const IFF_ECHO ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_ISATAP = 128
++pkg syscall (linux-s390x-cgo), const IFF_ISATAP ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_LIVE_ADDR_CHANGE = 1048576
++pkg syscall (linux-s390x-cgo), const IFF_LIVE_ADDR_CHANGE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_LOOPBACK = 8
++pkg syscall (linux-s390x-cgo), const IFF_LOWER_UP = 65536
++pkg syscall (linux-s390x-cgo), const IFF_LOWER_UP ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_MACVLAN_PORT = 8192
++pkg syscall (linux-s390x-cgo), const IFF_MACVLAN_PORT ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_MASTER = 1024
++pkg syscall (linux-s390x-cgo), const IFF_MASTER_8023AD = 8
++pkg syscall (linux-s390x-cgo), const IFF_MASTER_8023AD ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ALB = 16
++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ALB ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ARPMON = 256
++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ARPMON ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_MASTER ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_MULTICAST = 4096
++pkg syscall (linux-s390x-cgo), const IFF_MULTI_QUEUE = 256
++pkg syscall (linux-s390x-cgo), const IFF_MULTI_QUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_NOARP = 128
++pkg syscall (linux-s390x-cgo), const IFF_NOARP ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_NO_PI = 4096
++pkg syscall (linux-s390x-cgo), const IFF_NO_PI ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_NOTRAILERS = 32
++pkg syscall (linux-s390x-cgo), const IFF_NOTRAILERS ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_ONE_QUEUE = 8192
++pkg syscall (linux-s390x-cgo), const IFF_ONE_QUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_OVS_DATAPATH = 32768
++pkg syscall (linux-s390x-cgo), const IFF_OVS_DATAPATH ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_POINTOPOINT = 16
++pkg syscall (linux-s390x-cgo), const IFF_POINTOPOINT ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_PORTSEL = 8192
++pkg syscall (linux-s390x-cgo), const IFF_PORTSEL ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_PROMISC = 256
++pkg syscall (linux-s390x-cgo), const IFF_PROMISC ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_RUNNING = 64
++pkg syscall (linux-s390x-cgo), const IFF_RUNNING ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_SLAVE = 2048
++pkg syscall (linux-s390x-cgo), const IFF_SLAVE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_INACTIVE = 4
++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_INACTIVE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_NEEDARP = 64
++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_NEEDARP ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_SUPP_NOFCS = 524288
++pkg syscall (linux-s390x-cgo), const IFF_SUPP_NOFCS ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_TAP = 2
++pkg syscall (linux-s390x-cgo), const IFF_TAP ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_TEAM_PORT = 262144
++pkg syscall (linux-s390x-cgo), const IFF_TEAM_PORT ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_TUN = 1
++pkg syscall (linux-s390x-cgo), const IFF_TUN_EXCL = 32768
++pkg syscall (linux-s390x-cgo), const IFF_TUN_EXCL ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_TUN ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_TX_SKB_SHARING = 65536
++pkg syscall (linux-s390x-cgo), const IFF_TX_SKB_SHARING ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_UNICAST_FLT = 131072
++pkg syscall (linux-s390x-cgo), const IFF_UNICAST_FLT ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_VNET_HDR = 16384
++pkg syscall (linux-s390x-cgo), const IFF_VNET_HDR ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_VOLATILE = 461914
++pkg syscall (linux-s390x-cgo), const IFF_VOLATILE ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_WAN_HDLC = 512
++pkg syscall (linux-s390x-cgo), const IFF_WAN_HDLC ideal-int
++pkg syscall (linux-s390x-cgo), const IFF_XMIT_DST_RELEASE = 1024
++pkg syscall (linux-s390x-cgo), const IFF_XMIT_DST_RELEASE ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_ADDRESS = 1
++pkg syscall (linux-s390x-cgo), const IFLA_ADDRESS ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_BROADCAST = 2
++pkg syscall (linux-s390x-cgo), const IFLA_BROADCAST ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_COST = 8
++pkg syscall (linux-s390x-cgo), const IFLA_COST ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_IFALIAS = 20
++pkg syscall (linux-s390x-cgo), const IFLA_IFALIAS ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_IFNAME = 3
++pkg syscall (linux-s390x-cgo), const IFLA_IFNAME ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_LINK = 5
++pkg syscall (linux-s390x-cgo), const IFLA_LINK ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_LINKINFO = 18
++pkg syscall (linux-s390x-cgo), const IFLA_LINKINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_LINKMODE = 17
++pkg syscall (linux-s390x-cgo), const IFLA_LINKMODE ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_MAP = 14
++pkg syscall (linux-s390x-cgo), const IFLA_MAP ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_MASTER = 10
++pkg syscall (linux-s390x-cgo), const IFLA_MASTER ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_MAX = 34
++pkg syscall (linux-s390x-cgo), const IFLA_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_MTU = 4
++pkg syscall (linux-s390x-cgo), const IFLA_MTU ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_NET_NS_PID = 19
++pkg syscall (linux-s390x-cgo), const IFLA_NET_NS_PID ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_OPERSTATE = 16
++pkg syscall (linux-s390x-cgo), const IFLA_OPERSTATE ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_PRIORITY = 9
++pkg syscall (linux-s390x-cgo), const IFLA_PRIORITY ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_PROTINFO = 12
++pkg syscall (linux-s390x-cgo), const IFLA_PROTINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_QDISC = 6
++pkg syscall (linux-s390x-cgo), const IFLA_QDISC ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_STATS = 7
++pkg syscall (linux-s390x-cgo), const IFLA_STATS ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_TXQLEN = 13
++pkg syscall (linux-s390x-cgo), const IFLA_TXQLEN ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const IFLA_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_WEIGHT = 15
++pkg syscall (linux-s390x-cgo), const IFLA_WEIGHT ideal-int
++pkg syscall (linux-s390x-cgo), const IFLA_WIRELESS = 11
++pkg syscall (linux-s390x-cgo), const IFLA_WIRELESS ideal-int
++pkg syscall (linux-s390x-cgo), const IFNAMSIZ = 16
++pkg syscall (linux-s390x-cgo), const IFNAMSIZ ideal-int
++pkg syscall (linux-s390x-cgo), const IGNBRK = 1
++pkg syscall (linux-s390x-cgo), const IGNBRK ideal-int
++pkg syscall (linux-s390x-cgo), const IGNCR = 128
++pkg syscall (linux-s390x-cgo), const IGNCR ideal-int
++pkg syscall (linux-s390x-cgo), const IGNPAR = 4
++pkg syscall (linux-s390x-cgo), const IGNPAR ideal-int
++pkg syscall (linux-s390x-cgo), const IMAXBEL = 8192
++pkg syscall (linux-s390x-cgo), const IMAXBEL ideal-int
++pkg syscall (linux-s390x-cgo), const ImplementsGetwd = true
++pkg syscall (linux-s390x-cgo), const IN_ACCESS = 1
++pkg syscall (linux-s390x-cgo), const IN_ACCESS ideal-int
++pkg syscall (linux-s390x-cgo), const IN_ALL_EVENTS = 4095
++pkg syscall (linux-s390x-cgo), const IN_ALL_EVENTS ideal-int
++pkg syscall (linux-s390x-cgo), const IN_ATTRIB = 4
++pkg syscall (linux-s390x-cgo), const IN_ATTRIB ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_HOST = 16777215
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_HOST ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_MAX = 128
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NET = 4278190080
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NET ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NSHIFT = 24
++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NSHIFT ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_HOST = 65535
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_HOST ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_MAX = 65536
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NET = 4294901760
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NET ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NSHIFT = 16
++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NSHIFT ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSC_HOST = 255
++pkg syscall (linux-s390x-cgo), const IN_CLASSC_HOST ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NET = 4294967040
++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NET ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NSHIFT = 8
++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NSHIFT ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLOEXEC = 524288
++pkg syscall (linux-s390x-cgo), const IN_CLOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLOSE = 24
++pkg syscall (linux-s390x-cgo), const IN_CLOSE ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLOSE_NOWRITE = 16
++pkg syscall (linux-s390x-cgo), const IN_CLOSE_NOWRITE ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CLOSE_WRITE = 8
++pkg syscall (linux-s390x-cgo), const IN_CLOSE_WRITE ideal-int
++pkg syscall (linux-s390x-cgo), const IN_CREATE = 256
++pkg syscall (linux-s390x-cgo), const IN_CREATE ideal-int
++pkg syscall (linux-s390x-cgo), const IN_DELETE = 512
++pkg syscall (linux-s390x-cgo), const IN_DELETE ideal-int
++pkg syscall (linux-s390x-cgo), const IN_DELETE_SELF = 1024
++pkg syscall (linux-s390x-cgo), const IN_DELETE_SELF ideal-int
++pkg syscall (linux-s390x-cgo), const IN_DONT_FOLLOW = 33554432
++pkg syscall (linux-s390x-cgo), const IN_DONT_FOLLOW ideal-int
++pkg syscall (linux-s390x-cgo), const IN_EXCL_UNLINK = 67108864
++pkg syscall (linux-s390x-cgo), const IN_EXCL_UNLINK ideal-int
++pkg syscall (linux-s390x-cgo), const IN_IGNORED = 32768
++pkg syscall (linux-s390x-cgo), const IN_IGNORED ideal-int
++pkg syscall (linux-s390x-cgo), const IN_ISDIR = 1073741824
++pkg syscall (linux-s390x-cgo), const IN_ISDIR ideal-int
++pkg syscall (linux-s390x-cgo), const INLCR = 64
++pkg syscall (linux-s390x-cgo), const INLCR ideal-int
++pkg syscall (linux-s390x-cgo), const IN_LOOPBACKNET = 127
++pkg syscall (linux-s390x-cgo), const IN_LOOPBACKNET ideal-int
++pkg syscall (linux-s390x-cgo), const IN_MASK_ADD = 536870912
++pkg syscall (linux-s390x-cgo), const IN_MASK_ADD ideal-int
++pkg syscall (linux-s390x-cgo), const IN_MODIFY = 2
++pkg syscall (linux-s390x-cgo), const IN_MODIFY ideal-int
++pkg syscall (linux-s390x-cgo), const IN_MOVE = 192
++pkg syscall (linux-s390x-cgo), const IN_MOVED_FROM = 64
++pkg syscall (linux-s390x-cgo), const IN_MOVED_FROM ideal-int
++pkg syscall (linux-s390x-cgo), const IN_MOVED_TO = 128
++pkg syscall (linux-s390x-cgo), const IN_MOVED_TO ideal-int
++pkg syscall (linux-s390x-cgo), const IN_MOVE ideal-int
++pkg syscall (linux-s390x-cgo), const IN_MOVE_SELF = 2048
++pkg syscall (linux-s390x-cgo), const IN_MOVE_SELF ideal-int
++pkg syscall (linux-s390x-cgo), const IN_NONBLOCK = 2048
++pkg syscall (linux-s390x-cgo), const IN_NONBLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const IN_ONESHOT = 2147483648
++pkg syscall (linux-s390x-cgo), const IN_ONESHOT ideal-int
++pkg syscall (linux-s390x-cgo), const IN_ONLYDIR = 16777216
++pkg syscall (linux-s390x-cgo), const IN_ONLYDIR ideal-int
++pkg syscall (linux-s390x-cgo), const IN_OPEN = 32
++pkg syscall (linux-s390x-cgo), const IN_OPEN ideal-int
++pkg syscall (linux-s390x-cgo), const INPCK = 16
++pkg syscall (linux-s390x-cgo), const INPCK ideal-int
++pkg syscall (linux-s390x-cgo), const IN_Q_OVERFLOW = 16384
++pkg syscall (linux-s390x-cgo), const IN_Q_OVERFLOW ideal-int
++pkg syscall (linux-s390x-cgo), const IN_UNMOUNT = 8192
++pkg syscall (linux-s390x-cgo), const IN_UNMOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const IP_ADD_MEMBERSHIP = 35
++pkg syscall (linux-s390x-cgo), const IP_ADD_SOURCE_MEMBERSHIP = 39
++pkg syscall (linux-s390x-cgo), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const IP_BLOCK_SOURCE = 38
++pkg syscall (linux-s390x-cgo), const IP_BLOCK_SOURCE ideal-int
++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_LOOP = 1
++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_LOOP ideal-int
++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_TTL = 1
++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_TTL ideal-int
++pkg syscall (linux-s390x-cgo), const IP_DF = 16384
++pkg syscall (linux-s390x-cgo), const IP_DF ideal-int
++pkg syscall (linux-s390x-cgo), const IP_DROP_MEMBERSHIP = 36
++pkg syscall (linux-s390x-cgo), const IP_DROP_SOURCE_MEMBERSHIP = 40
++pkg syscall (linux-s390x-cgo), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const IP_FREEBIND = 15
++pkg syscall (linux-s390x-cgo), const IP_FREEBIND ideal-int
++pkg syscall (linux-s390x-cgo), const IP_HDRINCL = 3
++pkg syscall (linux-s390x-cgo), const IP_HDRINCL ideal-int
++pkg syscall (linux-s390x-cgo), const IP_IPSEC_POLICY = 16
++pkg syscall (linux-s390x-cgo), const IP_IPSEC_POLICY ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MAX_MEMBERSHIPS = 20
++pkg syscall (linux-s390x-cgo), const IP_MAX_MEMBERSHIPS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MAXPACKET = 65535
++pkg syscall (linux-s390x-cgo), const IP_MAXPACKET ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MF = 8192
++pkg syscall (linux-s390x-cgo), const IP_MF ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MINTTL = 21
++pkg syscall (linux-s390x-cgo), const IP_MINTTL ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MSFILTER = 41
++pkg syscall (linux-s390x-cgo), const IP_MSFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MSS = 576
++pkg syscall (linux-s390x-cgo), const IP_MSS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MTU = 14
++pkg syscall (linux-s390x-cgo), const IP_MTU_DISCOVER = 10
++pkg syscall (linux-s390x-cgo), const IP_MTU_DISCOVER ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MTU ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_ALL = 49
++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_ALL ideal-int
++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_IF = 32
++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_LOOP = 34
++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_TTL = 33
++pkg syscall (linux-s390x-cgo), const IP_OFFMASK = 8191
++pkg syscall (linux-s390x-cgo), const IP_OFFMASK ideal-int
++pkg syscall (linux-s390x-cgo), const IP_OPTIONS = 4
++pkg syscall (linux-s390x-cgo), const IP_OPTIONS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_ORIGDSTADDR = 20
++pkg syscall (linux-s390x-cgo), const IP_ORIGDSTADDR ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PASSSEC = 18
++pkg syscall (linux-s390x-cgo), const IP_PASSSEC ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PKTINFO = 8
++pkg syscall (linux-s390x-cgo), const IP_PKTINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PKTOPTIONS = 9
++pkg syscall (linux-s390x-cgo), const IP_PKTOPTIONS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC = 10
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DO = 2
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DO ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DONT = 0
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DONT ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_PROBE = 3
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_PROBE ideal-int
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_WANT = 1
++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_WANT ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_AH = 51
++pkg syscall (linux-s390x-cgo), const IPPROTO_AH ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_COMP = 108
++pkg syscall (linux-s390x-cgo), const IPPROTO_COMP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_DCCP = 33
++pkg syscall (linux-s390x-cgo), const IPPROTO_DCCP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_DSTOPTS = 60
++pkg syscall (linux-s390x-cgo), const IPPROTO_DSTOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_EGP = 8
++pkg syscall (linux-s390x-cgo), const IPPROTO_EGP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_ENCAP = 98
++pkg syscall (linux-s390x-cgo), const IPPROTO_ENCAP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_ESP = 50
++pkg syscall (linux-s390x-cgo), const IPPROTO_ESP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_FRAGMENT = 44
++pkg syscall (linux-s390x-cgo), const IPPROTO_FRAGMENT ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_GRE = 47
++pkg syscall (linux-s390x-cgo), const IPPROTO_GRE ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_HOPOPTS = 0
++pkg syscall (linux-s390x-cgo), const IPPROTO_HOPOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMP = 1
++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMPV6 = 58
++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMPV6 ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_IDP = 22
++pkg syscall (linux-s390x-cgo), const IPPROTO_IDP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_IGMP = 2
++pkg syscall (linux-s390x-cgo), const IPPROTO_IGMP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_IPIP = 4
++pkg syscall (linux-s390x-cgo), const IPPROTO_IPIP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_MTP = 92
++pkg syscall (linux-s390x-cgo), const IPPROTO_MTP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_NONE = 59
++pkg syscall (linux-s390x-cgo), const IPPROTO_NONE ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_PIM = 103
++pkg syscall (linux-s390x-cgo), const IPPROTO_PIM ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_PUP = 12
++pkg syscall (linux-s390x-cgo), const IPPROTO_PUP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_RAW = 255
++pkg syscall (linux-s390x-cgo), const IPPROTO_RAW ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_ROUTING = 43
++pkg syscall (linux-s390x-cgo), const IPPROTO_ROUTING ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_RSVP = 46
++pkg syscall (linux-s390x-cgo), const IPPROTO_RSVP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_SCTP = 132
++pkg syscall (linux-s390x-cgo), const IPPROTO_SCTP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_TP = 29
++pkg syscall (linux-s390x-cgo), const IPPROTO_TP ideal-int
++pkg syscall (linux-s390x-cgo), const IPPROTO_UDPLITE = 136
++pkg syscall (linux-s390x-cgo), const IPPROTO_UDPLITE ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RECVERR = 11
++pkg syscall (linux-s390x-cgo), const IP_RECVERR ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RECVOPTS = 6
++pkg syscall (linux-s390x-cgo), const IP_RECVOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RECVORIGDSTADDR = 20
++pkg syscall (linux-s390x-cgo), const IP_RECVORIGDSTADDR ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RECVRETOPTS = 7
++pkg syscall (linux-s390x-cgo), const IP_RECVRETOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RECVTOS = 13
++pkg syscall (linux-s390x-cgo), const IP_RECVTOS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RECVTTL = 12
++pkg syscall (linux-s390x-cgo), const IP_RECVTTL ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RETOPTS = 7
++pkg syscall (linux-s390x-cgo), const IP_RETOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IP_RF = 32768
++pkg syscall (linux-s390x-cgo), const IP_RF ideal-int
++pkg syscall (linux-s390x-cgo), const IP_ROUTER_ALERT = 5
++pkg syscall (linux-s390x-cgo), const IP_ROUTER_ALERT ideal-int
++pkg syscall (linux-s390x-cgo), const IP_TOS = 1
++pkg syscall (linux-s390x-cgo), const IP_TRANSPARENT = 19
++pkg syscall (linux-s390x-cgo), const IP_TRANSPARENT ideal-int
++pkg syscall (linux-s390x-cgo), const IP_TTL = 2
++pkg syscall (linux-s390x-cgo), const IP_UNBLOCK_SOURCE = 37
++pkg syscall (linux-s390x-cgo), const IP_UNBLOCK_SOURCE ideal-int
++pkg syscall (linux-s390x-cgo), const IP_UNICAST_IF = 50
++pkg syscall (linux-s390x-cgo), const IP_UNICAST_IF ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_2292DSTOPTS = 4
++pkg syscall (linux-s390x-cgo), const IPV6_2292DSTOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPLIMIT = 8
++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPLIMIT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPOPTS = 3
++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTINFO = 2
++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTOPTIONS = 6
++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTOPTIONS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_2292RTHDR = 5
++pkg syscall (linux-s390x-cgo), const IPV6_2292RTHDR ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_ADD_MEMBERSHIP = 20
++pkg syscall (linux-s390x-cgo), const IPV6_ADD_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_ADDRFORM = 1
++pkg syscall (linux-s390x-cgo), const IPV6_ADDRFORM ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_AUTHHDR = 10
++pkg syscall (linux-s390x-cgo), const IPV6_AUTHHDR ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_CHECKSUM = 7
++pkg syscall (linux-s390x-cgo), const IPV6_CHECKSUM ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_DROP_MEMBERSHIP = 21
++pkg syscall (linux-s390x-cgo), const IPV6_DROP_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_DSTOPTS = 59
++pkg syscall (linux-s390x-cgo), const IPV6_DSTOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_HOPLIMIT = 52
++pkg syscall (linux-s390x-cgo), const IPV6_HOPLIMIT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_HOPOPTS = 54
++pkg syscall (linux-s390x-cgo), const IPV6_HOPOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_IPSEC_POLICY = 34
++pkg syscall (linux-s390x-cgo), const IPV6_IPSEC_POLICY ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_JOIN_ANYCAST = 27
++pkg syscall (linux-s390x-cgo), const IPV6_JOIN_ANYCAST ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_JOIN_GROUP = 20
++pkg syscall (linux-s390x-cgo), const IPV6_LEAVE_ANYCAST = 28
++pkg syscall (linux-s390x-cgo), const IPV6_LEAVE_ANYCAST ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_LEAVE_GROUP = 21
++pkg syscall (linux-s390x-cgo), const IPV6_MTU = 24
++pkg syscall (linux-s390x-cgo), const IPV6_MTU_DISCOVER = 23
++pkg syscall (linux-s390x-cgo), const IPV6_MTU_DISCOVER ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_MTU ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_MULTICAST_HOPS = 18
++pkg syscall (linux-s390x-cgo), const IPV6_MULTICAST_IF = 17
++pkg syscall (linux-s390x-cgo), const IPV6_MULTICAST_LOOP = 19
++pkg syscall (linux-s390x-cgo), const IPV6_NEXTHOP = 9
++pkg syscall (linux-s390x-cgo), const IPV6_NEXTHOP ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_PKTINFO = 50
++pkg syscall (linux-s390x-cgo), const IPV6_PKTINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DO = 2
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DO ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DONT = 0
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DONT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_PROBE = 3
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_PROBE ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_WANT = 1
++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_WANT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVDSTOPTS = 58
++pkg syscall (linux-s390x-cgo), const IPV6_RECVDSTOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVERR = 25
++pkg syscall (linux-s390x-cgo), const IPV6_RECVERR ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPLIMIT = 51
++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPLIMIT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPOPTS = 53
++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVPKTINFO = 49
++pkg syscall (linux-s390x-cgo), const IPV6_RECVPKTINFO ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVRTHDR = 56
++pkg syscall (linux-s390x-cgo), const IPV6_RECVRTHDR ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RECVTCLASS = 66
++pkg syscall (linux-s390x-cgo), const IPV6_RECVTCLASS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_ROUTER_ALERT = 22
++pkg syscall (linux-s390x-cgo), const IPV6_ROUTER_ALERT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR = 57
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDRDSTOPTS = 55
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDRDSTOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_LOOSE = 0
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_LOOSE ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_STRICT = 1
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_STRICT ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_TYPE_0 = 0
++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_TYPE_0 ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RXDSTOPTS = 59
++pkg syscall (linux-s390x-cgo), const IPV6_RXDSTOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_RXHOPOPTS = 54
++pkg syscall (linux-s390x-cgo), const IPV6_RXHOPOPTS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_TCLASS = 67
++pkg syscall (linux-s390x-cgo), const IPV6_TCLASS ideal-int
++pkg syscall (linux-s390x-cgo), const IPV6_UNICAST_HOPS = 16
++pkg syscall (linux-s390x-cgo), const IPV6_V6ONLY = 26
++pkg syscall (linux-s390x-cgo), const IPV6_XFRM_POLICY = 35
++pkg syscall (linux-s390x-cgo), const IPV6_XFRM_POLICY ideal-int
++pkg syscall (linux-s390x-cgo), const IP_XFRM_POLICY = 17
++pkg syscall (linux-s390x-cgo), const IP_XFRM_POLICY ideal-int
++pkg syscall (linux-s390x-cgo), const ISIG = 1
++pkg syscall (linux-s390x-cgo), const ISIG ideal-int
++pkg syscall (linux-s390x-cgo), const ISTRIP = 32
++pkg syscall (linux-s390x-cgo), const ISTRIP ideal-int
++pkg syscall (linux-s390x-cgo), const IUCLC = 512
++pkg syscall (linux-s390x-cgo), const IUCLC ideal-int
++pkg syscall (linux-s390x-cgo), const IUTF8 = 16384
++pkg syscall (linux-s390x-cgo), const IUTF8 ideal-int
++pkg syscall (linux-s390x-cgo), const IXANY = 2048
++pkg syscall (linux-s390x-cgo), const IXANY ideal-int
++pkg syscall (linux-s390x-cgo), const IXOFF = 4096
++pkg syscall (linux-s390x-cgo), const IXOFF ideal-int
++pkg syscall (linux-s390x-cgo), const IXON = 1024
++pkg syscall (linux-s390x-cgo), const IXON ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_OFF = 0
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_OFF ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_ON = 2309737967
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_ON ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_HALT = 3454992675
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_HALT ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_KEXEC = 1163412803
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_KEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_POWER_OFF = 1126301404
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_POWER_OFF ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART = 19088743
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART2 = 2712847316
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART2 ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_SW_SUSPEND = 3489725666
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_SW_SUSPEND ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC1 = 4276215469
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC1 ideal-int
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC2 = 672274793
++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC2 ideal-int
++pkg syscall (linux-s390x-cgo), const LOCK_EX = 2
++pkg syscall (linux-s390x-cgo), const LOCK_EX ideal-int
++pkg syscall (linux-s390x-cgo), const LOCK_NB = 4
++pkg syscall (linux-s390x-cgo), const LOCK_NB ideal-int
++pkg syscall (linux-s390x-cgo), const LOCK_SH = 1
++pkg syscall (linux-s390x-cgo), const LOCK_SH ideal-int
++pkg syscall (linux-s390x-cgo), const LOCK_UN = 8
++pkg syscall (linux-s390x-cgo), const LOCK_UN ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_DODUMP = 17
++pkg syscall (linux-s390x-cgo), const MADV_DODUMP ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_DOFORK = 11
++pkg syscall (linux-s390x-cgo), const MADV_DOFORK ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_DONTDUMP = 16
++pkg syscall (linux-s390x-cgo), const MADV_DONTDUMP ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_DONTFORK = 10
++pkg syscall (linux-s390x-cgo), const MADV_DONTFORK ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_DONTNEED = 4
++pkg syscall (linux-s390x-cgo), const MADV_DONTNEED ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_HUGEPAGE = 14
++pkg syscall (linux-s390x-cgo), const MADV_HUGEPAGE ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_HWPOISON = 100
++pkg syscall (linux-s390x-cgo), const MADV_HWPOISON ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_MERGEABLE = 12
++pkg syscall (linux-s390x-cgo), const MADV_MERGEABLE ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_NOHUGEPAGE = 15
++pkg syscall (linux-s390x-cgo), const MADV_NOHUGEPAGE ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_NORMAL = 0
++pkg syscall (linux-s390x-cgo), const MADV_NORMAL ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_RANDOM = 1
++pkg syscall (linux-s390x-cgo), const MADV_RANDOM ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_REMOVE = 9
++pkg syscall (linux-s390x-cgo), const MADV_REMOVE ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_SEQUENTIAL = 2
++pkg syscall (linux-s390x-cgo), const MADV_SEQUENTIAL ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_UNMERGEABLE = 13
++pkg syscall (linux-s390x-cgo), const MADV_UNMERGEABLE ideal-int
++pkg syscall (linux-s390x-cgo), const MADV_WILLNEED = 3
++pkg syscall (linux-s390x-cgo), const MADV_WILLNEED ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_ANON = 32
++pkg syscall (linux-s390x-cgo), const MAP_ANON ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_ANONYMOUS = 32
++pkg syscall (linux-s390x-cgo), const MAP_ANONYMOUS ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_DENYWRITE = 2048
++pkg syscall (linux-s390x-cgo), const MAP_DENYWRITE ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_EXECUTABLE = 4096
++pkg syscall (linux-s390x-cgo), const MAP_EXECUTABLE ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_FILE = 0
++pkg syscall (linux-s390x-cgo), const MAP_FILE ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_FIXED = 16
++pkg syscall (linux-s390x-cgo), const MAP_FIXED ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_GROWSDOWN = 256
++pkg syscall (linux-s390x-cgo), const MAP_GROWSDOWN ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_GROWSUP = 512
++pkg syscall (linux-s390x-cgo), const MAP_GROWSUP ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_HUGETLB = 262144
++pkg syscall (linux-s390x-cgo), const MAP_HUGETLB ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_LOCKED = 8192
++pkg syscall (linux-s390x-cgo), const MAP_LOCKED ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_NONBLOCK = 65536
++pkg syscall (linux-s390x-cgo), const MAP_NONBLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_NORESERVE = 16384
++pkg syscall (linux-s390x-cgo), const MAP_NORESERVE ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_POPULATE = 32768
++pkg syscall (linux-s390x-cgo), const MAP_POPULATE ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_PRIVATE = 2
++pkg syscall (linux-s390x-cgo), const MAP_PRIVATE ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_SHARED = 1
++pkg syscall (linux-s390x-cgo), const MAP_SHARED ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_STACK = 131072
++pkg syscall (linux-s390x-cgo), const MAP_STACK ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_TYPE = 15
++pkg syscall (linux-s390x-cgo), const MAP_TYPE ideal-int
++pkg syscall (linux-s390x-cgo), const MCL_CURRENT = 1
++pkg syscall (linux-s390x-cgo), const MCL_CURRENT ideal-int
++pkg syscall (linux-s390x-cgo), const MCL_FUTURE = 2
++pkg syscall (linux-s390x-cgo), const MCL_FUTURE ideal-int
++pkg syscall (linux-s390x-cgo), const MNT_DETACH = 2
++pkg syscall (linux-s390x-cgo), const MNT_DETACH ideal-int
++pkg syscall (linux-s390x-cgo), const MNT_EXPIRE = 4
++pkg syscall (linux-s390x-cgo), const MNT_EXPIRE ideal-int
++pkg syscall (linux-s390x-cgo), const MNT_FORCE = 1
++pkg syscall (linux-s390x-cgo), const MNT_FORCE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_ACTIVE = 1073741824
++pkg syscall (linux-s390x-cgo), const MS_ACTIVE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_ASYNC = 1
++pkg syscall (linux-s390x-cgo), const MS_ASYNC ideal-int
++pkg syscall (linux-s390x-cgo), const MS_BIND = 4096
++pkg syscall (linux-s390x-cgo), const MS_BIND ideal-int
++pkg syscall (linux-s390x-cgo), const MS_DIRSYNC = 128
++pkg syscall (linux-s390x-cgo), const MS_DIRSYNC ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_CMSG_CLOEXEC = 1073741824
++pkg syscall (linux-s390x-cgo), const MSG_CMSG_CLOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_CONFIRM = 2048
++pkg syscall (linux-s390x-cgo), const MSG_CONFIRM ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_CTRUNC = 8
++pkg syscall (linux-s390x-cgo), const MSG_CTRUNC ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_DONTROUTE = 4
++pkg syscall (linux-s390x-cgo), const MSG_DONTROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_DONTWAIT = 64
++pkg syscall (linux-s390x-cgo), const MSG_DONTWAIT ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_EOR = 128
++pkg syscall (linux-s390x-cgo), const MSG_EOR ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_ERRQUEUE = 8192
++pkg syscall (linux-s390x-cgo), const MSG_ERRQUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_FASTOPEN = 536870912
++pkg syscall (linux-s390x-cgo), const MSG_FASTOPEN ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_FIN = 512
++pkg syscall (linux-s390x-cgo), const MSG_FIN ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_MORE = 32768
++pkg syscall (linux-s390x-cgo), const MSG_MORE ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_NOSIGNAL = 16384
++pkg syscall (linux-s390x-cgo), const MSG_NOSIGNAL ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_OOB = 1
++pkg syscall (linux-s390x-cgo), const MSG_OOB ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_PEEK = 2
++pkg syscall (linux-s390x-cgo), const MSG_PEEK ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_PROXY = 16
++pkg syscall (linux-s390x-cgo), const MSG_PROXY ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_RST = 4096
++pkg syscall (linux-s390x-cgo), const MSG_RST ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_SYN = 1024
++pkg syscall (linux-s390x-cgo), const MSG_SYN ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_TRUNC = 32
++pkg syscall (linux-s390x-cgo), const MSG_TRUNC ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_TRYHARD = 4
++pkg syscall (linux-s390x-cgo), const MSG_TRYHARD ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_WAITALL = 256
++pkg syscall (linux-s390x-cgo), const MSG_WAITALL ideal-int
++pkg syscall (linux-s390x-cgo), const MSG_WAITFORONE = 65536
++pkg syscall (linux-s390x-cgo), const MSG_WAITFORONE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_INVALIDATE = 2
++pkg syscall (linux-s390x-cgo), const MS_INVALIDATE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_I_VERSION = 8388608
++pkg syscall (linux-s390x-cgo), const MS_I_VERSION ideal-int
++pkg syscall (linux-s390x-cgo), const MS_KERNMOUNT = 4194304
++pkg syscall (linux-s390x-cgo), const MS_KERNMOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const MS_MANDLOCK = 64
++pkg syscall (linux-s390x-cgo), const MS_MANDLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const MS_MGC_MSK = 4294901760
++pkg syscall (linux-s390x-cgo), const MS_MGC_MSK ideal-int
++pkg syscall (linux-s390x-cgo), const MS_MGC_VAL = 3236757504
++pkg syscall (linux-s390x-cgo), const MS_MGC_VAL ideal-int
++pkg syscall (linux-s390x-cgo), const MS_MOVE = 8192
++pkg syscall (linux-s390x-cgo), const MS_MOVE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_NOATIME = 1024
++pkg syscall (linux-s390x-cgo), const MS_NOATIME ideal-int
++pkg syscall (linux-s390x-cgo), const MS_NODEV = 4
++pkg syscall (linux-s390x-cgo), const MS_NODEV ideal-int
++pkg syscall (linux-s390x-cgo), const MS_NODIRATIME = 2048
++pkg syscall (linux-s390x-cgo), const MS_NODIRATIME ideal-int
++pkg syscall (linux-s390x-cgo), const MS_NOEXEC = 8
++pkg syscall (linux-s390x-cgo), const MS_NOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const MS_NOSUID = 2
++pkg syscall (linux-s390x-cgo), const MS_NOSUID ideal-int
++pkg syscall (linux-s390x-cgo), const MS_NOUSER = -2147483648
++pkg syscall (linux-s390x-cgo), const MS_NOUSER ideal-int
++pkg syscall (linux-s390x-cgo), const MS_POSIXACL = 65536
++pkg syscall (linux-s390x-cgo), const MS_POSIXACL ideal-int
++pkg syscall (linux-s390x-cgo), const MS_PRIVATE = 262144
++pkg syscall (linux-s390x-cgo), const MS_PRIVATE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_RDONLY = 1
++pkg syscall (linux-s390x-cgo), const MS_RDONLY ideal-int
++pkg syscall (linux-s390x-cgo), const MS_REC = 16384
++pkg syscall (linux-s390x-cgo), const MS_REC ideal-int
++pkg syscall (linux-s390x-cgo), const MS_RELATIME = 2097152
++pkg syscall (linux-s390x-cgo), const MS_RELATIME ideal-int
++pkg syscall (linux-s390x-cgo), const MS_REMOUNT = 32
++pkg syscall (linux-s390x-cgo), const MS_REMOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const MS_RMT_MASK = 8388689
++pkg syscall (linux-s390x-cgo), const MS_RMT_MASK ideal-int
++pkg syscall (linux-s390x-cgo), const MS_SHARED = 1048576
++pkg syscall (linux-s390x-cgo), const MS_SHARED ideal-int
++pkg syscall (linux-s390x-cgo), const MS_SILENT = 32768
++pkg syscall (linux-s390x-cgo), const MS_SILENT ideal-int
++pkg syscall (linux-s390x-cgo), const MS_SLAVE = 524288
++pkg syscall (linux-s390x-cgo), const MS_SLAVE ideal-int
++pkg syscall (linux-s390x-cgo), const MS_STRICTATIME = 16777216
++pkg syscall (linux-s390x-cgo), const MS_STRICTATIME ideal-int
++pkg syscall (linux-s390x-cgo), const MS_SYNC = 4
++pkg syscall (linux-s390x-cgo), const MS_SYNCHRONOUS = 16
++pkg syscall (linux-s390x-cgo), const MS_SYNCHRONOUS ideal-int
++pkg syscall (linux-s390x-cgo), const MS_SYNC ideal-int
++pkg syscall (linux-s390x-cgo), const MS_UNBINDABLE = 131072
++pkg syscall (linux-s390x-cgo), const MS_UNBINDABLE ideal-int
++pkg syscall (linux-s390x-cgo), const NAME_MAX = 255
++pkg syscall (linux-s390x-cgo), const NAME_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_ADD_MEMBERSHIP = 1
++pkg syscall (linux-s390x-cgo), const NETLINK_ADD_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_AUDIT = 9
++pkg syscall (linux-s390x-cgo), const NETLINK_AUDIT ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_BROADCAST_ERROR = 4
++pkg syscall (linux-s390x-cgo), const NETLINK_BROADCAST_ERROR ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_CONNECTOR = 11
++pkg syscall (linux-s390x-cgo), const NETLINK_CONNECTOR ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_CRYPTO = 21
++pkg syscall (linux-s390x-cgo), const NETLINK_CRYPTO ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_DNRTMSG = 14
++pkg syscall (linux-s390x-cgo), const NETLINK_DNRTMSG ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_DROP_MEMBERSHIP = 2
++pkg syscall (linux-s390x-cgo), const NETLINK_DROP_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_ECRYPTFS = 19
++pkg syscall (linux-s390x-cgo), const NETLINK_ECRYPTFS ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_FIB_LOOKUP = 10
++pkg syscall (linux-s390x-cgo), const NETLINK_FIB_LOOKUP ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_FIREWALL = 3
++pkg syscall (linux-s390x-cgo), const NETLINK_FIREWALL ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_GENERIC = 16
++pkg syscall (linux-s390x-cgo), const NETLINK_GENERIC ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_INET_DIAG = 4
++pkg syscall (linux-s390x-cgo), const NETLINK_INET_DIAG ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_IP6_FW = 13
++pkg syscall (linux-s390x-cgo), const NETLINK_IP6_FW ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_ISCSI = 8
++pkg syscall (linux-s390x-cgo), const NETLINK_ISCSI ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_KOBJECT_UEVENT = 15
++pkg syscall (linux-s390x-cgo), const NETLINK_KOBJECT_UEVENT ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_NETFILTER = 12
++pkg syscall (linux-s390x-cgo), const NETLINK_NETFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_NFLOG = 5
++pkg syscall (linux-s390x-cgo), const NETLINK_NFLOG ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_NO_ENOBUFS = 5
++pkg syscall (linux-s390x-cgo), const NETLINK_NO_ENOBUFS ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_PKTINFO = 3
++pkg syscall (linux-s390x-cgo), const NETLINK_PKTINFO ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_RDMA = 20
++pkg syscall (linux-s390x-cgo), const NETLINK_RDMA ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_ROUTE = 0
++pkg syscall (linux-s390x-cgo), const NETLINK_ROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_RX_RING = 6
++pkg syscall (linux-s390x-cgo), const NETLINK_RX_RING ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_SCSITRANSPORT = 18
++pkg syscall (linux-s390x-cgo), const NETLINK_SCSITRANSPORT ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_SELINUX = 7
++pkg syscall (linux-s390x-cgo), const NETLINK_SELINUX ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_SOCK_DIAG = 4
++pkg syscall (linux-s390x-cgo), const NETLINK_SOCK_DIAG ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_TX_RING = 7
++pkg syscall (linux-s390x-cgo), const NETLINK_TX_RING ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_UNUSED = 1
++pkg syscall (linux-s390x-cgo), const NETLINK_UNUSED ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_USERSOCK = 2
++pkg syscall (linux-s390x-cgo), const NETLINK_USERSOCK ideal-int
++pkg syscall (linux-s390x-cgo), const NETLINK_XFRM = 6
++pkg syscall (linux-s390x-cgo), const NETLINK_XFRM ideal-int
++pkg syscall (linux-s390x-cgo), const NLA_ALIGNTO = 4
++pkg syscall (linux-s390x-cgo), const NLA_ALIGNTO ideal-int
++pkg syscall (linux-s390x-cgo), const NLA_F_NESTED = 32768
++pkg syscall (linux-s390x-cgo), const NLA_F_NESTED ideal-int
++pkg syscall (linux-s390x-cgo), const NLA_F_NET_BYTEORDER = 16384
++pkg syscall (linux-s390x-cgo), const NLA_F_NET_BYTEORDER ideal-int
++pkg syscall (linux-s390x-cgo), const NLA_HDRLEN = 4
++pkg syscall (linux-s390x-cgo), const NLA_HDRLEN ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_ACK = 4
++pkg syscall (linux-s390x-cgo), const NLM_F_ACK ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_APPEND = 2048
++pkg syscall (linux-s390x-cgo), const NLM_F_APPEND ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_ATOMIC = 1024
++pkg syscall (linux-s390x-cgo), const NLM_F_ATOMIC ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_CREATE = 1024
++pkg syscall (linux-s390x-cgo), const NLM_F_CREATE ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP = 768
++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP_INTR = 16
++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP_INTR ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_ECHO = 8
++pkg syscall (linux-s390x-cgo), const NLM_F_ECHO ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_EXCL = 512
++pkg syscall (linux-s390x-cgo), const NLM_F_EXCL ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_MATCH = 512
++pkg syscall (linux-s390x-cgo), const NLM_F_MATCH ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_MULTI = 2
++pkg syscall (linux-s390x-cgo), const NLM_F_MULTI ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_REPLACE = 256
++pkg syscall (linux-s390x-cgo), const NLM_F_REPLACE ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_REQUEST = 1
++pkg syscall (linux-s390x-cgo), const NLM_F_REQUEST ideal-int
++pkg syscall (linux-s390x-cgo), const NLM_F_ROOT = 256
++pkg syscall (linux-s390x-cgo), const NLM_F_ROOT ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_ALIGNTO = 4
++pkg syscall (linux-s390x-cgo), const NLMSG_ALIGNTO ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_DONE = 3
++pkg syscall (linux-s390x-cgo), const NLMSG_DONE ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_ERROR = 2
++pkg syscall (linux-s390x-cgo), const NLMSG_ERROR ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_HDRLEN = 16
++pkg syscall (linux-s390x-cgo), const NLMSG_HDRLEN ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_MIN_TYPE = 16
++pkg syscall (linux-s390x-cgo), const NLMSG_MIN_TYPE ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_NOOP = 1
++pkg syscall (linux-s390x-cgo), const NLMSG_NOOP ideal-int
++pkg syscall (linux-s390x-cgo), const NLMSG_OVERRUN = 4
++pkg syscall (linux-s390x-cgo), const NLMSG_OVERRUN ideal-int
++pkg syscall (linux-s390x-cgo), const NOFLSH = 128
++pkg syscall (linux-s390x-cgo), const NOFLSH ideal-int
++pkg syscall (linux-s390x-cgo), const O_ACCMODE = 3
++pkg syscall (linux-s390x-cgo), const O_ACCMODE ideal-int
++pkg syscall (linux-s390x-cgo), const O_APPEND = 1024
++pkg syscall (linux-s390x-cgo), const O_ASYNC = 8192
++pkg syscall (linux-s390x-cgo), const O_CLOEXEC = 524288
++pkg syscall (linux-s390x-cgo), const O_CREAT = 64
++pkg syscall (linux-s390x-cgo), const OCRNL = 8
++pkg syscall (linux-s390x-cgo), const OCRNL ideal-int
++pkg syscall (linux-s390x-cgo), const O_DIRECT = 16384
++pkg syscall (linux-s390x-cgo), const O_DIRECT ideal-int
++pkg syscall (linux-s390x-cgo), const O_DIRECTORY = 65536
++pkg syscall (linux-s390x-cgo), const O_DIRECTORY ideal-int
++pkg syscall (linux-s390x-cgo), const O_DSYNC = 4096
++pkg syscall (linux-s390x-cgo), const O_DSYNC ideal-int
++pkg syscall (linux-s390x-cgo), const O_EXCL = 128
++pkg syscall (linux-s390x-cgo), const OFDEL = 128
++pkg syscall (linux-s390x-cgo), const OFDEL ideal-int
++pkg syscall (linux-s390x-cgo), const OFILL = 64
++pkg syscall (linux-s390x-cgo), const OFILL ideal-int
++pkg syscall (linux-s390x-cgo), const O_FSYNC = 1052672
++pkg syscall (linux-s390x-cgo), const O_FSYNC ideal-int
++pkg syscall (linux-s390x-cgo), const O_LARGEFILE = 0
++pkg syscall (linux-s390x-cgo), const O_LARGEFILE ideal-int
++pkg syscall (linux-s390x-cgo), const OLCUC = 2
++pkg syscall (linux-s390x-cgo), const OLCUC ideal-int
++pkg syscall (linux-s390x-cgo), const O_NDELAY = 2048
++pkg syscall (linux-s390x-cgo), const O_NDELAY ideal-int
++pkg syscall (linux-s390x-cgo), const ONLCR = 4
++pkg syscall (linux-s390x-cgo), const ONLCR ideal-int
++pkg syscall (linux-s390x-cgo), const ONLRET = 32
++pkg syscall (linux-s390x-cgo), const ONLRET ideal-int
++pkg syscall (linux-s390x-cgo), const O_NOATIME = 262144
++pkg syscall (linux-s390x-cgo), const O_NOATIME ideal-int
++pkg syscall (linux-s390x-cgo), const ONOCR = 16
++pkg syscall (linux-s390x-cgo), const ONOCR ideal-int
++pkg syscall (linux-s390x-cgo), const O_NOCTTY = 256
++pkg syscall (linux-s390x-cgo), const O_NOFOLLOW = 131072
++pkg syscall (linux-s390x-cgo), const O_NOFOLLOW ideal-int
++pkg syscall (linux-s390x-cgo), const O_NONBLOCK = 2048
++pkg syscall (linux-s390x-cgo), const O_PATH = 2097152
++pkg syscall (linux-s390x-cgo), const O_PATH ideal-int
++pkg syscall (linux-s390x-cgo), const OPOST = 1
++pkg syscall (linux-s390x-cgo), const OPOST ideal-int
++pkg syscall (linux-s390x-cgo), const O_RSYNC = 1052672
++pkg syscall (linux-s390x-cgo), const O_RSYNC ideal-int
++pkg syscall (linux-s390x-cgo), const O_SYNC = 1052672
++pkg syscall (linux-s390x-cgo), const O_TRUNC = 512
++pkg syscall (linux-s390x-cgo), const PACKET_ADD_MEMBERSHIP = 1
++pkg syscall (linux-s390x-cgo), const PACKET_ADD_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_AUXDATA = 8
++pkg syscall (linux-s390x-cgo), const PACKET_AUXDATA ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_BROADCAST = 1
++pkg syscall (linux-s390x-cgo), const PACKET_BROADCAST ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_COPY_THRESH = 7
++pkg syscall (linux-s390x-cgo), const PACKET_COPY_THRESH ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_DROP_MEMBERSHIP = 2
++pkg syscall (linux-s390x-cgo), const PACKET_DROP_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT = 18
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_CPU = 2
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_CPU ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_DEFRAG = 32768
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_DEFRAG ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_ROLLOVER = 4096
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_ROLLOVER ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_HASH = 0
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_HASH ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_LB = 1
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_LB ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_RND = 4
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_RND ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_ROLLOVER = 3
++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_ROLLOVER ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_FASTROUTE = 6
++pkg syscall (linux-s390x-cgo), const PACKET_FASTROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_HDRLEN = 11
++pkg syscall (linux-s390x-cgo), const PACKET_HDRLEN ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_HOST = 0
++pkg syscall (linux-s390x-cgo), const PACKET_HOST ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_LOOPBACK = 5
++pkg syscall (linux-s390x-cgo), const PACKET_LOOPBACK ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_LOSS = 14
++pkg syscall (linux-s390x-cgo), const PACKET_LOSS ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_MR_ALLMULTI = 2
++pkg syscall (linux-s390x-cgo), const PACKET_MR_ALLMULTI ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_MR_MULTICAST = 0
++pkg syscall (linux-s390x-cgo), const PACKET_MR_MULTICAST ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_MR_PROMISC = 1
++pkg syscall (linux-s390x-cgo), const PACKET_MR_PROMISC ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_MR_UNICAST = 3
++pkg syscall (linux-s390x-cgo), const PACKET_MR_UNICAST ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_MULTICAST = 2
++pkg syscall (linux-s390x-cgo), const PACKET_MULTICAST ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_ORIGDEV = 9
++pkg syscall (linux-s390x-cgo), const PACKET_ORIGDEV ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_OTHERHOST = 3
++pkg syscall (linux-s390x-cgo), const PACKET_OTHERHOST ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_OUTGOING = 4
++pkg syscall (linux-s390x-cgo), const PACKET_OUTGOING ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_RECV_OUTPUT = 3
++pkg syscall (linux-s390x-cgo), const PACKET_RECV_OUTPUT ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_RESERVE = 12
++pkg syscall (linux-s390x-cgo), const PACKET_RESERVE ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_RX_RING = 5
++pkg syscall (linux-s390x-cgo), const PACKET_RX_RING ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_STATISTICS = 6
++pkg syscall (linux-s390x-cgo), const PACKET_STATISTICS ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_TIMESTAMP = 17
++pkg syscall (linux-s390x-cgo), const PACKET_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_TX_HAS_OFF = 19
++pkg syscall (linux-s390x-cgo), const PACKET_TX_HAS_OFF ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_TX_RING = 13
++pkg syscall (linux-s390x-cgo), const PACKET_TX_RING ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_TX_TIMESTAMP = 16
++pkg syscall (linux-s390x-cgo), const PACKET_TX_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_VERSION = 10
++pkg syscall (linux-s390x-cgo), const PACKET_VERSION ideal-int
++pkg syscall (linux-s390x-cgo), const PACKET_VNET_HDR = 15
++pkg syscall (linux-s390x-cgo), const PACKET_VNET_HDR ideal-int
++pkg syscall (linux-s390x-cgo), const PARENB = 256
++pkg syscall (linux-s390x-cgo), const PARENB ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0 = 2
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0_CCITT = 4
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0_CCITT ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0 ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1 = 3
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1_CCITT = 5
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1_CCITT ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1 ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR0_CCITT = 6
++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR0_CCITT ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR1_CCITT = 7
++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR1_CCITT ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_DEFAULT = 0
++pkg syscall (linux-s390x-cgo), const PARITY_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const PARITY_NONE = 1
++pkg syscall (linux-s390x-cgo), const PARITY_NONE ideal-int
++pkg syscall (linux-s390x-cgo), const PARMRK = 8
++pkg syscall (linux-s390x-cgo), const PARMRK ideal-int
++pkg syscall (linux-s390x-cgo), const PARODD = 512
++pkg syscall (linux-s390x-cgo), const PARODD ideal-int
++pkg syscall (linux-s390x-cgo), const PathMax = 4096
++pkg syscall (linux-s390x-cgo), const PathMax ideal-int
++pkg syscall (linux-s390x-cgo), const PENDIN = 16384
++pkg syscall (linux-s390x-cgo), const PENDIN ideal-int
++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_DROP = 24
++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_DROP ideal-int
++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_READ = 23
++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_READ ideal-int
++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_BIG = 0
++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_BIG ideal-int
++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_LITTLE = 1
++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_LITTLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_PPC_LITTLE = 2
++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_PPC_LITTLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FPEMU_NOPRINT = 1
++pkg syscall (linux-s390x-cgo), const PR_FPEMU_NOPRINT ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FPEMU_SIGFPE = 2
++pkg syscall (linux-s390x-cgo), const PR_FPEMU_SIGFPE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_ASYNC = 2
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_ASYNC ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DISABLED = 0
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DISABLED ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DIV = 65536
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DIV ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_INV = 1048576
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_INV ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_NONRECOV = 1
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_NONRECOV ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_OVF = 131072
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_OVF ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_PRECISE = 3
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_PRECISE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_RES = 524288
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_RES ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_SW_ENABLE = 128
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_SW_ENABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_UND = 262144
++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_UND ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_CHILD_SUBREAPER = 37
++pkg syscall (linux-s390x-cgo), const PR_GET_CHILD_SUBREAPER ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_DUMPABLE = 3
++pkg syscall (linux-s390x-cgo), const PR_GET_DUMPABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_ENDIAN = 19
++pkg syscall (linux-s390x-cgo), const PR_GET_ENDIAN ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_FPEMU = 9
++pkg syscall (linux-s390x-cgo), const PR_GET_FPEMU ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_FPEXC = 11
++pkg syscall (linux-s390x-cgo), const PR_GET_FPEXC ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_KEEPCAPS = 7
++pkg syscall (linux-s390x-cgo), const PR_GET_KEEPCAPS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_NAME = 16
++pkg syscall (linux-s390x-cgo), const PR_GET_NAME ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_NO_NEW_PRIVS = 39
++pkg syscall (linux-s390x-cgo), const PR_GET_NO_NEW_PRIVS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_PDEATHSIG = 2
++pkg syscall (linux-s390x-cgo), const PR_GET_PDEATHSIG ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_SECCOMP = 21
++pkg syscall (linux-s390x-cgo), const PR_GET_SECCOMP ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_SECUREBITS = 27
++pkg syscall (linux-s390x-cgo), const PR_GET_SECUREBITS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_THP_DISABLE = 42
++pkg syscall (linux-s390x-cgo), const PR_GET_THP_DISABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_TID_ADDRESS = 40
++pkg syscall (linux-s390x-cgo), const PR_GET_TID_ADDRESS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_TIMERSLACK = 30
++pkg syscall (linux-s390x-cgo), const PR_GET_TIMERSLACK ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_TIMING = 13
++pkg syscall (linux-s390x-cgo), const PR_GET_TIMING ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_TSC = 25
++pkg syscall (linux-s390x-cgo), const PR_GET_TSC ideal-int
++pkg syscall (linux-s390x-cgo), const PR_GET_UNALIGN = 5
++pkg syscall (linux-s390x-cgo), const PR_GET_UNALIGN ideal-int
++pkg syscall (linux-s390x-cgo), const PRIO_PGRP = 1
++pkg syscall (linux-s390x-cgo), const PRIO_PGRP ideal-int
++pkg syscall (linux-s390x-cgo), const PRIO_PROCESS = 0
++pkg syscall (linux-s390x-cgo), const PRIO_PROCESS ideal-int
++pkg syscall (linux-s390x-cgo), const PRIO_USER = 2
++pkg syscall (linux-s390x-cgo), const PRIO_USER ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL = 33
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_CLEAR = 0
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_CLEAR ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_DEFAULT = 2
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_EARLY = 1
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_EARLY ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_GET = 34
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_GET ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_LATE = 0
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_LATE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_SET = 1
++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_SET ideal-int
++pkg syscall (linux-s390x-cgo), const PROT_EXEC = 4
++pkg syscall (linux-s390x-cgo), const PROT_EXEC ideal-int
++pkg syscall (linux-s390x-cgo), const PROT_GROWSDOWN = 16777216
++pkg syscall (linux-s390x-cgo), const PROT_GROWSDOWN ideal-int
++pkg syscall (linux-s390x-cgo), const PROT_GROWSUP = 33554432
++pkg syscall (linux-s390x-cgo), const PROT_GROWSUP ideal-int
++pkg syscall (linux-s390x-cgo), const PROT_NONE = 0
++pkg syscall (linux-s390x-cgo), const PROT_NONE ideal-int
++pkg syscall (linux-s390x-cgo), const PROT_READ = 1
++pkg syscall (linux-s390x-cgo), const PROT_READ ideal-int
++pkg syscall (linux-s390x-cgo), const PROT_WRITE = 2
++pkg syscall (linux-s390x-cgo), const PROT_WRITE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_CHILD_SUBREAPER = 36
++pkg syscall (linux-s390x-cgo), const PR_SET_CHILD_SUBREAPER ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_DUMPABLE = 4
++pkg syscall (linux-s390x-cgo), const PR_SET_DUMPABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_ENDIAN = 20
++pkg syscall (linux-s390x-cgo), const PR_SET_ENDIAN ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_FPEMU = 10
++pkg syscall (linux-s390x-cgo), const PR_SET_FPEMU ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_FPEXC = 12
++pkg syscall (linux-s390x-cgo), const PR_SET_FPEXC ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_KEEPCAPS = 8
++pkg syscall (linux-s390x-cgo), const PR_SET_KEEPCAPS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM = 35
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_END = 9
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_END ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_START = 8
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_START ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_AUXV = 12
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_AUXV ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_BRK = 7
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_BRK ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_CODE = 2
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_CODE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_DATA = 4
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_DATA ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_END = 11
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_END ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_START = 10
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_START ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_EXE_FILE = 13
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_EXE_FILE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_BRK = 6
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_BRK ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_CODE = 1
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_CODE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_DATA = 3
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_DATA ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_STACK = 5
++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_STACK ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_NAME = 15
++pkg syscall (linux-s390x-cgo), const PR_SET_NAME ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_NO_NEW_PRIVS = 38
++pkg syscall (linux-s390x-cgo), const PR_SET_NO_NEW_PRIVS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_PDEATHSIG = 1
++pkg syscall (linux-s390x-cgo), const PR_SET_PDEATHSIG ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER = 1499557217
++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER_ANY = -1
++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER_ANY ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_SECCOMP = 22
++pkg syscall (linux-s390x-cgo), const PR_SET_SECCOMP ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_SECUREBITS = 28
++pkg syscall (linux-s390x-cgo), const PR_SET_SECUREBITS ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_THP_DISABLE = 41
++pkg syscall (linux-s390x-cgo), const PR_SET_THP_DISABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_TIMERSLACK = 29
++pkg syscall (linux-s390x-cgo), const PR_SET_TIMERSLACK ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_TIMING = 14
++pkg syscall (linux-s390x-cgo), const PR_SET_TIMING ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_TSC = 26
++pkg syscall (linux-s390x-cgo), const PR_SET_TSC ideal-int
++pkg syscall (linux-s390x-cgo), const PR_SET_UNALIGN = 6
++pkg syscall (linux-s390x-cgo), const PR_SET_UNALIGN ideal-int
++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_DISABLE = 31
++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_DISABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_ENABLE = 32
++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_ENABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_TIMING_STATISTICAL = 0
++pkg syscall (linux-s390x-cgo), const PR_TIMING_STATISTICAL ideal-int
++pkg syscall (linux-s390x-cgo), const PR_TIMING_TIMESTAMP = 1
++pkg syscall (linux-s390x-cgo), const PR_TIMING_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const PR_TSC_ENABLE = 1
++pkg syscall (linux-s390x-cgo), const PR_TSC_ENABLE ideal-int
++pkg syscall (linux-s390x-cgo), const PR_TSC_SIGSEGV = 2
++pkg syscall (linux-s390x-cgo), const PR_TSC_SIGSEGV ideal-int
++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_NOPRINT = 1
++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_NOPRINT ideal-int
++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_SIGBUS = 2
++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_SIGBUS ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR0 = 144
++pkg syscall (linux-s390x-cgo), const PT_ACR0 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR10 = 184
++pkg syscall (linux-s390x-cgo), const PT_ACR10 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR11 = 188
++pkg syscall (linux-s390x-cgo), const PT_ACR1 = 148
++pkg syscall (linux-s390x-cgo), const PT_ACR11 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR12 = 192
++pkg syscall (linux-s390x-cgo), const PT_ACR12 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR13 = 196
++pkg syscall (linux-s390x-cgo), const PT_ACR13 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR14 = 200
++pkg syscall (linux-s390x-cgo), const PT_ACR14 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR15 = 204
++pkg syscall (linux-s390x-cgo), const PT_ACR15 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR1 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR2 = 152
++pkg syscall (linux-s390x-cgo), const PT_ACR2 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR3 = 156
++pkg syscall (linux-s390x-cgo), const PT_ACR3 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR4 = 160
++pkg syscall (linux-s390x-cgo), const PT_ACR4 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR5 = 164
++pkg syscall (linux-s390x-cgo), const PT_ACR5 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR6 = 168
++pkg syscall (linux-s390x-cgo), const PT_ACR6 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR7 = 172
++pkg syscall (linux-s390x-cgo), const PT_ACR7 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR8 = 176
++pkg syscall (linux-s390x-cgo), const PT_ACR8 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ACR9 = 180
++pkg syscall (linux-s390x-cgo), const PT_ACR9 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_CR_10 = 360
++pkg syscall (linux-s390x-cgo), const PT_CR_10 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_CR_11 = 368
++pkg syscall (linux-s390x-cgo), const PT_CR_11 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_CR_9 = 352
++pkg syscall (linux-s390x-cgo), const PT_CR_9 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ENDREGS = 431
++pkg syscall (linux-s390x-cgo), const PT_ENDREGS ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPC = 216
++pkg syscall (linux-s390x-cgo), const PT_FPC ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR0 = 224
++pkg syscall (linux-s390x-cgo), const PT_FPR0 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR10 = 304
++pkg syscall (linux-s390x-cgo), const PT_FPR10 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR11 = 312
++pkg syscall (linux-s390x-cgo), const PT_FPR11 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR1 = 232
++pkg syscall (linux-s390x-cgo), const PT_FPR12 = 320
++pkg syscall (linux-s390x-cgo), const PT_FPR12 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR13 = 328
++pkg syscall (linux-s390x-cgo), const PT_FPR13 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR14 = 336
++pkg syscall (linux-s390x-cgo), const PT_FPR14 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR15 = 344
++pkg syscall (linux-s390x-cgo), const PT_FPR15 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR1 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR2 = 240
++pkg syscall (linux-s390x-cgo), const PT_FPR2 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR3 = 248
++pkg syscall (linux-s390x-cgo), const PT_FPR3 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR4 = 256
++pkg syscall (linux-s390x-cgo), const PT_FPR4 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR5 = 264
++pkg syscall (linux-s390x-cgo), const PT_FPR5 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR6 = 272
++pkg syscall (linux-s390x-cgo), const PT_FPR6 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR7 = 280
++pkg syscall (linux-s390x-cgo), const PT_FPR7 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR8 = 288
++pkg syscall (linux-s390x-cgo), const PT_FPR8 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_FPR9 = 296
++pkg syscall (linux-s390x-cgo), const PT_FPR9 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR0 = 16
++pkg syscall (linux-s390x-cgo), const PT_GPR0 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR10 = 96
++pkg syscall (linux-s390x-cgo), const PT_GPR10 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR11 = 104
++pkg syscall (linux-s390x-cgo), const PT_GPR11 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR12 = 112
++pkg syscall (linux-s390x-cgo), const PT_GPR1 = 24
++pkg syscall (linux-s390x-cgo), const PT_GPR12 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR13 = 120
++pkg syscall (linux-s390x-cgo), const PT_GPR13 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR14 = 128
++pkg syscall (linux-s390x-cgo), const PT_GPR14 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR15 = 136
++pkg syscall (linux-s390x-cgo), const PT_GPR15 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR1 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR2 = 32
++pkg syscall (linux-s390x-cgo), const PT_GPR2 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR3 = 40
++pkg syscall (linux-s390x-cgo), const PT_GPR3 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR4 = 48
++pkg syscall (linux-s390x-cgo), const PT_GPR4 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR5 = 56
++pkg syscall (linux-s390x-cgo), const PT_GPR5 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR6 = 64
++pkg syscall (linux-s390x-cgo), const PT_GPR6 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR7 = 72
++pkg syscall (linux-s390x-cgo), const PT_GPR7 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR8 = 80
++pkg syscall (linux-s390x-cgo), const PT_GPR8 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_GPR9 = 88
++pkg syscall (linux-s390x-cgo), const PT_GPR9 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_IEEE_IP = 424
++pkg syscall (linux-s390x-cgo), const PT_IEEE_IP ideal-int
++pkg syscall (linux-s390x-cgo), const PT_LASTOFF = 424
++pkg syscall (linux-s390x-cgo), const PT_LASTOFF ideal-int
++pkg syscall (linux-s390x-cgo), const PT_ORIGGPR2 = 208
++pkg syscall (linux-s390x-cgo), const PT_ORIGGPR2 ideal-int
++pkg syscall (linux-s390x-cgo), const PT_PSWADDR = 8
++pkg syscall (linux-s390x-cgo), const PT_PSWADDR ideal-int
++pkg syscall (linux-s390x-cgo), const PT_PSWMASK = 0
++pkg syscall (linux-s390x-cgo), const PT_PSWMASK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_ATTACH = 16
++pkg syscall (linux-s390x-cgo), const PTRACE_ATTACH ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_CONT = 7
++pkg syscall (linux-s390x-cgo), const PTRACE_CONT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_DETACH = 17
++pkg syscall (linux-s390x-cgo), const PTRACE_DETACH ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_DISABLE_TE = 20496
++pkg syscall (linux-s390x-cgo), const PTRACE_DISABLE_TE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_ENABLE_TE = 20489
++pkg syscall (linux-s390x-cgo), const PTRACE_ENABLE_TE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_CLONE = 3
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_CLONE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXEC = 4
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXEC ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXIT = 6
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXIT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_FORK = 1
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_FORK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_SECCOMP = 7
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_SECCOMP ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_STOP = 128
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_STOP ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK = 2
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK_DONE = 5
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK_DONE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_GETEVENTMSG = 16897
++pkg syscall (linux-s390x-cgo), const PTRACE_GETEVENTMSG ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_GET_LAST_BREAK = 20486
++pkg syscall (linux-s390x-cgo), const PTRACE_GET_LAST_BREAK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGS = 12
++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGSET = 16900
++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGSET ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGS ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_GETSIGINFO = 16898
++pkg syscall (linux-s390x-cgo), const PTRACE_GETSIGINFO ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_INTERRUPT = 16903
++pkg syscall (linux-s390x-cgo), const PTRACE_INTERRUPT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_KILL = 8
++pkg syscall (linux-s390x-cgo), const PTRACE_KILL ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_LISTEN = 16904
++pkg syscall (linux-s390x-cgo), const PTRACE_LISTEN ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_EXITKILL = 1048576
++pkg syscall (linux-s390x-cgo), const PTRACE_O_EXITKILL ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_OLDSETOPTIONS = 21
++pkg syscall (linux-s390x-cgo), const PTRACE_OLDSETOPTIONS ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_MASK = 1048831
++pkg syscall (linux-s390x-cgo), const PTRACE_O_MASK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACECLONE = 8
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACECLONE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXEC = 16
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXIT = 64
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXIT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEFORK = 2
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEFORK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESECCOMP = 128
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESECCOMP ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESYSGOOD = 1
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESYSGOOD ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORK = 4
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORKDONE = 32
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORKDONE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORK ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA = 2
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA_AREA = 20483
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA_AREA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO = 16905
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO_SHARED = 1
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO_SHARED ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEK_SYSTEM_CALL = 20487
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEK_SYSTEM_CALL ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT = 1
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT_AREA = 20482
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT_AREA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR = 3
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR_AREA = 20480
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR_AREA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA = 5
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA_AREA = 20485
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA_AREA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKE_SYSTEM_CALL = 20488
++pkg syscall (linux-s390x-cgo), const PTRACE_POKE_SYSTEM_CALL ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT = 4
++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT_AREA = 20484
++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT_AREA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR = 6
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR_AREA = 20481
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR_AREA ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_PROT = 21
++pkg syscall (linux-s390x-cgo), const PTRACE_PROT ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SEIZE = 16902
++pkg syscall (linux-s390x-cgo), const PTRACE_SEIZE ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SETOPTIONS = 16896
++pkg syscall (linux-s390x-cgo), const PTRACE_SETOPTIONS ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGS = 13
++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGSET = 16901
++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGSET ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGS ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SETSIGINFO = 16899
++pkg syscall (linux-s390x-cgo), const PTRACE_SETSIGINFO ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SINGLESTEP = 9
++pkg syscall (linux-s390x-cgo), const PTRACE_SINGLESTEP ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_SYSCALL = 24
++pkg syscall (linux-s390x-cgo), const PTRACE_SYSCALL ideal-int
++pkg syscall (linux-s390x-cgo), const PTRACE_TRACEME = 0
++pkg syscall (linux-s390x-cgo), const PTRACE_TRACEME ideal-int
++pkg syscall (linux-s390x-cgo), const RLIM_INFINITY = -1
++pkg syscall (linux-s390x-cgo), const RLIM_INFINITY ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_AS = 9
++pkg syscall (linux-s390x-cgo), const RLIMIT_AS ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_CORE = 4
++pkg syscall (linux-s390x-cgo), const RLIMIT_CORE ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_CPU = 0
++pkg syscall (linux-s390x-cgo), const RLIMIT_CPU ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_DATA = 2
++pkg syscall (linux-s390x-cgo), const RLIMIT_DATA ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_FSIZE = 1
++pkg syscall (linux-s390x-cgo), const RLIMIT_FSIZE ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_NOFILE = 7
++pkg syscall (linux-s390x-cgo), const RLIMIT_NOFILE ideal-int
++pkg syscall (linux-s390x-cgo), const RLIMIT_STACK = 3
++pkg syscall (linux-s390x-cgo), const RLIMIT_STACK ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_ALIGNTO = 4
++pkg syscall (linux-s390x-cgo), const RTA_ALIGNTO ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_CACHEINFO = 12
++pkg syscall (linux-s390x-cgo), const RTA_CACHEINFO ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_DST = 1
++pkg syscall (linux-s390x-cgo), const RTA_DST ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_FLOW = 11
++pkg syscall (linux-s390x-cgo), const RTA_FLOW ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_GATEWAY = 5
++pkg syscall (linux-s390x-cgo), const RTA_GATEWAY ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_IIF = 3
++pkg syscall (linux-s390x-cgo), const RTA_IIF ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_MAX = 17
++pkg syscall (linux-s390x-cgo), const RTA_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_METRICS = 8
++pkg syscall (linux-s390x-cgo), const RTA_METRICS ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_MULTIPATH = 9
++pkg syscall (linux-s390x-cgo), const RTA_MULTIPATH ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_OIF = 4
++pkg syscall (linux-s390x-cgo), const RTA_OIF ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_PREFSRC = 7
++pkg syscall (linux-s390x-cgo), const RTA_PREFSRC ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_PRIORITY = 6
++pkg syscall (linux-s390x-cgo), const RTA_PRIORITY ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_SRC = 2
++pkg syscall (linux-s390x-cgo), const RTA_SRC ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_TABLE = 15
++pkg syscall (linux-s390x-cgo), const RTA_TABLE ideal-int
++pkg syscall (linux-s390x-cgo), const RTA_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const RTA_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_ADVMSS = 8
++pkg syscall (linux-s390x-cgo), const RTAX_ADVMSS ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_CWND = 7
++pkg syscall (linux-s390x-cgo), const RTAX_CWND ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ALLFRAG = 8
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ALLFRAG ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ECN = 1
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ECN ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURES = 12
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_SACK = 2
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_SACK ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURES ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_TIMESTAMP = 4
++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_HOPLIMIT = 10
++pkg syscall (linux-s390x-cgo), const RTAX_HOPLIMIT ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_INITCWND = 11
++pkg syscall (linux-s390x-cgo), const RTAX_INITCWND ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_INITRWND = 14
++pkg syscall (linux-s390x-cgo), const RTAX_INITRWND ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_LOCK = 1
++pkg syscall (linux-s390x-cgo), const RTAX_LOCK ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_MAX = 23
++pkg syscall (linux-s390x-cgo), const RTAX_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_MTU = 2
++pkg syscall (linux-s390x-cgo), const RTAX_MTU ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_QUICKACK = 15
++pkg syscall (linux-s390x-cgo), const RTAX_QUICKACK ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_REORDERING = 9
++pkg syscall (linux-s390x-cgo), const RTAX_REORDERING ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_RTO_MIN = 13
++pkg syscall (linux-s390x-cgo), const RTAX_RTO_MIN ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_RTT = 4
++pkg syscall (linux-s390x-cgo), const RTAX_RTT ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_RTTVAR = 5
++pkg syscall (linux-s390x-cgo), const RTAX_RTTVAR ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_SSTHRESH = 6
++pkg syscall (linux-s390x-cgo), const RTAX_SSTHRESH ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const RTAX_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const RTAX_WINDOW = 3
++pkg syscall (linux-s390x-cgo), const RTAX_WINDOW ideal-int
++pkg syscall (linux-s390x-cgo), const RTCF_DIRECTSRC = 67108864
++pkg syscall (linux-s390x-cgo), const RTCF_DIRECTSRC ideal-int
++pkg syscall (linux-s390x-cgo), const RTCF_DOREDIRECT = 16777216
++pkg syscall (linux-s390x-cgo), const RTCF_DOREDIRECT ideal-int
++pkg syscall (linux-s390x-cgo), const RTCF_LOG = 33554432
++pkg syscall (linux-s390x-cgo), const RTCF_LOG ideal-int
++pkg syscall (linux-s390x-cgo), const RTCF_MASQ = 4194304
++pkg syscall (linux-s390x-cgo), const RTCF_MASQ ideal-int
++pkg syscall (linux-s390x-cgo), const RTCF_NAT = 8388608
++pkg syscall (linux-s390x-cgo), const RTCF_NAT ideal-int
++pkg syscall (linux-s390x-cgo), const RTCF_VALVE = 2097152
++pkg syscall (linux-s390x-cgo), const RTCF_VALVE ideal-int
++pkg syscall (linux-s390x-cgo), const RT_CLASS_DEFAULT = 253
++pkg syscall (linux-s390x-cgo), const RT_CLASS_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const RT_CLASS_LOCAL = 255
++pkg syscall (linux-s390x-cgo), const RT_CLASS_LOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAIN = 254
++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAIN ideal-int
++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAX = 255
++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const RT_CLASS_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const RT_CLASS_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_ADDRCLASSMASK = 4160749568
++pkg syscall (linux-s390x-cgo), const RTF_ADDRCLASSMASK ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_ADDRCONF = 262144
++pkg syscall (linux-s390x-cgo), const RTF_ADDRCONF ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_ALLONLINK = 131072
++pkg syscall (linux-s390x-cgo), const RTF_ALLONLINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_BROADCAST = 268435456
++pkg syscall (linux-s390x-cgo), const RTF_BROADCAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_CACHE = 16777216
++pkg syscall (linux-s390x-cgo), const RTF_CACHE ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_DEFAULT = 65536
++pkg syscall (linux-s390x-cgo), const RTF_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_DYNAMIC = 16
++pkg syscall (linux-s390x-cgo), const RTF_DYNAMIC ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_FLOW = 33554432
++pkg syscall (linux-s390x-cgo), const RTF_FLOW ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_GATEWAY = 2
++pkg syscall (linux-s390x-cgo), const RTF_GATEWAY ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_HOST = 4
++pkg syscall (linux-s390x-cgo), const RTF_HOST ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_INTERFACE = 1073741824
++pkg syscall (linux-s390x-cgo), const RTF_INTERFACE ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_IRTT = 256
++pkg syscall (linux-s390x-cgo), const RTF_IRTT ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_LINKRT = 1048576
++pkg syscall (linux-s390x-cgo), const RTF_LINKRT ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_LOCAL = 2147483648
++pkg syscall (linux-s390x-cgo), const RTF_LOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_MODIFIED = 32
++pkg syscall (linux-s390x-cgo), const RTF_MODIFIED ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_MSS = 64
++pkg syscall (linux-s390x-cgo), const RTF_MSS ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_MTU = 64
++pkg syscall (linux-s390x-cgo), const RTF_MTU ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_MULTICAST = 536870912
++pkg syscall (linux-s390x-cgo), const RTF_MULTICAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_NAT = 134217728
++pkg syscall (linux-s390x-cgo), const RTF_NAT ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_NOFORWARD = 4096
++pkg syscall (linux-s390x-cgo), const RTF_NOFORWARD ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_NONEXTHOP = 2097152
++pkg syscall (linux-s390x-cgo), const RTF_NONEXTHOP ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_NOPMTUDISC = 16384
++pkg syscall (linux-s390x-cgo), const RTF_NOPMTUDISC ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_POLICY = 67108864
++pkg syscall (linux-s390x-cgo), const RTF_POLICY ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_REINSTATE = 8
++pkg syscall (linux-s390x-cgo), const RTF_REINSTATE ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_REJECT = 512
++pkg syscall (linux-s390x-cgo), const RTF_REJECT ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_STATIC = 1024
++pkg syscall (linux-s390x-cgo), const RTF_STATIC ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_THROW = 8192
++pkg syscall (linux-s390x-cgo), const RTF_THROW ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_UP = 1
++pkg syscall (linux-s390x-cgo), const RTF_UP ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_WINDOW = 128
++pkg syscall (linux-s390x-cgo), const RTF_WINDOW ideal-int
++pkg syscall (linux-s390x-cgo), const RTF_XRESOLVE = 2048
++pkg syscall (linux-s390x-cgo), const RTF_XRESOLVE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_BASE = 16
++pkg syscall (linux-s390x-cgo), const RTM_BASE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELACTION = 49
++pkg syscall (linux-s390x-cgo), const RTM_DELACTION ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELADDR = 21
++pkg syscall (linux-s390x-cgo), const RTM_DELADDR ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELADDRLABEL = 73
++pkg syscall (linux-s390x-cgo), const RTM_DELADDRLABEL ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELLINK = 17
++pkg syscall (linux-s390x-cgo), const RTM_DELLINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELMDB = 85
++pkg syscall (linux-s390x-cgo), const RTM_DELMDB ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELNEIGH = 29
++pkg syscall (linux-s390x-cgo), const RTM_DELNEIGH ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELQDISC = 37
++pkg syscall (linux-s390x-cgo), const RTM_DELQDISC ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELROUTE = 25
++pkg syscall (linux-s390x-cgo), const RTM_DELROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELRULE = 33
++pkg syscall (linux-s390x-cgo), const RTM_DELRULE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELTCLASS = 41
++pkg syscall (linux-s390x-cgo), const RTM_DELTCLASS ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_DELTFILTER = 45
++pkg syscall (linux-s390x-cgo), const RTM_DELTFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_F_CLONED = 512
++pkg syscall (linux-s390x-cgo), const RTM_F_CLONED ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_F_EQUALIZE = 1024
++pkg syscall (linux-s390x-cgo), const RTM_F_EQUALIZE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_F_NOTIFY = 256
++pkg syscall (linux-s390x-cgo), const RTM_F_NOTIFY ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_F_PREFIX = 2048
++pkg syscall (linux-s390x-cgo), const RTM_F_PREFIX ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETACTION = 50
++pkg syscall (linux-s390x-cgo), const RTM_GETACTION ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETADDR = 22
++pkg syscall (linux-s390x-cgo), const RTM_GETADDR ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETADDRLABEL = 74
++pkg syscall (linux-s390x-cgo), const RTM_GETADDRLABEL ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETANYCAST = 62
++pkg syscall (linux-s390x-cgo), const RTM_GETANYCAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETDCB = 78
++pkg syscall (linux-s390x-cgo), const RTM_GETDCB ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETLINK = 18
++pkg syscall (linux-s390x-cgo), const RTM_GETLINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETMDB = 86
++pkg syscall (linux-s390x-cgo), const RTM_GETMDB ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETMULTICAST = 58
++pkg syscall (linux-s390x-cgo), const RTM_GETMULTICAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGH = 30
++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGH ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGHTBL = 66
++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGHTBL ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETNETCONF = 82
++pkg syscall (linux-s390x-cgo), const RTM_GETNETCONF ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETQDISC = 38
++pkg syscall (linux-s390x-cgo), const RTM_GETQDISC ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETROUTE = 26
++pkg syscall (linux-s390x-cgo), const RTM_GETROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETRULE = 34
++pkg syscall (linux-s390x-cgo), const RTM_GETRULE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETTCLASS = 42
++pkg syscall (linux-s390x-cgo), const RTM_GETTCLASS ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_GETTFILTER = 46
++pkg syscall (linux-s390x-cgo), const RTM_GETTFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_MAX = 87
++pkg syscall (linux-s390x-cgo), const RTM_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWACTION = 48
++pkg syscall (linux-s390x-cgo), const RTM_NEWACTION ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWADDR = 20
++pkg syscall (linux-s390x-cgo), const RTM_NEWADDR ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWADDRLABEL = 72
++pkg syscall (linux-s390x-cgo), const RTM_NEWADDRLABEL ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWLINK = 16
++pkg syscall (linux-s390x-cgo), const RTM_NEWLINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWMDB = 84
++pkg syscall (linux-s390x-cgo), const RTM_NEWMDB ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWNDUSEROPT = 68
++pkg syscall (linux-s390x-cgo), const RTM_NEWNDUSEROPT ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGH = 28
++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGH ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGHTBL = 64
++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGHTBL ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWNETCONF = 80
++pkg syscall (linux-s390x-cgo), const RTM_NEWNETCONF ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWPREFIX = 52
++pkg syscall (linux-s390x-cgo), const RTM_NEWPREFIX ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWQDISC = 36
++pkg syscall (linux-s390x-cgo), const RTM_NEWQDISC ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWROUTE = 24
++pkg syscall (linux-s390x-cgo), const RTM_NEWROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWRULE = 32
++pkg syscall (linux-s390x-cgo), const RTM_NEWRULE ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWTCLASS = 40
++pkg syscall (linux-s390x-cgo), const RTM_NEWTCLASS ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NEWTFILTER = 44
++pkg syscall (linux-s390x-cgo), const RTM_NEWTFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NR_FAMILIES = 18
++pkg syscall (linux-s390x-cgo), const RTM_NR_FAMILIES ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_NR_MSGTYPES = 72
++pkg syscall (linux-s390x-cgo), const RTM_NR_MSGTYPES ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_SETDCB = 79
++pkg syscall (linux-s390x-cgo), const RTM_SETDCB ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_SETLINK = 19
++pkg syscall (linux-s390x-cgo), const RTM_SETLINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTM_SETNEIGHTBL = 67
++pkg syscall (linux-s390x-cgo), const RTM_SETNEIGHTBL ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_ANYCAST = 4
++pkg syscall (linux-s390x-cgo), const RTN_ANYCAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_BLACKHOLE = 6
++pkg syscall (linux-s390x-cgo), const RTN_BLACKHOLE ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_BROADCAST = 3
++pkg syscall (linux-s390x-cgo), const RTN_BROADCAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTNH_ALIGNTO = 4
++pkg syscall (linux-s390x-cgo), const RTNH_ALIGNTO ideal-int
++pkg syscall (linux-s390x-cgo), const RTNH_F_DEAD = 1
++pkg syscall (linux-s390x-cgo), const RTNH_F_DEAD ideal-int
++pkg syscall (linux-s390x-cgo), const RTNH_F_ONLINK = 4
++pkg syscall (linux-s390x-cgo), const RTNH_F_ONLINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTNH_F_PERVASIVE = 2
++pkg syscall (linux-s390x-cgo), const RTNH_F_PERVASIVE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_IFADDR = 5
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_IFADDR ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_MROUTE = 6
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_MROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_ROUTE = 7
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_ROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_RULE = 8
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_RULE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFADDR = 9
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFADDR ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFINFO = 12
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFINFO ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_MROUTE = 10
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_MROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_PREFIX = 18
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_PREFIX ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_ROUTE = 11
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_ROUTE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_RULE = 19
++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_RULE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_LINK = 1
++pkg syscall (linux-s390x-cgo), const RTNLGRP_LINK ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_ND_USEROPT = 20
++pkg syscall (linux-s390x-cgo), const RTNLGRP_ND_USEROPT ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_NEIGH = 3
++pkg syscall (linux-s390x-cgo), const RTNLGRP_NEIGH ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_NONE = 0
++pkg syscall (linux-s390x-cgo), const RTNLGRP_NONE ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_NOTIFY = 2
++pkg syscall (linux-s390x-cgo), const RTNLGRP_NOTIFY ideal-int
++pkg syscall (linux-s390x-cgo), const RTNLGRP_TC = 4
++pkg syscall (linux-s390x-cgo), const RTNLGRP_TC ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_LOCAL = 2
++pkg syscall (linux-s390x-cgo), const RTN_LOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_MAX = 11
++pkg syscall (linux-s390x-cgo), const RTN_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_MULTICAST = 5
++pkg syscall (linux-s390x-cgo), const RTN_MULTICAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_NAT = 10
++pkg syscall (linux-s390x-cgo), const RTN_NAT ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_PROHIBIT = 8
++pkg syscall (linux-s390x-cgo), const RTN_PROHIBIT ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_THROW = 9
++pkg syscall (linux-s390x-cgo), const RTN_THROW ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_UNICAST = 1
++pkg syscall (linux-s390x-cgo), const RTN_UNICAST ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_UNREACHABLE = 7
++pkg syscall (linux-s390x-cgo), const RTN_UNREACHABLE ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const RTN_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const RTN_XRESOLVE = 11
++pkg syscall (linux-s390x-cgo), const RTN_XRESOLVE ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_BIRD = 12
++pkg syscall (linux-s390x-cgo), const RTPROT_BIRD ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_BOOT = 3
++pkg syscall (linux-s390x-cgo), const RTPROT_BOOT ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_DHCP = 16
++pkg syscall (linux-s390x-cgo), const RTPROT_DHCP ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_DNROUTED = 13
++pkg syscall (linux-s390x-cgo), const RTPROT_DNROUTED ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_GATED = 8
++pkg syscall (linux-s390x-cgo), const RTPROT_GATED ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_KERNEL = 2
++pkg syscall (linux-s390x-cgo), const RTPROT_KERNEL ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_MROUTED = 17
++pkg syscall (linux-s390x-cgo), const RTPROT_MROUTED ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_MRT = 10
++pkg syscall (linux-s390x-cgo), const RTPROT_MRT ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_NTK = 15
++pkg syscall (linux-s390x-cgo), const RTPROT_NTK ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_RA = 9
++pkg syscall (linux-s390x-cgo), const RTPROT_RA ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_REDIRECT = 1
++pkg syscall (linux-s390x-cgo), const RTPROT_REDIRECT ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_STATIC = 4
++pkg syscall (linux-s390x-cgo), const RTPROT_STATIC ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const RTPROT_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_XORP = 14
++pkg syscall (linux-s390x-cgo), const RTPROT_XORP ideal-int
++pkg syscall (linux-s390x-cgo), const RTPROT_ZEBRA = 11
++pkg syscall (linux-s390x-cgo), const RTPROT_ZEBRA ideal-int
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_HOST = 254
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_HOST ideal-int
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_LINK = 253
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_LINK ideal-int
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_NOWHERE = 255
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_NOWHERE ideal-int
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_SITE = 200
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_SITE ideal-int
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_UNIVERSE = 0
++pkg syscall (linux-s390x-cgo), const RT_SCOPE_UNIVERSE ideal-int
++pkg syscall (linux-s390x-cgo), const RT_TABLE_COMPAT = 252
++pkg syscall (linux-s390x-cgo), const RT_TABLE_COMPAT ideal-int
++pkg syscall (linux-s390x-cgo), const RT_TABLE_DEFAULT = 253
++pkg syscall (linux-s390x-cgo), const RT_TABLE_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const RT_TABLE_LOCAL = 255
++pkg syscall (linux-s390x-cgo), const RT_TABLE_LOCAL ideal-int
++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAIN = 254
++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAIN ideal-int
++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAX = 4294967295
++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const RT_TABLE_UNSPEC = 0
++pkg syscall (linux-s390x-cgo), const RT_TABLE_UNSPEC ideal-int
++pkg syscall (linux-s390x-cgo), const RUSAGE_CHILDREN = -1
++pkg syscall (linux-s390x-cgo), const RUSAGE_CHILDREN ideal-int
++pkg syscall (linux-s390x-cgo), const RUSAGE_SELF = 0
++pkg syscall (linux-s390x-cgo), const RUSAGE_SELF ideal-int
++pkg syscall (linux-s390x-cgo), const RUSAGE_THREAD = 1
++pkg syscall (linux-s390x-cgo), const RUSAGE_THREAD ideal-int
++pkg syscall (linux-s390x-cgo), const S_BLKSIZE = 512
++pkg syscall (linux-s390x-cgo), const S_BLKSIZE ideal-int
++pkg syscall (linux-s390x-cgo), const SCM_CREDENTIALS = 2
++pkg syscall (linux-s390x-cgo), const SCM_CREDENTIALS ideal-int
++pkg syscall (linux-s390x-cgo), const SCM_RIGHTS = 1
++pkg syscall (linux-s390x-cgo), const SCM_RIGHTS ideal-int
++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMP = 29
++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPING = 37
++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPING ideal-int
++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPNS = 35
++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPNS ideal-int
++pkg syscall (linux-s390x-cgo), const SCM_WIFI_STATUS = 41
++pkg syscall (linux-s390x-cgo), const SCM_WIFI_STATUS ideal-int
++pkg syscall (linux-s390x-cgo), const S_IEXEC = 64
++pkg syscall (linux-s390x-cgo), const S_IEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const S_IFMT = 61440
++pkg syscall (linux-s390x-cgo), const SIGBUS = 7
++pkg syscall (linux-s390x-cgo), const SIGCHLD = 17
++pkg syscall (linux-s390x-cgo), const SIGCHLD Signal
++pkg syscall (linux-s390x-cgo), const SIGCLD = 17
++pkg syscall (linux-s390x-cgo), const SIGCLD Signal
++pkg syscall (linux-s390x-cgo), const SIGCONT = 18
++pkg syscall (linux-s390x-cgo), const SIGCONT Signal
++pkg syscall (linux-s390x-cgo), const SIGIO = 29
++pkg syscall (linux-s390x-cgo), const SIGIO Signal
++pkg syscall (linux-s390x-cgo), const SIGIOT = 6
++pkg syscall (linux-s390x-cgo), const SIGIOT Signal
++pkg syscall (linux-s390x-cgo), const SIGPOLL = 29
++pkg syscall (linux-s390x-cgo), const SIGPOLL Signal
++pkg syscall (linux-s390x-cgo), const SIGPROF = 27
++pkg syscall (linux-s390x-cgo), const SIGPROF Signal
++pkg syscall (linux-s390x-cgo), const SIGPWR = 30
++pkg syscall (linux-s390x-cgo), const SIGPWR Signal
++pkg syscall (linux-s390x-cgo), const SIGSTKFLT = 16
++pkg syscall (linux-s390x-cgo), const SIGSTKFLT Signal
++pkg syscall (linux-s390x-cgo), const SIGSTOP = 19
++pkg syscall (linux-s390x-cgo), const SIGSTOP Signal
++pkg syscall (linux-s390x-cgo), const SIGSYS = 31
++pkg syscall (linux-s390x-cgo), const SIGSYS Signal
++pkg syscall (linux-s390x-cgo), const SIGTSTP = 20
++pkg syscall (linux-s390x-cgo), const SIGTSTP Signal
++pkg syscall (linux-s390x-cgo), const SIGTTIN = 21
++pkg syscall (linux-s390x-cgo), const SIGTTIN Signal
++pkg syscall (linux-s390x-cgo), const SIGTTOU = 22
++pkg syscall (linux-s390x-cgo), const SIGTTOU Signal
++pkg syscall (linux-s390x-cgo), const SIGUNUSED = 31
++pkg syscall (linux-s390x-cgo), const SIGUNUSED Signal
++pkg syscall (linux-s390x-cgo), const SIGURG = 23
++pkg syscall (linux-s390x-cgo), const SIGURG Signal
++pkg syscall (linux-s390x-cgo), const SIGUSR1 = 10
++pkg syscall (linux-s390x-cgo), const SIGUSR1 Signal
++pkg syscall (linux-s390x-cgo), const SIGUSR2 = 12
++pkg syscall (linux-s390x-cgo), const SIGUSR2 Signal
++pkg syscall (linux-s390x-cgo), const SIGVTALRM = 26
++pkg syscall (linux-s390x-cgo), const SIGVTALRM Signal
++pkg syscall (linux-s390x-cgo), const SIGWINCH = 28
++pkg syscall (linux-s390x-cgo), const SIGWINCH Signal
++pkg syscall (linux-s390x-cgo), const SIGXCPU = 24
++pkg syscall (linux-s390x-cgo), const SIGXCPU Signal
++pkg syscall (linux-s390x-cgo), const SIGXFSZ = 25
++pkg syscall (linux-s390x-cgo), const SIGXFSZ Signal
++pkg syscall (linux-s390x-cgo), const SIOCADDDLCI = 35200
++pkg syscall (linux-s390x-cgo), const SIOCADDDLCI ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCADDMULTI = 35121
++pkg syscall (linux-s390x-cgo), const SIOCADDMULTI ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCADDRT = 35083
++pkg syscall (linux-s390x-cgo), const SIOCADDRT ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCATMARK = 35077
++pkg syscall (linux-s390x-cgo), const SIOCATMARK ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDARP = 35155
++pkg syscall (linux-s390x-cgo), const SIOCDARP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDELDLCI = 35201
++pkg syscall (linux-s390x-cgo), const SIOCDELDLCI ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDELMULTI = 35122
++pkg syscall (linux-s390x-cgo), const SIOCDELMULTI ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDELRT = 35084
++pkg syscall (linux-s390x-cgo), const SIOCDELRT ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDEVPRIVATE = 35312
++pkg syscall (linux-s390x-cgo), const SIOCDEVPRIVATE ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDIFADDR = 35126
++pkg syscall (linux-s390x-cgo), const SIOCDIFADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCDRARP = 35168
++pkg syscall (linux-s390x-cgo), const SIOCDRARP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGARP = 35156
++pkg syscall (linux-s390x-cgo), const SIOCGARP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFADDR = 35093
++pkg syscall (linux-s390x-cgo), const SIOCGIFADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFBR = 35136
++pkg syscall (linux-s390x-cgo), const SIOCGIFBRDADDR = 35097
++pkg syscall (linux-s390x-cgo), const SIOCGIFBRDADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFBR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFCONF = 35090
++pkg syscall (linux-s390x-cgo), const SIOCGIFCONF ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFCOUNT = 35128
++pkg syscall (linux-s390x-cgo), const SIOCGIFCOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFDSTADDR = 35095
++pkg syscall (linux-s390x-cgo), const SIOCGIFDSTADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFENCAP = 35109
++pkg syscall (linux-s390x-cgo), const SIOCGIFENCAP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFFLAGS = 35091
++pkg syscall (linux-s390x-cgo), const SIOCGIFFLAGS ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFHWADDR = 35111
++pkg syscall (linux-s390x-cgo), const SIOCGIFHWADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFINDEX = 35123
++pkg syscall (linux-s390x-cgo), const SIOCGIFINDEX ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFMAP = 35184
++pkg syscall (linux-s390x-cgo), const SIOCGIFMAP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFMEM = 35103
++pkg syscall (linux-s390x-cgo), const SIOCGIFMEM ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFMETRIC = 35101
++pkg syscall (linux-s390x-cgo), const SIOCGIFMETRIC ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFMTU = 35105
++pkg syscall (linux-s390x-cgo), const SIOCGIFMTU ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFNAME = 35088
++pkg syscall (linux-s390x-cgo), const SIOCGIFNAME ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFNETMASK = 35099
++pkg syscall (linux-s390x-cgo), const SIOCGIFNETMASK ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFPFLAGS = 35125
++pkg syscall (linux-s390x-cgo), const SIOCGIFPFLAGS ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFSLAVE = 35113
++pkg syscall (linux-s390x-cgo), const SIOCGIFSLAVE ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGIFTXQLEN = 35138
++pkg syscall (linux-s390x-cgo), const SIOCGIFTXQLEN ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGPGRP = 35076
++pkg syscall (linux-s390x-cgo), const SIOCGPGRP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGRARP = 35169
++pkg syscall (linux-s390x-cgo), const SIOCGRARP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGSTAMP = 35078
++pkg syscall (linux-s390x-cgo), const SIOCGSTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCGSTAMPNS = 35079
++pkg syscall (linux-s390x-cgo), const SIOCGSTAMPNS ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCPROTOPRIVATE = 35296
++pkg syscall (linux-s390x-cgo), const SIOCPROTOPRIVATE ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCRTMSG = 35085
++pkg syscall (linux-s390x-cgo), const SIOCRTMSG ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSARP = 35157
++pkg syscall (linux-s390x-cgo), const SIOCSARP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFADDR = 35094
++pkg syscall (linux-s390x-cgo), const SIOCSIFADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFBR = 35137
++pkg syscall (linux-s390x-cgo), const SIOCSIFBRDADDR = 35098
++pkg syscall (linux-s390x-cgo), const SIOCSIFBRDADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFBR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFDSTADDR = 35096
++pkg syscall (linux-s390x-cgo), const SIOCSIFDSTADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFENCAP = 35110
++pkg syscall (linux-s390x-cgo), const SIOCSIFENCAP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFFLAGS = 35092
++pkg syscall (linux-s390x-cgo), const SIOCSIFFLAGS ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFHWADDR = 35108
++pkg syscall (linux-s390x-cgo), const SIOCSIFHWADDR ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFHWBROADCAST = 35127
++pkg syscall (linux-s390x-cgo), const SIOCSIFHWBROADCAST ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFLINK = 35089
++pkg syscall (linux-s390x-cgo), const SIOCSIFLINK ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFMAP = 35185
++pkg syscall (linux-s390x-cgo), const SIOCSIFMAP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFMEM = 35104
++pkg syscall (linux-s390x-cgo), const SIOCSIFMEM ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFMETRIC = 35102
++pkg syscall (linux-s390x-cgo), const SIOCSIFMETRIC ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFMTU = 35106
++pkg syscall (linux-s390x-cgo), const SIOCSIFMTU ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFNAME = 35107
++pkg syscall (linux-s390x-cgo), const SIOCSIFNAME ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFNETMASK = 35100
++pkg syscall (linux-s390x-cgo), const SIOCSIFNETMASK ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFPFLAGS = 35124
++pkg syscall (linux-s390x-cgo), const SIOCSIFPFLAGS ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFSLAVE = 35120
++pkg syscall (linux-s390x-cgo), const SIOCSIFSLAVE ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSIFTXQLEN = 35139
++pkg syscall (linux-s390x-cgo), const SIOCSIFTXQLEN ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSPGRP = 35074
++pkg syscall (linux-s390x-cgo), const SIOCSPGRP ideal-int
++pkg syscall (linux-s390x-cgo), const SIOCSRARP = 35170
++pkg syscall (linux-s390x-cgo), const SIOCSRARP ideal-int
++pkg syscall (linux-s390x-cgo), const S_IREAD = 256
++pkg syscall (linux-s390x-cgo), const S_IREAD ideal-int
++pkg syscall (linux-s390x-cgo), const S_IRGRP = 32
++pkg syscall (linux-s390x-cgo), const S_IRGRP ideal-int
++pkg syscall (linux-s390x-cgo), const S_IROTH = 4
++pkg syscall (linux-s390x-cgo), const S_IROTH ideal-int
++pkg syscall (linux-s390x-cgo), const S_IRWXG = 56
++pkg syscall (linux-s390x-cgo), const S_IRWXG ideal-int
++pkg syscall (linux-s390x-cgo), const S_IRWXO = 7
++pkg syscall (linux-s390x-cgo), const S_IRWXO ideal-int
++pkg syscall (linux-s390x-cgo), const S_IRWXU = 448
++pkg syscall (linux-s390x-cgo), const S_IRWXU ideal-int
++pkg syscall (linux-s390x-cgo), const S_IWGRP = 16
++pkg syscall (linux-s390x-cgo), const S_IWGRP ideal-int
++pkg syscall (linux-s390x-cgo), const S_IWOTH = 2
++pkg syscall (linux-s390x-cgo), const S_IWOTH ideal-int
++pkg syscall (linux-s390x-cgo), const S_IWRITE = 128
++pkg syscall (linux-s390x-cgo), const S_IWRITE ideal-int
++pkg syscall (linux-s390x-cgo), const S_IXGRP = 8
++pkg syscall (linux-s390x-cgo), const S_IXGRP ideal-int
++pkg syscall (linux-s390x-cgo), const S_IXOTH = 1
++pkg syscall (linux-s390x-cgo), const S_IXOTH ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofCmsghdr = 16
++pkg syscall (linux-s390x-cgo), const SizeofCmsghdr ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofICMPv6Filter = 32
++pkg syscall (linux-s390x-cgo), const SizeofICMPv6Filter ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofIfAddrmsg = 8
++pkg syscall (linux-s390x-cgo), const SizeofIfAddrmsg ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofIfInfomsg = 16
++pkg syscall (linux-s390x-cgo), const SizeofIfInfomsg ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofInet4Pktinfo = 12
++pkg syscall (linux-s390x-cgo), const SizeofInet4Pktinfo ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofInet6Pktinfo = 20
++pkg syscall (linux-s390x-cgo), const SizeofInet6Pktinfo ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofInotifyEvent = 16
++pkg syscall (linux-s390x-cgo), const SizeofInotifyEvent ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofIPMreq = 8
++pkg syscall (linux-s390x-cgo), const SizeofIPMreq ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofIPMreqn = 12
++pkg syscall (linux-s390x-cgo), const SizeofIPMreqn ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofIPv6Mreq = 20
++pkg syscall (linux-s390x-cgo), const SizeofIPv6Mreq ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofIPv6MTUInfo = 32
++pkg syscall (linux-s390x-cgo), const SizeofIPv6MTUInfo ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofLinger = 8
++pkg syscall (linux-s390x-cgo), const SizeofLinger ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofMsghdr = 56
++pkg syscall (linux-s390x-cgo), const SizeofMsghdr ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofNlAttr = 4
++pkg syscall (linux-s390x-cgo), const SizeofNlAttr ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofNlMsgerr = 20
++pkg syscall (linux-s390x-cgo), const SizeofNlMsgerr ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofNlMsghdr = 16
++pkg syscall (linux-s390x-cgo), const SizeofNlMsghdr ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofRtAttr = 4
++pkg syscall (linux-s390x-cgo), const SizeofRtAttr ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofRtGenmsg = 1
++pkg syscall (linux-s390x-cgo), const SizeofRtGenmsg ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofRtMsg = 12
++pkg syscall (linux-s390x-cgo), const SizeofRtMsg ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofRtNexthop = 8
++pkg syscall (linux-s390x-cgo), const SizeofRtNexthop ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrAny = 112
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrAny ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet4 = 16
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet4 ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet6 = 28
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet6 ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrLinklayer = 20
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrLinklayer ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrNetlink = 12
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrNetlink ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrUnix = 110
++pkg syscall (linux-s390x-cgo), const SizeofSockaddrUnix ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockFilter = 8
++pkg syscall (linux-s390x-cgo), const SizeofSockFilter ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofSockFprog = 16
++pkg syscall (linux-s390x-cgo), const SizeofSockFprog ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofTCPInfo = 104
++pkg syscall (linux-s390x-cgo), const SizeofTCPInfo ideal-int
++pkg syscall (linux-s390x-cgo), const SizeofUcred = 12
++pkg syscall (linux-s390x-cgo), const SizeofUcred ideal-int
++pkg syscall (linux-s390x-cgo), const SO_ACCEPTCONN = 30
++pkg syscall (linux-s390x-cgo), const SO_ACCEPTCONN ideal-int
++pkg syscall (linux-s390x-cgo), const SO_ATTACH_FILTER = 26
++pkg syscall (linux-s390x-cgo), const SO_ATTACH_FILTER ideal-int
++pkg syscall (linux-s390x-cgo), const SO_BINDTODEVICE = 25
++pkg syscall (linux-s390x-cgo), const SO_BINDTODEVICE ideal-int
++pkg syscall (linux-s390x-cgo), const SO_BPF_EXTENSIONS = 48
++pkg syscall (linux-s390x-cgo), const SO_BPF_EXTENSIONS ideal-int
++pkg syscall (linux-s390x-cgo), const SO_BROADCAST = 6
++pkg syscall (linux-s390x-cgo), const SO_BSDCOMPAT = 14
++pkg syscall (linux-s390x-cgo), const SO_BSDCOMPAT ideal-int
++pkg syscall (linux-s390x-cgo), const SO_BUSY_POLL = 46
++pkg syscall (linux-s390x-cgo), const SO_BUSY_POLL ideal-int
++pkg syscall (linux-s390x-cgo), const SOCK_CLOEXEC = 524288
++pkg syscall (linux-s390x-cgo), const SOCK_CLOEXEC ideal-int
++pkg syscall (linux-s390x-cgo), const SOCK_DCCP = 6
++pkg syscall (linux-s390x-cgo), const SOCK_DCCP ideal-int
++pkg syscall (linux-s390x-cgo), const SOCK_NONBLOCK = 2048
++pkg syscall (linux-s390x-cgo), const SOCK_NONBLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const SOCK_PACKET = 10
++pkg syscall (linux-s390x-cgo), const SOCK_PACKET ideal-int
++pkg syscall (linux-s390x-cgo), const SOCK_RDM = 4
++pkg syscall (linux-s390x-cgo), const SOCK_RDM ideal-int
++pkg syscall (linux-s390x-cgo), const SO_DEBUG = 1
++pkg syscall (linux-s390x-cgo), const SO_DEBUG ideal-int
++pkg syscall (linux-s390x-cgo), const SO_DETACH_FILTER = 27
++pkg syscall (linux-s390x-cgo), const SO_DETACH_FILTER ideal-int
++pkg syscall (linux-s390x-cgo), const SO_DOMAIN = 39
++pkg syscall (linux-s390x-cgo), const SO_DOMAIN ideal-int
++pkg syscall (linux-s390x-cgo), const SO_DONTROUTE = 5
++pkg syscall (linux-s390x-cgo), const SO_ERROR = 4
++pkg syscall (linux-s390x-cgo), const SO_ERROR ideal-int
++pkg syscall (linux-s390x-cgo), const SO_GET_FILTER = 26
++pkg syscall (linux-s390x-cgo), const SO_GET_FILTER ideal-int
++pkg syscall (linux-s390x-cgo), const SO_KEEPALIVE = 9
++pkg syscall (linux-s390x-cgo), const SOL_AAL = 265
++pkg syscall (linux-s390x-cgo), const SOL_AAL ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_ATM = 264
++pkg syscall (linux-s390x-cgo), const SOL_ATM ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_DECNET = 261
++pkg syscall (linux-s390x-cgo), const SOL_DECNET ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_ICMPV6 = 58
++pkg syscall (linux-s390x-cgo), const SOL_ICMPV6 ideal-int
++pkg syscall (linux-s390x-cgo), const SO_LINGER = 13
++pkg syscall (linux-s390x-cgo), const SOL_IP = 0
++pkg syscall (linux-s390x-cgo), const SOL_IP ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_IPV6 = 41
++pkg syscall (linux-s390x-cgo), const SOL_IPV6 ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_IRDA = 266
++pkg syscall (linux-s390x-cgo), const SOL_IRDA ideal-int
++pkg syscall (linux-s390x-cgo), const SO_LOCK_FILTER = 44
++pkg syscall (linux-s390x-cgo), const SO_LOCK_FILTER ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_PACKET = 263
++pkg syscall (linux-s390x-cgo), const SOL_PACKET ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_RAW = 255
++pkg syscall (linux-s390x-cgo), const SOL_RAW ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_SOCKET = 1
++pkg syscall (linux-s390x-cgo), const SOL_TCP = 6
++pkg syscall (linux-s390x-cgo), const SOL_TCP ideal-int
++pkg syscall (linux-s390x-cgo), const SOL_X25 = 262
++pkg syscall (linux-s390x-cgo), const SOL_X25 ideal-int
++pkg syscall (linux-s390x-cgo), const SO_MARK = 36
++pkg syscall (linux-s390x-cgo), const SO_MARK ideal-int
++pkg syscall (linux-s390x-cgo), const SOMAXCONN = 128
++pkg syscall (linux-s390x-cgo), const SO_NO_CHECK = 11
++pkg syscall (linux-s390x-cgo), const SO_NO_CHECK ideal-int
++pkg syscall (linux-s390x-cgo), const SO_NOFCS = 43
++pkg syscall (linux-s390x-cgo), const SO_NOFCS ideal-int
++pkg syscall (linux-s390x-cgo), const SO_OOBINLINE = 10
++pkg syscall (linux-s390x-cgo), const SO_OOBINLINE ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PASSCRED = 16
++pkg syscall (linux-s390x-cgo), const SO_PASSCRED ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PASSSEC = 34
++pkg syscall (linux-s390x-cgo), const SO_PASSSEC ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PEEK_OFF = 42
++pkg syscall (linux-s390x-cgo), const SO_PEEK_OFF ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PEERCRED = 17
++pkg syscall (linux-s390x-cgo), const SO_PEERCRED ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PEERNAME = 28
++pkg syscall (linux-s390x-cgo), const SO_PEERNAME ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PEERSEC = 31
++pkg syscall (linux-s390x-cgo), const SO_PEERSEC ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PRIORITY = 12
++pkg syscall (linux-s390x-cgo), const SO_PRIORITY ideal-int
++pkg syscall (linux-s390x-cgo), const SO_PROTOCOL = 38
++pkg syscall (linux-s390x-cgo), const SO_PROTOCOL ideal-int
++pkg syscall (linux-s390x-cgo), const SO_RCVBUF = 8
++pkg syscall (linux-s390x-cgo), const SO_RCVBUFFORCE = 33
++pkg syscall (linux-s390x-cgo), const SO_RCVBUFFORCE ideal-int
++pkg syscall (linux-s390x-cgo), const SO_RCVLOWAT = 18
++pkg syscall (linux-s390x-cgo), const SO_RCVLOWAT ideal-int
++pkg syscall (linux-s390x-cgo), const SO_RCVTIMEO = 20
++pkg syscall (linux-s390x-cgo), const SO_RCVTIMEO ideal-int
++pkg syscall (linux-s390x-cgo), const SO_REUSEADDR = 2
++pkg syscall (linux-s390x-cgo), const SO_REUSEPORT = 15
++pkg syscall (linux-s390x-cgo), const SO_REUSEPORT ideal-int
++pkg syscall (linux-s390x-cgo), const SO_RXQ_OVFL = 40
++pkg syscall (linux-s390x-cgo), const SO_RXQ_OVFL ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SECURITY_AUTHENTICATION = 22
++pkg syscall (linux-s390x-cgo), const SO_SECURITY_AUTHENTICATION ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_NETWORK = 24
++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_NETWORK ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_TRANSPORT = 23
++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_TRANSPORT ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SELECT_ERR_QUEUE = 45
++pkg syscall (linux-s390x-cgo), const SO_SELECT_ERR_QUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SNDBUF = 7
++pkg syscall (linux-s390x-cgo), const SO_SNDBUFFORCE = 32
++pkg syscall (linux-s390x-cgo), const SO_SNDBUFFORCE ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SNDLOWAT = 19
++pkg syscall (linux-s390x-cgo), const SO_SNDLOWAT ideal-int
++pkg syscall (linux-s390x-cgo), const SO_SNDTIMEO = 21
++pkg syscall (linux-s390x-cgo), const SO_SNDTIMEO ideal-int
++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMP = 29
++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPING = 37
++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPING ideal-int
++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPNS = 35
++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPNS ideal-int
++pkg syscall (linux-s390x-cgo), const SO_TYPE = 3
++pkg syscall (linux-s390x-cgo), const SO_TYPE ideal-int
++pkg syscall (linux-s390x-cgo), const SO_WIFI_STATUS = 41
++pkg syscall (linux-s390x-cgo), const SO_WIFI_STATUS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_ACCESS = 33
++pkg syscall (linux-s390x-cgo), const SYS_ACCESS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_ACCT = 51
++pkg syscall (linux-s390x-cgo), const SYS_ACCT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_ADD_KEY = 278
++pkg syscall (linux-s390x-cgo), const SYS_ADD_KEY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_ADJTIMEX = 124
++pkg syscall (linux-s390x-cgo), const SYS_ADJTIMEX ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_AFS_SYSCALL = 137
++pkg syscall (linux-s390x-cgo), const SYS_AFS_SYSCALL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_ALARM = 27
++pkg syscall (linux-s390x-cgo), const SYS_ALARM ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_BDFLUSH = 134
++pkg syscall (linux-s390x-cgo), const SYS_BDFLUSH ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_BRK = 45
++pkg syscall (linux-s390x-cgo), const SYS_BRK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CAPGET = 184
++pkg syscall (linux-s390x-cgo), const SYS_CAPGET ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CAPSET = 185
++pkg syscall (linux-s390x-cgo), const SYS_CAPSET ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CHDIR = 12
++pkg syscall (linux-s390x-cgo), const SYS_CHDIR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CHMOD = 15
++pkg syscall (linux-s390x-cgo), const SYS_CHMOD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CHOWN = 212
++pkg syscall (linux-s390x-cgo), const SYS_CHOWN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CHROOT = 61
++pkg syscall (linux-s390x-cgo), const SYS_CHROOT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_ADJTIME = 337
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_ADJTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETRES = 261
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETRES ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETTIME = 260
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_NANOSLEEP = 262
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_NANOSLEEP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_SETTIME = 259
++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_SETTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLONE = 120
++pkg syscall (linux-s390x-cgo), const SYS_CLONE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CLOSE = 6
++pkg syscall (linux-s390x-cgo), const SYS_CLOSE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CREAT = 8
++pkg syscall (linux-s390x-cgo), const SYS_CREATE_MODULE = 127
++pkg syscall (linux-s390x-cgo), const SYS_CREATE_MODULE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_CREAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_DELETE_MODULE = 129
++pkg syscall (linux-s390x-cgo), const SYS_DELETE_MODULE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_DUP2 = 63
++pkg syscall (linux-s390x-cgo), const SYS_DUP2 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_DUP3 = 326
++pkg syscall (linux-s390x-cgo), const SYS_DUP3 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_DUP = 41
++pkg syscall (linux-s390x-cgo), const SYS_DUP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE1 = 327
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE1 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE = 249
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CTL = 250
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_PWAIT = 312
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_PWAIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_WAIT = 251
++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_WAIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD2 = 323
++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD2 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD = 318
++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EXECVE = 11
++pkg syscall (linux-s390x-cgo), const SYS_EXECVE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EXIT = 1
++pkg syscall (linux-s390x-cgo), const SYS_EXIT_GROUP = 248
++pkg syscall (linux-s390x-cgo), const SYS_EXIT_GROUP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_EXIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FACCESSAT = 300
++pkg syscall (linux-s390x-cgo), const SYS_FACCESSAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FADVISE64 = 253
++pkg syscall (linux-s390x-cgo), const SYS_FADVISE64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FALLOCATE = 314
++pkg syscall (linux-s390x-cgo), const SYS_FALLOCATE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_INIT = 332
++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_INIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_MARK = 333
++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_MARK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FCHDIR = 133
++pkg syscall (linux-s390x-cgo), const SYS_FCHDIR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FCHMOD = 94
++pkg syscall (linux-s390x-cgo), const SYS_FCHMODAT = 299
++pkg syscall (linux-s390x-cgo), const SYS_FCHMODAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FCHMOD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FCHOWN = 207
++pkg syscall (linux-s390x-cgo), const SYS_FCHOWNAT = 291
++pkg syscall (linux-s390x-cgo), const SYS_FCHOWNAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FCHOWN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FCNTL = 55
++pkg syscall (linux-s390x-cgo), const SYS_FCNTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FDATASYNC = 148
++pkg syscall (linux-s390x-cgo), const SYS_FDATASYNC ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FGETXATTR = 229
++pkg syscall (linux-s390x-cgo), const SYS_FGETXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FINIT_MODULE = 344
++pkg syscall (linux-s390x-cgo), const SYS_FINIT_MODULE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FLISTXATTR = 232
++pkg syscall (linux-s390x-cgo), const SYS_FLISTXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FLOCK = 143
++pkg syscall (linux-s390x-cgo), const SYS_FLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FORK = 2
++pkg syscall (linux-s390x-cgo), const SYS_FORK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FREMOVEXATTR = 235
++pkg syscall (linux-s390x-cgo), const SYS_FREMOVEXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FSETXATTR = 226
++pkg syscall (linux-s390x-cgo), const SYS_FSETXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FSTAT = 108
++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS = 100
++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS64 = 266
++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FSTAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FSYNC = 118
++pkg syscall (linux-s390x-cgo), const SYS_FSYNC ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FTRUNCATE = 93
++pkg syscall (linux-s390x-cgo), const SYS_FTRUNCATE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FUTEX = 238
++pkg syscall (linux-s390x-cgo), const SYS_FUTEX ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_FUTIMESAT = 292
++pkg syscall (linux-s390x-cgo), const SYS_FUTIMESAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETCPU = 311
++pkg syscall (linux-s390x-cgo), const SYS_GETCPU ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETCWD = 183
++pkg syscall (linux-s390x-cgo), const SYS_GETCWD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS = 141
++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS64 = 220
++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETEGID = 202
++pkg syscall (linux-s390x-cgo), const SYS_GETEGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETEUID = 201
++pkg syscall (linux-s390x-cgo), const SYS_GETEUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETGID = 200
++pkg syscall (linux-s390x-cgo), const SYS_GETGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETGROUPS = 205
++pkg syscall (linux-s390x-cgo), const SYS_GETGROUPS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETITIMER = 105
++pkg syscall (linux-s390x-cgo), const SYS_GETITIMER ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GET_KERNEL_SYMS = 130
++pkg syscall (linux-s390x-cgo), const SYS_GET_KERNEL_SYMS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETPGID = 132
++pkg syscall (linux-s390x-cgo), const SYS_GETPGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETPGRP = 65
++pkg syscall (linux-s390x-cgo), const SYS_GETPGRP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETPID = 20
++pkg syscall (linux-s390x-cgo), const SYS_GETPID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETPMSG = 188
++pkg syscall (linux-s390x-cgo), const SYS_GETPMSG ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETPPID = 64
++pkg syscall (linux-s390x-cgo), const SYS_GETPPID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETPRIORITY = 96
++pkg syscall (linux-s390x-cgo), const SYS_GETPRIORITY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETRESGID = 211
++pkg syscall (linux-s390x-cgo), const SYS_GETRESGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETRESUID = 209
++pkg syscall (linux-s390x-cgo), const SYS_GETRESUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETRLIMIT = 191
++pkg syscall (linux-s390x-cgo), const SYS_GETRLIMIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GET_ROBUST_LIST = 305
++pkg syscall (linux-s390x-cgo), const SYS_GET_ROBUST_LIST ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETRUSAGE = 77
++pkg syscall (linux-s390x-cgo), const SYS_GETRUSAGE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETSID = 147
++pkg syscall (linux-s390x-cgo), const SYS_GETSID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETTID = 236
++pkg syscall (linux-s390x-cgo), const SYS_GETTID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETTIMEOFDAY = 78
++pkg syscall (linux-s390x-cgo), const SYS_GETTIMEOFDAY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETUID = 199
++pkg syscall (linux-s390x-cgo), const SYS_GETUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_GETXATTR = 227
++pkg syscall (linux-s390x-cgo), const SYS_GETXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IDLE = 112
++pkg syscall (linux-s390x-cgo), const SYS_IDLE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_INIT_MODULE = 128
++pkg syscall (linux-s390x-cgo), const SYS_INIT_MODULE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_ADD_WATCH = 285
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_ADD_WATCH ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT1 = 324
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT1 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT = 284
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_RM_WATCH = 286
++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_RM_WATCH ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IO_CANCEL = 247
++pkg syscall (linux-s390x-cgo), const SYS_IO_CANCEL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IOCTL = 54
++pkg syscall (linux-s390x-cgo), const SYS_IOCTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IO_DESTROY = 244
++pkg syscall (linux-s390x-cgo), const SYS_IO_DESTROY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IO_GETEVENTS = 245
++pkg syscall (linux-s390x-cgo), const SYS_IO_GETEVENTS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_GET = 283
++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_GET ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_SET = 282
++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_SET ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IO_SETUP = 243
++pkg syscall (linux-s390x-cgo), const SYS_IO_SETUP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IO_SUBMIT = 246
++pkg syscall (linux-s390x-cgo), const SYS_IO_SUBMIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_IPC = 117
++pkg syscall (linux-s390x-cgo), const SYS_IPC ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_KCMP = 343
++pkg syscall (linux-s390x-cgo), const SYS_KCMP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_KEXEC_LOAD = 277
++pkg syscall (linux-s390x-cgo), const SYS_KEXEC_LOAD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_KEYCTL = 280
++pkg syscall (linux-s390x-cgo), const SYS_KEYCTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_KILL = 37
++pkg syscall (linux-s390x-cgo), const SYS_KILL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LCHOWN = 198
++pkg syscall (linux-s390x-cgo), const SYS_LCHOWN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LGETXATTR = 228
++pkg syscall (linux-s390x-cgo), const SYS_LGETXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LINK = 9
++pkg syscall (linux-s390x-cgo), const SYS_LINKAT = 296
++pkg syscall (linux-s390x-cgo), const SYS_LINKAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LINK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LISTXATTR = 230
++pkg syscall (linux-s390x-cgo), const SYS_LISTXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LLISTXATTR = 231
++pkg syscall (linux-s390x-cgo), const SYS_LLISTXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LOOKUP_DCOOKIE = 110
++pkg syscall (linux-s390x-cgo), const SYS_LOOKUP_DCOOKIE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LREMOVEXATTR = 234
++pkg syscall (linux-s390x-cgo), const SYS_LREMOVEXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LSEEK = 19
++pkg syscall (linux-s390x-cgo), const SYS_LSEEK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LSETXATTR = 225
++pkg syscall (linux-s390x-cgo), const SYS_LSETXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_LSTAT = 107
++pkg syscall (linux-s390x-cgo), const SYS_LSTAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MADVISE = 219
++pkg syscall (linux-s390x-cgo), const SYS_MADVISE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MINCORE = 218
++pkg syscall (linux-s390x-cgo), const SYS_MINCORE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MKDIR = 39
++pkg syscall (linux-s390x-cgo), const SYS_MKDIRAT = 289
++pkg syscall (linux-s390x-cgo), const SYS_MKDIRAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MKDIR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MKNOD = 14
++pkg syscall (linux-s390x-cgo), const SYS_MKNODAT = 290
++pkg syscall (linux-s390x-cgo), const SYS_MKNODAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MKNOD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MLOCK = 150
++pkg syscall (linux-s390x-cgo), const SYS_MLOCKALL = 152
++pkg syscall (linux-s390x-cgo), const SYS_MLOCKALL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MMAP = 90
++pkg syscall (linux-s390x-cgo), const SYS_MMAP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MOUNT = 21
++pkg syscall (linux-s390x-cgo), const SYS_MOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MPROTECT = 125
++pkg syscall (linux-s390x-cgo), const SYS_MPROTECT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MQ_GETSETATTR = 276
++pkg syscall (linux-s390x-cgo), const SYS_MQ_GETSETATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MQ_NOTIFY = 275
++pkg syscall (linux-s390x-cgo), const SYS_MQ_NOTIFY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MQ_OPEN = 271
++pkg syscall (linux-s390x-cgo), const SYS_MQ_OPEN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDRECEIVE = 274
++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDRECEIVE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDSEND = 273
++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDSEND ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MQ_UNLINK = 272
++pkg syscall (linux-s390x-cgo), const SYS_MQ_UNLINK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MREMAP = 163
++pkg syscall (linux-s390x-cgo), const SYS_MREMAP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MSYNC = 144
++pkg syscall (linux-s390x-cgo), const SYS_MSYNC ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCK = 151
++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCKALL = 153
++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCKALL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_MUNMAP = 91
++pkg syscall (linux-s390x-cgo), const SYS_MUNMAP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_NAME_TO_HANDLE_AT = 335
++pkg syscall (linux-s390x-cgo), const SYS_NAME_TO_HANDLE_AT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_NANOSLEEP = 162
++pkg syscall (linux-s390x-cgo), const SYS_NANOSLEEP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_NEWFSTATAT = 293
++pkg syscall (linux-s390x-cgo), const SYS_NEWFSTATAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_NFSSERVCTL = 169
++pkg syscall (linux-s390x-cgo), const SYS_NFSSERVCTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_NICE = 34
++pkg syscall (linux-s390x-cgo), const SYS_NICE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_OPEN = 5
++pkg syscall (linux-s390x-cgo), const SYS_OPENAT = 288
++pkg syscall (linux-s390x-cgo), const SYS_OPENAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_OPEN_BY_HANDLE_AT = 336
++pkg syscall (linux-s390x-cgo), const SYS_OPEN_BY_HANDLE_AT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_OPEN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PAUSE = 29
++pkg syscall (linux-s390x-cgo), const SYS_PAUSE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PERF_EVENT_OPEN = 331
++pkg syscall (linux-s390x-cgo), const SYS_PERF_EVENT_OPEN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PERSONALITY = 136
++pkg syscall (linux-s390x-cgo), const SYS_PERSONALITY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PIPE2 = 325
++pkg syscall (linux-s390x-cgo), const SYS_PIPE2 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PIPE = 42
++pkg syscall (linux-s390x-cgo), const SYS_PIPE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PIVOT_ROOT = 217
++pkg syscall (linux-s390x-cgo), const SYS_PIVOT_ROOT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_POLL = 168
++pkg syscall (linux-s390x-cgo), const SYS_POLL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PPOLL = 302
++pkg syscall (linux-s390x-cgo), const SYS_PPOLL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PRCTL = 172
++pkg syscall (linux-s390x-cgo), const SYS_PRCTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PREAD64 = 180
++pkg syscall (linux-s390x-cgo), const SYS_PREAD64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PREADV = 328
++pkg syscall (linux-s390x-cgo), const SYS_PREADV ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PRLIMIT64 = 334
++pkg syscall (linux-s390x-cgo), const SYS_PRLIMIT64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_READV = 340
++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_READV ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_WRITEV = 341
++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_WRITEV ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PSELECT6 = 301
++pkg syscall (linux-s390x-cgo), const SYS_PSELECT6 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PTRACE = 26
++pkg syscall (linux-s390x-cgo), const SYS_PTRACE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PUTPMSG = 189
++pkg syscall (linux-s390x-cgo), const SYS_PUTPMSG ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PWRITE64 = 181
++pkg syscall (linux-s390x-cgo), const SYS_PWRITE64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_PWRITEV = 329
++pkg syscall (linux-s390x-cgo), const SYS_PWRITEV ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_QUERY_MODULE = 167
++pkg syscall (linux-s390x-cgo), const SYS_QUERY_MODULE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_QUOTACTL = 131
++pkg syscall (linux-s390x-cgo), const SYS_QUOTACTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_READ = 3
++pkg syscall (linux-s390x-cgo), const SYS_READAHEAD = 222
++pkg syscall (linux-s390x-cgo), const SYS_READAHEAD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_READDIR = 89
++pkg syscall (linux-s390x-cgo), const SYS_READDIR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_READ ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_READLINK = 85
++pkg syscall (linux-s390x-cgo), const SYS_READLINKAT = 298
++pkg syscall (linux-s390x-cgo), const SYS_READLINKAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_READLINK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_READV = 145
++pkg syscall (linux-s390x-cgo), const SYS_READV ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_REBOOT = 88
++pkg syscall (linux-s390x-cgo), const SYS_REBOOT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_REMAP_FILE_PAGES = 267
++pkg syscall (linux-s390x-cgo), const SYS_REMAP_FILE_PAGES ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_REMOVEXATTR = 233
++pkg syscall (linux-s390x-cgo), const SYS_REMOVEXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RENAME = 38
++pkg syscall (linux-s390x-cgo), const SYS_RENAMEAT = 295
++pkg syscall (linux-s390x-cgo), const SYS_RENAMEAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RENAME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_REQUEST_KEY = 279
++pkg syscall (linux-s390x-cgo), const SYS_REQUEST_KEY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RESTART_SYSCALL = 7
++pkg syscall (linux-s390x-cgo), const SYS_RESTART_SYSCALL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RMDIR = 40
++pkg syscall (linux-s390x-cgo), const SYS_RMDIR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGACTION = 174
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGACTION ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPENDING = 176
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPENDING ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPROCMASK = 175
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPROCMASK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGQUEUEINFO = 178
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGQUEUEINFO ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGRETURN = 173
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGRETURN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGSUSPEND = 179
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGSUSPEND ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGTIMEDWAIT = 177
++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGTIMEDWAIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_RT_TGSIGQUEUEINFO = 330
++pkg syscall (linux-s390x-cgo), const SYS_RT_TGSIGQUEUEINFO ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_S390_RUNTIME_INSTR = 342
++pkg syscall (linux-s390x-cgo), const SYS_S390_RUNTIME_INSTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETAFFINITY = 240
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETAFFINITY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETPARAM = 155
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETPARAM ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MAX = 159
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MIN = 160
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETSCHEDULER = 157
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETSCHEDULER ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_RR_GET_INTERVAL = 161
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_RR_GET_INTERVAL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETAFFINITY = 239
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETAFFINITY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETPARAM = 154
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETPARAM ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETSCHEDULER = 156
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETSCHEDULER ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_YIELD = 158
++pkg syscall (linux-s390x-cgo), const SYS_SCHED_YIELD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SELECT = 142
++pkg syscall (linux-s390x-cgo), const SYS_SELECT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SENDFILE = 187
++pkg syscall (linux-s390x-cgo), const SYS_SENDFILE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETDOMAINNAME = 121
++pkg syscall (linux-s390x-cgo), const SYS_SETDOMAINNAME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETFSGID = 216
++pkg syscall (linux-s390x-cgo), const SYS_SETFSGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETFSUID = 215
++pkg syscall (linux-s390x-cgo), const SYS_SETFSUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETGID = 214
++pkg syscall (linux-s390x-cgo), const SYS_SETGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETGROUPS = 206
++pkg syscall (linux-s390x-cgo), const SYS_SETGROUPS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETHOSTNAME = 74
++pkg syscall (linux-s390x-cgo), const SYS_SETHOSTNAME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETITIMER = 104
++pkg syscall (linux-s390x-cgo), const SYS_SETITIMER ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETNS = 339
++pkg syscall (linux-s390x-cgo), const SYS_SETNS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETPGID = 57
++pkg syscall (linux-s390x-cgo), const SYS_SETPGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETPRIORITY = 97
++pkg syscall (linux-s390x-cgo), const SYS_SETPRIORITY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETREGID = 204
++pkg syscall (linux-s390x-cgo), const SYS_SETREGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETRESGID = 210
++pkg syscall (linux-s390x-cgo), const SYS_SETRESGID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETRESUID = 208
++pkg syscall (linux-s390x-cgo), const SYS_SETRESUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETREUID = 203
++pkg syscall (linux-s390x-cgo), const SYS_SETREUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETRLIMIT = 75
++pkg syscall (linux-s390x-cgo), const SYS_SETRLIMIT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SET_ROBUST_LIST = 304
++pkg syscall (linux-s390x-cgo), const SYS_SET_ROBUST_LIST ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETSID = 66
++pkg syscall (linux-s390x-cgo), const SYS_SETSID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SET_TID_ADDRESS = 252
++pkg syscall (linux-s390x-cgo), const SYS_SET_TID_ADDRESS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETTIMEOFDAY = 79
++pkg syscall (linux-s390x-cgo), const SYS_SETTIMEOFDAY ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETUID = 213
++pkg syscall (linux-s390x-cgo), const SYS_SETUID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SETXATTR = 224
++pkg syscall (linux-s390x-cgo), const SYS_SETXATTR ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGACTION = 67
++pkg syscall (linux-s390x-cgo), const SYS_SIGACTION ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGALTSTACK = 186
++pkg syscall (linux-s390x-cgo), const SYS_SIGALTSTACK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGNAL = 48
++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD = 316
++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD4 = 322
++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD4 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGNAL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGPENDING = 73
++pkg syscall (linux-s390x-cgo), const SYS_SIGPENDING ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGPROCMASK = 126
++pkg syscall (linux-s390x-cgo), const SYS_SIGPROCMASK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGRETURN = 119
++pkg syscall (linux-s390x-cgo), const SYS_SIGRETURN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SIGSUSPEND = 72
++pkg syscall (linux-s390x-cgo), const SYS_SIGSUSPEND ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SOCKETCALL = 102
++pkg syscall (linux-s390x-cgo), const SYS_SOCKETCALL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SPLICE = 306
++pkg syscall (linux-s390x-cgo), const SYS_SPLICE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_STAT = 106
++pkg syscall (linux-s390x-cgo), const SYS_STATFS64 = 265
++pkg syscall (linux-s390x-cgo), const SYS_STATFS64 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_STATFS = 99
++pkg syscall (linux-s390x-cgo), const SYS_STATFS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_STAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SWAPOFF = 115
++pkg syscall (linux-s390x-cgo), const SYS_SWAPOFF ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SWAPON = 87
++pkg syscall (linux-s390x-cgo), const SYS_SWAPON ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYMLINK = 83
++pkg syscall (linux-s390x-cgo), const SYS_SYMLINKAT = 297
++pkg syscall (linux-s390x-cgo), const SYS_SYMLINKAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYMLINK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYNC = 36
++pkg syscall (linux-s390x-cgo), const SYS_SYNC_FILE_RANGE = 307
++pkg syscall (linux-s390x-cgo), const SYS_SYNC_FILE_RANGE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYNCFS = 338
++pkg syscall (linux-s390x-cgo), const SYS_SYNCFS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYNC ideal-int
++pkg syscall (linux-s390x-cgo), const SYS__SYSCTL = 149
++pkg syscall (linux-s390x-cgo), const SYS__SYSCTL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYSFS = 135
++pkg syscall (linux-s390x-cgo), const SYS_SYSFS ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYSINFO = 116
++pkg syscall (linux-s390x-cgo), const SYS_SYSINFO ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_SYSLOG = 103
++pkg syscall (linux-s390x-cgo), const SYS_SYSLOG ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TEE = 308
++pkg syscall (linux-s390x-cgo), const SYS_TEE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TGKILL = 241
++pkg syscall (linux-s390x-cgo), const SYS_TGKILL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_CREATE = 254
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_CREATE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_DELETE = 258
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_DELETE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD = 317
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_CREATE = 319
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_CREATE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_GETTIME = 321
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_GETTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_SETTIME = 320
++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_SETTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETOVERRUN = 257
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETOVERRUN ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETTIME = 256
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_SETTIME = 255
++pkg syscall (linux-s390x-cgo), const SYS_TIMER_SETTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TIMES = 43
++pkg syscall (linux-s390x-cgo), const SYS_TIMES ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TKILL = 237
++pkg syscall (linux-s390x-cgo), const SYS_TKILL ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_TRUNCATE = 92
++pkg syscall (linux-s390x-cgo), const SYS_TRUNCATE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UMASK = 60
++pkg syscall (linux-s390x-cgo), const SYS_UMASK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT = 22
++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT2 = 52
++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT2 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UNAME = 122
++pkg syscall (linux-s390x-cgo), const SYS_UNAME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UNLINK = 10
++pkg syscall (linux-s390x-cgo), const SYS_UNLINKAT = 294
++pkg syscall (linux-s390x-cgo), const SYS_UNLINKAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UNLINK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UNSHARE = 303
++pkg syscall (linux-s390x-cgo), const SYS_UNSHARE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_USELIB = 86
++pkg syscall (linux-s390x-cgo), const SYS_USELIB ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_USTAT = 62
++pkg syscall (linux-s390x-cgo), const SYS_USTAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UTIME = 30
++pkg syscall (linux-s390x-cgo), const SYS_UTIME ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UTIMENSAT = 315
++pkg syscall (linux-s390x-cgo), const SYS_UTIMENSAT ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_UTIMES = 313
++pkg syscall (linux-s390x-cgo), const SYS_UTIMES ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_VFORK = 190
++pkg syscall (linux-s390x-cgo), const SYS_VFORK ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_VHANGUP = 111
++pkg syscall (linux-s390x-cgo), const SYS_VHANGUP ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_VMSPLICE = 309
++pkg syscall (linux-s390x-cgo), const SYS_VMSPLICE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_WAIT4 = 114
++pkg syscall (linux-s390x-cgo), const SYS_WAIT4 ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_WAITID = 281
++pkg syscall (linux-s390x-cgo), const SYS_WAITID ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_WRITE = 4
++pkg syscall (linux-s390x-cgo), const SYS_WRITE ideal-int
++pkg syscall (linux-s390x-cgo), const SYS_WRITEV = 146
++pkg syscall (linux-s390x-cgo), const SYS_WRITEV ideal-int
++pkg syscall (linux-s390x-cgo), const TCFLSH = 21515
++pkg syscall (linux-s390x-cgo), const TCFLSH ideal-int
++pkg syscall (linux-s390x-cgo), const TCGETS = 21505
++pkg syscall (linux-s390x-cgo), const TCGETS ideal-int
++pkg syscall (linux-s390x-cgo), const TCIFLUSH = 0
++pkg syscall (linux-s390x-cgo), const TCIFLUSH ideal-int
++pkg syscall (linux-s390x-cgo), const TCIOFLUSH = 2
++pkg syscall (linux-s390x-cgo), const TCIOFLUSH ideal-int
++pkg syscall (linux-s390x-cgo), const TCOFLUSH = 1
++pkg syscall (linux-s390x-cgo), const TCOFLUSH ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_CONGESTION = 13
++pkg syscall (linux-s390x-cgo), const TCP_CONGESTION ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_CORK = 3
++pkg syscall (linux-s390x-cgo), const TCP_CORK ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_DEFER_ACCEPT = 9
++pkg syscall (linux-s390x-cgo), const TCP_DEFER_ACCEPT ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_INFO = 11
++pkg syscall (linux-s390x-cgo), const TCP_INFO ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_KEEPCNT = 6
++pkg syscall (linux-s390x-cgo), const TCP_KEEPCNT ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_KEEPIDLE = 4
++pkg syscall (linux-s390x-cgo), const TCP_KEEPIDLE ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_KEEPINTVL = 5
++pkg syscall (linux-s390x-cgo), const TCP_KEEPINTVL ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_LINGER2 = 8
++pkg syscall (linux-s390x-cgo), const TCP_LINGER2 ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MAXSEG = 2
++pkg syscall (linux-s390x-cgo), const TCP_MAXSEG ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MAXWIN = 65535
++pkg syscall (linux-s390x-cgo), const TCP_MAXWIN ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MAX_WINSHIFT = 14
++pkg syscall (linux-s390x-cgo), const TCP_MAX_WINSHIFT ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG = 14
++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG_MAXKEYLEN = 80
++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG_MAXKEYLEN ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MSS = 512
++pkg syscall (linux-s390x-cgo), const TCP_MSS ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_QUICKACK = 12
++pkg syscall (linux-s390x-cgo), const TCP_QUICKACK ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_SYNCNT = 7
++pkg syscall (linux-s390x-cgo), const TCP_SYNCNT ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_WINDOW_CLAMP = 10
++pkg syscall (linux-s390x-cgo), const TCP_WINDOW_CLAMP ideal-int
++pkg syscall (linux-s390x-cgo), const TCSAFLUSH = 2
++pkg syscall (linux-s390x-cgo), const TCSAFLUSH ideal-int
++pkg syscall (linux-s390x-cgo), const TCSETS = 21506
++pkg syscall (linux-s390x-cgo), const TCSETS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCCBRK = 21544
++pkg syscall (linux-s390x-cgo), const TIOCCBRK ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCCONS = 21533
++pkg syscall (linux-s390x-cgo), const TIOCCONS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCEXCL = 21516
++pkg syscall (linux-s390x-cgo), const TIOCEXCL ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGDEV = 2147767346
++pkg syscall (linux-s390x-cgo), const TIOCGDEV ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGETD = 21540
++pkg syscall (linux-s390x-cgo), const TIOCGETD ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGEXCL = 2147767360
++pkg syscall (linux-s390x-cgo), const TIOCGEXCL ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGICOUNT = 21597
++pkg syscall (linux-s390x-cgo), const TIOCGICOUNT ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGLCKTRMIOS = 21590
++pkg syscall (linux-s390x-cgo), const TIOCGLCKTRMIOS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGPGRP = 21519
++pkg syscall (linux-s390x-cgo), const TIOCGPGRP ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGPKT = 2147767352
++pkg syscall (linux-s390x-cgo), const TIOCGPKT ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGPTLCK = 2147767353
++pkg syscall (linux-s390x-cgo), const TIOCGPTLCK ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGPTN = 2147767344
++pkg syscall (linux-s390x-cgo), const TIOCGPTN ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGRS485 = 21550
++pkg syscall (linux-s390x-cgo), const TIOCGRS485 ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGSERIAL = 21534
++pkg syscall (linux-s390x-cgo), const TIOCGSERIAL ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGSID = 21545
++pkg syscall (linux-s390x-cgo), const TIOCGSID ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGSOFTCAR = 21529
++pkg syscall (linux-s390x-cgo), const TIOCGSOFTCAR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCGWINSZ = 21523
++pkg syscall (linux-s390x-cgo), const TIOCGWINSZ ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCINQ = 21531
++pkg syscall (linux-s390x-cgo), const TIOCINQ ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCLINUX = 21532
++pkg syscall (linux-s390x-cgo), const TIOCLINUX ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCMBIC = 21527
++pkg syscall (linux-s390x-cgo), const TIOCMBIC ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCMBIS = 21526
++pkg syscall (linux-s390x-cgo), const TIOCMBIS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_CAR = 64
++pkg syscall (linux-s390x-cgo), const TIOCM_CAR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_CD = 64
++pkg syscall (linux-s390x-cgo), const TIOCM_CD ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_CTS = 32
++pkg syscall (linux-s390x-cgo), const TIOCM_CTS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_DSR = 256
++pkg syscall (linux-s390x-cgo), const TIOCM_DSR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_DTR = 2
++pkg syscall (linux-s390x-cgo), const TIOCM_DTR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCMGET = 21525
++pkg syscall (linux-s390x-cgo), const TIOCMGET ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCMIWAIT = 21596
++pkg syscall (linux-s390x-cgo), const TIOCMIWAIT ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_LE = 1
++pkg syscall (linux-s390x-cgo), const TIOCM_LE ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_RI = 128
++pkg syscall (linux-s390x-cgo), const TIOCM_RI ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_RNG = 128
++pkg syscall (linux-s390x-cgo), const TIOCM_RNG ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_RTS = 4
++pkg syscall (linux-s390x-cgo), const TIOCM_RTS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCMSET = 21528
++pkg syscall (linux-s390x-cgo), const TIOCMSET ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_SR = 16
++pkg syscall (linux-s390x-cgo), const TIOCM_SR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCM_ST = 8
++pkg syscall (linux-s390x-cgo), const TIOCM_ST ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCNOTTY = 21538
++pkg syscall (linux-s390x-cgo), const TIOCNOTTY ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCNXCL = 21517
++pkg syscall (linux-s390x-cgo), const TIOCNXCL ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCOUTQ = 21521
++pkg syscall (linux-s390x-cgo), const TIOCOUTQ ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT = 21536
++pkg syscall (linux-s390x-cgo), const TIOCPKT_DATA = 0
++pkg syscall (linux-s390x-cgo), const TIOCPKT_DATA ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_DOSTOP = 32
++pkg syscall (linux-s390x-cgo), const TIOCPKT_DOSTOP ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHREAD = 1
++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHREAD ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHWRITE = 2
++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHWRITE ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_IOCTL = 64
++pkg syscall (linux-s390x-cgo), const TIOCPKT_IOCTL ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_NOSTOP = 16
++pkg syscall (linux-s390x-cgo), const TIOCPKT_NOSTOP ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_START = 8
++pkg syscall (linux-s390x-cgo), const TIOCPKT_START ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCPKT_STOP = 4
++pkg syscall (linux-s390x-cgo), const TIOCPKT_STOP ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSBRK = 21543
++pkg syscall (linux-s390x-cgo), const TIOCSBRK ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSCTTY = 21518
++pkg syscall (linux-s390x-cgo), const TIOCSCTTY ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERCONFIG = 21587
++pkg syscall (linux-s390x-cgo), const TIOCSERCONFIG ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERGETLSR = 21593
++pkg syscall (linux-s390x-cgo), const TIOCSERGETLSR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERGETMULTI = 21594
++pkg syscall (linux-s390x-cgo), const TIOCSERGETMULTI ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERGSTRUCT = 21592
++pkg syscall (linux-s390x-cgo), const TIOCSERGSTRUCT ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERGWILD = 21588
++pkg syscall (linux-s390x-cgo), const TIOCSERGWILD ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERSETMULTI = 21595
++pkg syscall (linux-s390x-cgo), const TIOCSERSETMULTI ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSERSWILD = 21589
++pkg syscall (linux-s390x-cgo), const TIOCSERSWILD ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSER_TEMT = 1
++pkg syscall (linux-s390x-cgo), const TIOCSER_TEMT ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSETD = 21539
++pkg syscall (linux-s390x-cgo), const TIOCSETD ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSIG = 1074025526
++pkg syscall (linux-s390x-cgo), const TIOCSIG ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSLCKTRMIOS = 21591
++pkg syscall (linux-s390x-cgo), const TIOCSLCKTRMIOS ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSPGRP = 21520
++pkg syscall (linux-s390x-cgo), const TIOCSPGRP ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSPTLCK = 1074025521
++pkg syscall (linux-s390x-cgo), const TIOCSPTLCK ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSRS485 = 21551
++pkg syscall (linux-s390x-cgo), const TIOCSRS485 ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSSERIAL = 21535
++pkg syscall (linux-s390x-cgo), const TIOCSSERIAL ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSSOFTCAR = 21530
++pkg syscall (linux-s390x-cgo), const TIOCSSOFTCAR ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSTI = 21522
++pkg syscall (linux-s390x-cgo), const TIOCSTI ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCSWINSZ = 21524
++pkg syscall (linux-s390x-cgo), const TIOCSWINSZ ideal-int
++pkg syscall (linux-s390x-cgo), const TIOCVHANGUP = 21559
++pkg syscall (linux-s390x-cgo), const TIOCVHANGUP ideal-int
++pkg syscall (linux-s390x-cgo), const TOSTOP = 256
++pkg syscall (linux-s390x-cgo), const TOSTOP ideal-int
++pkg syscall (linux-s390x-cgo), const TUNATTACHFILTER = 1074812117
++pkg syscall (linux-s390x-cgo), const TUNATTACHFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const TUNDETACHFILTER = 1074812118
++pkg syscall (linux-s390x-cgo), const TUNDETACHFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const TUNGETFEATURES = 2147767503
++pkg syscall (linux-s390x-cgo), const TUNGETFEATURES ideal-int
++pkg syscall (linux-s390x-cgo), const TUNGETIFF = 2147767506
++pkg syscall (linux-s390x-cgo), const TUNGETIFF ideal-int
++pkg syscall (linux-s390x-cgo), const TUNGETSNDBUF = 2147767507
++pkg syscall (linux-s390x-cgo), const TUNGETSNDBUF ideal-int
++pkg syscall (linux-s390x-cgo), const TUNGETVNETHDRSZ = 2147767511
++pkg syscall (linux-s390x-cgo), const TUNGETVNETHDRSZ ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETDEBUG = 1074025673
++pkg syscall (linux-s390x-cgo), const TUNSETDEBUG ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETGROUP = 1074025678
++pkg syscall (linux-s390x-cgo), const TUNSETGROUP ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETIFF = 1074025674
++pkg syscall (linux-s390x-cgo), const TUNSETIFF ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETLINK = 1074025677
++pkg syscall (linux-s390x-cgo), const TUNSETLINK ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETNOCSUM = 1074025672
++pkg syscall (linux-s390x-cgo), const TUNSETNOCSUM ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETOFFLOAD = 1074025680
++pkg syscall (linux-s390x-cgo), const TUNSETOFFLOAD ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETOWNER = 1074025676
++pkg syscall (linux-s390x-cgo), const TUNSETOWNER ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETPERSIST = 1074025675
++pkg syscall (linux-s390x-cgo), const TUNSETPERSIST ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETQUEUE = 1074025689
++pkg syscall (linux-s390x-cgo), const TUNSETQUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETSNDBUF = 1074025684
++pkg syscall (linux-s390x-cgo), const TUNSETSNDBUF ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETTXFILTER = 1074025681
++pkg syscall (linux-s390x-cgo), const TUNSETTXFILTER ideal-int
++pkg syscall (linux-s390x-cgo), const TUNSETVNETHDRSZ = 1074025688
++pkg syscall (linux-s390x-cgo), const TUNSETVNETHDRSZ ideal-int
++pkg syscall (linux-s390x-cgo), const VDISCARD = 13
++pkg syscall (linux-s390x-cgo), const VDISCARD ideal-int
++pkg syscall (linux-s390x-cgo), const VEOF = 4
++pkg syscall (linux-s390x-cgo), const VEOF ideal-int
++pkg syscall (linux-s390x-cgo), const VEOL = 11
++pkg syscall (linux-s390x-cgo), const VEOL2 = 16
++pkg syscall (linux-s390x-cgo), const VEOL2 ideal-int
++pkg syscall (linux-s390x-cgo), const VEOL ideal-int
++pkg syscall (linux-s390x-cgo), const VERASE = 2
++pkg syscall (linux-s390x-cgo), const VERASE ideal-int
++pkg syscall (linux-s390x-cgo), const VINTR = 0
++pkg syscall (linux-s390x-cgo), const VINTR ideal-int
++pkg syscall (linux-s390x-cgo), const VKILL = 3
++pkg syscall (linux-s390x-cgo), const VKILL ideal-int
++pkg syscall (linux-s390x-cgo), const VLNEXT = 15
++pkg syscall (linux-s390x-cgo), const VLNEXT ideal-int
++pkg syscall (linux-s390x-cgo), const VMIN = 6
++pkg syscall (linux-s390x-cgo), const VMIN ideal-int
++pkg syscall (linux-s390x-cgo), const VQUIT = 1
++pkg syscall (linux-s390x-cgo), const VQUIT ideal-int
++pkg syscall (linux-s390x-cgo), const VREPRINT = 12
++pkg syscall (linux-s390x-cgo), const VREPRINT ideal-int
++pkg syscall (linux-s390x-cgo), const VSTART = 8
++pkg syscall (linux-s390x-cgo), const VSTART ideal-int
++pkg syscall (linux-s390x-cgo), const VSTOP = 9
++pkg syscall (linux-s390x-cgo), const VSTOP ideal-int
++pkg syscall (linux-s390x-cgo), const VSUSP = 10
++pkg syscall (linux-s390x-cgo), const VSUSP ideal-int
++pkg syscall (linux-s390x-cgo), const VSWTC = 7
++pkg syscall (linux-s390x-cgo), const VSWTC ideal-int
++pkg syscall (linux-s390x-cgo), const VT0 = 0
++pkg syscall (linux-s390x-cgo), const VT0 ideal-int
++pkg syscall (linux-s390x-cgo), const VT1 = 16384
++pkg syscall (linux-s390x-cgo), const VT1 ideal-int
++pkg syscall (linux-s390x-cgo), const VTDLY = 16384
++pkg syscall (linux-s390x-cgo), const VTDLY ideal-int
++pkg syscall (linux-s390x-cgo), const VTIME = 5
++pkg syscall (linux-s390x-cgo), const VTIME ideal-int
++pkg syscall (linux-s390x-cgo), const VWERASE = 14
++pkg syscall (linux-s390x-cgo), const VWERASE ideal-int
++pkg syscall (linux-s390x-cgo), const WALL = 1073741824
++pkg syscall (linux-s390x-cgo), const WALL ideal-int
++pkg syscall (linux-s390x-cgo), const WCLONE = 2147483648
++pkg syscall (linux-s390x-cgo), const WCLONE ideal-int
++pkg syscall (linux-s390x-cgo), const WCONTINUED = 8
++pkg syscall (linux-s390x-cgo), const WCONTINUED ideal-int
++pkg syscall (linux-s390x-cgo), const WEXITED = 4
++pkg syscall (linux-s390x-cgo), const WEXITED ideal-int
++pkg syscall (linux-s390x-cgo), const WNOHANG = 1
++pkg syscall (linux-s390x-cgo), const WNOHANG ideal-int
++pkg syscall (linux-s390x-cgo), const WNOTHREAD = 536870912
++pkg syscall (linux-s390x-cgo), const WNOTHREAD ideal-int
++pkg syscall (linux-s390x-cgo), const WNOWAIT = 16777216
++pkg syscall (linux-s390x-cgo), const WNOWAIT ideal-int
++pkg syscall (linux-s390x-cgo), const WORDSIZE = 64
++pkg syscall (linux-s390x-cgo), const WORDSIZE ideal-int
++pkg syscall (linux-s390x-cgo), const WSTOPPED = 2
++pkg syscall (linux-s390x-cgo), const WSTOPPED ideal-int
++pkg syscall (linux-s390x-cgo), const WUNTRACED = 2
++pkg syscall (linux-s390x-cgo), const WUNTRACED ideal-int
++pkg syscall (linux-s390x-cgo), const XCASE = 4
++pkg syscall (linux-s390x-cgo), const XCASE ideal-int
++pkg syscall (linux-s390x-cgo), func Accept4(int, int) (int, Sockaddr, error)
++pkg syscall (linux-s390x-cgo), func Accept(int) (int, Sockaddr, error)
++pkg syscall (linux-s390x-cgo), func Access(string, uint32) error
++pkg syscall (linux-s390x-cgo), func Acct(string) error
++pkg syscall (linux-s390x-cgo), func Adjtimex(*Timex) (int, error)
++pkg syscall (linux-s390x-cgo), func AttachLsf(int, []SockFilter) error
++pkg syscall (linux-s390x-cgo), func Bind(int, Sockaddr) error
++pkg syscall (linux-s390x-cgo), func BindToDevice(int, string) error
++pkg syscall (linux-s390x-cgo), func Chroot(string) error
++pkg syscall (linux-s390x-cgo), func Close(int) error
++pkg syscall (linux-s390x-cgo), func CloseOnExec(int)
++pkg syscall (linux-s390x-cgo), func CmsgLen(int) int
++pkg syscall (linux-s390x-cgo), func CmsgSpace(int) int
++pkg syscall (linux-s390x-cgo), func Connect(int, Sockaddr) error
++pkg syscall (linux-s390x-cgo), func Creat(string, uint32) (int, error)
++pkg syscall (linux-s390x-cgo), func DetachLsf(int) error
++pkg syscall (linux-s390x-cgo), func Dup2(int, int) error
++pkg syscall (linux-s390x-cgo), func Dup3(int, int, int) error
++pkg syscall (linux-s390x-cgo), func Dup(int) (int, error)
++pkg syscall (linux-s390x-cgo), func EpollCreate1(int) (int, error)
++pkg syscall (linux-s390x-cgo), func EpollCreate(int) (int, error)
++pkg syscall (linux-s390x-cgo), func EpollCtl(int, int, int, *EpollEvent) error
++pkg syscall (linux-s390x-cgo), func EpollWait(int, []EpollEvent, int) (int, error)
++pkg syscall (linux-s390x-cgo), func Faccessat(int, string, uint32, int) error
++pkg syscall (linux-s390x-cgo), func Fallocate(int, uint32, int64, int64) error
++pkg syscall (linux-s390x-cgo), func Fchdir(int) error
++pkg syscall (linux-s390x-cgo), func Fchmodat(int, string, uint32, int) error
++pkg syscall (linux-s390x-cgo), func Fchmod(int, uint32) error
++pkg syscall (linux-s390x-cgo), func Fchownat(int, string, int, int, int) error
++pkg syscall (linux-s390x-cgo), func Fchown(int, int, int) error
++pkg syscall (linux-s390x-cgo), func FcntlFlock(uintptr, int, *Flock_t) error
++pkg syscall (linux-s390x-cgo), func Fdatasync(int) error
++pkg syscall (linux-s390x-cgo), func Flock(int, int) error
++pkg syscall (linux-s390x-cgo), func ForkExec(string, []string, *ProcAttr) (int, error)
++pkg syscall (linux-s390x-cgo), func Fstatfs(int, *Statfs_t) error
++pkg syscall (linux-s390x-cgo), func Fstat(int, *Stat_t) error
++pkg syscall (linux-s390x-cgo), func Fsync(int) error
++pkg syscall (linux-s390x-cgo), func Ftruncate(int, int64) error
++pkg syscall (linux-s390x-cgo), func Futimesat(int, string, []Timeval) error
++pkg syscall (linux-s390x-cgo), func Futimes(int, []Timeval) error
++pkg syscall (linux-s390x-cgo), func Getcwd([]uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func Getdents(int, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func Getpeername(int) (Sockaddr, error)
++pkg syscall (linux-s390x-cgo), func Getpgid(int) (int, error)
++pkg syscall (linux-s390x-cgo), func Getpgrp() int
++pkg syscall (linux-s390x-cgo), func Getpriority(int, int) (int, error)
++pkg syscall (linux-s390x-cgo), func Getrlimit(int, *Rlimit) error
++pkg syscall (linux-s390x-cgo), func Getrusage(int, *Rusage) error
++pkg syscall (linux-s390x-cgo), func Getsockname(int) (Sockaddr, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptICMPv6Filter(int, int, int) (*ICMPv6Filter, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptInet4Addr(int, int, int) ([4]uint8, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptInt(int, int, int) (int, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptIPMreq(int, int, int) (*IPMreq, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptIPMreqn(int, int, int) (*IPMreqn, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptIPv6Mreq(int, int, int) (*IPv6Mreq, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptIPv6MTUInfo(int, int, int) (*IPv6MTUInfo, error)
++pkg syscall (linux-s390x-cgo), func GetsockoptUcred(int, int, int) (*Ucred, error)
++pkg syscall (linux-s390x-cgo), func Gettid() int
++pkg syscall (linux-s390x-cgo), func Getxattr(string, string, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func InotifyAddWatch(int, string, uint32) (int, error)
++pkg syscall (linux-s390x-cgo), func InotifyInit1(int) (int, error)
++pkg syscall (linux-s390x-cgo), func InotifyInit() (int, error)
++pkg syscall (linux-s390x-cgo), func InotifyRmWatch(int, uint32) (int, error)
++pkg syscall (linux-s390x-cgo), func Kill(int, Signal) error
++pkg syscall (linux-s390x-cgo), func Klogctl(int, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func Listen(int, int) error
++pkg syscall (linux-s390x-cgo), func Listxattr(string, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func LsfJump(int, int, int, int) *SockFilter
++pkg syscall (linux-s390x-cgo), func LsfSocket(int, int) (int, error)
++pkg syscall (linux-s390x-cgo), func LsfStmt(int, int) *SockFilter
++pkg syscall (linux-s390x-cgo), func Lstat(string, *Stat_t) error
++pkg syscall (linux-s390x-cgo), func Madvise([]uint8, int) error
++pkg syscall (linux-s390x-cgo), func Mkdirat(int, string, uint32) error
++pkg syscall (linux-s390x-cgo), func Mkfifo(string, uint32) error
++pkg syscall (linux-s390x-cgo), func Mknodat(int, string, uint32, int) error
++pkg syscall (linux-s390x-cgo), func Mknod(string, uint32, int) error
++pkg syscall (linux-s390x-cgo), func Mlockall(int) error
++pkg syscall (linux-s390x-cgo), func Mlock([]uint8) error
++pkg syscall (linux-s390x-cgo), func Mmap(int, int64, int, int, int) ([]uint8, error)
++pkg syscall (linux-s390x-cgo), func Mount(string, string, string, uintptr, string) error
++pkg syscall (linux-s390x-cgo), func Mprotect([]uint8, int) error
++pkg syscall (linux-s390x-cgo), func Munlockall() error
++pkg syscall (linux-s390x-cgo), func Munlock([]uint8) error
++pkg syscall (linux-s390x-cgo), func Munmap([]uint8) error
++pkg syscall (linux-s390x-cgo), func Nanosleep(*Timespec, *Timespec) error
++pkg syscall (linux-s390x-cgo), func NetlinkRIB(int, int) ([]uint8, error)
++pkg syscall (linux-s390x-cgo), func Openat(int, string, int, uint32) (int, error)
++pkg syscall (linux-s390x-cgo), func Open(string, int, uint32) (int, error)
++pkg syscall (linux-s390x-cgo), func ParseDirent([]uint8, int, []string) (int, int, []string)
++pkg syscall (linux-s390x-cgo), func ParseNetlinkMessage([]uint8) ([]NetlinkMessage, error)
++pkg syscall (linux-s390x-cgo), func ParseNetlinkRouteAttr(*NetlinkMessage) ([]NetlinkRouteAttr, error)
++pkg syscall (linux-s390x-cgo), func ParseSocketControlMessage([]uint8) ([]SocketControlMessage, error)
++pkg syscall (linux-s390x-cgo), func ParseUnixCredentials(*SocketControlMessage) (*Ucred, error)
++pkg syscall (linux-s390x-cgo), func ParseUnixRights(*SocketControlMessage) ([]int, error)
++pkg syscall (linux-s390x-cgo), func Pause() error
++pkg syscall (linux-s390x-cgo), func Pipe2([]int, int) error
++pkg syscall (linux-s390x-cgo), func Pipe([]int) error
++pkg syscall (linux-s390x-cgo), func PivotRoot(string, string) error
++pkg syscall (linux-s390x-cgo), func Pread(int, []uint8, int64) (int, error)
++pkg syscall (linux-s390x-cgo), func PtraceAttach(int) error
++pkg syscall (linux-s390x-cgo), func PtraceCont(int, int) error
++pkg syscall (linux-s390x-cgo), func PtraceDetach(int) error
++pkg syscall (linux-s390x-cgo), func PtraceGetEventMsg(int) (uint, error)
++pkg syscall (linux-s390x-cgo), func PtraceGetRegs(int, *PtraceRegs) error
++pkg syscall (linux-s390x-cgo), func PtracePeekData(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func PtracePeekText(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func PtracePokeData(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func PtracePokeText(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func PtraceSetOptions(int, int) error
++pkg syscall (linux-s390x-cgo), func PtraceSetRegs(int, *PtraceRegs) error
++pkg syscall (linux-s390x-cgo), func PtraceSingleStep(int) error
++pkg syscall (linux-s390x-cgo), func PtraceSyscall(int, int) error
++pkg syscall (linux-s390x-cgo), func Pwrite(int, []uint8, int64) (int, error)
++pkg syscall (linux-s390x-cgo), func RawSyscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x-cgo), func RawSyscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x-cgo), func ReadDirent(int, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func Read(int, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), func Reboot(int) error
++pkg syscall (linux-s390x-cgo), func Recvfrom(int, []uint8, int) (int, Sockaddr, error)
++pkg syscall (linux-s390x-cgo), func Recvmsg(int, []uint8, []uint8, int) (int, int, int, Sockaddr, error)
++pkg syscall (linux-s390x-cgo), func Removexattr(string, string) error
++pkg syscall (linux-s390x-cgo), func Renameat(int, string, int, string) error
++pkg syscall (linux-s390x-cgo), func Seek(int, int64, int) (int64, error)
++pkg syscall (linux-s390x-cgo), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) (int, error)
++pkg syscall (linux-s390x-cgo), func Sendfile(int, int, *int64, int) (int, error)
++pkg syscall (linux-s390x-cgo), func Sendmsg(int, []uint8, []uint8, Sockaddr, int) error
++pkg syscall (linux-s390x-cgo), func SendmsgN(int, []uint8, []uint8, Sockaddr, int) (int, error)
++pkg syscall (linux-s390x-cgo), func Sendto(int, []uint8, int, Sockaddr) error
++pkg syscall (linux-s390x-cgo), func Setdomainname([]uint8) error
++pkg syscall (linux-s390x-cgo), func Setfsgid(int) error
++pkg syscall (linux-s390x-cgo), func Setfsuid(int) error
++pkg syscall (linux-s390x-cgo), func Setgid(int) error
++pkg syscall (linux-s390x-cgo), func Setgroups([]int) error
++pkg syscall (linux-s390x-cgo), func Sethostname([]uint8) error
++pkg syscall (linux-s390x-cgo), func SetLsfPromisc(string, bool) error
++pkg syscall (linux-s390x-cgo), func SetNonblock(int, bool) error
++pkg syscall (linux-s390x-cgo), func Setpgid(int, int) error
++pkg syscall (linux-s390x-cgo), func Setpriority(int, int, int) error
++pkg syscall (linux-s390x-cgo), func Setregid(int, int) error
++pkg syscall (linux-s390x-cgo), func Setresgid(int, int, int) error
++pkg syscall (linux-s390x-cgo), func Setresuid(int, int, int) error
++pkg syscall (linux-s390x-cgo), func Setreuid(int, int) error
++pkg syscall (linux-s390x-cgo), func Setrlimit(int, *Rlimit) error
++pkg syscall (linux-s390x-cgo), func Setsid() (int, error)
++pkg syscall (linux-s390x-cgo), func SetsockoptByte(int, int, int, uint8) error
++pkg syscall (linux-s390x-cgo), func SetsockoptICMPv6Filter(int, int, int, *ICMPv6Filter) error
++pkg syscall (linux-s390x-cgo), func SetsockoptInet4Addr(int, int, int, [4]uint8) error
++pkg syscall (linux-s390x-cgo), func SetsockoptInt(int, int, int, int) error
++pkg syscall (linux-s390x-cgo), func SetsockoptIPMreq(int, int, int, *IPMreq) error
++pkg syscall (linux-s390x-cgo), func SetsockoptIPMreqn(int, int, int, *IPMreqn) error
++pkg syscall (linux-s390x-cgo), func SetsockoptIPv6Mreq(int, int, int, *IPv6Mreq) error
++pkg syscall (linux-s390x-cgo), func SetsockoptLinger(int, int, int, *Linger) error
++pkg syscall (linux-s390x-cgo), func SetsockoptString(int, int, int, string) error
++pkg syscall (linux-s390x-cgo), func SetsockoptTimeval(int, int, int, *Timeval) error
++pkg syscall (linux-s390x-cgo), func Settimeofday(*Timeval) error
++pkg syscall (linux-s390x-cgo), func Setuid(int) error
++pkg syscall (linux-s390x-cgo), func Setxattr(string, string, []uint8, int) error
++pkg syscall (linux-s390x-cgo), func Shutdown(int, int) error
++pkg syscall (linux-s390x-cgo), func SlicePtrFromStrings([]string) ([]*uint8, error)
++pkg syscall (linux-s390x-cgo), func Socket(int, int, int) (int, error)
++pkg syscall (linux-s390x-cgo), func Socketpair(int, int, int) ([2]int, error)
++pkg syscall (linux-s390x-cgo), func Splice(int, *int64, int, *int64, int, int) (int64, error)
++pkg syscall (linux-s390x-cgo), func Statfs(string, *Statfs_t) error
++pkg syscall (linux-s390x-cgo), func Stat(string, *Stat_t) error
++pkg syscall (linux-s390x-cgo), func StringSlicePtr([]string) []*uint8
++pkg syscall (linux-s390x-cgo), func Sync()
++pkg syscall (linux-s390x-cgo), func SyncFileRange(int, int64, int64, int) error
++pkg syscall (linux-s390x-cgo), func Syscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x-cgo), func Syscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x-cgo), func Sysinfo(*Sysinfo_t) error
++pkg syscall (linux-s390x-cgo), func Tee(int, int, int, int) (int64, error)
++pkg syscall (linux-s390x-cgo), func Tgkill(int, int, Signal) error
++pkg syscall (linux-s390x-cgo), func Times(*Tms) (uintptr, error)
++pkg syscall (linux-s390x-cgo), func Time(*Time_t) (Time_t, error)
++pkg syscall (linux-s390x-cgo), func TimevalToNsec(Timeval) int64
++pkg syscall (linux-s390x-cgo), func Truncate(string, int64) error
++pkg syscall (linux-s390x-cgo), func Umask(int) int
++pkg syscall (linux-s390x-cgo), func Uname(*Utsname) error
++pkg syscall (linux-s390x-cgo), func UnixCredentials(*Ucred) []uint8
++pkg syscall (linux-s390x-cgo), func UnixRights(...int) []uint8
++pkg syscall (linux-s390x-cgo), func Unlinkat(int, string) error
++pkg syscall (linux-s390x-cgo), func Unmount(string, int) error
++pkg syscall (linux-s390x-cgo), func Unshare(int) error
++pkg syscall (linux-s390x-cgo), func Ustat(int, *Ustat_t) error
++pkg syscall (linux-s390x-cgo), func Utime(string, *Utimbuf) error
++pkg syscall (linux-s390x-cgo), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
++pkg syscall (linux-s390x-cgo), func Write(int, []uint8) (int, error)
++pkg syscall (linux-s390x-cgo), method (*Cmsghdr) SetLen(int)
++pkg syscall (linux-s390x-cgo), method (*Iovec) SetLen(int)
++pkg syscall (linux-s390x-cgo), method (*Msghdr) SetControllen(int)
++pkg syscall (linux-s390x-cgo), method (*PtraceRegs) PC() uint64
++pkg syscall (linux-s390x-cgo), method (*PtraceRegs) SetPC(uint64)
++pkg syscall (linux-s390x-cgo), type Cmsghdr struct
++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, Len uint64
++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, Level int32
++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, Type int32
++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
++pkg syscall (linux-s390x-cgo), type Credential struct
++pkg syscall (linux-s390x-cgo), type Credential struct, Gid uint32
++pkg syscall (linux-s390x-cgo), type Credential struct, Groups []uint32
++pkg syscall (linux-s390x-cgo), type Credential struct, Uid uint32
++pkg syscall (linux-s390x-cgo), type Dirent struct
++pkg syscall (linux-s390x-cgo), type Dirent struct, Ino uint64
++pkg syscall (linux-s390x-cgo), type Dirent struct, Name [256]uint8
++pkg syscall (linux-s390x-cgo), type Dirent struct, Off int64
++pkg syscall (linux-s390x-cgo), type Dirent struct, Pad_cgo_0 [5]uint8
++pkg syscall (linux-s390x-cgo), type Dirent struct, Reclen uint16
++pkg syscall (linux-s390x-cgo), type Dirent struct, Type uint8
++pkg syscall (linux-s390x-cgo), type EpollEvent struct
++pkg syscall (linux-s390x-cgo), type EpollEvent struct, Events uint32
++pkg syscall (linux-s390x-cgo), type EpollEvent struct, Fd int32
++pkg syscall (linux-s390x-cgo), type EpollEvent struct, Pad int32
++pkg syscall (linux-s390x-cgo), type FdSet struct
++pkg syscall (linux-s390x-cgo), type FdSet struct, Bits [16]int64
++pkg syscall (linux-s390x-cgo), type Flock_t struct
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Len int64
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Pid int32
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Start int64
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Type int16
++pkg syscall (linux-s390x-cgo), type Flock_t struct, Whence int16
++pkg syscall (linux-s390x-cgo), type Fsid struct
++pkg syscall (linux-s390x-cgo), type Fsid struct, X__val [2]int32
++pkg syscall (linux-s390x-cgo), type ICMPv6Filter struct
++pkg syscall (linux-s390x-cgo), type ICMPv6Filter struct, Data [8]uint32
++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct
++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Family uint8
++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Flags uint8
++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Index uint32
++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Prefixlen uint8
++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Scope uint8
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Change uint32
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Family uint8
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Flags uint32
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Index int32
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Type uint16
++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, X__ifi_pad uint8
++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct
++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct, Addr [4]uint8
++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct, Ifindex int32
++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct, Spec_dst [4]uint8
++pkg syscall (linux-s390x-cgo), type Inet6Pktinfo struct
++pkg syscall (linux-s390x-cgo), type Inet6Pktinfo struct, Addr [16]uint8
++pkg syscall (linux-s390x-cgo), type Inet6Pktinfo struct, Ifindex uint32
++pkg syscall (linux-s390x-cgo), type InotifyEvent struct
++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Cookie uint32
++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Len uint32
++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Mask uint32
++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Name [0]uint8
++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Wd int32
++pkg syscall (linux-s390x-cgo), type Iovec struct
++pkg syscall (linux-s390x-cgo), type Iovec struct, Base *uint8
++pkg syscall (linux-s390x-cgo), type Iovec struct, Len uint64
++pkg syscall (linux-s390x-cgo), type IPMreqn struct
++pkg syscall (linux-s390x-cgo), type IPMreqn struct, Address [4]uint8
++pkg syscall (linux-s390x-cgo), type IPMreqn struct, Ifindex int32
++pkg syscall (linux-s390x-cgo), type IPMreqn struct, Multiaddr [4]uint8
++pkg syscall (linux-s390x-cgo), type IPv6MTUInfo struct
++pkg syscall (linux-s390x-cgo), type IPv6MTUInfo struct, Addr RawSockaddrInet6
++pkg syscall (linux-s390x-cgo), type IPv6MTUInfo struct, Mtu uint32
++pkg syscall (linux-s390x-cgo), type Msghdr struct
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Controllen uint64
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Control *uint8
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Flags int32
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Iov *Iovec
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Iovlen uint64
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Namelen uint32
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Name *uint8
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type Msghdr struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x-cgo), type NetlinkMessage struct
++pkg syscall (linux-s390x-cgo), type NetlinkMessage struct, Data []uint8
++pkg syscall (linux-s390x-cgo), type NetlinkMessage struct, Header NlMsghdr
++pkg syscall (linux-s390x-cgo), type NetlinkRouteAttr struct
++pkg syscall (linux-s390x-cgo), type NetlinkRouteAttr struct, Attr RtAttr
++pkg syscall (linux-s390x-cgo), type NetlinkRouteAttr struct, Value []uint8
++pkg syscall (linux-s390x-cgo), type NetlinkRouteRequest struct
++pkg syscall (linux-s390x-cgo), type NetlinkRouteRequest struct, Data RtGenmsg
++pkg syscall (linux-s390x-cgo), type NetlinkRouteRequest struct, Header NlMsghdr
++pkg syscall (linux-s390x-cgo), type NlAttr struct
++pkg syscall (linux-s390x-cgo), type NlAttr struct, Len uint16
++pkg syscall (linux-s390x-cgo), type NlAttr struct, Type uint16
++pkg syscall (linux-s390x-cgo), type NlMsgerr struct
++pkg syscall (linux-s390x-cgo), type NlMsgerr struct, Error int32
++pkg syscall (linux-s390x-cgo), type NlMsgerr struct, Msg NlMsghdr
++pkg syscall (linux-s390x-cgo), type NlMsghdr struct
++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Flags uint16
++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Len uint32
++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Pid uint32
++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Seq uint32
++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Type uint16
++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct
++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct, Fpc uint32
++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct, Fprs [16]float64
++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Access_id uint8
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Address uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Control_regs [0]uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Ending_addr uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_0 [24]uint8
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_1 [8]uint8
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_2 [6]uint8
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_3 [7]uint8
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Perc_atmid uint16
++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Starting_addr uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegsPsw struct
++pkg syscall (linux-s390x-cgo), type PtraceRegsPsw struct, Addr uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegsPsw struct, Mask uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Acrs [16]uint32
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Fp_regs PtraceRegsFp
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Gprs [16]uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Ieee_instruction_pointer uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Orig_gpr2 uint64
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Per_info PtraceRegsPer
++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Psw PtraceRegsPsw
++pkg syscall (linux-s390x-cgo), type RawSockaddrAny struct, Pad [96]uint8
++pkg syscall (linux-s390x-cgo), type RawSockaddrInet4 struct, Family uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrInet4 struct, Zero [8]uint8
++pkg syscall (linux-s390x-cgo), type RawSockaddrInet6 struct, Family uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Addr [8]uint8
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Family uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Halen uint8
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Hatype uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Ifindex int32
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Pkttype uint8
++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Protocol uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct
++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Family uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Groups uint32
++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Pad uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Pid uint32
++pkg syscall (linux-s390x-cgo), type RawSockaddr struct, Data [14]uint8
++pkg syscall (linux-s390x-cgo), type RawSockaddr struct, Family uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrUnix struct
++pkg syscall (linux-s390x-cgo), type RawSockaddrUnix struct, Family uint16
++pkg syscall (linux-s390x-cgo), type RawSockaddrUnix struct, Path [108]int8
++pkg syscall (linux-s390x-cgo), type Rlimit struct
++pkg syscall (linux-s390x-cgo), type Rlimit struct, Cur uint64
++pkg syscall (linux-s390x-cgo), type Rlimit struct, Max uint64
++pkg syscall (linux-s390x-cgo), type RtAttr struct
++pkg syscall (linux-s390x-cgo), type RtAttr struct, Len uint16
++pkg syscall (linux-s390x-cgo), type RtAttr struct, Type uint16
++pkg syscall (linux-s390x-cgo), type RtGenmsg struct
++pkg syscall (linux-s390x-cgo), type RtGenmsg struct, Family uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Dst_len uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Family uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Flags uint32
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Protocol uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Scope uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Src_len uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Table uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Tos uint8
++pkg syscall (linux-s390x-cgo), type RtMsg struct, Type uint8
++pkg syscall (linux-s390x-cgo), type RtNexthop struct
++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Flags uint8
++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Hops uint8
++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Ifindex int32
++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Len uint16
++pkg syscall (linux-s390x-cgo), type Rusage struct, Idrss int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Inblock int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Isrss int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Ixrss int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Majflt int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Maxrss int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Minflt int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Msgrcv int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Msgsnd int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Nivcsw int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Nsignals int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Nswap int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Nvcsw int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Oublock int64
++pkg syscall (linux-s390x-cgo), type Rusage struct, Stime Timeval
++pkg syscall (linux-s390x-cgo), type Rusage struct, Utime Timeval
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Addr [8]uint8
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Halen uint8
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Hatype uint16
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Ifindex int
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Pkttype uint8
++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Protocol uint16
++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct
++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Family uint16
++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Groups uint32
++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Pad uint16
++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Pid uint32
++pkg syscall (linux-s390x-cgo), type SocketControlMessage struct
++pkg syscall (linux-s390x-cgo), type SocketControlMessage struct, Data []uint8
++pkg syscall (linux-s390x-cgo), type SocketControlMessage struct, Header Cmsghdr
++pkg syscall (linux-s390x-cgo), type SockFilter struct
++pkg syscall (linux-s390x-cgo), type SockFilter struct, Code uint16
++pkg syscall (linux-s390x-cgo), type SockFilter struct, Jf uint8
++pkg syscall (linux-s390x-cgo), type SockFilter struct, Jt uint8
++pkg syscall (linux-s390x-cgo), type SockFilter struct, K uint32
++pkg syscall (linux-s390x-cgo), type SockFprog struct
++pkg syscall (linux-s390x-cgo), type SockFprog struct, Filter *SockFilter
++pkg syscall (linux-s390x-cgo), type SockFprog struct, Len uint16
++pkg syscall (linux-s390x-cgo), type SockFprog struct, Pad_cgo_0 [6]uint8
++pkg syscall (linux-s390x-cgo), type Statfs_t struct
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Bavail uint64
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Bfree uint64
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Blocks uint64
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Bsize uint32
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Ffree uint64
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Files uint64
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Flags uint32
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Frsize uint32
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Fsid Fsid
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Namelen uint32
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Spare [4]uint32
++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Type uint32
++pkg syscall (linux-s390x-cgo), type Stat_t struct
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Atim Timespec
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Blksize int64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Blocks int64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Ctim Timespec
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Dev uint64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Gid uint32
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Ino uint64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Mode uint32
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Mtim Timespec
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Nlink uint64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Pad0 int32
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Rdev uint64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Size int64
++pkg syscall (linux-s390x-cgo), type Stat_t struct, Uid uint32
++pkg syscall (linux-s390x-cgo), type Stat_t struct, X__unused [3]int64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Bufferram uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Freehigh uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Freeram uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Freeswap uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Loads [3]uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Pad uint16
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Procs uint16
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Sharedram uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Totalhigh uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Totalram uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Totalswap uint64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Unit uint32
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Uptime int64
++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, X_f [0]uint8
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Chroot string
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Cloneflags uintptr
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Credential *Credential
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Ctty int
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Foreground bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, GidMappingsEnableSetgroups bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, GidMappings []SysProcIDMap
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Noctty bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Pdeathsig Signal
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Pgid int
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Ptrace bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Setctty bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Setpgid bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Setsid bool
++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, UidMappings []SysProcIDMap
++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct
++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct, ContainerID int
++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct, HostID int
++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct, Size int
++pkg syscall (linux-s390x-cgo), type TCPInfo struct
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Advmss uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Ato uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Backoff uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Ca_state uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Fackets uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_ack_recv uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_ack_sent uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_data_recv uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_data_sent uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Lost uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Options uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Pad_cgo_0 [2]uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Pmtu uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Probes uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_mss uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_rtt uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_space uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_ssthresh uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Reordering uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Retransmits uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Retrans uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rto uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rtt uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rttvar uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Sacked uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Snd_cwnd uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Snd_mss uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Snd_ssthresh uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, State uint8
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Total_retrans uint32
++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Unacked uint32
++pkg syscall (linux-s390x-cgo), type Termios struct
++pkg syscall (linux-s390x-cgo), type Termios struct, Cc [32]uint8
++pkg syscall (linux-s390x-cgo), type Termios struct, Cflag uint32
++pkg syscall (linux-s390x-cgo), type Termios struct, Iflag uint32
++pkg syscall (linux-s390x-cgo), type Termios struct, Ispeed uint32
++pkg syscall (linux-s390x-cgo), type Termios struct, Lflag uint32
++pkg syscall (linux-s390x-cgo), type Termios struct, Line uint8
++pkg syscall (linux-s390x-cgo), type Termios struct, Oflag uint32
++pkg syscall (linux-s390x-cgo), type Termios struct, Ospeed uint32
++pkg syscall (linux-s390x-cgo), type Termios struct, Pad_cgo_0 [3]uint8
++pkg syscall (linux-s390x-cgo), type Timespec struct, Nsec int64
++pkg syscall (linux-s390x-cgo), type Timespec struct, Sec int64
++pkg syscall (linux-s390x-cgo), type Time_t int64
++pkg syscall (linux-s390x-cgo), type Timeval struct, Sec int64
++pkg syscall (linux-s390x-cgo), type Timeval struct, Usec int64
++pkg syscall (linux-s390x-cgo), type Timex struct
++pkg syscall (linux-s390x-cgo), type Timex struct, Calcnt int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Constant int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Errcnt int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Esterror int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Freq int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Jitcnt int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Jitter int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Maxerror int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Modes uint32
++pkg syscall (linux-s390x-cgo), type Timex struct, Offset int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_2 [4]uint8
++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_3 [44]uint8
++pkg syscall (linux-s390x-cgo), type Timex struct, Ppsfreq int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Precision int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Shift int32
++pkg syscall (linux-s390x-cgo), type Timex struct, Stabil int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Status int32
++pkg syscall (linux-s390x-cgo), type Timex struct, Stbcnt int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Tai int32
++pkg syscall (linux-s390x-cgo), type Timex struct, Tick int64
++pkg syscall (linux-s390x-cgo), type Timex struct, Time Timeval
++pkg syscall (linux-s390x-cgo), type Timex struct, Tolerance int64
++pkg syscall (linux-s390x-cgo), type Tms struct
++pkg syscall (linux-s390x-cgo), type Tms struct, Cstime int64
++pkg syscall (linux-s390x-cgo), type Tms struct, Cutime int64
++pkg syscall (linux-s390x-cgo), type Tms struct, Stime int64
++pkg syscall (linux-s390x-cgo), type Tms struct, Utime int64
++pkg syscall (linux-s390x-cgo), type Ucred struct
++pkg syscall (linux-s390x-cgo), type Ucred struct, Gid uint32
++pkg syscall (linux-s390x-cgo), type Ucred struct, Pid int32
++pkg syscall (linux-s390x-cgo), type Ucred struct, Uid uint32
++pkg syscall (linux-s390x-cgo), type Ustat_t struct
++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Fname [6]uint8
++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Fpack [6]uint8
++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Tfree int32
++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Tinode uint64
++pkg syscall (linux-s390x-cgo), type Utimbuf struct
++pkg syscall (linux-s390x-cgo), type Utimbuf struct, Actime int64
++pkg syscall (linux-s390x-cgo), type Utimbuf struct, Modtime int64
++pkg syscall (linux-s390x-cgo), type Utsname struct
++pkg syscall (linux-s390x-cgo), type Utsname struct, Domainname [65]uint8
++pkg syscall (linux-s390x-cgo), type Utsname struct, Machine [65]uint8
++pkg syscall (linux-s390x-cgo), type Utsname struct, Nodename [65]uint8
++pkg syscall (linux-s390x-cgo), type Utsname struct, Release [65]uint8
++pkg syscall (linux-s390x-cgo), type Utsname struct, Sysname [65]uint8
++pkg syscall (linux-s390x-cgo), type Utsname struct, Version [65]uint8
++pkg syscall (linux-s390x-cgo), type WaitStatus uint32
++pkg syscall (linux-s390x-cgo), var Stderr int
++pkg syscall (linux-s390x-cgo), var Stdin int
++pkg syscall (linux-s390x-cgo), var Stdout int
++pkg syscall (linux-s390x), const AF_ALG = 38
++pkg syscall (linux-s390x), const AF_ALG ideal-int
++pkg syscall (linux-s390x), const AF_APPLETALK = 5
++pkg syscall (linux-s390x), const AF_APPLETALK ideal-int
++pkg syscall (linux-s390x), const AF_ASH = 18
++pkg syscall (linux-s390x), const AF_ASH ideal-int
++pkg syscall (linux-s390x), const AF_ATMPVC = 8
++pkg syscall (linux-s390x), const AF_ATMPVC ideal-int
++pkg syscall (linux-s390x), const AF_ATMSVC = 20
++pkg syscall (linux-s390x), const AF_ATMSVC ideal-int
++pkg syscall (linux-s390x), const AF_AX25 = 3
++pkg syscall (linux-s390x), const AF_AX25 ideal-int
++pkg syscall (linux-s390x), const AF_BLUETOOTH = 31
++pkg syscall (linux-s390x), const AF_BLUETOOTH ideal-int
++pkg syscall (linux-s390x), const AF_BRIDGE = 7
++pkg syscall (linux-s390x), const AF_BRIDGE ideal-int
++pkg syscall (linux-s390x), const AF_CAIF = 37
++pkg syscall (linux-s390x), const AF_CAIF ideal-int
++pkg syscall (linux-s390x), const AF_CAN = 29
++pkg syscall (linux-s390x), const AF_CAN ideal-int
++pkg syscall (linux-s390x), const AF_DECnet = 12
++pkg syscall (linux-s390x), const AF_DECnet ideal-int
++pkg syscall (linux-s390x), const AF_ECONET = 19
++pkg syscall (linux-s390x), const AF_ECONET ideal-int
++pkg syscall (linux-s390x), const AF_FILE = 1
++pkg syscall (linux-s390x), const AF_FILE ideal-int
++pkg syscall (linux-s390x), const AF_IEEE802154 = 36
++pkg syscall (linux-s390x), const AF_IEEE802154 ideal-int
++pkg syscall (linux-s390x), const AF_INET6 = 10
++pkg syscall (linux-s390x), const AF_IPX = 4
++pkg syscall (linux-s390x), const AF_IPX ideal-int
++pkg syscall (linux-s390x), const AF_IRDA = 23
++pkg syscall (linux-s390x), const AF_IRDA ideal-int
++pkg syscall (linux-s390x), const AF_ISDN = 34
++pkg syscall (linux-s390x), const AF_ISDN ideal-int
++pkg syscall (linux-s390x), const AF_IUCV = 32
++pkg syscall (linux-s390x), const AF_IUCV ideal-int
++pkg syscall (linux-s390x), const AF_KEY = 15
++pkg syscall (linux-s390x), const AF_KEY ideal-int
++pkg syscall (linux-s390x), const AF_LLC = 26
++pkg syscall (linux-s390x), const AF_LLC ideal-int
++pkg syscall (linux-s390x), const AF_LOCAL = 1
++pkg syscall (linux-s390x), const AF_LOCAL ideal-int
++pkg syscall (linux-s390x), const AF_MAX = 40
++pkg syscall (linux-s390x), const AF_MAX ideal-int
++pkg syscall (linux-s390x), const AF_NETBEUI = 13
++pkg syscall (linux-s390x), const AF_NETBEUI ideal-int
++pkg syscall (linux-s390x), const AF_NETLINK = 16
++pkg syscall (linux-s390x), const AF_NETLINK ideal-int
++pkg syscall (linux-s390x), const AF_NETROM = 6
++pkg syscall (linux-s390x), const AF_NETROM ideal-int
++pkg syscall (linux-s390x), const AF_NFC = 39
++pkg syscall (linux-s390x), const AF_NFC ideal-int
++pkg syscall (linux-s390x), const AF_PACKET = 17
++pkg syscall (linux-s390x), const AF_PACKET ideal-int
++pkg syscall (linux-s390x), const AF_PHONET = 35
++pkg syscall (linux-s390x), const AF_PHONET ideal-int
++pkg syscall (linux-s390x), const AF_PPPOX = 24
++pkg syscall (linux-s390x), const AF_PPPOX ideal-int
++pkg syscall (linux-s390x), const AF_RDS = 21
++pkg syscall (linux-s390x), const AF_RDS ideal-int
++pkg syscall (linux-s390x), const AF_ROSE = 11
++pkg syscall (linux-s390x), const AF_ROSE ideal-int
++pkg syscall (linux-s390x), const AF_ROUTE = 16
++pkg syscall (linux-s390x), const AF_ROUTE ideal-int
++pkg syscall (linux-s390x), const AF_RXRPC = 33
++pkg syscall (linux-s390x), const AF_RXRPC ideal-int
++pkg syscall (linux-s390x), const AF_SECURITY = 14
++pkg syscall (linux-s390x), const AF_SECURITY ideal-int
++pkg syscall (linux-s390x), const AF_SNA = 22
++pkg syscall (linux-s390x), const AF_SNA ideal-int
++pkg syscall (linux-s390x), const AF_TIPC = 30
++pkg syscall (linux-s390x), const AF_TIPC ideal-int
++pkg syscall (linux-s390x), const AF_WANPIPE = 25
++pkg syscall (linux-s390x), const AF_WANPIPE ideal-int
++pkg syscall (linux-s390x), const AF_X25 = 9
++pkg syscall (linux-s390x), const AF_X25 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ADAPT = 264
++pkg syscall (linux-s390x), const ARPHRD_ADAPT ideal-int
++pkg syscall (linux-s390x), const ARPHRD_APPLETLK = 8
++pkg syscall (linux-s390x), const ARPHRD_APPLETLK ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ARCNET = 7
++pkg syscall (linux-s390x), const ARPHRD_ARCNET ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ASH = 781
++pkg syscall (linux-s390x), const ARPHRD_ASH ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ATM = 19
++pkg syscall (linux-s390x), const ARPHRD_ATM ideal-int
++pkg syscall (linux-s390x), const ARPHRD_AX25 = 3
++pkg syscall (linux-s390x), const ARPHRD_AX25 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_BIF = 775
++pkg syscall (linux-s390x), const ARPHRD_BIF ideal-int
++pkg syscall (linux-s390x), const ARPHRD_CAIF = 822
++pkg syscall (linux-s390x), const ARPHRD_CAIF ideal-int
++pkg syscall (linux-s390x), const ARPHRD_CAN = 280
++pkg syscall (linux-s390x), const ARPHRD_CAN ideal-int
++pkg syscall (linux-s390x), const ARPHRD_CHAOS = 5
++pkg syscall (linux-s390x), const ARPHRD_CHAOS ideal-int
++pkg syscall (linux-s390x), const ARPHRD_CISCO = 513
++pkg syscall (linux-s390x), const ARPHRD_CISCO ideal-int
++pkg syscall (linux-s390x), const ARPHRD_CSLIP = 257
++pkg syscall (linux-s390x), const ARPHRD_CSLIP6 = 259
++pkg syscall (linux-s390x), const ARPHRD_CSLIP6 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_CSLIP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_DDCMP = 517
++pkg syscall (linux-s390x), const ARPHRD_DDCMP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_DLCI = 15
++pkg syscall (linux-s390x), const ARPHRD_DLCI ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ECONET = 782
++pkg syscall (linux-s390x), const ARPHRD_ECONET ideal-int
++pkg syscall (linux-s390x), const ARPHRD_EETHER = 2
++pkg syscall (linux-s390x), const ARPHRD_EETHER ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ETHER = 1
++pkg syscall (linux-s390x), const ARPHRD_ETHER ideal-int
++pkg syscall (linux-s390x), const ARPHRD_EUI64 = 27
++pkg syscall (linux-s390x), const ARPHRD_EUI64 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_FCAL = 785
++pkg syscall (linux-s390x), const ARPHRD_FCAL ideal-int
++pkg syscall (linux-s390x), const ARPHRD_FCFABRIC = 787
++pkg syscall (linux-s390x), const ARPHRD_FCFABRIC ideal-int
++pkg syscall (linux-s390x), const ARPHRD_FCPL = 786
++pkg syscall (linux-s390x), const ARPHRD_FCPL ideal-int
++pkg syscall (linux-s390x), const ARPHRD_FCPP = 784
++pkg syscall (linux-s390x), const ARPHRD_FCPP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_FDDI = 774
++pkg syscall (linux-s390x), const ARPHRD_FDDI ideal-int
++pkg syscall (linux-s390x), const ARPHRD_FRAD = 770
++pkg syscall (linux-s390x), const ARPHRD_FRAD ideal-int
++pkg syscall (linux-s390x), const ARPHRD_HDLC = 513
++pkg syscall (linux-s390x), const ARPHRD_HDLC ideal-int
++pkg syscall (linux-s390x), const ARPHRD_HIPPI = 780
++pkg syscall (linux-s390x), const ARPHRD_HIPPI ideal-int
++pkg syscall (linux-s390x), const ARPHRD_HWX25 = 272
++pkg syscall (linux-s390x), const ARPHRD_HWX25 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE1394 = 24
++pkg syscall (linux-s390x), const ARPHRD_IEEE1394 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE80211 = 801
++pkg syscall (linux-s390x), const ARPHRD_IEEE80211 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_PRISM = 802
++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_PRISM ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_RADIOTAP = 803
++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_RADIOTAP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE802154 = 804
++pkg syscall (linux-s390x), const ARPHRD_IEEE802154 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE802154_MONITOR = 805
++pkg syscall (linux-s390x), const ARPHRD_IEEE802154_MONITOR ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE802 = 6
++pkg syscall (linux-s390x), const ARPHRD_IEEE802 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IEEE802_TR = 800
++pkg syscall (linux-s390x), const ARPHRD_IEEE802_TR ideal-int
++pkg syscall (linux-s390x), const ARPHRD_INFINIBAND = 32
++pkg syscall (linux-s390x), const ARPHRD_INFINIBAND ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IP6GRE = 823
++pkg syscall (linux-s390x), const ARPHRD_IP6GRE ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IPDDP = 777
++pkg syscall (linux-s390x), const ARPHRD_IPDDP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IPGRE = 778
++pkg syscall (linux-s390x), const ARPHRD_IPGRE ideal-int
++pkg syscall (linux-s390x), const ARPHRD_IRDA = 783
++pkg syscall (linux-s390x), const ARPHRD_IRDA ideal-int
++pkg syscall (linux-s390x), const ARPHRD_LAPB = 516
++pkg syscall (linux-s390x), const ARPHRD_LAPB ideal-int
++pkg syscall (linux-s390x), const ARPHRD_LOCALTLK = 773
++pkg syscall (linux-s390x), const ARPHRD_LOCALTLK ideal-int
++pkg syscall (linux-s390x), const ARPHRD_LOOPBACK = 772
++pkg syscall (linux-s390x), const ARPHRD_LOOPBACK ideal-int
++pkg syscall (linux-s390x), const ARPHRD_METRICOM = 23
++pkg syscall (linux-s390x), const ARPHRD_METRICOM ideal-int
++pkg syscall (linux-s390x), const ARPHRD_NETLINK = 824
++pkg syscall (linux-s390x), const ARPHRD_NETLINK ideal-int
++pkg syscall (linux-s390x), const ARPHRD_NETROM = 0
++pkg syscall (linux-s390x), const ARPHRD_NETROM ideal-int
++pkg syscall (linux-s390x), const ARPHRD_NONE = 65534
++pkg syscall (linux-s390x), const ARPHRD_NONE ideal-int
++pkg syscall (linux-s390x), const ARPHRD_PHONET = 820
++pkg syscall (linux-s390x), const ARPHRD_PHONET ideal-int
++pkg syscall (linux-s390x), const ARPHRD_PHONET_PIPE = 821
++pkg syscall (linux-s390x), const ARPHRD_PHONET_PIPE ideal-int
++pkg syscall (linux-s390x), const ARPHRD_PIMREG = 779
++pkg syscall (linux-s390x), const ARPHRD_PIMREG ideal-int
++pkg syscall (linux-s390x), const ARPHRD_PPP = 512
++pkg syscall (linux-s390x), const ARPHRD_PPP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_PRONET = 4
++pkg syscall (linux-s390x), const ARPHRD_PRONET ideal-int
++pkg syscall (linux-s390x), const ARPHRD_RAWHDLC = 518
++pkg syscall (linux-s390x), const ARPHRD_RAWHDLC ideal-int
++pkg syscall (linux-s390x), const ARPHRD_ROSE = 270
++pkg syscall (linux-s390x), const ARPHRD_ROSE ideal-int
++pkg syscall (linux-s390x), const ARPHRD_RSRVD = 260
++pkg syscall (linux-s390x), const ARPHRD_RSRVD ideal-int
++pkg syscall (linux-s390x), const ARPHRD_SIT = 776
++pkg syscall (linux-s390x), const ARPHRD_SIT ideal-int
++pkg syscall (linux-s390x), const ARPHRD_SKIP = 771
++pkg syscall (linux-s390x), const ARPHRD_SKIP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_SLIP = 256
++pkg syscall (linux-s390x), const ARPHRD_SLIP6 = 258
++pkg syscall (linux-s390x), const ARPHRD_SLIP6 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_SLIP ideal-int
++pkg syscall (linux-s390x), const ARPHRD_TUNNEL6 = 769
++pkg syscall (linux-s390x), const ARPHRD_TUNNEL6 ideal-int
++pkg syscall (linux-s390x), const ARPHRD_TUNNEL = 768
++pkg syscall (linux-s390x), const ARPHRD_TUNNEL ideal-int
++pkg syscall (linux-s390x), const ARPHRD_VOID = 65535
++pkg syscall (linux-s390x), const ARPHRD_VOID ideal-int
++pkg syscall (linux-s390x), const ARPHRD_X25 = 271
++pkg syscall (linux-s390x), const ARPHRD_X25 ideal-int
++pkg syscall (linux-s390x), const B0 = 0
++pkg syscall (linux-s390x), const B0 ideal-int
++pkg syscall (linux-s390x), const B1000000 = 4104
++pkg syscall (linux-s390x), const B1000000 ideal-int
++pkg syscall (linux-s390x), const B110 = 3
++pkg syscall (linux-s390x), const B110 ideal-int
++pkg syscall (linux-s390x), const B1152000 = 4105
++pkg syscall (linux-s390x), const B1152000 ideal-int
++pkg syscall (linux-s390x), const B115200 = 4098
++pkg syscall (linux-s390x), const B115200 ideal-int
++pkg syscall (linux-s390x), const B1200 = 9
++pkg syscall (linux-s390x), const B1200 ideal-int
++pkg syscall (linux-s390x), const B134 = 4
++pkg syscall (linux-s390x), const B134 ideal-int
++pkg syscall (linux-s390x), const B1500000 = 4106
++pkg syscall (linux-s390x), const B1500000 ideal-int
++pkg syscall (linux-s390x), const B150 = 5
++pkg syscall (linux-s390x), const B150 ideal-int
++pkg syscall (linux-s390x), const B1800 = 10
++pkg syscall (linux-s390x), const B1800 ideal-int
++pkg syscall (linux-s390x), const B19200 = 14
++pkg syscall (linux-s390x), const B19200 ideal-int
++pkg syscall (linux-s390x), const B2000000 = 4107
++pkg syscall (linux-s390x), const B2000000 ideal-int
++pkg syscall (linux-s390x), const B200 = 6
++pkg syscall (linux-s390x), const B200 ideal-int
++pkg syscall (linux-s390x), const B230400 = 4099
++pkg syscall (linux-s390x), const B230400 ideal-int
++pkg syscall (linux-s390x), const B2400 = 11
++pkg syscall (linux-s390x), const B2400 ideal-int
++pkg syscall (linux-s390x), const B2500000 = 4108
++pkg syscall (linux-s390x), const B2500000 ideal-int
++pkg syscall (linux-s390x), const B3000000 = 4109
++pkg syscall (linux-s390x), const B3000000 ideal-int
++pkg syscall (linux-s390x), const B300 = 7
++pkg syscall (linux-s390x), const B300 ideal-int
++pkg syscall (linux-s390x), const B3500000 = 4110
++pkg syscall (linux-s390x), const B3500000 ideal-int
++pkg syscall (linux-s390x), const B38400 = 15
++pkg syscall (linux-s390x), const B38400 ideal-int
++pkg syscall (linux-s390x), const B4000000 = 4111
++pkg syscall (linux-s390x), const B4000000 ideal-int
++pkg syscall (linux-s390x), const B460800 = 4100
++pkg syscall (linux-s390x), const B460800 ideal-int
++pkg syscall (linux-s390x), const B4800 = 12
++pkg syscall (linux-s390x), const B4800 ideal-int
++pkg syscall (linux-s390x), const B500000 = 4101
++pkg syscall (linux-s390x), const B500000 ideal-int
++pkg syscall (linux-s390x), const B50 = 1
++pkg syscall (linux-s390x), const B50 ideal-int
++pkg syscall (linux-s390x), const B576000 = 4102
++pkg syscall (linux-s390x), const B576000 ideal-int
++pkg syscall (linux-s390x), const B57600 = 4097
++pkg syscall (linux-s390x), const B57600 ideal-int
++pkg syscall (linux-s390x), const B600 = 8
++pkg syscall (linux-s390x), const B600 ideal-int
++pkg syscall (linux-s390x), const B75 = 2
++pkg syscall (linux-s390x), const B75 ideal-int
++pkg syscall (linux-s390x), const B921600 = 4103
++pkg syscall (linux-s390x), const B921600 ideal-int
++pkg syscall (linux-s390x), const B9600 = 13
++pkg syscall (linux-s390x), const B9600 ideal-int
++pkg syscall (linux-s390x), const BPF_A = 16
++pkg syscall (linux-s390x), const BPF_ABS = 32
++pkg syscall (linux-s390x), const BPF_ABS ideal-int
++pkg syscall (linux-s390x), const BPF_ADD = 0
++pkg syscall (linux-s390x), const BPF_ADD ideal-int
++pkg syscall (linux-s390x), const BPF_A ideal-int
++pkg syscall (linux-s390x), const BPF_ALU = 4
++pkg syscall (linux-s390x), const BPF_ALU ideal-int
++pkg syscall (linux-s390x), const BPF_AND = 80
++pkg syscall (linux-s390x), const BPF_AND ideal-int
++pkg syscall (linux-s390x), const BPF_B = 16
++pkg syscall (linux-s390x), const BPF_B ideal-int
++pkg syscall (linux-s390x), const BPF_DIV = 48
++pkg syscall (linux-s390x), const BPF_DIV ideal-int
++pkg syscall (linux-s390x), const BPF_H = 8
++pkg syscall (linux-s390x), const BPF_H ideal-int
++pkg syscall (linux-s390x), const BPF_IMM = 0
++pkg syscall (linux-s390x), const BPF_IMM ideal-int
++pkg syscall (linux-s390x), const BPF_IND = 64
++pkg syscall (linux-s390x), const BPF_IND ideal-int
++pkg syscall (linux-s390x), const BPF_JA = 0
++pkg syscall (linux-s390x), const BPF_JA ideal-int
++pkg syscall (linux-s390x), const BPF_JEQ = 16
++pkg syscall (linux-s390x), const BPF_JEQ ideal-int
++pkg syscall (linux-s390x), const BPF_JGE = 48
++pkg syscall (linux-s390x), const BPF_JGE ideal-int
++pkg syscall (linux-s390x), const BPF_JGT = 32
++pkg syscall (linux-s390x), const BPF_JGT ideal-int
++pkg syscall (linux-s390x), const BPF_JMP = 5
++pkg syscall (linux-s390x), const BPF_JMP ideal-int
++pkg syscall (linux-s390x), const BPF_JSET = 64
++pkg syscall (linux-s390x), const BPF_JSET ideal-int
++pkg syscall (linux-s390x), const BPF_K = 0
++pkg syscall (linux-s390x), const BPF_K ideal-int
++pkg syscall (linux-s390x), const BPF_LD = 0
++pkg syscall (linux-s390x), const BPF_LD ideal-int
++pkg syscall (linux-s390x), const BPF_LDX = 1
++pkg syscall (linux-s390x), const BPF_LDX ideal-int
++pkg syscall (linux-s390x), const BPF_LEN = 128
++pkg syscall (linux-s390x), const BPF_LEN ideal-int
++pkg syscall (linux-s390x), const BPF_LSH = 96
++pkg syscall (linux-s390x), const BPF_LSH ideal-int
++pkg syscall (linux-s390x), const BPF_MAJOR_VERSION = 1
++pkg syscall (linux-s390x), const BPF_MAJOR_VERSION ideal-int
++pkg syscall (linux-s390x), const BPF_MAXINSNS = 4096
++pkg syscall (linux-s390x), const BPF_MAXINSNS ideal-int
++pkg syscall (linux-s390x), const BPF_MEM = 96
++pkg syscall (linux-s390x), const BPF_MEM ideal-int
++pkg syscall (linux-s390x), const BPF_MEMWORDS = 16
++pkg syscall (linux-s390x), const BPF_MEMWORDS ideal-int
++pkg syscall (linux-s390x), const BPF_MINOR_VERSION = 1
++pkg syscall (linux-s390x), const BPF_MINOR_VERSION ideal-int
++pkg syscall (linux-s390x), const BPF_MISC = 7
++pkg syscall (linux-s390x), const BPF_MISC ideal-int
++pkg syscall (linux-s390x), const BPF_MOD = 144
++pkg syscall (linux-s390x), const BPF_MOD ideal-int
++pkg syscall (linux-s390x), const BPF_MSH = 160
++pkg syscall (linux-s390x), const BPF_MSH ideal-int
++pkg syscall (linux-s390x), const BPF_MUL = 32
++pkg syscall (linux-s390x), const BPF_MUL ideal-int
++pkg syscall (linux-s390x), const BPF_NEG = 128
++pkg syscall (linux-s390x), const BPF_NEG ideal-int
++pkg syscall (linux-s390x), const BPF_OR = 64
++pkg syscall (linux-s390x), const BPF_OR ideal-int
++pkg syscall (linux-s390x), const BPF_RET = 6
++pkg syscall (linux-s390x), const BPF_RET ideal-int
++pkg syscall (linux-s390x), const BPF_RSH = 112
++pkg syscall (linux-s390x), const BPF_RSH ideal-int
++pkg syscall (linux-s390x), const BPF_ST = 2
++pkg syscall (linux-s390x), const BPF_ST ideal-int
++pkg syscall (linux-s390x), const BPF_STX = 3
++pkg syscall (linux-s390x), const BPF_STX ideal-int
++pkg syscall (linux-s390x), const BPF_SUB = 16
++pkg syscall (linux-s390x), const BPF_SUB ideal-int
++pkg syscall (linux-s390x), const BPF_TAX = 0
++pkg syscall (linux-s390x), const BPF_TAX ideal-int
++pkg syscall (linux-s390x), const BPF_TXA = 128
++pkg syscall (linux-s390x), const BPF_TXA ideal-int
++pkg syscall (linux-s390x), const BPF_W = 0
++pkg syscall (linux-s390x), const BPF_W ideal-int
++pkg syscall (linux-s390x), const BPF_X = 8
++pkg syscall (linux-s390x), const BPF_X ideal-int
++pkg syscall (linux-s390x), const BPF_XOR = 160
++pkg syscall (linux-s390x), const BPF_XOR ideal-int
++pkg syscall (linux-s390x), const BRKINT = 2
++pkg syscall (linux-s390x), const BRKINT ideal-int
++pkg syscall (linux-s390x), const CFLUSH = 15
++pkg syscall (linux-s390x), const CFLUSH ideal-int
++pkg syscall (linux-s390x), const CLOCAL = 2048
++pkg syscall (linux-s390x), const CLOCAL ideal-int
++pkg syscall (linux-s390x), const CLONE_CHILD_CLEARTID = 2097152
++pkg syscall (linux-s390x), const CLONE_CHILD_CLEARTID ideal-int
++pkg syscall (linux-s390x), const CLONE_CHILD_SETTID = 16777216
++pkg syscall (linux-s390x), const CLONE_CHILD_SETTID ideal-int
++pkg syscall (linux-s390x), const CLONE_DETACHED = 4194304
++pkg syscall (linux-s390x), const CLONE_DETACHED ideal-int
++pkg syscall (linux-s390x), const CLONE_FILES = 1024
++pkg syscall (linux-s390x), const CLONE_FILES ideal-int
++pkg syscall (linux-s390x), const CLONE_FS = 512
++pkg syscall (linux-s390x), const CLONE_FS ideal-int
++pkg syscall (linux-s390x), const CLONE_IO = 2147483648
++pkg syscall (linux-s390x), const CLONE_IO ideal-int
++pkg syscall (linux-s390x), const CLONE_NEWIPC = 134217728
++pkg syscall (linux-s390x), const CLONE_NEWIPC ideal-int
++pkg syscall (linux-s390x), const CLONE_NEWNET = 1073741824
++pkg syscall (linux-s390x), const CLONE_NEWNET ideal-int
++pkg syscall (linux-s390x), const CLONE_NEWNS = 131072
++pkg syscall (linux-s390x), const CLONE_NEWNS ideal-int
++pkg syscall (linux-s390x), const CLONE_NEWPID = 536870912
++pkg syscall (linux-s390x), const CLONE_NEWPID ideal-int
++pkg syscall (linux-s390x), const CLONE_NEWUSER = 268435456
++pkg syscall (linux-s390x), const CLONE_NEWUSER ideal-int
++pkg syscall (linux-s390x), const CLONE_NEWUTS = 67108864
++pkg syscall (linux-s390x), const CLONE_NEWUTS ideal-int
++pkg syscall (linux-s390x), const CLONE_PARENT = 32768
++pkg syscall (linux-s390x), const CLONE_PARENT ideal-int
++pkg syscall (linux-s390x), const CLONE_PARENT_SETTID = 1048576
++pkg syscall (linux-s390x), const CLONE_PARENT_SETTID ideal-int
++pkg syscall (linux-s390x), const CLONE_PTRACE = 8192
++pkg syscall (linux-s390x), const CLONE_PTRACE ideal-int
++pkg syscall (linux-s390x), const CLONE_SETTLS = 524288
++pkg syscall (linux-s390x), const CLONE_SETTLS ideal-int
++pkg syscall (linux-s390x), const CLONE_SIGHAND = 2048
++pkg syscall (linux-s390x), const CLONE_SIGHAND ideal-int
++pkg syscall (linux-s390x), const CLONE_SYSVSEM = 262144
++pkg syscall (linux-s390x), const CLONE_SYSVSEM ideal-int
++pkg syscall (linux-s390x), const CLONE_THREAD = 65536
++pkg syscall (linux-s390x), const CLONE_THREAD ideal-int
++pkg syscall (linux-s390x), const CLONE_UNTRACED = 8388608
++pkg syscall (linux-s390x), const CLONE_UNTRACED ideal-int
++pkg syscall (linux-s390x), const CLONE_VFORK = 16384
++pkg syscall (linux-s390x), const CLONE_VFORK ideal-int
++pkg syscall (linux-s390x), const CLONE_VM = 256
++pkg syscall (linux-s390x), const CLONE_VM ideal-int
++pkg syscall (linux-s390x), const CREAD = 128
++pkg syscall (linux-s390x), const CREAD ideal-int
++pkg syscall (linux-s390x), const CS5 = 0
++pkg syscall (linux-s390x), const CS5 ideal-int
++pkg syscall (linux-s390x), const CS6 = 16
++pkg syscall (linux-s390x), const CS6 ideal-int
++pkg syscall (linux-s390x), const CS7 = 32
++pkg syscall (linux-s390x), const CS7 ideal-int
++pkg syscall (linux-s390x), const CS8 = 48
++pkg syscall (linux-s390x), const CS8 ideal-int
++pkg syscall (linux-s390x), const CSIGNAL = 255
++pkg syscall (linux-s390x), const CSIGNAL ideal-int
++pkg syscall (linux-s390x), const CSIZE = 48
++pkg syscall (linux-s390x), const CSIZE ideal-int
++pkg syscall (linux-s390x), const CSTART = 17
++pkg syscall (linux-s390x), const CSTART ideal-int
++pkg syscall (linux-s390x), const CSTATUS = 0
++pkg syscall (linux-s390x), const CSTATUS ideal-int
++pkg syscall (linux-s390x), const CSTOP = 19
++pkg syscall (linux-s390x), const CSTOPB = 64
++pkg syscall (linux-s390x), const CSTOPB ideal-int
++pkg syscall (linux-s390x), const CSTOP ideal-int
++pkg syscall (linux-s390x), const CSUSP = 26
++pkg syscall (linux-s390x), const CSUSP ideal-int
++pkg syscall (linux-s390x), const DT_BLK = 6
++pkg syscall (linux-s390x), const DT_BLK ideal-int
++pkg syscall (linux-s390x), const DT_CHR = 2
++pkg syscall (linux-s390x), const DT_CHR ideal-int
++pkg syscall (linux-s390x), const DT_DIR = 4
++pkg syscall (linux-s390x), const DT_DIR ideal-int
++pkg syscall (linux-s390x), const DT_FIFO = 1
++pkg syscall (linux-s390x), const DT_FIFO ideal-int
++pkg syscall (linux-s390x), const DT_LNK = 10
++pkg syscall (linux-s390x), const DT_LNK ideal-int
++pkg syscall (linux-s390x), const DT_REG = 8
++pkg syscall (linux-s390x), const DT_REG ideal-int
++pkg syscall (linux-s390x), const DT_SOCK = 12
++pkg syscall (linux-s390x), const DT_SOCK ideal-int
++pkg syscall (linux-s390x), const DT_UNKNOWN = 0
++pkg syscall (linux-s390x), const DT_UNKNOWN ideal-int
++pkg syscall (linux-s390x), const DT_WHT = 14
++pkg syscall (linux-s390x), const DT_WHT ideal-int
++pkg syscall (linux-s390x), const E2BIG = 7
++pkg syscall (linux-s390x), const EACCES = 13
++pkg syscall (linux-s390x), const EADDRINUSE = 98
++pkg syscall (linux-s390x), const EADDRNOTAVAIL = 99
++pkg syscall (linux-s390x), const EADV = 68
++pkg syscall (linux-s390x), const EADV Errno
++pkg syscall (linux-s390x), const EAFNOSUPPORT = 97
++pkg syscall (linux-s390x), const EAGAIN = 11
++pkg syscall (linux-s390x), const EALREADY = 114
++pkg syscall (linux-s390x), const EBADE = 52
++pkg syscall (linux-s390x), const EBADE Errno
++pkg syscall (linux-s390x), const EBADF = 9
++pkg syscall (linux-s390x), const EBADFD = 77
++pkg syscall (linux-s390x), const EBADFD Errno
++pkg syscall (linux-s390x), const EBADMSG = 74
++pkg syscall (linux-s390x), const EBADMSG Errno
++pkg syscall (linux-s390x), const EBADR = 53
++pkg syscall (linux-s390x), const EBADR Errno
++pkg syscall (linux-s390x), const EBADRQC = 56
++pkg syscall (linux-s390x), const EBADRQC Errno
++pkg syscall (linux-s390x), const EBADSLT = 57
++pkg syscall (linux-s390x), const EBADSLT Errno
++pkg syscall (linux-s390x), const EBFONT = 59
++pkg syscall (linux-s390x), const EBFONT Errno
++pkg syscall (linux-s390x), const EBUSY = 16
++pkg syscall (linux-s390x), const ECANCELED = 125
++pkg syscall (linux-s390x), const ECHILD = 10
++pkg syscall (linux-s390x), const ECHO = 8
++pkg syscall (linux-s390x), const ECHOCTL = 512
++pkg syscall (linux-s390x), const ECHOCTL ideal-int
++pkg syscall (linux-s390x), const ECHOE = 16
++pkg syscall (linux-s390x), const ECHOE ideal-int
++pkg syscall (linux-s390x), const ECHO ideal-int
++pkg syscall (linux-s390x), const ECHOK = 32
++pkg syscall (linux-s390x), const ECHOKE = 2048
++pkg syscall (linux-s390x), const ECHOKE ideal-int
++pkg syscall (linux-s390x), const ECHOK ideal-int
++pkg syscall (linux-s390x), const ECHONL = 64
++pkg syscall (linux-s390x), const ECHONL ideal-int
++pkg syscall (linux-s390x), const ECHOPRT = 1024
++pkg syscall (linux-s390x), const ECHOPRT ideal-int
++pkg syscall (linux-s390x), const ECHRNG = 44
++pkg syscall (linux-s390x), const ECHRNG Errno
++pkg syscall (linux-s390x), const ECOMM = 70
++pkg syscall (linux-s390x), const ECOMM Errno
++pkg syscall (linux-s390x), const ECONNABORTED = 103
++pkg syscall (linux-s390x), const ECONNREFUSED = 111
++pkg syscall (linux-s390x), const ECONNRESET = 104
++pkg syscall (linux-s390x), const EDEADLK = 35
++pkg syscall (linux-s390x), const EDEADLOCK = 35
++pkg syscall (linux-s390x), const EDEADLOCK Errno
++pkg syscall (linux-s390x), const EDESTADDRREQ = 89
++pkg syscall (linux-s390x), const EDOM = 33
++pkg syscall (linux-s390x), const EDOTDOT = 73
++pkg syscall (linux-s390x), const EDOTDOT Errno
++pkg syscall (linux-s390x), const EDQUOT = 122
++pkg syscall (linux-s390x), const EEXIST = 17
++pkg syscall (linux-s390x), const EFAULT = 14
++pkg syscall (linux-s390x), const EFBIG = 27
++pkg syscall (linux-s390x), const EHOSTDOWN = 112
++pkg syscall (linux-s390x), const EHOSTUNREACH = 113
++pkg syscall (linux-s390x), const EHWPOISON = 133
++pkg syscall (linux-s390x), const EHWPOISON Errno
++pkg syscall (linux-s390x), const EIDRM = 43
++pkg syscall (linux-s390x), const EILSEQ = 84
++pkg syscall (linux-s390x), const EINPROGRESS = 115
++pkg syscall (linux-s390x), const EINTR = 4
++pkg syscall (linux-s390x), const EINVAL = 22
++pkg syscall (linux-s390x), const EIO = 5
++pkg syscall (linux-s390x), const EISCONN = 106
++pkg syscall (linux-s390x), const EISDIR = 21
++pkg syscall (linux-s390x), const EISNAM = 120
++pkg syscall (linux-s390x), const EISNAM Errno
++pkg syscall (linux-s390x), const EKEYEXPIRED = 127
++pkg syscall (linux-s390x), const EKEYEXPIRED Errno
++pkg syscall (linux-s390x), const EKEYREJECTED = 129
++pkg syscall (linux-s390x), const EKEYREJECTED Errno
++pkg syscall (linux-s390x), const EKEYREVOKED = 128
++pkg syscall (linux-s390x), const EKEYREVOKED Errno
++pkg syscall (linux-s390x), const EL2HLT = 51
++pkg syscall (linux-s390x), const EL2HLT Errno
++pkg syscall (linux-s390x), const EL2NSYNC = 45
++pkg syscall (linux-s390x), const EL2NSYNC Errno
++pkg syscall (linux-s390x), const EL3HLT = 46
++pkg syscall (linux-s390x), const EL3HLT Errno
++pkg syscall (linux-s390x), const EL3RST = 47
++pkg syscall (linux-s390x), const EL3RST Errno
++pkg syscall (linux-s390x), const ELIBACC = 79
++pkg syscall (linux-s390x), const ELIBACC Errno
++pkg syscall (linux-s390x), const ELIBBAD = 80
++pkg syscall (linux-s390x), const ELIBBAD Errno
++pkg syscall (linux-s390x), const ELIBEXEC = 83
++pkg syscall (linux-s390x), const ELIBEXEC Errno
++pkg syscall (linux-s390x), const ELIBMAX = 82
++pkg syscall (linux-s390x), const ELIBMAX Errno
++pkg syscall (linux-s390x), const ELIBSCN = 81
++pkg syscall (linux-s390x), const ELIBSCN Errno
++pkg syscall (linux-s390x), const ELNRNG = 48
++pkg syscall (linux-s390x), const ELNRNG Errno
++pkg syscall (linux-s390x), const ELOOP = 40
++pkg syscall (linux-s390x), const EMEDIUMTYPE = 124
++pkg syscall (linux-s390x), const EMEDIUMTYPE Errno
++pkg syscall (linux-s390x), const EMFILE = 24
++pkg syscall (linux-s390x), const EMLINK = 31
++pkg syscall (linux-s390x), const EMSGSIZE = 90
++pkg syscall (linux-s390x), const EMULTIHOP = 72
++pkg syscall (linux-s390x), const EMULTIHOP Errno
++pkg syscall (linux-s390x), const ENAMETOOLONG = 36
++pkg syscall (linux-s390x), const ENAVAIL = 119
++pkg syscall (linux-s390x), const ENAVAIL Errno
++pkg syscall (linux-s390x), const ENCODING_DEFAULT = 0
++pkg syscall (linux-s390x), const ENCODING_DEFAULT ideal-int
++pkg syscall (linux-s390x), const ENCODING_FM_MARK = 3
++pkg syscall (linux-s390x), const ENCODING_FM_MARK ideal-int
++pkg syscall (linux-s390x), const ENCODING_FM_SPACE = 4
++pkg syscall (linux-s390x), const ENCODING_FM_SPACE ideal-int
++pkg syscall (linux-s390x), const ENCODING_MANCHESTER = 5
++pkg syscall (linux-s390x), const ENCODING_MANCHESTER ideal-int
++pkg syscall (linux-s390x), const ENCODING_NRZ = 1
++pkg syscall (linux-s390x), const ENCODING_NRZI = 2
++pkg syscall (linux-s390x), const ENCODING_NRZ ideal-int
++pkg syscall (linux-s390x), const ENCODING_NRZI ideal-int
++pkg syscall (linux-s390x), const ENETDOWN = 100
++pkg syscall (linux-s390x), const ENETRESET = 102
++pkg syscall (linux-s390x), const ENETUNREACH = 101
++pkg syscall (linux-s390x), const ENFILE = 23
++pkg syscall (linux-s390x), const ENOANO = 55
++pkg syscall (linux-s390x), const ENOANO Errno
++pkg syscall (linux-s390x), const ENOBUFS = 105
++pkg syscall (linux-s390x), const ENOCSI = 50
++pkg syscall (linux-s390x), const ENOCSI Errno
++pkg syscall (linux-s390x), const ENODATA = 61
++pkg syscall (linux-s390x), const ENODATA Errno
++pkg syscall (linux-s390x), const ENODEV = 19
++pkg syscall (linux-s390x), const ENOEXEC = 8
++pkg syscall (linux-s390x), const ENOKEY = 126
++pkg syscall (linux-s390x), const ENOKEY Errno
++pkg syscall (linux-s390x), const ENOLCK = 37
++pkg syscall (linux-s390x), const ENOLINK = 67
++pkg syscall (linux-s390x), const ENOLINK Errno
++pkg syscall (linux-s390x), const ENOMEDIUM = 123
++pkg syscall (linux-s390x), const ENOMEDIUM Errno
++pkg syscall (linux-s390x), const ENOMEM = 12
++pkg syscall (linux-s390x), const ENOMSG = 42
++pkg syscall (linux-s390x), const ENONET = 64
++pkg syscall (linux-s390x), const ENONET Errno
++pkg syscall (linux-s390x), const ENOPKG = 65
++pkg syscall (linux-s390x), const ENOPKG Errno
++pkg syscall (linux-s390x), const ENOPROTOOPT = 92
++pkg syscall (linux-s390x), const ENOSPC = 28
++pkg syscall (linux-s390x), const ENOSR = 63
++pkg syscall (linux-s390x), const ENOSR Errno
++pkg syscall (linux-s390x), const ENOSTR = 60
++pkg syscall (linux-s390x), const ENOSTR Errno
++pkg syscall (linux-s390x), const ENOSYS = 38
++pkg syscall (linux-s390x), const ENOTBLK = 15
++pkg syscall (linux-s390x), const ENOTCONN = 107
++pkg syscall (linux-s390x), const ENOTDIR = 20
++pkg syscall (linux-s390x), const ENOTEMPTY = 39
++pkg syscall (linux-s390x), const ENOTNAM = 118
++pkg syscall (linux-s390x), const ENOTNAM Errno
++pkg syscall (linux-s390x), const ENOTRECOVERABLE = 131
++pkg syscall (linux-s390x), const ENOTRECOVERABLE Errno
++pkg syscall (linux-s390x), const ENOTSOCK = 88
++pkg syscall (linux-s390x), const ENOTSUP = 95
++pkg syscall (linux-s390x), const ENOTTY = 25
++pkg syscall (linux-s390x), const ENOTUNIQ = 76
++pkg syscall (linux-s390x), const ENOTUNIQ Errno
++pkg syscall (linux-s390x), const ENXIO = 6
++pkg syscall (linux-s390x), const EOPNOTSUPP = 95
++pkg syscall (linux-s390x), const EOVERFLOW = 75
++pkg syscall (linux-s390x), const EOWNERDEAD = 130
++pkg syscall (linux-s390x), const EOWNERDEAD Errno
++pkg syscall (linux-s390x), const EPERM = 1
++pkg syscall (linux-s390x), const EPFNOSUPPORT = 96
++pkg syscall (linux-s390x), const EPIPE = 32
++pkg syscall (linux-s390x), const EPOLL_CLOEXEC = 524288
++pkg syscall (linux-s390x), const EPOLL_CLOEXEC ideal-int
++pkg syscall (linux-s390x), const EPOLL_CTL_ADD = 1
++pkg syscall (linux-s390x), const EPOLL_CTL_ADD ideal-int
++pkg syscall (linux-s390x), const EPOLL_CTL_DEL = 2
++pkg syscall (linux-s390x), const EPOLL_CTL_DEL ideal-int
++pkg syscall (linux-s390x), const EPOLL_CTL_MOD = 3
++pkg syscall (linux-s390x), const EPOLL_CTL_MOD ideal-int
++pkg syscall (linux-s390x), const EPOLLERR = 8
++pkg syscall (linux-s390x), const EPOLLERR ideal-int
++pkg syscall (linux-s390x), const EPOLLET = 2147483648
++pkg syscall (linux-s390x), const EPOLLET ideal-int
++pkg syscall (linux-s390x), const EPOLLHUP = 16
++pkg syscall (linux-s390x), const EPOLLHUP ideal-int
++pkg syscall (linux-s390x), const EPOLLIN = 1
++pkg syscall (linux-s390x), const EPOLLIN ideal-int
++pkg syscall (linux-s390x), const EPOLLMSG = 1024
++pkg syscall (linux-s390x), const EPOLLMSG ideal-int
++pkg syscall (linux-s390x), const EPOLL_NONBLOCK = 2048
++pkg syscall (linux-s390x), const EPOLL_NONBLOCK ideal-int
++pkg syscall (linux-s390x), const EPOLLONESHOT = 1073741824
++pkg syscall (linux-s390x), const EPOLLONESHOT ideal-int
++pkg syscall (linux-s390x), const EPOLLOUT = 4
++pkg syscall (linux-s390x), const EPOLLOUT ideal-int
++pkg syscall (linux-s390x), const EPOLLPRI = 2
++pkg syscall (linux-s390x), const EPOLLPRI ideal-int
++pkg syscall (linux-s390x), const EPOLLRDBAND = 128
++pkg syscall (linux-s390x), const EPOLLRDBAND ideal-int
++pkg syscall (linux-s390x), const EPOLLRDHUP = 8192
++pkg syscall (linux-s390x), const EPOLLRDHUP ideal-int
++pkg syscall (linux-s390x), const EPOLLRDNORM = 64
++pkg syscall (linux-s390x), const EPOLLRDNORM ideal-int
++pkg syscall (linux-s390x), const EPOLLWAKEUP = 536870912
++pkg syscall (linux-s390x), const EPOLLWAKEUP ideal-int
++pkg syscall (linux-s390x), const EPOLLWRBAND = 512
++pkg syscall (linux-s390x), const EPOLLWRBAND ideal-int
++pkg syscall (linux-s390x), const EPOLLWRNORM = 256
++pkg syscall (linux-s390x), const EPOLLWRNORM ideal-int
++pkg syscall (linux-s390x), const EPROTO = 71
++pkg syscall (linux-s390x), const EPROTO Errno
++pkg syscall (linux-s390x), const EPROTONOSUPPORT = 93
++pkg syscall (linux-s390x), const EPROTOTYPE = 91
++pkg syscall (linux-s390x), const ERANGE = 34
++pkg syscall (linux-s390x), const EREMCHG = 78
++pkg syscall (linux-s390x), const EREMCHG Errno
++pkg syscall (linux-s390x), const EREMOTE = 66
++pkg syscall (linux-s390x), const EREMOTEIO = 121
++pkg syscall (linux-s390x), const EREMOTEIO Errno
++pkg syscall (linux-s390x), const ERESTART = 85
++pkg syscall (linux-s390x), const ERESTART Errno
++pkg syscall (linux-s390x), const ERFKILL = 132
++pkg syscall (linux-s390x), const ERFKILL Errno
++pkg syscall (linux-s390x), const EROFS = 30
++pkg syscall (linux-s390x), const ESHUTDOWN = 108
++pkg syscall (linux-s390x), const ESOCKTNOSUPPORT = 94
++pkg syscall (linux-s390x), const ESPIPE = 29
++pkg syscall (linux-s390x), const ESRCH = 3
++pkg syscall (linux-s390x), const ESRMNT = 69
++pkg syscall (linux-s390x), const ESRMNT Errno
++pkg syscall (linux-s390x), const ESTALE = 116
++pkg syscall (linux-s390x), const ESTRPIPE = 86
++pkg syscall (linux-s390x), const ESTRPIPE Errno
++pkg syscall (linux-s390x), const ETH_P_1588 = 35063
++pkg syscall (linux-s390x), const ETH_P_1588 ideal-int
++pkg syscall (linux-s390x), const ETH_P_8021AD = 34984
++pkg syscall (linux-s390x), const ETH_P_8021AD ideal-int
++pkg syscall (linux-s390x), const ETH_P_8021AH = 35047
++pkg syscall (linux-s390x), const ETH_P_8021AH ideal-int
++pkg syscall (linux-s390x), const ETH_P_8021Q = 33024
++pkg syscall (linux-s390x), const ETH_P_8021Q ideal-int
++pkg syscall (linux-s390x), const ETH_P_80221 = 35095
++pkg syscall (linux-s390x), const ETH_P_80221 ideal-int
++pkg syscall (linux-s390x), const ETH_P_802_2 = 4
++pkg syscall (linux-s390x), const ETH_P_802_2 ideal-int
++pkg syscall (linux-s390x), const ETH_P_802_3 = 1
++pkg syscall (linux-s390x), const ETH_P_802_3 ideal-int
++pkg syscall (linux-s390x), const ETH_P_802_3_MIN = 1536
++pkg syscall (linux-s390x), const ETH_P_802_3_MIN ideal-int
++pkg syscall (linux-s390x), const ETH_P_802_EX1 = 34997
++pkg syscall (linux-s390x), const ETH_P_802_EX1 ideal-int
++pkg syscall (linux-s390x), const ETH_P_AARP = 33011
++pkg syscall (linux-s390x), const ETH_P_AARP ideal-int
++pkg syscall (linux-s390x), const ETH_P_AF_IUCV = 64507
++pkg syscall (linux-s390x), const ETH_P_AF_IUCV ideal-int
++pkg syscall (linux-s390x), const ETH_P_ALL = 3
++pkg syscall (linux-s390x), const ETH_P_ALL ideal-int
++pkg syscall (linux-s390x), const ETH_P_AOE = 34978
++pkg syscall (linux-s390x), const ETH_P_AOE ideal-int
++pkg syscall (linux-s390x), const ETH_P_ARCNET = 26
++pkg syscall (linux-s390x), const ETH_P_ARCNET ideal-int
++pkg syscall (linux-s390x), const ETH_P_ARP = 2054
++pkg syscall (linux-s390x), const ETH_P_ARP ideal-int
++pkg syscall (linux-s390x), const ETH_P_ATALK = 32923
++pkg syscall (linux-s390x), const ETH_P_ATALK ideal-int
++pkg syscall (linux-s390x), const ETH_P_ATMFATE = 34948
++pkg syscall (linux-s390x), const ETH_P_ATMFATE ideal-int
++pkg syscall (linux-s390x), const ETH_P_ATMMPOA = 34892
++pkg syscall (linux-s390x), const ETH_P_ATMMPOA ideal-int
++pkg syscall (linux-s390x), const ETH_P_AX25 = 2
++pkg syscall (linux-s390x), const ETH_P_AX25 ideal-int
++pkg syscall (linux-s390x), const ETH_P_BATMAN = 17157
++pkg syscall (linux-s390x), const ETH_P_BATMAN ideal-int
++pkg syscall (linux-s390x), const ETH_P_BPQ = 2303
++pkg syscall (linux-s390x), const ETH_P_BPQ ideal-int
++pkg syscall (linux-s390x), const ETH_P_CAIF = 247
++pkg syscall (linux-s390x), const ETH_P_CAIF ideal-int
++pkg syscall (linux-s390x), const ETH_P_CAN = 12
++pkg syscall (linux-s390x), const ETH_P_CANFD = 13
++pkg syscall (linux-s390x), const ETH_P_CANFD ideal-int
++pkg syscall (linux-s390x), const ETH_P_CAN ideal-int
++pkg syscall (linux-s390x), const ETH_P_CONTROL = 22
++pkg syscall (linux-s390x), const ETH_P_CONTROL ideal-int
++pkg syscall (linux-s390x), const ETH_P_CUST = 24582
++pkg syscall (linux-s390x), const ETH_P_CUST ideal-int
++pkg syscall (linux-s390x), const ETH_P_DDCMP = 6
++pkg syscall (linux-s390x), const ETH_P_DDCMP ideal-int
++pkg syscall (linux-s390x), const ETH_P_DEC = 24576
++pkg syscall (linux-s390x), const ETH_P_DEC ideal-int
++pkg syscall (linux-s390x), const ETH_P_DIAG = 24581
++pkg syscall (linux-s390x), const ETH_P_DIAG ideal-int
++pkg syscall (linux-s390x), const ETH_P_DNA_DL = 24577
++pkg syscall (linux-s390x), const ETH_P_DNA_DL ideal-int
++pkg syscall (linux-s390x), const ETH_P_DNA_RC = 24578
++pkg syscall (linux-s390x), const ETH_P_DNA_RC ideal-int
++pkg syscall (linux-s390x), const ETH_P_DNA_RT = 24579
++pkg syscall (linux-s390x), const ETH_P_DNA_RT ideal-int
++pkg syscall (linux-s390x), const ETH_P_DSA = 27
++pkg syscall (linux-s390x), const ETH_P_DSA ideal-int
++pkg syscall (linux-s390x), const ETH_P_ECONET = 24
++pkg syscall (linux-s390x), const ETH_P_ECONET ideal-int
++pkg syscall (linux-s390x), const ETH_P_EDSA = 56026
++pkg syscall (linux-s390x), const ETH_P_EDSA ideal-int
++pkg syscall (linux-s390x), const ETH_P_FCOE = 35078
++pkg syscall (linux-s390x), const ETH_P_FCOE ideal-int
++pkg syscall (linux-s390x), const ETH_P_FIP = 35092
++pkg syscall (linux-s390x), const ETH_P_FIP ideal-int
++pkg syscall (linux-s390x), const ETH_P_HDLC = 25
++pkg syscall (linux-s390x), const ETH_P_HDLC ideal-int
++pkg syscall (linux-s390x), const ETH_P_IEEE802154 = 246
++pkg syscall (linux-s390x), const ETH_P_IEEE802154 ideal-int
++pkg syscall (linux-s390x), const ETH_P_IEEEPUP = 2560
++pkg syscall (linux-s390x), const ETH_P_IEEEPUPAT = 2561
++pkg syscall (linux-s390x), const ETH_P_IEEEPUPAT ideal-int
++pkg syscall (linux-s390x), const ETH_P_IEEEPUP ideal-int
++pkg syscall (linux-s390x), const ETH_P_IP = 2048
++pkg syscall (linux-s390x), const ETH_P_IP ideal-int
++pkg syscall (linux-s390x), const ETH_P_IPV6 = 34525
++pkg syscall (linux-s390x), const ETH_P_IPV6 ideal-int
++pkg syscall (linux-s390x), const ETH_P_IPX = 33079
++pkg syscall (linux-s390x), const ETH_P_IPX ideal-int
++pkg syscall (linux-s390x), const ETH_P_IRDA = 23
++pkg syscall (linux-s390x), const ETH_P_IRDA ideal-int
++pkg syscall (linux-s390x), const ETH_P_LAT = 24580
++pkg syscall (linux-s390x), const ETH_P_LAT ideal-int
++pkg syscall (linux-s390x), const ETH_P_LINK_CTL = 34924
++pkg syscall (linux-s390x), const ETH_P_LINK_CTL ideal-int
++pkg syscall (linux-s390x), const ETH_P_LOCALTALK = 9
++pkg syscall (linux-s390x), const ETH_P_LOCALTALK ideal-int
++pkg syscall (linux-s390x), const ETH_P_LOOP = 96
++pkg syscall (linux-s390x), const ETH_P_LOOP ideal-int
++pkg syscall (linux-s390x), const ETH_P_MOBITEX = 21
++pkg syscall (linux-s390x), const ETH_P_MOBITEX ideal-int
++pkg syscall (linux-s390x), const ETH_P_MPLS_MC = 34888
++pkg syscall (linux-s390x), const ETH_P_MPLS_MC ideal-int
++pkg syscall (linux-s390x), const ETH_P_MPLS_UC = 34887
++pkg syscall (linux-s390x), const ETH_P_MPLS_UC ideal-int
++pkg syscall (linux-s390x), const ETH_P_MVRP = 35061
++pkg syscall (linux-s390x), const ETH_P_MVRP ideal-int
++pkg syscall (linux-s390x), const ETH_P_PAE = 34958
++pkg syscall (linux-s390x), const ETH_P_PAE ideal-int
++pkg syscall (linux-s390x), const ETH_P_PAUSE = 34824
++pkg syscall (linux-s390x), const ETH_P_PAUSE ideal-int
++pkg syscall (linux-s390x), const ETH_P_PHONET = 245
++pkg syscall (linux-s390x), const ETH_P_PHONET ideal-int
++pkg syscall (linux-s390x), const ETH_P_PPP_DISC = 34915
++pkg syscall (linux-s390x), const ETH_P_PPP_DISC ideal-int
++pkg syscall (linux-s390x), const ETH_P_PPP_MP = 8
++pkg syscall (linux-s390x), const ETH_P_PPP_MP ideal-int
++pkg syscall (linux-s390x), const ETH_P_PPP_SES = 34916
++pkg syscall (linux-s390x), const ETH_P_PPP_SES ideal-int
++pkg syscall (linux-s390x), const ETH_P_PPPTALK = 16
++pkg syscall (linux-s390x), const ETH_P_PPPTALK ideal-int
++pkg syscall (linux-s390x), const ETH_P_PUP = 512
++pkg syscall (linux-s390x), const ETH_P_PUPAT = 513
++pkg syscall (linux-s390x), const ETH_P_PUPAT ideal-int
++pkg syscall (linux-s390x), const ETH_P_PUP ideal-int
++pkg syscall (linux-s390x), const ETH_P_QINQ1 = 37120
++pkg syscall (linux-s390x), const ETH_P_QINQ1 ideal-int
++pkg syscall (linux-s390x), const ETH_P_QINQ2 = 37376
++pkg syscall (linux-s390x), const ETH_P_QINQ2 ideal-int
++pkg syscall (linux-s390x), const ETH_P_QINQ3 = 37632
++pkg syscall (linux-s390x), const ETH_P_QINQ3 ideal-int
++pkg syscall (linux-s390x), const ETH_P_RARP = 32821
++pkg syscall (linux-s390x), const ETH_P_RARP ideal-int
++pkg syscall (linux-s390x), const ETH_P_SCA = 24583
++pkg syscall (linux-s390x), const ETH_P_SCA ideal-int
++pkg syscall (linux-s390x), const ETH_P_SLOW = 34825
++pkg syscall (linux-s390x), const ETH_P_SLOW ideal-int
++pkg syscall (linux-s390x), const ETH_P_SNAP = 5
++pkg syscall (linux-s390x), const ETH_P_SNAP ideal-int
++pkg syscall (linux-s390x), const ETH_P_TDLS = 35085
++pkg syscall (linux-s390x), const ETH_P_TDLS ideal-int
++pkg syscall (linux-s390x), const ETH_P_TEB = 25944
++pkg syscall (linux-s390x), const ETH_P_TEB ideal-int
++pkg syscall (linux-s390x), const ETH_P_TIPC = 35018
++pkg syscall (linux-s390x), const ETH_P_TIPC ideal-int
++pkg syscall (linux-s390x), const ETH_P_TR_802_2 = 17
++pkg syscall (linux-s390x), const ETH_P_TR_802_2 ideal-int
++pkg syscall (linux-s390x), const ETH_P_TRAILER = 28
++pkg syscall (linux-s390x), const ETH_P_TRAILER ideal-int
++pkg syscall (linux-s390x), const ETH_P_WAN_PPP = 7
++pkg syscall (linux-s390x), const ETH_P_WAN_PPP ideal-int
++pkg syscall (linux-s390x), const ETH_P_WCCP = 34878
++pkg syscall (linux-s390x), const ETH_P_WCCP ideal-int
++pkg syscall (linux-s390x), const ETH_P_X25 = 2053
++pkg syscall (linux-s390x), const ETH_P_X25 ideal-int
++pkg syscall (linux-s390x), const ETIME = 62
++pkg syscall (linux-s390x), const ETIMEDOUT = 110
++pkg syscall (linux-s390x), const ETIME Errno
++pkg syscall (linux-s390x), const ETOOMANYREFS = 109
++pkg syscall (linux-s390x), const ETXTBSY = 26
++pkg syscall (linux-s390x), const EUCLEAN = 117
++pkg syscall (linux-s390x), const EUCLEAN Errno
++pkg syscall (linux-s390x), const EUNATCH = 49
++pkg syscall (linux-s390x), const EUNATCH Errno
++pkg syscall (linux-s390x), const EUSERS = 87
++pkg syscall (linux-s390x), const EWOULDBLOCK = 11
++pkg syscall (linux-s390x), const EXDEV = 18
++pkg syscall (linux-s390x), const EXFULL = 54
++pkg syscall (linux-s390x), const EXFULL Errno
++pkg syscall (linux-s390x), const EXTA = 14
++pkg syscall (linux-s390x), const EXTA ideal-int
++pkg syscall (linux-s390x), const EXTB = 15
++pkg syscall (linux-s390x), const EXTB ideal-int
++pkg syscall (linux-s390x), const EXTPROC = 65536
++pkg syscall (linux-s390x), const EXTPROC ideal-int
++pkg syscall (linux-s390x), const FD_CLOEXEC = 1
++pkg syscall (linux-s390x), const FD_CLOEXEC ideal-int
++pkg syscall (linux-s390x), const FD_SETSIZE = 1024
++pkg syscall (linux-s390x), const FD_SETSIZE ideal-int
++pkg syscall (linux-s390x), const F_DUPFD = 0
++pkg syscall (linux-s390x), const F_DUPFD_CLOEXEC = 1030
++pkg syscall (linux-s390x), const F_DUPFD_CLOEXEC ideal-int
++pkg syscall (linux-s390x), const F_DUPFD ideal-int
++pkg syscall (linux-s390x), const F_EXLCK = 4
++pkg syscall (linux-s390x), const F_EXLCK ideal-int
++pkg syscall (linux-s390x), const F_GETFD = 1
++pkg syscall (linux-s390x), const F_GETFD ideal-int
++pkg syscall (linux-s390x), const F_GETFL = 3
++pkg syscall (linux-s390x), const F_GETFL ideal-int
++pkg syscall (linux-s390x), const F_GETLEASE = 1025
++pkg syscall (linux-s390x), const F_GETLEASE ideal-int
++pkg syscall (linux-s390x), const F_GETLK = 5
++pkg syscall (linux-s390x), const F_GETLK64 = 5
++pkg syscall (linux-s390x), const F_GETLK64 ideal-int
++pkg syscall (linux-s390x), const F_GETLK ideal-int
++pkg syscall (linux-s390x), const F_GETOWN = 9
++pkg syscall (linux-s390x), const F_GETOWN_EX = 16
++pkg syscall (linux-s390x), const F_GETOWN_EX ideal-int
++pkg syscall (linux-s390x), const F_GETOWN ideal-int
++pkg syscall (linux-s390x), const F_GETPIPE_SZ = 1032
++pkg syscall (linux-s390x), const F_GETPIPE_SZ ideal-int
++pkg syscall (linux-s390x), const F_GETSIG = 11
++pkg syscall (linux-s390x), const F_GETSIG ideal-int
++pkg syscall (linux-s390x), const F_LOCK = 1
++pkg syscall (linux-s390x), const F_LOCK ideal-int
++pkg syscall (linux-s390x), const FLUSHO = 4096
++pkg syscall (linux-s390x), const FLUSHO ideal-int
++pkg syscall (linux-s390x), const F_NOTIFY = 1026
++pkg syscall (linux-s390x), const F_NOTIFY ideal-int
++pkg syscall (linux-s390x), const F_OK = 0
++pkg syscall (linux-s390x), const F_OK ideal-int
++pkg syscall (linux-s390x), const F_RDLCK = 0
++pkg syscall (linux-s390x), const F_RDLCK ideal-int
++pkg syscall (linux-s390x), const F_SETFD = 2
++pkg syscall (linux-s390x), const F_SETFD ideal-int
++pkg syscall (linux-s390x), const F_SETFL = 4
++pkg syscall (linux-s390x), const F_SETFL ideal-int
++pkg syscall (linux-s390x), const F_SETLEASE = 1024
++pkg syscall (linux-s390x), const F_SETLEASE ideal-int
++pkg syscall (linux-s390x), const F_SETLK = 6
++pkg syscall (linux-s390x), const F_SETLK64 = 6
++pkg syscall (linux-s390x), const F_SETLK64 ideal-int
++pkg syscall (linux-s390x), const F_SETLK ideal-int
++pkg syscall (linux-s390x), const F_SETLKW64 = 7
++pkg syscall (linux-s390x), const F_SETLKW64 ideal-int
++pkg syscall (linux-s390x), const F_SETLKW = 7
++pkg syscall (linux-s390x), const F_SETLKW ideal-int
++pkg syscall (linux-s390x), const F_SETOWN = 8
++pkg syscall (linux-s390x), const F_SETOWN_EX = 15
++pkg syscall (linux-s390x), const F_SETOWN_EX ideal-int
++pkg syscall (linux-s390x), const F_SETOWN ideal-int
++pkg syscall (linux-s390x), const F_SETPIPE_SZ = 1031
++pkg syscall (linux-s390x), const F_SETPIPE_SZ ideal-int
++pkg syscall (linux-s390x), const F_SETSIG = 10
++pkg syscall (linux-s390x), const F_SETSIG ideal-int
++pkg syscall (linux-s390x), const F_SHLCK = 8
++pkg syscall (linux-s390x), const F_SHLCK ideal-int
++pkg syscall (linux-s390x), const F_TEST = 3
++pkg syscall (linux-s390x), const F_TEST ideal-int
++pkg syscall (linux-s390x), const F_TLOCK = 2
++pkg syscall (linux-s390x), const F_TLOCK ideal-int
++pkg syscall (linux-s390x), const F_ULOCK = 0
++pkg syscall (linux-s390x), const F_ULOCK ideal-int
++pkg syscall (linux-s390x), const F_UNLCK = 2
++pkg syscall (linux-s390x), const F_UNLCK ideal-int
++pkg syscall (linux-s390x), const F_WRLCK = 1
++pkg syscall (linux-s390x), const F_WRLCK ideal-int
++pkg syscall (linux-s390x), const HUPCL = 1024
++pkg syscall (linux-s390x), const HUPCL ideal-int
++pkg syscall (linux-s390x), const ICANON = 2
++pkg syscall (linux-s390x), const ICANON ideal-int
++pkg syscall (linux-s390x), const ICMPV6_FILTER = 1
++pkg syscall (linux-s390x), const ICMPV6_FILTER ideal-int
++pkg syscall (linux-s390x), const ICRNL = 256
++pkg syscall (linux-s390x), const ICRNL ideal-int
++pkg syscall (linux-s390x), const IEXTEN = 32768
++pkg syscall (linux-s390x), const IEXTEN ideal-int
++pkg syscall (linux-s390x), const IFA_ADDRESS = 1
++pkg syscall (linux-s390x), const IFA_ADDRESS ideal-int
++pkg syscall (linux-s390x), const IFA_ANYCAST = 5
++pkg syscall (linux-s390x), const IFA_ANYCAST ideal-int
++pkg syscall (linux-s390x), const IFA_BROADCAST = 4
++pkg syscall (linux-s390x), const IFA_BROADCAST ideal-int
++pkg syscall (linux-s390x), const IFA_CACHEINFO = 6
++pkg syscall (linux-s390x), const IFA_CACHEINFO ideal-int
++pkg syscall (linux-s390x), const IFA_F_DADFAILED = 8
++pkg syscall (linux-s390x), const IFA_F_DADFAILED ideal-int
++pkg syscall (linux-s390x), const IFA_F_DEPRECATED = 32
++pkg syscall (linux-s390x), const IFA_F_DEPRECATED ideal-int
++pkg syscall (linux-s390x), const IFA_F_HOMEADDRESS = 16
++pkg syscall (linux-s390x), const IFA_F_HOMEADDRESS ideal-int
++pkg syscall (linux-s390x), const IFA_F_MANAGETEMPADDR = 256
++pkg syscall (linux-s390x), const IFA_F_MANAGETEMPADDR ideal-int
++pkg syscall (linux-s390x), const IFA_F_NODAD = 2
++pkg syscall (linux-s390x), const IFA_F_NODAD ideal-int
++pkg syscall (linux-s390x), const IFA_F_NOPREFIXROUTE = 512
++pkg syscall (linux-s390x), const IFA_F_NOPREFIXROUTE ideal-int
++pkg syscall (linux-s390x), const IFA_F_OPTIMISTIC = 4
++pkg syscall (linux-s390x), const IFA_F_OPTIMISTIC ideal-int
++pkg syscall (linux-s390x), const IFA_F_PERMANENT = 128
++pkg syscall (linux-s390x), const IFA_F_PERMANENT ideal-int
++pkg syscall (linux-s390x), const IFA_F_SECONDARY = 1
++pkg syscall (linux-s390x), const IFA_F_SECONDARY ideal-int
++pkg syscall (linux-s390x), const IFA_F_TEMPORARY = 1
++pkg syscall (linux-s390x), const IFA_F_TEMPORARY ideal-int
++pkg syscall (linux-s390x), const IFA_F_TENTATIVE = 64
++pkg syscall (linux-s390x), const IFA_F_TENTATIVE ideal-int
++pkg syscall (linux-s390x), const IFA_LABEL = 3
++pkg syscall (linux-s390x), const IFA_LABEL ideal-int
++pkg syscall (linux-s390x), const IFA_LOCAL = 2
++pkg syscall (linux-s390x), const IFA_LOCAL ideal-int
++pkg syscall (linux-s390x), const IFA_MAX = 8
++pkg syscall (linux-s390x), const IFA_MAX ideal-int
++pkg syscall (linux-s390x), const IFA_MULTICAST = 7
++pkg syscall (linux-s390x), const IFA_MULTICAST ideal-int
++pkg syscall (linux-s390x), const IFA_UNSPEC = 0
++pkg syscall (linux-s390x), const IFA_UNSPEC ideal-int
++pkg syscall (linux-s390x), const IFF_802_1Q_VLAN = 1
++pkg syscall (linux-s390x), const IFF_802_1Q_VLAN ideal-int
++pkg syscall (linux-s390x), const IFF_ALLMULTI = 512
++pkg syscall (linux-s390x), const IFF_ALLMULTI ideal-int
++pkg syscall (linux-s390x), const IFF_ATTACH_QUEUE = 512
++pkg syscall (linux-s390x), const IFF_ATTACH_QUEUE ideal-int
++pkg syscall (linux-s390x), const IFF_AUTOMEDIA = 16384
++pkg syscall (linux-s390x), const IFF_AUTOMEDIA ideal-int
++pkg syscall (linux-s390x), const IFF_BONDING = 32
++pkg syscall (linux-s390x), const IFF_BONDING ideal-int
++pkg syscall (linux-s390x), const IFF_BRIDGE_PORT = 16384
++pkg syscall (linux-s390x), const IFF_BRIDGE_PORT ideal-int
++pkg syscall (linux-s390x), const IFF_DEBUG = 4
++pkg syscall (linux-s390x), const IFF_DEBUG ideal-int
++pkg syscall (linux-s390x), const IFF_DETACH_QUEUE = 1024
++pkg syscall (linux-s390x), const IFF_DETACH_QUEUE ideal-int
++pkg syscall (linux-s390x), const IFF_DISABLE_NETPOLL = 4096
++pkg syscall (linux-s390x), const IFF_DISABLE_NETPOLL ideal-int
++pkg syscall (linux-s390x), const IFF_DONT_BRIDGE = 2048
++pkg syscall (linux-s390x), const IFF_DONT_BRIDGE ideal-int
++pkg syscall (linux-s390x), const IFF_DORMANT = 131072
++pkg syscall (linux-s390x), const IFF_DORMANT ideal-int
++pkg syscall (linux-s390x), const IFF_DYNAMIC = 32768
++pkg syscall (linux-s390x), const IFF_DYNAMIC ideal-int
++pkg syscall (linux-s390x), const IFF_EBRIDGE = 2
++pkg syscall (linux-s390x), const IFF_EBRIDGE ideal-int
++pkg syscall (linux-s390x), const IFF_ECHO = 262144
++pkg syscall (linux-s390x), const IFF_ECHO ideal-int
++pkg syscall (linux-s390x), const IFF_ISATAP = 128
++pkg syscall (linux-s390x), const IFF_ISATAP ideal-int
++pkg syscall (linux-s390x), const IFF_LIVE_ADDR_CHANGE = 1048576
++pkg syscall (linux-s390x), const IFF_LIVE_ADDR_CHANGE ideal-int
++pkg syscall (linux-s390x), const IFF_LOOPBACK = 8
++pkg syscall (linux-s390x), const IFF_LOWER_UP = 65536
++pkg syscall (linux-s390x), const IFF_LOWER_UP ideal-int
++pkg syscall (linux-s390x), const IFF_MACVLAN_PORT = 8192
++pkg syscall (linux-s390x), const IFF_MACVLAN_PORT ideal-int
++pkg syscall (linux-s390x), const IFF_MASTER = 1024
++pkg syscall (linux-s390x), const IFF_MASTER_8023AD = 8
++pkg syscall (linux-s390x), const IFF_MASTER_8023AD ideal-int
++pkg syscall (linux-s390x), const IFF_MASTER_ALB = 16
++pkg syscall (linux-s390x), const IFF_MASTER_ALB ideal-int
++pkg syscall (linux-s390x), const IFF_MASTER_ARPMON = 256
++pkg syscall (linux-s390x), const IFF_MASTER_ARPMON ideal-int
++pkg syscall (linux-s390x), const IFF_MASTER ideal-int
++pkg syscall (linux-s390x), const IFF_MULTICAST = 4096
++pkg syscall (linux-s390x), const IFF_MULTI_QUEUE = 256
++pkg syscall (linux-s390x), const IFF_MULTI_QUEUE ideal-int
++pkg syscall (linux-s390x), const IFF_NOARP = 128
++pkg syscall (linux-s390x), const IFF_NOARP ideal-int
++pkg syscall (linux-s390x), const IFF_NO_PI = 4096
++pkg syscall (linux-s390x), const IFF_NO_PI ideal-int
++pkg syscall (linux-s390x), const IFF_NOTRAILERS = 32
++pkg syscall (linux-s390x), const IFF_NOTRAILERS ideal-int
++pkg syscall (linux-s390x), const IFF_ONE_QUEUE = 8192
++pkg syscall (linux-s390x), const IFF_ONE_QUEUE ideal-int
++pkg syscall (linux-s390x), const IFF_OVS_DATAPATH = 32768
++pkg syscall (linux-s390x), const IFF_OVS_DATAPATH ideal-int
++pkg syscall (linux-s390x), const IFF_POINTOPOINT = 16
++pkg syscall (linux-s390x), const IFF_POINTOPOINT ideal-int
++pkg syscall (linux-s390x), const IFF_PORTSEL = 8192
++pkg syscall (linux-s390x), const IFF_PORTSEL ideal-int
++pkg syscall (linux-s390x), const IFF_PROMISC = 256
++pkg syscall (linux-s390x), const IFF_PROMISC ideal-int
++pkg syscall (linux-s390x), const IFF_RUNNING = 64
++pkg syscall (linux-s390x), const IFF_RUNNING ideal-int
++pkg syscall (linux-s390x), const IFF_SLAVE = 2048
++pkg syscall (linux-s390x), const IFF_SLAVE ideal-int
++pkg syscall (linux-s390x), const IFF_SLAVE_INACTIVE = 4
++pkg syscall (linux-s390x), const IFF_SLAVE_INACTIVE ideal-int
++pkg syscall (linux-s390x), const IFF_SLAVE_NEEDARP = 64
++pkg syscall (linux-s390x), const IFF_SLAVE_NEEDARP ideal-int
++pkg syscall (linux-s390x), const IFF_SUPP_NOFCS = 524288
++pkg syscall (linux-s390x), const IFF_SUPP_NOFCS ideal-int
++pkg syscall (linux-s390x), const IFF_TAP = 2
++pkg syscall (linux-s390x), const IFF_TAP ideal-int
++pkg syscall (linux-s390x), const IFF_TEAM_PORT = 262144
++pkg syscall (linux-s390x), const IFF_TEAM_PORT ideal-int
++pkg syscall (linux-s390x), const IFF_TUN = 1
++pkg syscall (linux-s390x), const IFF_TUN_EXCL = 32768
++pkg syscall (linux-s390x), const IFF_TUN_EXCL ideal-int
++pkg syscall (linux-s390x), const IFF_TUN ideal-int
++pkg syscall (linux-s390x), const IFF_TX_SKB_SHARING = 65536
++pkg syscall (linux-s390x), const IFF_TX_SKB_SHARING ideal-int
++pkg syscall (linux-s390x), const IFF_UNICAST_FLT = 131072
++pkg syscall (linux-s390x), const IFF_UNICAST_FLT ideal-int
++pkg syscall (linux-s390x), const IFF_VNET_HDR = 16384
++pkg syscall (linux-s390x), const IFF_VNET_HDR ideal-int
++pkg syscall (linux-s390x), const IFF_VOLATILE = 461914
++pkg syscall (linux-s390x), const IFF_VOLATILE ideal-int
++pkg syscall (linux-s390x), const IFF_WAN_HDLC = 512
++pkg syscall (linux-s390x), const IFF_WAN_HDLC ideal-int
++pkg syscall (linux-s390x), const IFF_XMIT_DST_RELEASE = 1024
++pkg syscall (linux-s390x), const IFF_XMIT_DST_RELEASE ideal-int
++pkg syscall (linux-s390x), const IFLA_ADDRESS = 1
++pkg syscall (linux-s390x), const IFLA_ADDRESS ideal-int
++pkg syscall (linux-s390x), const IFLA_BROADCAST = 2
++pkg syscall (linux-s390x), const IFLA_BROADCAST ideal-int
++pkg syscall (linux-s390x), const IFLA_COST = 8
++pkg syscall (linux-s390x), const IFLA_COST ideal-int
++pkg syscall (linux-s390x), const IFLA_IFALIAS = 20
++pkg syscall (linux-s390x), const IFLA_IFALIAS ideal-int
++pkg syscall (linux-s390x), const IFLA_IFNAME = 3
++pkg syscall (linux-s390x), const IFLA_IFNAME ideal-int
++pkg syscall (linux-s390x), const IFLA_LINK = 5
++pkg syscall (linux-s390x), const IFLA_LINK ideal-int
++pkg syscall (linux-s390x), const IFLA_LINKINFO = 18
++pkg syscall (linux-s390x), const IFLA_LINKINFO ideal-int
++pkg syscall (linux-s390x), const IFLA_LINKMODE = 17
++pkg syscall (linux-s390x), const IFLA_LINKMODE ideal-int
++pkg syscall (linux-s390x), const IFLA_MAP = 14
++pkg syscall (linux-s390x), const IFLA_MAP ideal-int
++pkg syscall (linux-s390x), const IFLA_MASTER = 10
++pkg syscall (linux-s390x), const IFLA_MASTER ideal-int
++pkg syscall (linux-s390x), const IFLA_MAX = 34
++pkg syscall (linux-s390x), const IFLA_MAX ideal-int
++pkg syscall (linux-s390x), const IFLA_MTU = 4
++pkg syscall (linux-s390x), const IFLA_MTU ideal-int
++pkg syscall (linux-s390x), const IFLA_NET_NS_PID = 19
++pkg syscall (linux-s390x), const IFLA_NET_NS_PID ideal-int
++pkg syscall (linux-s390x), const IFLA_OPERSTATE = 16
++pkg syscall (linux-s390x), const IFLA_OPERSTATE ideal-int
++pkg syscall (linux-s390x), const IFLA_PRIORITY = 9
++pkg syscall (linux-s390x), const IFLA_PRIORITY ideal-int
++pkg syscall (linux-s390x), const IFLA_PROTINFO = 12
++pkg syscall (linux-s390x), const IFLA_PROTINFO ideal-int
++pkg syscall (linux-s390x), const IFLA_QDISC = 6
++pkg syscall (linux-s390x), const IFLA_QDISC ideal-int
++pkg syscall (linux-s390x), const IFLA_STATS = 7
++pkg syscall (linux-s390x), const IFLA_STATS ideal-int
++pkg syscall (linux-s390x), const IFLA_TXQLEN = 13
++pkg syscall (linux-s390x), const IFLA_TXQLEN ideal-int
++pkg syscall (linux-s390x), const IFLA_UNSPEC = 0
++pkg syscall (linux-s390x), const IFLA_UNSPEC ideal-int
++pkg syscall (linux-s390x), const IFLA_WEIGHT = 15
++pkg syscall (linux-s390x), const IFLA_WEIGHT ideal-int
++pkg syscall (linux-s390x), const IFLA_WIRELESS = 11
++pkg syscall (linux-s390x), const IFLA_WIRELESS ideal-int
++pkg syscall (linux-s390x), const IFNAMSIZ = 16
++pkg syscall (linux-s390x), const IFNAMSIZ ideal-int
++pkg syscall (linux-s390x), const IGNBRK = 1
++pkg syscall (linux-s390x), const IGNBRK ideal-int
++pkg syscall (linux-s390x), const IGNCR = 128
++pkg syscall (linux-s390x), const IGNCR ideal-int
++pkg syscall (linux-s390x), const IGNPAR = 4
++pkg syscall (linux-s390x), const IGNPAR ideal-int
++pkg syscall (linux-s390x), const IMAXBEL = 8192
++pkg syscall (linux-s390x), const IMAXBEL ideal-int
++pkg syscall (linux-s390x), const ImplementsGetwd = true
++pkg syscall (linux-s390x), const IN_ACCESS = 1
++pkg syscall (linux-s390x), const IN_ACCESS ideal-int
++pkg syscall (linux-s390x), const IN_ALL_EVENTS = 4095
++pkg syscall (linux-s390x), const IN_ALL_EVENTS ideal-int
++pkg syscall (linux-s390x), const IN_ATTRIB = 4
++pkg syscall (linux-s390x), const IN_ATTRIB ideal-int
++pkg syscall (linux-s390x), const IN_CLASSA_HOST = 16777215
++pkg syscall (linux-s390x), const IN_CLASSA_HOST ideal-int
++pkg syscall (linux-s390x), const IN_CLASSA_MAX = 128
++pkg syscall (linux-s390x), const IN_CLASSA_MAX ideal-int
++pkg syscall (linux-s390x), const IN_CLASSA_NET = 4278190080
++pkg syscall (linux-s390x), const IN_CLASSA_NET ideal-int
++pkg syscall (linux-s390x), const IN_CLASSA_NSHIFT = 24
++pkg syscall (linux-s390x), const IN_CLASSA_NSHIFT ideal-int
++pkg syscall (linux-s390x), const IN_CLASSB_HOST = 65535
++pkg syscall (linux-s390x), const IN_CLASSB_HOST ideal-int
++pkg syscall (linux-s390x), const IN_CLASSB_MAX = 65536
++pkg syscall (linux-s390x), const IN_CLASSB_MAX ideal-int
++pkg syscall (linux-s390x), const IN_CLASSB_NET = 4294901760
++pkg syscall (linux-s390x), const IN_CLASSB_NET ideal-int
++pkg syscall (linux-s390x), const IN_CLASSB_NSHIFT = 16
++pkg syscall (linux-s390x), const IN_CLASSB_NSHIFT ideal-int
++pkg syscall (linux-s390x), const IN_CLASSC_HOST = 255
++pkg syscall (linux-s390x), const IN_CLASSC_HOST ideal-int
++pkg syscall (linux-s390x), const IN_CLASSC_NET = 4294967040
++pkg syscall (linux-s390x), const IN_CLASSC_NET ideal-int
++pkg syscall (linux-s390x), const IN_CLASSC_NSHIFT = 8
++pkg syscall (linux-s390x), const IN_CLASSC_NSHIFT ideal-int
++pkg syscall (linux-s390x), const IN_CLOEXEC = 524288
++pkg syscall (linux-s390x), const IN_CLOEXEC ideal-int
++pkg syscall (linux-s390x), const IN_CLOSE = 24
++pkg syscall (linux-s390x), const IN_CLOSE ideal-int
++pkg syscall (linux-s390x), const IN_CLOSE_NOWRITE = 16
++pkg syscall (linux-s390x), const IN_CLOSE_NOWRITE ideal-int
++pkg syscall (linux-s390x), const IN_CLOSE_WRITE = 8
++pkg syscall (linux-s390x), const IN_CLOSE_WRITE ideal-int
++pkg syscall (linux-s390x), const IN_CREATE = 256
++pkg syscall (linux-s390x), const IN_CREATE ideal-int
++pkg syscall (linux-s390x), const IN_DELETE = 512
++pkg syscall (linux-s390x), const IN_DELETE ideal-int
++pkg syscall (linux-s390x), const IN_DELETE_SELF = 1024
++pkg syscall (linux-s390x), const IN_DELETE_SELF ideal-int
++pkg syscall (linux-s390x), const IN_DONT_FOLLOW = 33554432
++pkg syscall (linux-s390x), const IN_DONT_FOLLOW ideal-int
++pkg syscall (linux-s390x), const IN_EXCL_UNLINK = 67108864
++pkg syscall (linux-s390x), const IN_EXCL_UNLINK ideal-int
++pkg syscall (linux-s390x), const IN_IGNORED = 32768
++pkg syscall (linux-s390x), const IN_IGNORED ideal-int
++pkg syscall (linux-s390x), const IN_ISDIR = 1073741824
++pkg syscall (linux-s390x), const IN_ISDIR ideal-int
++pkg syscall (linux-s390x), const INLCR = 64
++pkg syscall (linux-s390x), const INLCR ideal-int
++pkg syscall (linux-s390x), const IN_LOOPBACKNET = 127
++pkg syscall (linux-s390x), const IN_LOOPBACKNET ideal-int
++pkg syscall (linux-s390x), const IN_MASK_ADD = 536870912
++pkg syscall (linux-s390x), const IN_MASK_ADD ideal-int
++pkg syscall (linux-s390x), const IN_MODIFY = 2
++pkg syscall (linux-s390x), const IN_MODIFY ideal-int
++pkg syscall (linux-s390x), const IN_MOVE = 192
++pkg syscall (linux-s390x), const IN_MOVED_FROM = 64
++pkg syscall (linux-s390x), const IN_MOVED_FROM ideal-int
++pkg syscall (linux-s390x), const IN_MOVED_TO = 128
++pkg syscall (linux-s390x), const IN_MOVED_TO ideal-int
++pkg syscall (linux-s390x), const IN_MOVE ideal-int
++pkg syscall (linux-s390x), const IN_MOVE_SELF = 2048
++pkg syscall (linux-s390x), const IN_MOVE_SELF ideal-int
++pkg syscall (linux-s390x), const IN_NONBLOCK = 2048
++pkg syscall (linux-s390x), const IN_NONBLOCK ideal-int
++pkg syscall (linux-s390x), const IN_ONESHOT = 2147483648
++pkg syscall (linux-s390x), const IN_ONESHOT ideal-int
++pkg syscall (linux-s390x), const IN_ONLYDIR = 16777216
++pkg syscall (linux-s390x), const IN_ONLYDIR ideal-int
++pkg syscall (linux-s390x), const IN_OPEN = 32
++pkg syscall (linux-s390x), const IN_OPEN ideal-int
++pkg syscall (linux-s390x), const INPCK = 16
++pkg syscall (linux-s390x), const INPCK ideal-int
++pkg syscall (linux-s390x), const IN_Q_OVERFLOW = 16384
++pkg syscall (linux-s390x), const IN_Q_OVERFLOW ideal-int
++pkg syscall (linux-s390x), const IN_UNMOUNT = 8192
++pkg syscall (linux-s390x), const IN_UNMOUNT ideal-int
++pkg syscall (linux-s390x), const IP_ADD_MEMBERSHIP = 35
++pkg syscall (linux-s390x), const IP_ADD_SOURCE_MEMBERSHIP = 39
++pkg syscall (linux-s390x), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const IP_BLOCK_SOURCE = 38
++pkg syscall (linux-s390x), const IP_BLOCK_SOURCE ideal-int
++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_LOOP = 1
++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_LOOP ideal-int
++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_TTL = 1
++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_TTL ideal-int
++pkg syscall (linux-s390x), const IP_DF = 16384
++pkg syscall (linux-s390x), const IP_DF ideal-int
++pkg syscall (linux-s390x), const IP_DROP_MEMBERSHIP = 36
++pkg syscall (linux-s390x), const IP_DROP_SOURCE_MEMBERSHIP = 40
++pkg syscall (linux-s390x), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const IP_FREEBIND = 15
++pkg syscall (linux-s390x), const IP_FREEBIND ideal-int
++pkg syscall (linux-s390x), const IP_HDRINCL = 3
++pkg syscall (linux-s390x), const IP_HDRINCL ideal-int
++pkg syscall (linux-s390x), const IP_IPSEC_POLICY = 16
++pkg syscall (linux-s390x), const IP_IPSEC_POLICY ideal-int
++pkg syscall (linux-s390x), const IP_MAX_MEMBERSHIPS = 20
++pkg syscall (linux-s390x), const IP_MAX_MEMBERSHIPS ideal-int
++pkg syscall (linux-s390x), const IP_MAXPACKET = 65535
++pkg syscall (linux-s390x), const IP_MAXPACKET ideal-int
++pkg syscall (linux-s390x), const IP_MF = 8192
++pkg syscall (linux-s390x), const IP_MF ideal-int
++pkg syscall (linux-s390x), const IP_MINTTL = 21
++pkg syscall (linux-s390x), const IP_MINTTL ideal-int
++pkg syscall (linux-s390x), const IP_MSFILTER = 41
++pkg syscall (linux-s390x), const IP_MSFILTER ideal-int
++pkg syscall (linux-s390x), const IP_MSS = 576
++pkg syscall (linux-s390x), const IP_MSS ideal-int
++pkg syscall (linux-s390x), const IP_MTU = 14
++pkg syscall (linux-s390x), const IP_MTU_DISCOVER = 10
++pkg syscall (linux-s390x), const IP_MTU_DISCOVER ideal-int
++pkg syscall (linux-s390x), const IP_MTU ideal-int
++pkg syscall (linux-s390x), const IP_MULTICAST_ALL = 49
++pkg syscall (linux-s390x), const IP_MULTICAST_ALL ideal-int
++pkg syscall (linux-s390x), const IP_MULTICAST_IF = 32
++pkg syscall (linux-s390x), const IP_MULTICAST_LOOP = 34
++pkg syscall (linux-s390x), const IP_MULTICAST_TTL = 33
++pkg syscall (linux-s390x), const IP_OFFMASK = 8191
++pkg syscall (linux-s390x), const IP_OFFMASK ideal-int
++pkg syscall (linux-s390x), const IP_OPTIONS = 4
++pkg syscall (linux-s390x), const IP_OPTIONS ideal-int
++pkg syscall (linux-s390x), const IP_ORIGDSTADDR = 20
++pkg syscall (linux-s390x), const IP_ORIGDSTADDR ideal-int
++pkg syscall (linux-s390x), const IP_PASSSEC = 18
++pkg syscall (linux-s390x), const IP_PASSSEC ideal-int
++pkg syscall (linux-s390x), const IP_PKTINFO = 8
++pkg syscall (linux-s390x), const IP_PKTINFO ideal-int
++pkg syscall (linux-s390x), const IP_PKTOPTIONS = 9
++pkg syscall (linux-s390x), const IP_PKTOPTIONS ideal-int
++pkg syscall (linux-s390x), const IP_PMTUDISC = 10
++pkg syscall (linux-s390x), const IP_PMTUDISC_DO = 2
++pkg syscall (linux-s390x), const IP_PMTUDISC_DO ideal-int
++pkg syscall (linux-s390x), const IP_PMTUDISC_DONT = 0
++pkg syscall (linux-s390x), const IP_PMTUDISC_DONT ideal-int
++pkg syscall (linux-s390x), const IP_PMTUDISC ideal-int
++pkg syscall (linux-s390x), const IP_PMTUDISC_PROBE = 3
++pkg syscall (linux-s390x), const IP_PMTUDISC_PROBE ideal-int
++pkg syscall (linux-s390x), const IP_PMTUDISC_WANT = 1
++pkg syscall (linux-s390x), const IP_PMTUDISC_WANT ideal-int
++pkg syscall (linux-s390x), const IPPROTO_AH = 51
++pkg syscall (linux-s390x), const IPPROTO_AH ideal-int
++pkg syscall (linux-s390x), const IPPROTO_COMP = 108
++pkg syscall (linux-s390x), const IPPROTO_COMP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_DCCP = 33
++pkg syscall (linux-s390x), const IPPROTO_DCCP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_DSTOPTS = 60
++pkg syscall (linux-s390x), const IPPROTO_DSTOPTS ideal-int
++pkg syscall (linux-s390x), const IPPROTO_EGP = 8
++pkg syscall (linux-s390x), const IPPROTO_EGP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_ENCAP = 98
++pkg syscall (linux-s390x), const IPPROTO_ENCAP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_ESP = 50
++pkg syscall (linux-s390x), const IPPROTO_ESP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_FRAGMENT = 44
++pkg syscall (linux-s390x), const IPPROTO_FRAGMENT ideal-int
++pkg syscall (linux-s390x), const IPPROTO_GRE = 47
++pkg syscall (linux-s390x), const IPPROTO_GRE ideal-int
++pkg syscall (linux-s390x), const IPPROTO_HOPOPTS = 0
++pkg syscall (linux-s390x), const IPPROTO_HOPOPTS ideal-int
++pkg syscall (linux-s390x), const IPPROTO_ICMP = 1
++pkg syscall (linux-s390x), const IPPROTO_ICMP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_ICMPV6 = 58
++pkg syscall (linux-s390x), const IPPROTO_ICMPV6 ideal-int
++pkg syscall (linux-s390x), const IPPROTO_IDP = 22
++pkg syscall (linux-s390x), const IPPROTO_IDP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_IGMP = 2
++pkg syscall (linux-s390x), const IPPROTO_IGMP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_IPIP = 4
++pkg syscall (linux-s390x), const IPPROTO_IPIP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_MTP = 92
++pkg syscall (linux-s390x), const IPPROTO_MTP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_NONE = 59
++pkg syscall (linux-s390x), const IPPROTO_NONE ideal-int
++pkg syscall (linux-s390x), const IPPROTO_PIM = 103
++pkg syscall (linux-s390x), const IPPROTO_PIM ideal-int
++pkg syscall (linux-s390x), const IPPROTO_PUP = 12
++pkg syscall (linux-s390x), const IPPROTO_PUP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_RAW = 255
++pkg syscall (linux-s390x), const IPPROTO_RAW ideal-int
++pkg syscall (linux-s390x), const IPPROTO_ROUTING = 43
++pkg syscall (linux-s390x), const IPPROTO_ROUTING ideal-int
++pkg syscall (linux-s390x), const IPPROTO_RSVP = 46
++pkg syscall (linux-s390x), const IPPROTO_RSVP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_SCTP = 132
++pkg syscall (linux-s390x), const IPPROTO_SCTP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_TP = 29
++pkg syscall (linux-s390x), const IPPROTO_TP ideal-int
++pkg syscall (linux-s390x), const IPPROTO_UDPLITE = 136
++pkg syscall (linux-s390x), const IPPROTO_UDPLITE ideal-int
++pkg syscall (linux-s390x), const IP_RECVERR = 11
++pkg syscall (linux-s390x), const IP_RECVERR ideal-int
++pkg syscall (linux-s390x), const IP_RECVOPTS = 6
++pkg syscall (linux-s390x), const IP_RECVOPTS ideal-int
++pkg syscall (linux-s390x), const IP_RECVORIGDSTADDR = 20
++pkg syscall (linux-s390x), const IP_RECVORIGDSTADDR ideal-int
++pkg syscall (linux-s390x), const IP_RECVRETOPTS = 7
++pkg syscall (linux-s390x), const IP_RECVRETOPTS ideal-int
++pkg syscall (linux-s390x), const IP_RECVTOS = 13
++pkg syscall (linux-s390x), const IP_RECVTOS ideal-int
++pkg syscall (linux-s390x), const IP_RECVTTL = 12
++pkg syscall (linux-s390x), const IP_RECVTTL ideal-int
++pkg syscall (linux-s390x), const IP_RETOPTS = 7
++pkg syscall (linux-s390x), const IP_RETOPTS ideal-int
++pkg syscall (linux-s390x), const IP_RF = 32768
++pkg syscall (linux-s390x), const IP_RF ideal-int
++pkg syscall (linux-s390x), const IP_ROUTER_ALERT = 5
++pkg syscall (linux-s390x), const IP_ROUTER_ALERT ideal-int
++pkg syscall (linux-s390x), const IP_TOS = 1
++pkg syscall (linux-s390x), const IP_TRANSPARENT = 19
++pkg syscall (linux-s390x), const IP_TRANSPARENT ideal-int
++pkg syscall (linux-s390x), const IP_TTL = 2
++pkg syscall (linux-s390x), const IP_UNBLOCK_SOURCE = 37
++pkg syscall (linux-s390x), const IP_UNBLOCK_SOURCE ideal-int
++pkg syscall (linux-s390x), const IP_UNICAST_IF = 50
++pkg syscall (linux-s390x), const IP_UNICAST_IF ideal-int
++pkg syscall (linux-s390x), const IPV6_2292DSTOPTS = 4
++pkg syscall (linux-s390x), const IPV6_2292DSTOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_2292HOPLIMIT = 8
++pkg syscall (linux-s390x), const IPV6_2292HOPLIMIT ideal-int
++pkg syscall (linux-s390x), const IPV6_2292HOPOPTS = 3
++pkg syscall (linux-s390x), const IPV6_2292HOPOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_2292PKTINFO = 2
++pkg syscall (linux-s390x), const IPV6_2292PKTINFO ideal-int
++pkg syscall (linux-s390x), const IPV6_2292PKTOPTIONS = 6
++pkg syscall (linux-s390x), const IPV6_2292PKTOPTIONS ideal-int
++pkg syscall (linux-s390x), const IPV6_2292RTHDR = 5
++pkg syscall (linux-s390x), const IPV6_2292RTHDR ideal-int
++pkg syscall (linux-s390x), const IPV6_ADD_MEMBERSHIP = 20
++pkg syscall (linux-s390x), const IPV6_ADD_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const IPV6_ADDRFORM = 1
++pkg syscall (linux-s390x), const IPV6_ADDRFORM ideal-int
++pkg syscall (linux-s390x), const IPV6_AUTHHDR = 10
++pkg syscall (linux-s390x), const IPV6_AUTHHDR ideal-int
++pkg syscall (linux-s390x), const IPV6_CHECKSUM = 7
++pkg syscall (linux-s390x), const IPV6_CHECKSUM ideal-int
++pkg syscall (linux-s390x), const IPV6_DROP_MEMBERSHIP = 21
++pkg syscall (linux-s390x), const IPV6_DROP_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const IPV6_DSTOPTS = 59
++pkg syscall (linux-s390x), const IPV6_DSTOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_HOPLIMIT = 52
++pkg syscall (linux-s390x), const IPV6_HOPLIMIT ideal-int
++pkg syscall (linux-s390x), const IPV6_HOPOPTS = 54
++pkg syscall (linux-s390x), const IPV6_HOPOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_IPSEC_POLICY = 34
++pkg syscall (linux-s390x), const IPV6_IPSEC_POLICY ideal-int
++pkg syscall (linux-s390x), const IPV6_JOIN_ANYCAST = 27
++pkg syscall (linux-s390x), const IPV6_JOIN_ANYCAST ideal-int
++pkg syscall (linux-s390x), const IPV6_JOIN_GROUP = 20
++pkg syscall (linux-s390x), const IPV6_LEAVE_ANYCAST = 28
++pkg syscall (linux-s390x), const IPV6_LEAVE_ANYCAST ideal-int
++pkg syscall (linux-s390x), const IPV6_LEAVE_GROUP = 21
++pkg syscall (linux-s390x), const IPV6_MTU = 24
++pkg syscall (linux-s390x), const IPV6_MTU_DISCOVER = 23
++pkg syscall (linux-s390x), const IPV6_MTU_DISCOVER ideal-int
++pkg syscall (linux-s390x), const IPV6_MTU ideal-int
++pkg syscall (linux-s390x), const IPV6_MULTICAST_HOPS = 18
++pkg syscall (linux-s390x), const IPV6_MULTICAST_IF = 17
++pkg syscall (linux-s390x), const IPV6_MULTICAST_LOOP = 19
++pkg syscall (linux-s390x), const IPV6_NEXTHOP = 9
++pkg syscall (linux-s390x), const IPV6_NEXTHOP ideal-int
++pkg syscall (linux-s390x), const IPV6_PKTINFO = 50
++pkg syscall (linux-s390x), const IPV6_PKTINFO ideal-int
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DO = 2
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DO ideal-int
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DONT = 0
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DONT ideal-int
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_PROBE = 3
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_PROBE ideal-int
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_WANT = 1
++pkg syscall (linux-s390x), const IPV6_PMTUDISC_WANT ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVDSTOPTS = 58
++pkg syscall (linux-s390x), const IPV6_RECVDSTOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVERR = 25
++pkg syscall (linux-s390x), const IPV6_RECVERR ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVHOPLIMIT = 51
++pkg syscall (linux-s390x), const IPV6_RECVHOPLIMIT ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVHOPOPTS = 53
++pkg syscall (linux-s390x), const IPV6_RECVHOPOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVPKTINFO = 49
++pkg syscall (linux-s390x), const IPV6_RECVPKTINFO ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVRTHDR = 56
++pkg syscall (linux-s390x), const IPV6_RECVRTHDR ideal-int
++pkg syscall (linux-s390x), const IPV6_RECVTCLASS = 66
++pkg syscall (linux-s390x), const IPV6_RECVTCLASS ideal-int
++pkg syscall (linux-s390x), const IPV6_ROUTER_ALERT = 22
++pkg syscall (linux-s390x), const IPV6_ROUTER_ALERT ideal-int
++pkg syscall (linux-s390x), const IPV6_RTHDR = 57
++pkg syscall (linux-s390x), const IPV6_RTHDRDSTOPTS = 55
++pkg syscall (linux-s390x), const IPV6_RTHDRDSTOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_RTHDR ideal-int
++pkg syscall (linux-s390x), const IPV6_RTHDR_LOOSE = 0
++pkg syscall (linux-s390x), const IPV6_RTHDR_LOOSE ideal-int
++pkg syscall (linux-s390x), const IPV6_RTHDR_STRICT = 1
++pkg syscall (linux-s390x), const IPV6_RTHDR_STRICT ideal-int
++pkg syscall (linux-s390x), const IPV6_RTHDR_TYPE_0 = 0
++pkg syscall (linux-s390x), const IPV6_RTHDR_TYPE_0 ideal-int
++pkg syscall (linux-s390x), const IPV6_RXDSTOPTS = 59
++pkg syscall (linux-s390x), const IPV6_RXDSTOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_RXHOPOPTS = 54
++pkg syscall (linux-s390x), const IPV6_RXHOPOPTS ideal-int
++pkg syscall (linux-s390x), const IPV6_TCLASS = 67
++pkg syscall (linux-s390x), const IPV6_TCLASS ideal-int
++pkg syscall (linux-s390x), const IPV6_UNICAST_HOPS = 16
++pkg syscall (linux-s390x), const IPV6_V6ONLY = 26
++pkg syscall (linux-s390x), const IPV6_XFRM_POLICY = 35
++pkg syscall (linux-s390x), const IPV6_XFRM_POLICY ideal-int
++pkg syscall (linux-s390x), const IP_XFRM_POLICY = 17
++pkg syscall (linux-s390x), const IP_XFRM_POLICY ideal-int
++pkg syscall (linux-s390x), const ISIG = 1
++pkg syscall (linux-s390x), const ISIG ideal-int
++pkg syscall (linux-s390x), const ISTRIP = 32
++pkg syscall (linux-s390x), const ISTRIP ideal-int
++pkg syscall (linux-s390x), const IUCLC = 512
++pkg syscall (linux-s390x), const IUCLC ideal-int
++pkg syscall (linux-s390x), const IUTF8 = 16384
++pkg syscall (linux-s390x), const IUTF8 ideal-int
++pkg syscall (linux-s390x), const IXANY = 2048
++pkg syscall (linux-s390x), const IXANY ideal-int
++pkg syscall (linux-s390x), const IXOFF = 4096
++pkg syscall (linux-s390x), const IXOFF ideal-int
++pkg syscall (linux-s390x), const IXON = 1024
++pkg syscall (linux-s390x), const IXON ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_OFF = 0
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_OFF ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_ON = 2309737967
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_ON ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_HALT = 3454992675
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_HALT ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_KEXEC = 1163412803
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_KEXEC ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_POWER_OFF = 1126301404
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_POWER_OFF ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART = 19088743
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART2 = 2712847316
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART2 ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_SW_SUSPEND = 3489725666
++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_SW_SUSPEND ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC1 = 4276215469
++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC1 ideal-int
++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC2 = 672274793
++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC2 ideal-int
++pkg syscall (linux-s390x), const LOCK_EX = 2
++pkg syscall (linux-s390x), const LOCK_EX ideal-int
++pkg syscall (linux-s390x), const LOCK_NB = 4
++pkg syscall (linux-s390x), const LOCK_NB ideal-int
++pkg syscall (linux-s390x), const LOCK_SH = 1
++pkg syscall (linux-s390x), const LOCK_SH ideal-int
++pkg syscall (linux-s390x), const LOCK_UN = 8
++pkg syscall (linux-s390x), const LOCK_UN ideal-int
++pkg syscall (linux-s390x), const MADV_DODUMP = 17
++pkg syscall (linux-s390x), const MADV_DODUMP ideal-int
++pkg syscall (linux-s390x), const MADV_DOFORK = 11
++pkg syscall (linux-s390x), const MADV_DOFORK ideal-int
++pkg syscall (linux-s390x), const MADV_DONTDUMP = 16
++pkg syscall (linux-s390x), const MADV_DONTDUMP ideal-int
++pkg syscall (linux-s390x), const MADV_DONTFORK = 10
++pkg syscall (linux-s390x), const MADV_DONTFORK ideal-int
++pkg syscall (linux-s390x), const MADV_DONTNEED = 4
++pkg syscall (linux-s390x), const MADV_DONTNEED ideal-int
++pkg syscall (linux-s390x), const MADV_HUGEPAGE = 14
++pkg syscall (linux-s390x), const MADV_HUGEPAGE ideal-int
++pkg syscall (linux-s390x), const MADV_HWPOISON = 100
++pkg syscall (linux-s390x), const MADV_HWPOISON ideal-int
++pkg syscall (linux-s390x), const MADV_MERGEABLE = 12
++pkg syscall (linux-s390x), const MADV_MERGEABLE ideal-int
++pkg syscall (linux-s390x), const MADV_NOHUGEPAGE = 15
++pkg syscall (linux-s390x), const MADV_NOHUGEPAGE ideal-int
++pkg syscall (linux-s390x), const MADV_NORMAL = 0
++pkg syscall (linux-s390x), const MADV_NORMAL ideal-int
++pkg syscall (linux-s390x), const MADV_RANDOM = 1
++pkg syscall (linux-s390x), const MADV_RANDOM ideal-int
++pkg syscall (linux-s390x), const MADV_REMOVE = 9
++pkg syscall (linux-s390x), const MADV_REMOVE ideal-int
++pkg syscall (linux-s390x), const MADV_SEQUENTIAL = 2
++pkg syscall (linux-s390x), const MADV_SEQUENTIAL ideal-int
++pkg syscall (linux-s390x), const MADV_UNMERGEABLE = 13
++pkg syscall (linux-s390x), const MADV_UNMERGEABLE ideal-int
++pkg syscall (linux-s390x), const MADV_WILLNEED = 3
++pkg syscall (linux-s390x), const MADV_WILLNEED ideal-int
++pkg syscall (linux-s390x), const MAP_ANON = 32
++pkg syscall (linux-s390x), const MAP_ANON ideal-int
++pkg syscall (linux-s390x), const MAP_ANONYMOUS = 32
++pkg syscall (linux-s390x), const MAP_ANONYMOUS ideal-int
++pkg syscall (linux-s390x), const MAP_DENYWRITE = 2048
++pkg syscall (linux-s390x), const MAP_DENYWRITE ideal-int
++pkg syscall (linux-s390x), const MAP_EXECUTABLE = 4096
++pkg syscall (linux-s390x), const MAP_EXECUTABLE ideal-int
++pkg syscall (linux-s390x), const MAP_FILE = 0
++pkg syscall (linux-s390x), const MAP_FILE ideal-int
++pkg syscall (linux-s390x), const MAP_FIXED = 16
++pkg syscall (linux-s390x), const MAP_FIXED ideal-int
++pkg syscall (linux-s390x), const MAP_GROWSDOWN = 256
++pkg syscall (linux-s390x), const MAP_GROWSDOWN ideal-int
++pkg syscall (linux-s390x), const MAP_GROWSUP = 512
++pkg syscall (linux-s390x), const MAP_GROWSUP ideal-int
++pkg syscall (linux-s390x), const MAP_HUGETLB = 262144
++pkg syscall (linux-s390x), const MAP_HUGETLB ideal-int
++pkg syscall (linux-s390x), const MAP_LOCKED = 8192
++pkg syscall (linux-s390x), const MAP_LOCKED ideal-int
++pkg syscall (linux-s390x), const MAP_NONBLOCK = 65536
++pkg syscall (linux-s390x), const MAP_NONBLOCK ideal-int
++pkg syscall (linux-s390x), const MAP_NORESERVE = 16384
++pkg syscall (linux-s390x), const MAP_NORESERVE ideal-int
++pkg syscall (linux-s390x), const MAP_POPULATE = 32768
++pkg syscall (linux-s390x), const MAP_POPULATE ideal-int
++pkg syscall (linux-s390x), const MAP_PRIVATE = 2
++pkg syscall (linux-s390x), const MAP_PRIVATE ideal-int
++pkg syscall (linux-s390x), const MAP_SHARED = 1
++pkg syscall (linux-s390x), const MAP_SHARED ideal-int
++pkg syscall (linux-s390x), const MAP_STACK = 131072
++pkg syscall (linux-s390x), const MAP_STACK ideal-int
++pkg syscall (linux-s390x), const MAP_TYPE = 15
++pkg syscall (linux-s390x), const MAP_TYPE ideal-int
++pkg syscall (linux-s390x), const MCL_CURRENT = 1
++pkg syscall (linux-s390x), const MCL_CURRENT ideal-int
++pkg syscall (linux-s390x), const MCL_FUTURE = 2
++pkg syscall (linux-s390x), const MCL_FUTURE ideal-int
++pkg syscall (linux-s390x), const MNT_DETACH = 2
++pkg syscall (linux-s390x), const MNT_DETACH ideal-int
++pkg syscall (linux-s390x), const MNT_EXPIRE = 4
++pkg syscall (linux-s390x), const MNT_EXPIRE ideal-int
++pkg syscall (linux-s390x), const MNT_FORCE = 1
++pkg syscall (linux-s390x), const MNT_FORCE ideal-int
++pkg syscall (linux-s390x), const MS_ACTIVE = 1073741824
++pkg syscall (linux-s390x), const MS_ACTIVE ideal-int
++pkg syscall (linux-s390x), const MS_ASYNC = 1
++pkg syscall (linux-s390x), const MS_ASYNC ideal-int
++pkg syscall (linux-s390x), const MS_BIND = 4096
++pkg syscall (linux-s390x), const MS_BIND ideal-int
++pkg syscall (linux-s390x), const MS_DIRSYNC = 128
++pkg syscall (linux-s390x), const MS_DIRSYNC ideal-int
++pkg syscall (linux-s390x), const MSG_CMSG_CLOEXEC = 1073741824
++pkg syscall (linux-s390x), const MSG_CMSG_CLOEXEC ideal-int
++pkg syscall (linux-s390x), const MSG_CONFIRM = 2048
++pkg syscall (linux-s390x), const MSG_CONFIRM ideal-int
++pkg syscall (linux-s390x), const MSG_CTRUNC = 8
++pkg syscall (linux-s390x), const MSG_CTRUNC ideal-int
++pkg syscall (linux-s390x), const MSG_DONTROUTE = 4
++pkg syscall (linux-s390x), const MSG_DONTROUTE ideal-int
++pkg syscall (linux-s390x), const MSG_DONTWAIT = 64
++pkg syscall (linux-s390x), const MSG_DONTWAIT ideal-int
++pkg syscall (linux-s390x), const MSG_EOR = 128
++pkg syscall (linux-s390x), const MSG_EOR ideal-int
++pkg syscall (linux-s390x), const MSG_ERRQUEUE = 8192
++pkg syscall (linux-s390x), const MSG_ERRQUEUE ideal-int
++pkg syscall (linux-s390x), const MSG_FASTOPEN = 536870912
++pkg syscall (linux-s390x), const MSG_FASTOPEN ideal-int
++pkg syscall (linux-s390x), const MSG_FIN = 512
++pkg syscall (linux-s390x), const MSG_FIN ideal-int
++pkg syscall (linux-s390x), const MSG_MORE = 32768
++pkg syscall (linux-s390x), const MSG_MORE ideal-int
++pkg syscall (linux-s390x), const MSG_NOSIGNAL = 16384
++pkg syscall (linux-s390x), const MSG_NOSIGNAL ideal-int
++pkg syscall (linux-s390x), const MSG_OOB = 1
++pkg syscall (linux-s390x), const MSG_OOB ideal-int
++pkg syscall (linux-s390x), const MSG_PEEK = 2
++pkg syscall (linux-s390x), const MSG_PEEK ideal-int
++pkg syscall (linux-s390x), const MSG_PROXY = 16
++pkg syscall (linux-s390x), const MSG_PROXY ideal-int
++pkg syscall (linux-s390x), const MSG_RST = 4096
++pkg syscall (linux-s390x), const MSG_RST ideal-int
++pkg syscall (linux-s390x), const MSG_SYN = 1024
++pkg syscall (linux-s390x), const MSG_SYN ideal-int
++pkg syscall (linux-s390x), const MSG_TRUNC = 32
++pkg syscall (linux-s390x), const MSG_TRUNC ideal-int
++pkg syscall (linux-s390x), const MSG_TRYHARD = 4
++pkg syscall (linux-s390x), const MSG_TRYHARD ideal-int
++pkg syscall (linux-s390x), const MSG_WAITALL = 256
++pkg syscall (linux-s390x), const MSG_WAITALL ideal-int
++pkg syscall (linux-s390x), const MSG_WAITFORONE = 65536
++pkg syscall (linux-s390x), const MSG_WAITFORONE ideal-int
++pkg syscall (linux-s390x), const MS_INVALIDATE = 2
++pkg syscall (linux-s390x), const MS_INVALIDATE ideal-int
++pkg syscall (linux-s390x), const MS_I_VERSION = 8388608
++pkg syscall (linux-s390x), const MS_I_VERSION ideal-int
++pkg syscall (linux-s390x), const MS_KERNMOUNT = 4194304
++pkg syscall (linux-s390x), const MS_KERNMOUNT ideal-int
++pkg syscall (linux-s390x), const MS_MANDLOCK = 64
++pkg syscall (linux-s390x), const MS_MANDLOCK ideal-int
++pkg syscall (linux-s390x), const MS_MGC_MSK = 4294901760
++pkg syscall (linux-s390x), const MS_MGC_MSK ideal-int
++pkg syscall (linux-s390x), const MS_MGC_VAL = 3236757504
++pkg syscall (linux-s390x), const MS_MGC_VAL ideal-int
++pkg syscall (linux-s390x), const MS_MOVE = 8192
++pkg syscall (linux-s390x), const MS_MOVE ideal-int
++pkg syscall (linux-s390x), const MS_NOATIME = 1024
++pkg syscall (linux-s390x), const MS_NOATIME ideal-int
++pkg syscall (linux-s390x), const MS_NODEV = 4
++pkg syscall (linux-s390x), const MS_NODEV ideal-int
++pkg syscall (linux-s390x), const MS_NODIRATIME = 2048
++pkg syscall (linux-s390x), const MS_NODIRATIME ideal-int
++pkg syscall (linux-s390x), const MS_NOEXEC = 8
++pkg syscall (linux-s390x), const MS_NOEXEC ideal-int
++pkg syscall (linux-s390x), const MS_NOSUID = 2
++pkg syscall (linux-s390x), const MS_NOSUID ideal-int
++pkg syscall (linux-s390x), const MS_NOUSER = -2147483648
++pkg syscall (linux-s390x), const MS_NOUSER ideal-int
++pkg syscall (linux-s390x), const MS_POSIXACL = 65536
++pkg syscall (linux-s390x), const MS_POSIXACL ideal-int
++pkg syscall (linux-s390x), const MS_PRIVATE = 262144
++pkg syscall (linux-s390x), const MS_PRIVATE ideal-int
++pkg syscall (linux-s390x), const MS_RDONLY = 1
++pkg syscall (linux-s390x), const MS_RDONLY ideal-int
++pkg syscall (linux-s390x), const MS_REC = 16384
++pkg syscall (linux-s390x), const MS_REC ideal-int
++pkg syscall (linux-s390x), const MS_RELATIME = 2097152
++pkg syscall (linux-s390x), const MS_RELATIME ideal-int
++pkg syscall (linux-s390x), const MS_REMOUNT = 32
++pkg syscall (linux-s390x), const MS_REMOUNT ideal-int
++pkg syscall (linux-s390x), const MS_RMT_MASK = 8388689
++pkg syscall (linux-s390x), const MS_RMT_MASK ideal-int
++pkg syscall (linux-s390x), const MS_SHARED = 1048576
++pkg syscall (linux-s390x), const MS_SHARED ideal-int
++pkg syscall (linux-s390x), const MS_SILENT = 32768
++pkg syscall (linux-s390x), const MS_SILENT ideal-int
++pkg syscall (linux-s390x), const MS_SLAVE = 524288
++pkg syscall (linux-s390x), const MS_SLAVE ideal-int
++pkg syscall (linux-s390x), const MS_STRICTATIME = 16777216
++pkg syscall (linux-s390x), const MS_STRICTATIME ideal-int
++pkg syscall (linux-s390x), const MS_SYNC = 4
++pkg syscall (linux-s390x), const MS_SYNCHRONOUS = 16
++pkg syscall (linux-s390x), const MS_SYNCHRONOUS ideal-int
++pkg syscall (linux-s390x), const MS_SYNC ideal-int
++pkg syscall (linux-s390x), const MS_UNBINDABLE = 131072
++pkg syscall (linux-s390x), const MS_UNBINDABLE ideal-int
++pkg syscall (linux-s390x), const NAME_MAX = 255
++pkg syscall (linux-s390x), const NAME_MAX ideal-int
++pkg syscall (linux-s390x), const NETLINK_ADD_MEMBERSHIP = 1
++pkg syscall (linux-s390x), const NETLINK_ADD_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const NETLINK_AUDIT = 9
++pkg syscall (linux-s390x), const NETLINK_AUDIT ideal-int
++pkg syscall (linux-s390x), const NETLINK_BROADCAST_ERROR = 4
++pkg syscall (linux-s390x), const NETLINK_BROADCAST_ERROR ideal-int
++pkg syscall (linux-s390x), const NETLINK_CONNECTOR = 11
++pkg syscall (linux-s390x), const NETLINK_CONNECTOR ideal-int
++pkg syscall (linux-s390x), const NETLINK_CRYPTO = 21
++pkg syscall (linux-s390x), const NETLINK_CRYPTO ideal-int
++pkg syscall (linux-s390x), const NETLINK_DNRTMSG = 14
++pkg syscall (linux-s390x), const NETLINK_DNRTMSG ideal-int
++pkg syscall (linux-s390x), const NETLINK_DROP_MEMBERSHIP = 2
++pkg syscall (linux-s390x), const NETLINK_DROP_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const NETLINK_ECRYPTFS = 19
++pkg syscall (linux-s390x), const NETLINK_ECRYPTFS ideal-int
++pkg syscall (linux-s390x), const NETLINK_FIB_LOOKUP = 10
++pkg syscall (linux-s390x), const NETLINK_FIB_LOOKUP ideal-int
++pkg syscall (linux-s390x), const NETLINK_FIREWALL = 3
++pkg syscall (linux-s390x), const NETLINK_FIREWALL ideal-int
++pkg syscall (linux-s390x), const NETLINK_GENERIC = 16
++pkg syscall (linux-s390x), const NETLINK_GENERIC ideal-int
++pkg syscall (linux-s390x), const NETLINK_INET_DIAG = 4
++pkg syscall (linux-s390x), const NETLINK_INET_DIAG ideal-int
++pkg syscall (linux-s390x), const NETLINK_IP6_FW = 13
++pkg syscall (linux-s390x), const NETLINK_IP6_FW ideal-int
++pkg syscall (linux-s390x), const NETLINK_ISCSI = 8
++pkg syscall (linux-s390x), const NETLINK_ISCSI ideal-int
++pkg syscall (linux-s390x), const NETLINK_KOBJECT_UEVENT = 15
++pkg syscall (linux-s390x), const NETLINK_KOBJECT_UEVENT ideal-int
++pkg syscall (linux-s390x), const NETLINK_NETFILTER = 12
++pkg syscall (linux-s390x), const NETLINK_NETFILTER ideal-int
++pkg syscall (linux-s390x), const NETLINK_NFLOG = 5
++pkg syscall (linux-s390x), const NETLINK_NFLOG ideal-int
++pkg syscall (linux-s390x), const NETLINK_NO_ENOBUFS = 5
++pkg syscall (linux-s390x), const NETLINK_NO_ENOBUFS ideal-int
++pkg syscall (linux-s390x), const NETLINK_PKTINFO = 3
++pkg syscall (linux-s390x), const NETLINK_PKTINFO ideal-int
++pkg syscall (linux-s390x), const NETLINK_RDMA = 20
++pkg syscall (linux-s390x), const NETLINK_RDMA ideal-int
++pkg syscall (linux-s390x), const NETLINK_ROUTE = 0
++pkg syscall (linux-s390x), const NETLINK_ROUTE ideal-int
++pkg syscall (linux-s390x), const NETLINK_RX_RING = 6
++pkg syscall (linux-s390x), const NETLINK_RX_RING ideal-int
++pkg syscall (linux-s390x), const NETLINK_SCSITRANSPORT = 18
++pkg syscall (linux-s390x), const NETLINK_SCSITRANSPORT ideal-int
++pkg syscall (linux-s390x), const NETLINK_SELINUX = 7
++pkg syscall (linux-s390x), const NETLINK_SELINUX ideal-int
++pkg syscall (linux-s390x), const NETLINK_SOCK_DIAG = 4
++pkg syscall (linux-s390x), const NETLINK_SOCK_DIAG ideal-int
++pkg syscall (linux-s390x), const NETLINK_TX_RING = 7
++pkg syscall (linux-s390x), const NETLINK_TX_RING ideal-int
++pkg syscall (linux-s390x), const NETLINK_UNUSED = 1
++pkg syscall (linux-s390x), const NETLINK_UNUSED ideal-int
++pkg syscall (linux-s390x), const NETLINK_USERSOCK = 2
++pkg syscall (linux-s390x), const NETLINK_USERSOCK ideal-int
++pkg syscall (linux-s390x), const NETLINK_XFRM = 6
++pkg syscall (linux-s390x), const NETLINK_XFRM ideal-int
++pkg syscall (linux-s390x), const NLA_ALIGNTO = 4
++pkg syscall (linux-s390x), const NLA_ALIGNTO ideal-int
++pkg syscall (linux-s390x), const NLA_F_NESTED = 32768
++pkg syscall (linux-s390x), const NLA_F_NESTED ideal-int
++pkg syscall (linux-s390x), const NLA_F_NET_BYTEORDER = 16384
++pkg syscall (linux-s390x), const NLA_F_NET_BYTEORDER ideal-int
++pkg syscall (linux-s390x), const NLA_HDRLEN = 4
++pkg syscall (linux-s390x), const NLA_HDRLEN ideal-int
++pkg syscall (linux-s390x), const NLM_F_ACK = 4
++pkg syscall (linux-s390x), const NLM_F_ACK ideal-int
++pkg syscall (linux-s390x), const NLM_F_APPEND = 2048
++pkg syscall (linux-s390x), const NLM_F_APPEND ideal-int
++pkg syscall (linux-s390x), const NLM_F_ATOMIC = 1024
++pkg syscall (linux-s390x), const NLM_F_ATOMIC ideal-int
++pkg syscall (linux-s390x), const NLM_F_CREATE = 1024
++pkg syscall (linux-s390x), const NLM_F_CREATE ideal-int
++pkg syscall (linux-s390x), const NLM_F_DUMP = 768
++pkg syscall (linux-s390x), const NLM_F_DUMP ideal-int
++pkg syscall (linux-s390x), const NLM_F_DUMP_INTR = 16
++pkg syscall (linux-s390x), const NLM_F_DUMP_INTR ideal-int
++pkg syscall (linux-s390x), const NLM_F_ECHO = 8
++pkg syscall (linux-s390x), const NLM_F_ECHO ideal-int
++pkg syscall (linux-s390x), const NLM_F_EXCL = 512
++pkg syscall (linux-s390x), const NLM_F_EXCL ideal-int
++pkg syscall (linux-s390x), const NLM_F_MATCH = 512
++pkg syscall (linux-s390x), const NLM_F_MATCH ideal-int
++pkg syscall (linux-s390x), const NLM_F_MULTI = 2
++pkg syscall (linux-s390x), const NLM_F_MULTI ideal-int
++pkg syscall (linux-s390x), const NLM_F_REPLACE = 256
++pkg syscall (linux-s390x), const NLM_F_REPLACE ideal-int
++pkg syscall (linux-s390x), const NLM_F_REQUEST = 1
++pkg syscall (linux-s390x), const NLM_F_REQUEST ideal-int
++pkg syscall (linux-s390x), const NLM_F_ROOT = 256
++pkg syscall (linux-s390x), const NLM_F_ROOT ideal-int
++pkg syscall (linux-s390x), const NLMSG_ALIGNTO = 4
++pkg syscall (linux-s390x), const NLMSG_ALIGNTO ideal-int
++pkg syscall (linux-s390x), const NLMSG_DONE = 3
++pkg syscall (linux-s390x), const NLMSG_DONE ideal-int
++pkg syscall (linux-s390x), const NLMSG_ERROR = 2
++pkg syscall (linux-s390x), const NLMSG_ERROR ideal-int
++pkg syscall (linux-s390x), const NLMSG_HDRLEN = 16
++pkg syscall (linux-s390x), const NLMSG_HDRLEN ideal-int
++pkg syscall (linux-s390x), const NLMSG_MIN_TYPE = 16
++pkg syscall (linux-s390x), const NLMSG_MIN_TYPE ideal-int
++pkg syscall (linux-s390x), const NLMSG_NOOP = 1
++pkg syscall (linux-s390x), const NLMSG_NOOP ideal-int
++pkg syscall (linux-s390x), const NLMSG_OVERRUN = 4
++pkg syscall (linux-s390x), const NLMSG_OVERRUN ideal-int
++pkg syscall (linux-s390x), const NOFLSH = 128
++pkg syscall (linux-s390x), const NOFLSH ideal-int
++pkg syscall (linux-s390x), const O_ACCMODE = 3
++pkg syscall (linux-s390x), const O_ACCMODE ideal-int
++pkg syscall (linux-s390x), const O_APPEND = 1024
++pkg syscall (linux-s390x), const O_ASYNC = 8192
++pkg syscall (linux-s390x), const O_CLOEXEC = 524288
++pkg syscall (linux-s390x), const O_CREAT = 64
++pkg syscall (linux-s390x), const OCRNL = 8
++pkg syscall (linux-s390x), const OCRNL ideal-int
++pkg syscall (linux-s390x), const O_DIRECT = 16384
++pkg syscall (linux-s390x), const O_DIRECT ideal-int
++pkg syscall (linux-s390x), const O_DIRECTORY = 65536
++pkg syscall (linux-s390x), const O_DIRECTORY ideal-int
++pkg syscall (linux-s390x), const O_DSYNC = 4096
++pkg syscall (linux-s390x), const O_DSYNC ideal-int
++pkg syscall (linux-s390x), const O_EXCL = 128
++pkg syscall (linux-s390x), const OFDEL = 128
++pkg syscall (linux-s390x), const OFDEL ideal-int
++pkg syscall (linux-s390x), const OFILL = 64
++pkg syscall (linux-s390x), const OFILL ideal-int
++pkg syscall (linux-s390x), const O_FSYNC = 1052672
++pkg syscall (linux-s390x), const O_FSYNC ideal-int
++pkg syscall (linux-s390x), const O_LARGEFILE = 0
++pkg syscall (linux-s390x), const O_LARGEFILE ideal-int
++pkg syscall (linux-s390x), const OLCUC = 2
++pkg syscall (linux-s390x), const OLCUC ideal-int
++pkg syscall (linux-s390x), const O_NDELAY = 2048
++pkg syscall (linux-s390x), const O_NDELAY ideal-int
++pkg syscall (linux-s390x), const ONLCR = 4
++pkg syscall (linux-s390x), const ONLCR ideal-int
++pkg syscall (linux-s390x), const ONLRET = 32
++pkg syscall (linux-s390x), const ONLRET ideal-int
++pkg syscall (linux-s390x), const O_NOATIME = 262144
++pkg syscall (linux-s390x), const O_NOATIME ideal-int
++pkg syscall (linux-s390x), const ONOCR = 16
++pkg syscall (linux-s390x), const ONOCR ideal-int
++pkg syscall (linux-s390x), const O_NOCTTY = 256
++pkg syscall (linux-s390x), const O_NOFOLLOW = 131072
++pkg syscall (linux-s390x), const O_NOFOLLOW ideal-int
++pkg syscall (linux-s390x), const O_NONBLOCK = 2048
++pkg syscall (linux-s390x), const O_PATH = 2097152
++pkg syscall (linux-s390x), const O_PATH ideal-int
++pkg syscall (linux-s390x), const OPOST = 1
++pkg syscall (linux-s390x), const OPOST ideal-int
++pkg syscall (linux-s390x), const O_RSYNC = 1052672
++pkg syscall (linux-s390x), const O_RSYNC ideal-int
++pkg syscall (linux-s390x), const O_SYNC = 1052672
++pkg syscall (linux-s390x), const O_TRUNC = 512
++pkg syscall (linux-s390x), const PACKET_ADD_MEMBERSHIP = 1
++pkg syscall (linux-s390x), const PACKET_ADD_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const PACKET_AUXDATA = 8
++pkg syscall (linux-s390x), const PACKET_AUXDATA ideal-int
++pkg syscall (linux-s390x), const PACKET_BROADCAST = 1
++pkg syscall (linux-s390x), const PACKET_BROADCAST ideal-int
++pkg syscall (linux-s390x), const PACKET_COPY_THRESH = 7
++pkg syscall (linux-s390x), const PACKET_COPY_THRESH ideal-int
++pkg syscall (linux-s390x), const PACKET_DROP_MEMBERSHIP = 2
++pkg syscall (linux-s390x), const PACKET_DROP_MEMBERSHIP ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT = 18
++pkg syscall (linux-s390x), const PACKET_FANOUT_CPU = 2
++pkg syscall (linux-s390x), const PACKET_FANOUT_CPU ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_DEFRAG = 32768
++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_DEFRAG ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_ROLLOVER = 4096
++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_ROLLOVER ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT_HASH = 0
++pkg syscall (linux-s390x), const PACKET_FANOUT_HASH ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT_LB = 1
++pkg syscall (linux-s390x), const PACKET_FANOUT_LB ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT_RND = 4
++pkg syscall (linux-s390x), const PACKET_FANOUT_RND ideal-int
++pkg syscall (linux-s390x), const PACKET_FANOUT_ROLLOVER = 3
++pkg syscall (linux-s390x), const PACKET_FANOUT_ROLLOVER ideal-int
++pkg syscall (linux-s390x), const PACKET_FASTROUTE = 6
++pkg syscall (linux-s390x), const PACKET_FASTROUTE ideal-int
++pkg syscall (linux-s390x), const PACKET_HDRLEN = 11
++pkg syscall (linux-s390x), const PACKET_HDRLEN ideal-int
++pkg syscall (linux-s390x), const PACKET_HOST = 0
++pkg syscall (linux-s390x), const PACKET_HOST ideal-int
++pkg syscall (linux-s390x), const PACKET_LOOPBACK = 5
++pkg syscall (linux-s390x), const PACKET_LOOPBACK ideal-int
++pkg syscall (linux-s390x), const PACKET_LOSS = 14
++pkg syscall (linux-s390x), const PACKET_LOSS ideal-int
++pkg syscall (linux-s390x), const PACKET_MR_ALLMULTI = 2
++pkg syscall (linux-s390x), const PACKET_MR_ALLMULTI ideal-int
++pkg syscall (linux-s390x), const PACKET_MR_MULTICAST = 0
++pkg syscall (linux-s390x), const PACKET_MR_MULTICAST ideal-int
++pkg syscall (linux-s390x), const PACKET_MR_PROMISC = 1
++pkg syscall (linux-s390x), const PACKET_MR_PROMISC ideal-int
++pkg syscall (linux-s390x), const PACKET_MR_UNICAST = 3
++pkg syscall (linux-s390x), const PACKET_MR_UNICAST ideal-int
++pkg syscall (linux-s390x), const PACKET_MULTICAST = 2
++pkg syscall (linux-s390x), const PACKET_MULTICAST ideal-int
++pkg syscall (linux-s390x), const PACKET_ORIGDEV = 9
++pkg syscall (linux-s390x), const PACKET_ORIGDEV ideal-int
++pkg syscall (linux-s390x), const PACKET_OTHERHOST = 3
++pkg syscall (linux-s390x), const PACKET_OTHERHOST ideal-int
++pkg syscall (linux-s390x), const PACKET_OUTGOING = 4
++pkg syscall (linux-s390x), const PACKET_OUTGOING ideal-int
++pkg syscall (linux-s390x), const PACKET_RECV_OUTPUT = 3
++pkg syscall (linux-s390x), const PACKET_RECV_OUTPUT ideal-int
++pkg syscall (linux-s390x), const PACKET_RESERVE = 12
++pkg syscall (linux-s390x), const PACKET_RESERVE ideal-int
++pkg syscall (linux-s390x), const PACKET_RX_RING = 5
++pkg syscall (linux-s390x), const PACKET_RX_RING ideal-int
++pkg syscall (linux-s390x), const PACKET_STATISTICS = 6
++pkg syscall (linux-s390x), const PACKET_STATISTICS ideal-int
++pkg syscall (linux-s390x), const PACKET_TIMESTAMP = 17
++pkg syscall (linux-s390x), const PACKET_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const PACKET_TX_HAS_OFF = 19
++pkg syscall (linux-s390x), const PACKET_TX_HAS_OFF ideal-int
++pkg syscall (linux-s390x), const PACKET_TX_RING = 13
++pkg syscall (linux-s390x), const PACKET_TX_RING ideal-int
++pkg syscall (linux-s390x), const PACKET_TX_TIMESTAMP = 16
++pkg syscall (linux-s390x), const PACKET_TX_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const PACKET_VERSION = 10
++pkg syscall (linux-s390x), const PACKET_VERSION ideal-int
++pkg syscall (linux-s390x), const PACKET_VNET_HDR = 15
++pkg syscall (linux-s390x), const PACKET_VNET_HDR ideal-int
++pkg syscall (linux-s390x), const PARENB = 256
++pkg syscall (linux-s390x), const PARENB ideal-int
++pkg syscall (linux-s390x), const PARITY_CRC16_PR0 = 2
++pkg syscall (linux-s390x), const PARITY_CRC16_PR0_CCITT = 4
++pkg syscall (linux-s390x), const PARITY_CRC16_PR0_CCITT ideal-int
++pkg syscall (linux-s390x), const PARITY_CRC16_PR0 ideal-int
++pkg syscall (linux-s390x), const PARITY_CRC16_PR1 = 3
++pkg syscall (linux-s390x), const PARITY_CRC16_PR1_CCITT = 5
++pkg syscall (linux-s390x), const PARITY_CRC16_PR1_CCITT ideal-int
++pkg syscall (linux-s390x), const PARITY_CRC16_PR1 ideal-int
++pkg syscall (linux-s390x), const PARITY_CRC32_PR0_CCITT = 6
++pkg syscall (linux-s390x), const PARITY_CRC32_PR0_CCITT ideal-int
++pkg syscall (linux-s390x), const PARITY_CRC32_PR1_CCITT = 7
++pkg syscall (linux-s390x), const PARITY_CRC32_PR1_CCITT ideal-int
++pkg syscall (linux-s390x), const PARITY_DEFAULT = 0
++pkg syscall (linux-s390x), const PARITY_DEFAULT ideal-int
++pkg syscall (linux-s390x), const PARITY_NONE = 1
++pkg syscall (linux-s390x), const PARITY_NONE ideal-int
++pkg syscall (linux-s390x), const PARMRK = 8
++pkg syscall (linux-s390x), const PARMRK ideal-int
++pkg syscall (linux-s390x), const PARODD = 512
++pkg syscall (linux-s390x), const PARODD ideal-int
++pkg syscall (linux-s390x), const PathMax = 4096
++pkg syscall (linux-s390x), const PathMax ideal-int
++pkg syscall (linux-s390x), const PENDIN = 16384
++pkg syscall (linux-s390x), const PENDIN ideal-int
++pkg syscall (linux-s390x), const PR_CAPBSET_DROP = 24
++pkg syscall (linux-s390x), const PR_CAPBSET_DROP ideal-int
++pkg syscall (linux-s390x), const PR_CAPBSET_READ = 23
++pkg syscall (linux-s390x), const PR_CAPBSET_READ ideal-int
++pkg syscall (linux-s390x), const PR_ENDIAN_BIG = 0
++pkg syscall (linux-s390x), const PR_ENDIAN_BIG ideal-int
++pkg syscall (linux-s390x), const PR_ENDIAN_LITTLE = 1
++pkg syscall (linux-s390x), const PR_ENDIAN_LITTLE ideal-int
++pkg syscall (linux-s390x), const PR_ENDIAN_PPC_LITTLE = 2
++pkg syscall (linux-s390x), const PR_ENDIAN_PPC_LITTLE ideal-int
++pkg syscall (linux-s390x), const PR_FPEMU_NOPRINT = 1
++pkg syscall (linux-s390x), const PR_FPEMU_NOPRINT ideal-int
++pkg syscall (linux-s390x), const PR_FPEMU_SIGFPE = 2
++pkg syscall (linux-s390x), const PR_FPEMU_SIGFPE ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_ASYNC = 2
++pkg syscall (linux-s390x), const PR_FP_EXC_ASYNC ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_DISABLED = 0
++pkg syscall (linux-s390x), const PR_FP_EXC_DISABLED ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_DIV = 65536
++pkg syscall (linux-s390x), const PR_FP_EXC_DIV ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_INV = 1048576
++pkg syscall (linux-s390x), const PR_FP_EXC_INV ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_NONRECOV = 1
++pkg syscall (linux-s390x), const PR_FP_EXC_NONRECOV ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_OVF = 131072
++pkg syscall (linux-s390x), const PR_FP_EXC_OVF ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_PRECISE = 3
++pkg syscall (linux-s390x), const PR_FP_EXC_PRECISE ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_RES = 524288
++pkg syscall (linux-s390x), const PR_FP_EXC_RES ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_SW_ENABLE = 128
++pkg syscall (linux-s390x), const PR_FP_EXC_SW_ENABLE ideal-int
++pkg syscall (linux-s390x), const PR_FP_EXC_UND = 262144
++pkg syscall (linux-s390x), const PR_FP_EXC_UND ideal-int
++pkg syscall (linux-s390x), const PR_GET_CHILD_SUBREAPER = 37
++pkg syscall (linux-s390x), const PR_GET_CHILD_SUBREAPER ideal-int
++pkg syscall (linux-s390x), const PR_GET_DUMPABLE = 3
++pkg syscall (linux-s390x), const PR_GET_DUMPABLE ideal-int
++pkg syscall (linux-s390x), const PR_GET_ENDIAN = 19
++pkg syscall (linux-s390x), const PR_GET_ENDIAN ideal-int
++pkg syscall (linux-s390x), const PR_GET_FPEMU = 9
++pkg syscall (linux-s390x), const PR_GET_FPEMU ideal-int
++pkg syscall (linux-s390x), const PR_GET_FPEXC = 11
++pkg syscall (linux-s390x), const PR_GET_FPEXC ideal-int
++pkg syscall (linux-s390x), const PR_GET_KEEPCAPS = 7
++pkg syscall (linux-s390x), const PR_GET_KEEPCAPS ideal-int
++pkg syscall (linux-s390x), const PR_GET_NAME = 16
++pkg syscall (linux-s390x), const PR_GET_NAME ideal-int
++pkg syscall (linux-s390x), const PR_GET_NO_NEW_PRIVS = 39
++pkg syscall (linux-s390x), const PR_GET_NO_NEW_PRIVS ideal-int
++pkg syscall (linux-s390x), const PR_GET_PDEATHSIG = 2
++pkg syscall (linux-s390x), const PR_GET_PDEATHSIG ideal-int
++pkg syscall (linux-s390x), const PR_GET_SECCOMP = 21
++pkg syscall (linux-s390x), const PR_GET_SECCOMP ideal-int
++pkg syscall (linux-s390x), const PR_GET_SECUREBITS = 27
++pkg syscall (linux-s390x), const PR_GET_SECUREBITS ideal-int
++pkg syscall (linux-s390x), const PR_GET_THP_DISABLE = 42
++pkg syscall (linux-s390x), const PR_GET_THP_DISABLE ideal-int
++pkg syscall (linux-s390x), const PR_GET_TID_ADDRESS = 40
++pkg syscall (linux-s390x), const PR_GET_TID_ADDRESS ideal-int
++pkg syscall (linux-s390x), const PR_GET_TIMERSLACK = 30
++pkg syscall (linux-s390x), const PR_GET_TIMERSLACK ideal-int
++pkg syscall (linux-s390x), const PR_GET_TIMING = 13
++pkg syscall (linux-s390x), const PR_GET_TIMING ideal-int
++pkg syscall (linux-s390x), const PR_GET_TSC = 25
++pkg syscall (linux-s390x), const PR_GET_TSC ideal-int
++pkg syscall (linux-s390x), const PR_GET_UNALIGN = 5
++pkg syscall (linux-s390x), const PR_GET_UNALIGN ideal-int
++pkg syscall (linux-s390x), const PRIO_PGRP = 1
++pkg syscall (linux-s390x), const PRIO_PGRP ideal-int
++pkg syscall (linux-s390x), const PRIO_PROCESS = 0
++pkg syscall (linux-s390x), const PRIO_PROCESS ideal-int
++pkg syscall (linux-s390x), const PRIO_USER = 2
++pkg syscall (linux-s390x), const PRIO_USER ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL = 33
++pkg syscall (linux-s390x), const PR_MCE_KILL_CLEAR = 0
++pkg syscall (linux-s390x), const PR_MCE_KILL_CLEAR ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL_DEFAULT = 2
++pkg syscall (linux-s390x), const PR_MCE_KILL_DEFAULT ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL_EARLY = 1
++pkg syscall (linux-s390x), const PR_MCE_KILL_EARLY ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL_GET = 34
++pkg syscall (linux-s390x), const PR_MCE_KILL_GET ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL_LATE = 0
++pkg syscall (linux-s390x), const PR_MCE_KILL_LATE ideal-int
++pkg syscall (linux-s390x), const PR_MCE_KILL_SET = 1
++pkg syscall (linux-s390x), const PR_MCE_KILL_SET ideal-int
++pkg syscall (linux-s390x), const PROT_EXEC = 4
++pkg syscall (linux-s390x), const PROT_EXEC ideal-int
++pkg syscall (linux-s390x), const PROT_GROWSDOWN = 16777216
++pkg syscall (linux-s390x), const PROT_GROWSDOWN ideal-int
++pkg syscall (linux-s390x), const PROT_GROWSUP = 33554432
++pkg syscall (linux-s390x), const PROT_GROWSUP ideal-int
++pkg syscall (linux-s390x), const PROT_NONE = 0
++pkg syscall (linux-s390x), const PROT_NONE ideal-int
++pkg syscall (linux-s390x), const PROT_READ = 1
++pkg syscall (linux-s390x), const PROT_READ ideal-int
++pkg syscall (linux-s390x), const PROT_WRITE = 2
++pkg syscall (linux-s390x), const PROT_WRITE ideal-int
++pkg syscall (linux-s390x), const PR_SET_CHILD_SUBREAPER = 36
++pkg syscall (linux-s390x), const PR_SET_CHILD_SUBREAPER ideal-int
++pkg syscall (linux-s390x), const PR_SET_DUMPABLE = 4
++pkg syscall (linux-s390x), const PR_SET_DUMPABLE ideal-int
++pkg syscall (linux-s390x), const PR_SET_ENDIAN = 20
++pkg syscall (linux-s390x), const PR_SET_ENDIAN ideal-int
++pkg syscall (linux-s390x), const PR_SET_FPEMU = 10
++pkg syscall (linux-s390x), const PR_SET_FPEMU ideal-int
++pkg syscall (linux-s390x), const PR_SET_FPEXC = 12
++pkg syscall (linux-s390x), const PR_SET_FPEXC ideal-int
++pkg syscall (linux-s390x), const PR_SET_KEEPCAPS = 8
++pkg syscall (linux-s390x), const PR_SET_KEEPCAPS ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM = 35
++pkg syscall (linux-s390x), const PR_SET_MM_ARG_END = 9
++pkg syscall (linux-s390x), const PR_SET_MM_ARG_END ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_ARG_START = 8
++pkg syscall (linux-s390x), const PR_SET_MM_ARG_START ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_AUXV = 12
++pkg syscall (linux-s390x), const PR_SET_MM_AUXV ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_BRK = 7
++pkg syscall (linux-s390x), const PR_SET_MM_BRK ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_END_CODE = 2
++pkg syscall (linux-s390x), const PR_SET_MM_END_CODE ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_END_DATA = 4
++pkg syscall (linux-s390x), const PR_SET_MM_END_DATA ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_ENV_END = 11
++pkg syscall (linux-s390x), const PR_SET_MM_ENV_END ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_ENV_START = 10
++pkg syscall (linux-s390x), const PR_SET_MM_ENV_START ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_EXE_FILE = 13
++pkg syscall (linux-s390x), const PR_SET_MM_EXE_FILE ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_START_BRK = 6
++pkg syscall (linux-s390x), const PR_SET_MM_START_BRK ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_START_CODE = 1
++pkg syscall (linux-s390x), const PR_SET_MM_START_CODE ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_START_DATA = 3
++pkg syscall (linux-s390x), const PR_SET_MM_START_DATA ideal-int
++pkg syscall (linux-s390x), const PR_SET_MM_START_STACK = 5
++pkg syscall (linux-s390x), const PR_SET_MM_START_STACK ideal-int
++pkg syscall (linux-s390x), const PR_SET_NAME = 15
++pkg syscall (linux-s390x), const PR_SET_NAME ideal-int
++pkg syscall (linux-s390x), const PR_SET_NO_NEW_PRIVS = 38
++pkg syscall (linux-s390x), const PR_SET_NO_NEW_PRIVS ideal-int
++pkg syscall (linux-s390x), const PR_SET_PDEATHSIG = 1
++pkg syscall (linux-s390x), const PR_SET_PDEATHSIG ideal-int
++pkg syscall (linux-s390x), const PR_SET_PTRACER = 1499557217
++pkg syscall (linux-s390x), const PR_SET_PTRACER_ANY = -1
++pkg syscall (linux-s390x), const PR_SET_PTRACER_ANY ideal-int
++pkg syscall (linux-s390x), const PR_SET_PTRACER ideal-int
++pkg syscall (linux-s390x), const PR_SET_SECCOMP = 22
++pkg syscall (linux-s390x), const PR_SET_SECCOMP ideal-int
++pkg syscall (linux-s390x), const PR_SET_SECUREBITS = 28
++pkg syscall (linux-s390x), const PR_SET_SECUREBITS ideal-int
++pkg syscall (linux-s390x), const PR_SET_THP_DISABLE = 41
++pkg syscall (linux-s390x), const PR_SET_THP_DISABLE ideal-int
++pkg syscall (linux-s390x), const PR_SET_TIMERSLACK = 29
++pkg syscall (linux-s390x), const PR_SET_TIMERSLACK ideal-int
++pkg syscall (linux-s390x), const PR_SET_TIMING = 14
++pkg syscall (linux-s390x), const PR_SET_TIMING ideal-int
++pkg syscall (linux-s390x), const PR_SET_TSC = 26
++pkg syscall (linux-s390x), const PR_SET_TSC ideal-int
++pkg syscall (linux-s390x), const PR_SET_UNALIGN = 6
++pkg syscall (linux-s390x), const PR_SET_UNALIGN ideal-int
++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_DISABLE = 31
++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_DISABLE ideal-int
++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_ENABLE = 32
++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_ENABLE ideal-int
++pkg syscall (linux-s390x), const PR_TIMING_STATISTICAL = 0
++pkg syscall (linux-s390x), const PR_TIMING_STATISTICAL ideal-int
++pkg syscall (linux-s390x), const PR_TIMING_TIMESTAMP = 1
++pkg syscall (linux-s390x), const PR_TIMING_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const PR_TSC_ENABLE = 1
++pkg syscall (linux-s390x), const PR_TSC_ENABLE ideal-int
++pkg syscall (linux-s390x), const PR_TSC_SIGSEGV = 2
++pkg syscall (linux-s390x), const PR_TSC_SIGSEGV ideal-int
++pkg syscall (linux-s390x), const PR_UNALIGN_NOPRINT = 1
++pkg syscall (linux-s390x), const PR_UNALIGN_NOPRINT ideal-int
++pkg syscall (linux-s390x), const PR_UNALIGN_SIGBUS = 2
++pkg syscall (linux-s390x), const PR_UNALIGN_SIGBUS ideal-int
++pkg syscall (linux-s390x), const PT_ACR0 = 144
++pkg syscall (linux-s390x), const PT_ACR0 ideal-int
++pkg syscall (linux-s390x), const PT_ACR10 = 184
++pkg syscall (linux-s390x), const PT_ACR10 ideal-int
++pkg syscall (linux-s390x), const PT_ACR11 = 188
++pkg syscall (linux-s390x), const PT_ACR1 = 148
++pkg syscall (linux-s390x), const PT_ACR11 ideal-int
++pkg syscall (linux-s390x), const PT_ACR12 = 192
++pkg syscall (linux-s390x), const PT_ACR12 ideal-int
++pkg syscall (linux-s390x), const PT_ACR13 = 196
++pkg syscall (linux-s390x), const PT_ACR13 ideal-int
++pkg syscall (linux-s390x), const PT_ACR14 = 200
++pkg syscall (linux-s390x), const PT_ACR14 ideal-int
++pkg syscall (linux-s390x), const PT_ACR15 = 204
++pkg syscall (linux-s390x), const PT_ACR15 ideal-int
++pkg syscall (linux-s390x), const PT_ACR1 ideal-int
++pkg syscall (linux-s390x), const PT_ACR2 = 152
++pkg syscall (linux-s390x), const PT_ACR2 ideal-int
++pkg syscall (linux-s390x), const PT_ACR3 = 156
++pkg syscall (linux-s390x), const PT_ACR3 ideal-int
++pkg syscall (linux-s390x), const PT_ACR4 = 160
++pkg syscall (linux-s390x), const PT_ACR4 ideal-int
++pkg syscall (linux-s390x), const PT_ACR5 = 164
++pkg syscall (linux-s390x), const PT_ACR5 ideal-int
++pkg syscall (linux-s390x), const PT_ACR6 = 168
++pkg syscall (linux-s390x), const PT_ACR6 ideal-int
++pkg syscall (linux-s390x), const PT_ACR7 = 172
++pkg syscall (linux-s390x), const PT_ACR7 ideal-int
++pkg syscall (linux-s390x), const PT_ACR8 = 176
++pkg syscall (linux-s390x), const PT_ACR8 ideal-int
++pkg syscall (linux-s390x), const PT_ACR9 = 180
++pkg syscall (linux-s390x), const PT_ACR9 ideal-int
++pkg syscall (linux-s390x), const PT_CR_10 = 360
++pkg syscall (linux-s390x), const PT_CR_10 ideal-int
++pkg syscall (linux-s390x), const PT_CR_11 = 368
++pkg syscall (linux-s390x), const PT_CR_11 ideal-int
++pkg syscall (linux-s390x), const PT_CR_9 = 352
++pkg syscall (linux-s390x), const PT_CR_9 ideal-int
++pkg syscall (linux-s390x), const PT_ENDREGS = 431
++pkg syscall (linux-s390x), const PT_ENDREGS ideal-int
++pkg syscall (linux-s390x), const PT_FPC = 216
++pkg syscall (linux-s390x), const PT_FPC ideal-int
++pkg syscall (linux-s390x), const PT_FPR0 = 224
++pkg syscall (linux-s390x), const PT_FPR0 ideal-int
++pkg syscall (linux-s390x), const PT_FPR10 = 304
++pkg syscall (linux-s390x), const PT_FPR10 ideal-int
++pkg syscall (linux-s390x), const PT_FPR11 = 312
++pkg syscall (linux-s390x), const PT_FPR11 ideal-int
++pkg syscall (linux-s390x), const PT_FPR1 = 232
++pkg syscall (linux-s390x), const PT_FPR12 = 320
++pkg syscall (linux-s390x), const PT_FPR12 ideal-int
++pkg syscall (linux-s390x), const PT_FPR13 = 328
++pkg syscall (linux-s390x), const PT_FPR13 ideal-int
++pkg syscall (linux-s390x), const PT_FPR14 = 336
++pkg syscall (linux-s390x), const PT_FPR14 ideal-int
++pkg syscall (linux-s390x), const PT_FPR15 = 344
++pkg syscall (linux-s390x), const PT_FPR15 ideal-int
++pkg syscall (linux-s390x), const PT_FPR1 ideal-int
++pkg syscall (linux-s390x), const PT_FPR2 = 240
++pkg syscall (linux-s390x), const PT_FPR2 ideal-int
++pkg syscall (linux-s390x), const PT_FPR3 = 248
++pkg syscall (linux-s390x), const PT_FPR3 ideal-int
++pkg syscall (linux-s390x), const PT_FPR4 = 256
++pkg syscall (linux-s390x), const PT_FPR4 ideal-int
++pkg syscall (linux-s390x), const PT_FPR5 = 264
++pkg syscall (linux-s390x), const PT_FPR5 ideal-int
++pkg syscall (linux-s390x), const PT_FPR6 = 272
++pkg syscall (linux-s390x), const PT_FPR6 ideal-int
++pkg syscall (linux-s390x), const PT_FPR7 = 280
++pkg syscall (linux-s390x), const PT_FPR7 ideal-int
++pkg syscall (linux-s390x), const PT_FPR8 = 288
++pkg syscall (linux-s390x), const PT_FPR8 ideal-int
++pkg syscall (linux-s390x), const PT_FPR9 = 296
++pkg syscall (linux-s390x), const PT_FPR9 ideal-int
++pkg syscall (linux-s390x), const PT_GPR0 = 16
++pkg syscall (linux-s390x), const PT_GPR0 ideal-int
++pkg syscall (linux-s390x), const PT_GPR10 = 96
++pkg syscall (linux-s390x), const PT_GPR10 ideal-int
++pkg syscall (linux-s390x), const PT_GPR11 = 104
++pkg syscall (linux-s390x), const PT_GPR11 ideal-int
++pkg syscall (linux-s390x), const PT_GPR12 = 112
++pkg syscall (linux-s390x), const PT_GPR1 = 24
++pkg syscall (linux-s390x), const PT_GPR12 ideal-int
++pkg syscall (linux-s390x), const PT_GPR13 = 120
++pkg syscall (linux-s390x), const PT_GPR13 ideal-int
++pkg syscall (linux-s390x), const PT_GPR14 = 128
++pkg syscall (linux-s390x), const PT_GPR14 ideal-int
++pkg syscall (linux-s390x), const PT_GPR15 = 136
++pkg syscall (linux-s390x), const PT_GPR15 ideal-int
++pkg syscall (linux-s390x), const PT_GPR1 ideal-int
++pkg syscall (linux-s390x), const PT_GPR2 = 32
++pkg syscall (linux-s390x), const PT_GPR2 ideal-int
++pkg syscall (linux-s390x), const PT_GPR3 = 40
++pkg syscall (linux-s390x), const PT_GPR3 ideal-int
++pkg syscall (linux-s390x), const PT_GPR4 = 48
++pkg syscall (linux-s390x), const PT_GPR4 ideal-int
++pkg syscall (linux-s390x), const PT_GPR5 = 56
++pkg syscall (linux-s390x), const PT_GPR5 ideal-int
++pkg syscall (linux-s390x), const PT_GPR6 = 64
++pkg syscall (linux-s390x), const PT_GPR6 ideal-int
++pkg syscall (linux-s390x), const PT_GPR7 = 72
++pkg syscall (linux-s390x), const PT_GPR7 ideal-int
++pkg syscall (linux-s390x), const PT_GPR8 = 80
++pkg syscall (linux-s390x), const PT_GPR8 ideal-int
++pkg syscall (linux-s390x), const PT_GPR9 = 88
++pkg syscall (linux-s390x), const PT_GPR9 ideal-int
++pkg syscall (linux-s390x), const PT_IEEE_IP = 424
++pkg syscall (linux-s390x), const PT_IEEE_IP ideal-int
++pkg syscall (linux-s390x), const PT_LASTOFF = 424
++pkg syscall (linux-s390x), const PT_LASTOFF ideal-int
++pkg syscall (linux-s390x), const PT_ORIGGPR2 = 208
++pkg syscall (linux-s390x), const PT_ORIGGPR2 ideal-int
++pkg syscall (linux-s390x), const PT_PSWADDR = 8
++pkg syscall (linux-s390x), const PT_PSWADDR ideal-int
++pkg syscall (linux-s390x), const PT_PSWMASK = 0
++pkg syscall (linux-s390x), const PT_PSWMASK ideal-int
++pkg syscall (linux-s390x), const PTRACE_ATTACH = 16
++pkg syscall (linux-s390x), const PTRACE_ATTACH ideal-int
++pkg syscall (linux-s390x), const PTRACE_CONT = 7
++pkg syscall (linux-s390x), const PTRACE_CONT ideal-int
++pkg syscall (linux-s390x), const PTRACE_DETACH = 17
++pkg syscall (linux-s390x), const PTRACE_DETACH ideal-int
++pkg syscall (linux-s390x), const PTRACE_DISABLE_TE = 20496
++pkg syscall (linux-s390x), const PTRACE_DISABLE_TE ideal-int
++pkg syscall (linux-s390x), const PTRACE_ENABLE_TE = 20489
++pkg syscall (linux-s390x), const PTRACE_ENABLE_TE ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_CLONE = 3
++pkg syscall (linux-s390x), const PTRACE_EVENT_CLONE ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_EXEC = 4
++pkg syscall (linux-s390x), const PTRACE_EVENT_EXEC ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_EXIT = 6
++pkg syscall (linux-s390x), const PTRACE_EVENT_EXIT ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_FORK = 1
++pkg syscall (linux-s390x), const PTRACE_EVENT_FORK ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_SECCOMP = 7
++pkg syscall (linux-s390x), const PTRACE_EVENT_SECCOMP ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_STOP = 128
++pkg syscall (linux-s390x), const PTRACE_EVENT_STOP ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK = 2
++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK_DONE = 5
++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK_DONE ideal-int
++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK ideal-int
++pkg syscall (linux-s390x), const PTRACE_GETEVENTMSG = 16897
++pkg syscall (linux-s390x), const PTRACE_GETEVENTMSG ideal-int
++pkg syscall (linux-s390x), const PTRACE_GET_LAST_BREAK = 20486
++pkg syscall (linux-s390x), const PTRACE_GET_LAST_BREAK ideal-int
++pkg syscall (linux-s390x), const PTRACE_GETREGS = 12
++pkg syscall (linux-s390x), const PTRACE_GETREGSET = 16900
++pkg syscall (linux-s390x), const PTRACE_GETREGSET ideal-int
++pkg syscall (linux-s390x), const PTRACE_GETREGS ideal-int
++pkg syscall (linux-s390x), const PTRACE_GETSIGINFO = 16898
++pkg syscall (linux-s390x), const PTRACE_GETSIGINFO ideal-int
++pkg syscall (linux-s390x), const PTRACE_INTERRUPT = 16903
++pkg syscall (linux-s390x), const PTRACE_INTERRUPT ideal-int
++pkg syscall (linux-s390x), const PTRACE_KILL = 8
++pkg syscall (linux-s390x), const PTRACE_KILL ideal-int
++pkg syscall (linux-s390x), const PTRACE_LISTEN = 16904
++pkg syscall (linux-s390x), const PTRACE_LISTEN ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_EXITKILL = 1048576
++pkg syscall (linux-s390x), const PTRACE_O_EXITKILL ideal-int
++pkg syscall (linux-s390x), const PTRACE_OLDSETOPTIONS = 21
++pkg syscall (linux-s390x), const PTRACE_OLDSETOPTIONS ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_MASK = 1048831
++pkg syscall (linux-s390x), const PTRACE_O_MASK ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACECLONE = 8
++pkg syscall (linux-s390x), const PTRACE_O_TRACECLONE ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXEC = 16
++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXEC ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXIT = 64
++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXIT ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACEFORK = 2
++pkg syscall (linux-s390x), const PTRACE_O_TRACEFORK ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACESECCOMP = 128
++pkg syscall (linux-s390x), const PTRACE_O_TRACESECCOMP ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACESYSGOOD = 1
++pkg syscall (linux-s390x), const PTRACE_O_TRACESYSGOOD ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORK = 4
++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORKDONE = 32
++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORKDONE ideal-int
++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORK ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKDATA = 2
++pkg syscall (linux-s390x), const PTRACE_PEEKDATA_AREA = 20483
++pkg syscall (linux-s390x), const PTRACE_PEEKDATA_AREA ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKDATA ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO = 16905
++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO_SHARED = 1
++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO_SHARED ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEK_SYSTEM_CALL = 20487
++pkg syscall (linux-s390x), const PTRACE_PEEK_SYSTEM_CALL ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT = 1
++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT_AREA = 20482
++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT_AREA ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKUSR = 3
++pkg syscall (linux-s390x), const PTRACE_PEEKUSR_AREA = 20480
++pkg syscall (linux-s390x), const PTRACE_PEEKUSR_AREA ideal-int
++pkg syscall (linux-s390x), const PTRACE_PEEKUSR ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKEDATA = 5
++pkg syscall (linux-s390x), const PTRACE_POKEDATA_AREA = 20485
++pkg syscall (linux-s390x), const PTRACE_POKEDATA_AREA ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKEDATA ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKE_SYSTEM_CALL = 20488
++pkg syscall (linux-s390x), const PTRACE_POKE_SYSTEM_CALL ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKETEXT = 4
++pkg syscall (linux-s390x), const PTRACE_POKETEXT_AREA = 20484
++pkg syscall (linux-s390x), const PTRACE_POKETEXT_AREA ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKETEXT ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKEUSR = 6
++pkg syscall (linux-s390x), const PTRACE_POKEUSR_AREA = 20481
++pkg syscall (linux-s390x), const PTRACE_POKEUSR_AREA ideal-int
++pkg syscall (linux-s390x), const PTRACE_POKEUSR ideal-int
++pkg syscall (linux-s390x), const PTRACE_PROT = 21
++pkg syscall (linux-s390x), const PTRACE_PROT ideal-int
++pkg syscall (linux-s390x), const PTRACE_SEIZE = 16902
++pkg syscall (linux-s390x), const PTRACE_SEIZE ideal-int
++pkg syscall (linux-s390x), const PTRACE_SETOPTIONS = 16896
++pkg syscall (linux-s390x), const PTRACE_SETOPTIONS ideal-int
++pkg syscall (linux-s390x), const PTRACE_SETREGS = 13
++pkg syscall (linux-s390x), const PTRACE_SETREGSET = 16901
++pkg syscall (linux-s390x), const PTRACE_SETREGSET ideal-int
++pkg syscall (linux-s390x), const PTRACE_SETREGS ideal-int
++pkg syscall (linux-s390x), const PTRACE_SETSIGINFO = 16899
++pkg syscall (linux-s390x), const PTRACE_SETSIGINFO ideal-int
++pkg syscall (linux-s390x), const PTRACE_SINGLESTEP = 9
++pkg syscall (linux-s390x), const PTRACE_SINGLESTEP ideal-int
++pkg syscall (linux-s390x), const PTRACE_SYSCALL = 24
++pkg syscall (linux-s390x), const PTRACE_SYSCALL ideal-int
++pkg syscall (linux-s390x), const PTRACE_TRACEME = 0
++pkg syscall (linux-s390x), const PTRACE_TRACEME ideal-int
++pkg syscall (linux-s390x), const RLIM_INFINITY = -1
++pkg syscall (linux-s390x), const RLIM_INFINITY ideal-int
++pkg syscall (linux-s390x), const RLIMIT_AS = 9
++pkg syscall (linux-s390x), const RLIMIT_AS ideal-int
++pkg syscall (linux-s390x), const RLIMIT_CORE = 4
++pkg syscall (linux-s390x), const RLIMIT_CORE ideal-int
++pkg syscall (linux-s390x), const RLIMIT_CPU = 0
++pkg syscall (linux-s390x), const RLIMIT_CPU ideal-int
++pkg syscall (linux-s390x), const RLIMIT_DATA = 2
++pkg syscall (linux-s390x), const RLIMIT_DATA ideal-int
++pkg syscall (linux-s390x), const RLIMIT_FSIZE = 1
++pkg syscall (linux-s390x), const RLIMIT_FSIZE ideal-int
++pkg syscall (linux-s390x), const RLIMIT_NOFILE = 7
++pkg syscall (linux-s390x), const RLIMIT_NOFILE ideal-int
++pkg syscall (linux-s390x), const RLIMIT_STACK = 3
++pkg syscall (linux-s390x), const RLIMIT_STACK ideal-int
++pkg syscall (linux-s390x), const RTA_ALIGNTO = 4
++pkg syscall (linux-s390x), const RTA_ALIGNTO ideal-int
++pkg syscall (linux-s390x), const RTA_CACHEINFO = 12
++pkg syscall (linux-s390x), const RTA_CACHEINFO ideal-int
++pkg syscall (linux-s390x), const RTA_DST = 1
++pkg syscall (linux-s390x), const RTA_DST ideal-int
++pkg syscall (linux-s390x), const RTA_FLOW = 11
++pkg syscall (linux-s390x), const RTA_FLOW ideal-int
++pkg syscall (linux-s390x), const RTA_GATEWAY = 5
++pkg syscall (linux-s390x), const RTA_GATEWAY ideal-int
++pkg syscall (linux-s390x), const RTA_IIF = 3
++pkg syscall (linux-s390x), const RTA_IIF ideal-int
++pkg syscall (linux-s390x), const RTA_MAX = 17
++pkg syscall (linux-s390x), const RTA_MAX ideal-int
++pkg syscall (linux-s390x), const RTA_METRICS = 8
++pkg syscall (linux-s390x), const RTA_METRICS ideal-int
++pkg syscall (linux-s390x), const RTA_MULTIPATH = 9
++pkg syscall (linux-s390x), const RTA_MULTIPATH ideal-int
++pkg syscall (linux-s390x), const RTA_OIF = 4
++pkg syscall (linux-s390x), const RTA_OIF ideal-int
++pkg syscall (linux-s390x), const RTA_PREFSRC = 7
++pkg syscall (linux-s390x), const RTA_PREFSRC ideal-int
++pkg syscall (linux-s390x), const RTA_PRIORITY = 6
++pkg syscall (linux-s390x), const RTA_PRIORITY ideal-int
++pkg syscall (linux-s390x), const RTA_SRC = 2
++pkg syscall (linux-s390x), const RTA_SRC ideal-int
++pkg syscall (linux-s390x), const RTA_TABLE = 15
++pkg syscall (linux-s390x), const RTA_TABLE ideal-int
++pkg syscall (linux-s390x), const RTA_UNSPEC = 0
++pkg syscall (linux-s390x), const RTA_UNSPEC ideal-int
++pkg syscall (linux-s390x), const RTAX_ADVMSS = 8
++pkg syscall (linux-s390x), const RTAX_ADVMSS ideal-int
++pkg syscall (linux-s390x), const RTAX_CWND = 7
++pkg syscall (linux-s390x), const RTAX_CWND ideal-int
++pkg syscall (linux-s390x), const RTAX_FEATURE_ALLFRAG = 8
++pkg syscall (linux-s390x), const RTAX_FEATURE_ALLFRAG ideal-int
++pkg syscall (linux-s390x), const RTAX_FEATURE_ECN = 1
++pkg syscall (linux-s390x), const RTAX_FEATURE_ECN ideal-int
++pkg syscall (linux-s390x), const RTAX_FEATURES = 12
++pkg syscall (linux-s390x), const RTAX_FEATURE_SACK = 2
++pkg syscall (linux-s390x), const RTAX_FEATURE_SACK ideal-int
++pkg syscall (linux-s390x), const RTAX_FEATURES ideal-int
++pkg syscall (linux-s390x), const RTAX_FEATURE_TIMESTAMP = 4
++pkg syscall (linux-s390x), const RTAX_FEATURE_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const RTAX_HOPLIMIT = 10
++pkg syscall (linux-s390x), const RTAX_HOPLIMIT ideal-int
++pkg syscall (linux-s390x), const RTAX_INITCWND = 11
++pkg syscall (linux-s390x), const RTAX_INITCWND ideal-int
++pkg syscall (linux-s390x), const RTAX_INITRWND = 14
++pkg syscall (linux-s390x), const RTAX_INITRWND ideal-int
++pkg syscall (linux-s390x), const RTAX_LOCK = 1
++pkg syscall (linux-s390x), const RTAX_LOCK ideal-int
++pkg syscall (linux-s390x), const RTAX_MAX = 23
++pkg syscall (linux-s390x), const RTAX_MAX ideal-int
++pkg syscall (linux-s390x), const RTAX_MTU = 2
++pkg syscall (linux-s390x), const RTAX_MTU ideal-int
++pkg syscall (linux-s390x), const RTAX_QUICKACK = 15
++pkg syscall (linux-s390x), const RTAX_QUICKACK ideal-int
++pkg syscall (linux-s390x), const RTAX_REORDERING = 9
++pkg syscall (linux-s390x), const RTAX_REORDERING ideal-int
++pkg syscall (linux-s390x), const RTAX_RTO_MIN = 13
++pkg syscall (linux-s390x), const RTAX_RTO_MIN ideal-int
++pkg syscall (linux-s390x), const RTAX_RTT = 4
++pkg syscall (linux-s390x), const RTAX_RTT ideal-int
++pkg syscall (linux-s390x), const RTAX_RTTVAR = 5
++pkg syscall (linux-s390x), const RTAX_RTTVAR ideal-int
++pkg syscall (linux-s390x), const RTAX_SSTHRESH = 6
++pkg syscall (linux-s390x), const RTAX_SSTHRESH ideal-int
++pkg syscall (linux-s390x), const RTAX_UNSPEC = 0
++pkg syscall (linux-s390x), const RTAX_UNSPEC ideal-int
++pkg syscall (linux-s390x), const RTAX_WINDOW = 3
++pkg syscall (linux-s390x), const RTAX_WINDOW ideal-int
++pkg syscall (linux-s390x), const RTCF_DIRECTSRC = 67108864
++pkg syscall (linux-s390x), const RTCF_DIRECTSRC ideal-int
++pkg syscall (linux-s390x), const RTCF_DOREDIRECT = 16777216
++pkg syscall (linux-s390x), const RTCF_DOREDIRECT ideal-int
++pkg syscall (linux-s390x), const RTCF_LOG = 33554432
++pkg syscall (linux-s390x), const RTCF_LOG ideal-int
++pkg syscall (linux-s390x), const RTCF_MASQ = 4194304
++pkg syscall (linux-s390x), const RTCF_MASQ ideal-int
++pkg syscall (linux-s390x), const RTCF_NAT = 8388608
++pkg syscall (linux-s390x), const RTCF_NAT ideal-int
++pkg syscall (linux-s390x), const RTCF_VALVE = 2097152
++pkg syscall (linux-s390x), const RTCF_VALVE ideal-int
++pkg syscall (linux-s390x), const RT_CLASS_DEFAULT = 253
++pkg syscall (linux-s390x), const RT_CLASS_DEFAULT ideal-int
++pkg syscall (linux-s390x), const RT_CLASS_LOCAL = 255
++pkg syscall (linux-s390x), const RT_CLASS_LOCAL ideal-int
++pkg syscall (linux-s390x), const RT_CLASS_MAIN = 254
++pkg syscall (linux-s390x), const RT_CLASS_MAIN ideal-int
++pkg syscall (linux-s390x), const RT_CLASS_MAX = 255
++pkg syscall (linux-s390x), const RT_CLASS_MAX ideal-int
++pkg syscall (linux-s390x), const RT_CLASS_UNSPEC = 0
++pkg syscall (linux-s390x), const RT_CLASS_UNSPEC ideal-int
++pkg syscall (linux-s390x), const RTF_ADDRCLASSMASK = 4160749568
++pkg syscall (linux-s390x), const RTF_ADDRCLASSMASK ideal-int
++pkg syscall (linux-s390x), const RTF_ADDRCONF = 262144
++pkg syscall (linux-s390x), const RTF_ADDRCONF ideal-int
++pkg syscall (linux-s390x), const RTF_ALLONLINK = 131072
++pkg syscall (linux-s390x), const RTF_ALLONLINK ideal-int
++pkg syscall (linux-s390x), const RTF_BROADCAST = 268435456
++pkg syscall (linux-s390x), const RTF_BROADCAST ideal-int
++pkg syscall (linux-s390x), const RTF_CACHE = 16777216
++pkg syscall (linux-s390x), const RTF_CACHE ideal-int
++pkg syscall (linux-s390x), const RTF_DEFAULT = 65536
++pkg syscall (linux-s390x), const RTF_DEFAULT ideal-int
++pkg syscall (linux-s390x), const RTF_DYNAMIC = 16
++pkg syscall (linux-s390x), const RTF_DYNAMIC ideal-int
++pkg syscall (linux-s390x), const RTF_FLOW = 33554432
++pkg syscall (linux-s390x), const RTF_FLOW ideal-int
++pkg syscall (linux-s390x), const RTF_GATEWAY = 2
++pkg syscall (linux-s390x), const RTF_GATEWAY ideal-int
++pkg syscall (linux-s390x), const RTF_HOST = 4
++pkg syscall (linux-s390x), const RTF_HOST ideal-int
++pkg syscall (linux-s390x), const RTF_INTERFACE = 1073741824
++pkg syscall (linux-s390x), const RTF_INTERFACE ideal-int
++pkg syscall (linux-s390x), const RTF_IRTT = 256
++pkg syscall (linux-s390x), const RTF_IRTT ideal-int
++pkg syscall (linux-s390x), const RTF_LINKRT = 1048576
++pkg syscall (linux-s390x), const RTF_LINKRT ideal-int
++pkg syscall (linux-s390x), const RTF_LOCAL = 2147483648
++pkg syscall (linux-s390x), const RTF_LOCAL ideal-int
++pkg syscall (linux-s390x), const RTF_MODIFIED = 32
++pkg syscall (linux-s390x), const RTF_MODIFIED ideal-int
++pkg syscall (linux-s390x), const RTF_MSS = 64
++pkg syscall (linux-s390x), const RTF_MSS ideal-int
++pkg syscall (linux-s390x), const RTF_MTU = 64
++pkg syscall (linux-s390x), const RTF_MTU ideal-int
++pkg syscall (linux-s390x), const RTF_MULTICAST = 536870912
++pkg syscall (linux-s390x), const RTF_MULTICAST ideal-int
++pkg syscall (linux-s390x), const RTF_NAT = 134217728
++pkg syscall (linux-s390x), const RTF_NAT ideal-int
++pkg syscall (linux-s390x), const RTF_NOFORWARD = 4096
++pkg syscall (linux-s390x), const RTF_NOFORWARD ideal-int
++pkg syscall (linux-s390x), const RTF_NONEXTHOP = 2097152
++pkg syscall (linux-s390x), const RTF_NONEXTHOP ideal-int
++pkg syscall (linux-s390x), const RTF_NOPMTUDISC = 16384
++pkg syscall (linux-s390x), const RTF_NOPMTUDISC ideal-int
++pkg syscall (linux-s390x), const RTF_POLICY = 67108864
++pkg syscall (linux-s390x), const RTF_POLICY ideal-int
++pkg syscall (linux-s390x), const RTF_REINSTATE = 8
++pkg syscall (linux-s390x), const RTF_REINSTATE ideal-int
++pkg syscall (linux-s390x), const RTF_REJECT = 512
++pkg syscall (linux-s390x), const RTF_REJECT ideal-int
++pkg syscall (linux-s390x), const RTF_STATIC = 1024
++pkg syscall (linux-s390x), const RTF_STATIC ideal-int
++pkg syscall (linux-s390x), const RTF_THROW = 8192
++pkg syscall (linux-s390x), const RTF_THROW ideal-int
++pkg syscall (linux-s390x), const RTF_UP = 1
++pkg syscall (linux-s390x), const RTF_UP ideal-int
++pkg syscall (linux-s390x), const RTF_WINDOW = 128
++pkg syscall (linux-s390x), const RTF_WINDOW ideal-int
++pkg syscall (linux-s390x), const RTF_XRESOLVE = 2048
++pkg syscall (linux-s390x), const RTF_XRESOLVE ideal-int
++pkg syscall (linux-s390x), const RTM_BASE = 16
++pkg syscall (linux-s390x), const RTM_BASE ideal-int
++pkg syscall (linux-s390x), const RTM_DELACTION = 49
++pkg syscall (linux-s390x), const RTM_DELACTION ideal-int
++pkg syscall (linux-s390x), const RTM_DELADDR = 21
++pkg syscall (linux-s390x), const RTM_DELADDR ideal-int
++pkg syscall (linux-s390x), const RTM_DELADDRLABEL = 73
++pkg syscall (linux-s390x), const RTM_DELADDRLABEL ideal-int
++pkg syscall (linux-s390x), const RTM_DELLINK = 17
++pkg syscall (linux-s390x), const RTM_DELLINK ideal-int
++pkg syscall (linux-s390x), const RTM_DELMDB = 85
++pkg syscall (linux-s390x), const RTM_DELMDB ideal-int
++pkg syscall (linux-s390x), const RTM_DELNEIGH = 29
++pkg syscall (linux-s390x), const RTM_DELNEIGH ideal-int
++pkg syscall (linux-s390x), const RTM_DELQDISC = 37
++pkg syscall (linux-s390x), const RTM_DELQDISC ideal-int
++pkg syscall (linux-s390x), const RTM_DELROUTE = 25
++pkg syscall (linux-s390x), const RTM_DELROUTE ideal-int
++pkg syscall (linux-s390x), const RTM_DELRULE = 33
++pkg syscall (linux-s390x), const RTM_DELRULE ideal-int
++pkg syscall (linux-s390x), const RTM_DELTCLASS = 41
++pkg syscall (linux-s390x), const RTM_DELTCLASS ideal-int
++pkg syscall (linux-s390x), const RTM_DELTFILTER = 45
++pkg syscall (linux-s390x), const RTM_DELTFILTER ideal-int
++pkg syscall (linux-s390x), const RTM_F_CLONED = 512
++pkg syscall (linux-s390x), const RTM_F_CLONED ideal-int
++pkg syscall (linux-s390x), const RTM_F_EQUALIZE = 1024
++pkg syscall (linux-s390x), const RTM_F_EQUALIZE ideal-int
++pkg syscall (linux-s390x), const RTM_F_NOTIFY = 256
++pkg syscall (linux-s390x), const RTM_F_NOTIFY ideal-int
++pkg syscall (linux-s390x), const RTM_F_PREFIX = 2048
++pkg syscall (linux-s390x), const RTM_F_PREFIX ideal-int
++pkg syscall (linux-s390x), const RTM_GETACTION = 50
++pkg syscall (linux-s390x), const RTM_GETACTION ideal-int
++pkg syscall (linux-s390x), const RTM_GETADDR = 22
++pkg syscall (linux-s390x), const RTM_GETADDR ideal-int
++pkg syscall (linux-s390x), const RTM_GETADDRLABEL = 74
++pkg syscall (linux-s390x), const RTM_GETADDRLABEL ideal-int
++pkg syscall (linux-s390x), const RTM_GETANYCAST = 62
++pkg syscall (linux-s390x), const RTM_GETANYCAST ideal-int
++pkg syscall (linux-s390x), const RTM_GETDCB = 78
++pkg syscall (linux-s390x), const RTM_GETDCB ideal-int
++pkg syscall (linux-s390x), const RTM_GETLINK = 18
++pkg syscall (linux-s390x), const RTM_GETLINK ideal-int
++pkg syscall (linux-s390x), const RTM_GETMDB = 86
++pkg syscall (linux-s390x), const RTM_GETMDB ideal-int
++pkg syscall (linux-s390x), const RTM_GETMULTICAST = 58
++pkg syscall (linux-s390x), const RTM_GETMULTICAST ideal-int
++pkg syscall (linux-s390x), const RTM_GETNEIGH = 30
++pkg syscall (linux-s390x), const RTM_GETNEIGH ideal-int
++pkg syscall (linux-s390x), const RTM_GETNEIGHTBL = 66
++pkg syscall (linux-s390x), const RTM_GETNEIGHTBL ideal-int
++pkg syscall (linux-s390x), const RTM_GETNETCONF = 82
++pkg syscall (linux-s390x), const RTM_GETNETCONF ideal-int
++pkg syscall (linux-s390x), const RTM_GETQDISC = 38
++pkg syscall (linux-s390x), const RTM_GETQDISC ideal-int
++pkg syscall (linux-s390x), const RTM_GETROUTE = 26
++pkg syscall (linux-s390x), const RTM_GETROUTE ideal-int
++pkg syscall (linux-s390x), const RTM_GETRULE = 34
++pkg syscall (linux-s390x), const RTM_GETRULE ideal-int
++pkg syscall (linux-s390x), const RTM_GETTCLASS = 42
++pkg syscall (linux-s390x), const RTM_GETTCLASS ideal-int
++pkg syscall (linux-s390x), const RTM_GETTFILTER = 46
++pkg syscall (linux-s390x), const RTM_GETTFILTER ideal-int
++pkg syscall (linux-s390x), const RTM_MAX = 87
++pkg syscall (linux-s390x), const RTM_MAX ideal-int
++pkg syscall (linux-s390x), const RTM_NEWACTION = 48
++pkg syscall (linux-s390x), const RTM_NEWACTION ideal-int
++pkg syscall (linux-s390x), const RTM_NEWADDR = 20
++pkg syscall (linux-s390x), const RTM_NEWADDR ideal-int
++pkg syscall (linux-s390x), const RTM_NEWADDRLABEL = 72
++pkg syscall (linux-s390x), const RTM_NEWADDRLABEL ideal-int
++pkg syscall (linux-s390x), const RTM_NEWLINK = 16
++pkg syscall (linux-s390x), const RTM_NEWLINK ideal-int
++pkg syscall (linux-s390x), const RTM_NEWMDB = 84
++pkg syscall (linux-s390x), const RTM_NEWMDB ideal-int
++pkg syscall (linux-s390x), const RTM_NEWNDUSEROPT = 68
++pkg syscall (linux-s390x), const RTM_NEWNDUSEROPT ideal-int
++pkg syscall (linux-s390x), const RTM_NEWNEIGH = 28
++pkg syscall (linux-s390x), const RTM_NEWNEIGH ideal-int
++pkg syscall (linux-s390x), const RTM_NEWNEIGHTBL = 64
++pkg syscall (linux-s390x), const RTM_NEWNEIGHTBL ideal-int
++pkg syscall (linux-s390x), const RTM_NEWNETCONF = 80
++pkg syscall (linux-s390x), const RTM_NEWNETCONF ideal-int
++pkg syscall (linux-s390x), const RTM_NEWPREFIX = 52
++pkg syscall (linux-s390x), const RTM_NEWPREFIX ideal-int
++pkg syscall (linux-s390x), const RTM_NEWQDISC = 36
++pkg syscall (linux-s390x), const RTM_NEWQDISC ideal-int
++pkg syscall (linux-s390x), const RTM_NEWROUTE = 24
++pkg syscall (linux-s390x), const RTM_NEWROUTE ideal-int
++pkg syscall (linux-s390x), const RTM_NEWRULE = 32
++pkg syscall (linux-s390x), const RTM_NEWRULE ideal-int
++pkg syscall (linux-s390x), const RTM_NEWTCLASS = 40
++pkg syscall (linux-s390x), const RTM_NEWTCLASS ideal-int
++pkg syscall (linux-s390x), const RTM_NEWTFILTER = 44
++pkg syscall (linux-s390x), const RTM_NEWTFILTER ideal-int
++pkg syscall (linux-s390x), const RTM_NR_FAMILIES = 18
++pkg syscall (linux-s390x), const RTM_NR_FAMILIES ideal-int
++pkg syscall (linux-s390x), const RTM_NR_MSGTYPES = 72
++pkg syscall (linux-s390x), const RTM_NR_MSGTYPES ideal-int
++pkg syscall (linux-s390x), const RTM_SETDCB = 79
++pkg syscall (linux-s390x), const RTM_SETDCB ideal-int
++pkg syscall (linux-s390x), const RTM_SETLINK = 19
++pkg syscall (linux-s390x), const RTM_SETLINK ideal-int
++pkg syscall (linux-s390x), const RTM_SETNEIGHTBL = 67
++pkg syscall (linux-s390x), const RTM_SETNEIGHTBL ideal-int
++pkg syscall (linux-s390x), const RTN_ANYCAST = 4
++pkg syscall (linux-s390x), const RTN_ANYCAST ideal-int
++pkg syscall (linux-s390x), const RTN_BLACKHOLE = 6
++pkg syscall (linux-s390x), const RTN_BLACKHOLE ideal-int
++pkg syscall (linux-s390x), const RTN_BROADCAST = 3
++pkg syscall (linux-s390x), const RTN_BROADCAST ideal-int
++pkg syscall (linux-s390x), const RTNH_ALIGNTO = 4
++pkg syscall (linux-s390x), const RTNH_ALIGNTO ideal-int
++pkg syscall (linux-s390x), const RTNH_F_DEAD = 1
++pkg syscall (linux-s390x), const RTNH_F_DEAD ideal-int
++pkg syscall (linux-s390x), const RTNH_F_ONLINK = 4
++pkg syscall (linux-s390x), const RTNH_F_ONLINK ideal-int
++pkg syscall (linux-s390x), const RTNH_F_PERVASIVE = 2
++pkg syscall (linux-s390x), const RTNH_F_PERVASIVE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_IFADDR = 5
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_IFADDR ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_MROUTE = 6
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_MROUTE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_ROUTE = 7
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_ROUTE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_RULE = 8
++pkg syscall (linux-s390x), const RTNLGRP_IPV4_RULE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFADDR = 9
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFADDR ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFINFO = 12
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFINFO ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_MROUTE = 10
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_MROUTE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_PREFIX = 18
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_PREFIX ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_ROUTE = 11
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_ROUTE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_RULE = 19
++pkg syscall (linux-s390x), const RTNLGRP_IPV6_RULE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_LINK = 1
++pkg syscall (linux-s390x), const RTNLGRP_LINK ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_ND_USEROPT = 20
++pkg syscall (linux-s390x), const RTNLGRP_ND_USEROPT ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_NEIGH = 3
++pkg syscall (linux-s390x), const RTNLGRP_NEIGH ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_NONE = 0
++pkg syscall (linux-s390x), const RTNLGRP_NONE ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_NOTIFY = 2
++pkg syscall (linux-s390x), const RTNLGRP_NOTIFY ideal-int
++pkg syscall (linux-s390x), const RTNLGRP_TC = 4
++pkg syscall (linux-s390x), const RTNLGRP_TC ideal-int
++pkg syscall (linux-s390x), const RTN_LOCAL = 2
++pkg syscall (linux-s390x), const RTN_LOCAL ideal-int
++pkg syscall (linux-s390x), const RTN_MAX = 11
++pkg syscall (linux-s390x), const RTN_MAX ideal-int
++pkg syscall (linux-s390x), const RTN_MULTICAST = 5
++pkg syscall (linux-s390x), const RTN_MULTICAST ideal-int
++pkg syscall (linux-s390x), const RTN_NAT = 10
++pkg syscall (linux-s390x), const RTN_NAT ideal-int
++pkg syscall (linux-s390x), const RTN_PROHIBIT = 8
++pkg syscall (linux-s390x), const RTN_PROHIBIT ideal-int
++pkg syscall (linux-s390x), const RTN_THROW = 9
++pkg syscall (linux-s390x), const RTN_THROW ideal-int
++pkg syscall (linux-s390x), const RTN_UNICAST = 1
++pkg syscall (linux-s390x), const RTN_UNICAST ideal-int
++pkg syscall (linux-s390x), const RTN_UNREACHABLE = 7
++pkg syscall (linux-s390x), const RTN_UNREACHABLE ideal-int
++pkg syscall (linux-s390x), const RTN_UNSPEC = 0
++pkg syscall (linux-s390x), const RTN_UNSPEC ideal-int
++pkg syscall (linux-s390x), const RTN_XRESOLVE = 11
++pkg syscall (linux-s390x), const RTN_XRESOLVE ideal-int
++pkg syscall (linux-s390x), const RTPROT_BIRD = 12
++pkg syscall (linux-s390x), const RTPROT_BIRD ideal-int
++pkg syscall (linux-s390x), const RTPROT_BOOT = 3
++pkg syscall (linux-s390x), const RTPROT_BOOT ideal-int
++pkg syscall (linux-s390x), const RTPROT_DHCP = 16
++pkg syscall (linux-s390x), const RTPROT_DHCP ideal-int
++pkg syscall (linux-s390x), const RTPROT_DNROUTED = 13
++pkg syscall (linux-s390x), const RTPROT_DNROUTED ideal-int
++pkg syscall (linux-s390x), const RTPROT_GATED = 8
++pkg syscall (linux-s390x), const RTPROT_GATED ideal-int
++pkg syscall (linux-s390x), const RTPROT_KERNEL = 2
++pkg syscall (linux-s390x), const RTPROT_KERNEL ideal-int
++pkg syscall (linux-s390x), const RTPROT_MROUTED = 17
++pkg syscall (linux-s390x), const RTPROT_MROUTED ideal-int
++pkg syscall (linux-s390x), const RTPROT_MRT = 10
++pkg syscall (linux-s390x), const RTPROT_MRT ideal-int
++pkg syscall (linux-s390x), const RTPROT_NTK = 15
++pkg syscall (linux-s390x), const RTPROT_NTK ideal-int
++pkg syscall (linux-s390x), const RTPROT_RA = 9
++pkg syscall (linux-s390x), const RTPROT_RA ideal-int
++pkg syscall (linux-s390x), const RTPROT_REDIRECT = 1
++pkg syscall (linux-s390x), const RTPROT_REDIRECT ideal-int
++pkg syscall (linux-s390x), const RTPROT_STATIC = 4
++pkg syscall (linux-s390x), const RTPROT_STATIC ideal-int
++pkg syscall (linux-s390x), const RTPROT_UNSPEC = 0
++pkg syscall (linux-s390x), const RTPROT_UNSPEC ideal-int
++pkg syscall (linux-s390x), const RTPROT_XORP = 14
++pkg syscall (linux-s390x), const RTPROT_XORP ideal-int
++pkg syscall (linux-s390x), const RTPROT_ZEBRA = 11
++pkg syscall (linux-s390x), const RTPROT_ZEBRA ideal-int
++pkg syscall (linux-s390x), const RT_SCOPE_HOST = 254
++pkg syscall (linux-s390x), const RT_SCOPE_HOST ideal-int
++pkg syscall (linux-s390x), const RT_SCOPE_LINK = 253
++pkg syscall (linux-s390x), const RT_SCOPE_LINK ideal-int
++pkg syscall (linux-s390x), const RT_SCOPE_NOWHERE = 255
++pkg syscall (linux-s390x), const RT_SCOPE_NOWHERE ideal-int
++pkg syscall (linux-s390x), const RT_SCOPE_SITE = 200
++pkg syscall (linux-s390x), const RT_SCOPE_SITE ideal-int
++pkg syscall (linux-s390x), const RT_SCOPE_UNIVERSE = 0
++pkg syscall (linux-s390x), const RT_SCOPE_UNIVERSE ideal-int
++pkg syscall (linux-s390x), const RT_TABLE_COMPAT = 252
++pkg syscall (linux-s390x), const RT_TABLE_COMPAT ideal-int
++pkg syscall (linux-s390x), const RT_TABLE_DEFAULT = 253
++pkg syscall (linux-s390x), const RT_TABLE_DEFAULT ideal-int
++pkg syscall (linux-s390x), const RT_TABLE_LOCAL = 255
++pkg syscall (linux-s390x), const RT_TABLE_LOCAL ideal-int
++pkg syscall (linux-s390x), const RT_TABLE_MAIN = 254
++pkg syscall (linux-s390x), const RT_TABLE_MAIN ideal-int
++pkg syscall (linux-s390x), const RT_TABLE_MAX = 4294967295
++pkg syscall (linux-s390x), const RT_TABLE_MAX ideal-int
++pkg syscall (linux-s390x), const RT_TABLE_UNSPEC = 0
++pkg syscall (linux-s390x), const RT_TABLE_UNSPEC ideal-int
++pkg syscall (linux-s390x), const RUSAGE_CHILDREN = -1
++pkg syscall (linux-s390x), const RUSAGE_CHILDREN ideal-int
++pkg syscall (linux-s390x), const RUSAGE_SELF = 0
++pkg syscall (linux-s390x), const RUSAGE_SELF ideal-int
++pkg syscall (linux-s390x), const RUSAGE_THREAD = 1
++pkg syscall (linux-s390x), const RUSAGE_THREAD ideal-int
++pkg syscall (linux-s390x), const S_BLKSIZE = 512
++pkg syscall (linux-s390x), const S_BLKSIZE ideal-int
++pkg syscall (linux-s390x), const SCM_CREDENTIALS = 2
++pkg syscall (linux-s390x), const SCM_CREDENTIALS ideal-int
++pkg syscall (linux-s390x), const SCM_RIGHTS = 1
++pkg syscall (linux-s390x), const SCM_RIGHTS ideal-int
++pkg syscall (linux-s390x), const SCM_TIMESTAMP = 29
++pkg syscall (linux-s390x), const SCM_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const SCM_TIMESTAMPING = 37
++pkg syscall (linux-s390x), const SCM_TIMESTAMPING ideal-int
++pkg syscall (linux-s390x), const SCM_TIMESTAMPNS = 35
++pkg syscall (linux-s390x), const SCM_TIMESTAMPNS ideal-int
++pkg syscall (linux-s390x), const SCM_WIFI_STATUS = 41
++pkg syscall (linux-s390x), const SCM_WIFI_STATUS ideal-int
++pkg syscall (linux-s390x), const S_IEXEC = 64
++pkg syscall (linux-s390x), const S_IEXEC ideal-int
++pkg syscall (linux-s390x), const S_IFMT = 61440
++pkg syscall (linux-s390x), const SIGBUS = 7
++pkg syscall (linux-s390x), const SIGCHLD = 17
++pkg syscall (linux-s390x), const SIGCHLD Signal
++pkg syscall (linux-s390x), const SIGCLD = 17
++pkg syscall (linux-s390x), const SIGCLD Signal
++pkg syscall (linux-s390x), const SIGCONT = 18
++pkg syscall (linux-s390x), const SIGCONT Signal
++pkg syscall (linux-s390x), const SIGIO = 29
++pkg syscall (linux-s390x), const SIGIO Signal
++pkg syscall (linux-s390x), const SIGIOT = 6
++pkg syscall (linux-s390x), const SIGIOT Signal
++pkg syscall (linux-s390x), const SIGPOLL = 29
++pkg syscall (linux-s390x), const SIGPOLL Signal
++pkg syscall (linux-s390x), const SIGPROF = 27
++pkg syscall (linux-s390x), const SIGPROF Signal
++pkg syscall (linux-s390x), const SIGPWR = 30
++pkg syscall (linux-s390x), const SIGPWR Signal
++pkg syscall (linux-s390x), const SIGSTKFLT = 16
++pkg syscall (linux-s390x), const SIGSTKFLT Signal
++pkg syscall (linux-s390x), const SIGSTOP = 19
++pkg syscall (linux-s390x), const SIGSTOP Signal
++pkg syscall (linux-s390x), const SIGSYS = 31
++pkg syscall (linux-s390x), const SIGSYS Signal
++pkg syscall (linux-s390x), const SIGTSTP = 20
++pkg syscall (linux-s390x), const SIGTSTP Signal
++pkg syscall (linux-s390x), const SIGTTIN = 21
++pkg syscall (linux-s390x), const SIGTTIN Signal
++pkg syscall (linux-s390x), const SIGTTOU = 22
++pkg syscall (linux-s390x), const SIGTTOU Signal
++pkg syscall (linux-s390x), const SIGUNUSED = 31
++pkg syscall (linux-s390x), const SIGUNUSED Signal
++pkg syscall (linux-s390x), const SIGURG = 23
++pkg syscall (linux-s390x), const SIGURG Signal
++pkg syscall (linux-s390x), const SIGUSR1 = 10
++pkg syscall (linux-s390x), const SIGUSR1 Signal
++pkg syscall (linux-s390x), const SIGUSR2 = 12
++pkg syscall (linux-s390x), const SIGUSR2 Signal
++pkg syscall (linux-s390x), const SIGVTALRM = 26
++pkg syscall (linux-s390x), const SIGVTALRM Signal
++pkg syscall (linux-s390x), const SIGWINCH = 28
++pkg syscall (linux-s390x), const SIGWINCH Signal
++pkg syscall (linux-s390x), const SIGXCPU = 24
++pkg syscall (linux-s390x), const SIGXCPU Signal
++pkg syscall (linux-s390x), const SIGXFSZ = 25
++pkg syscall (linux-s390x), const SIGXFSZ Signal
++pkg syscall (linux-s390x), const SIOCADDDLCI = 35200
++pkg syscall (linux-s390x), const SIOCADDDLCI ideal-int
++pkg syscall (linux-s390x), const SIOCADDMULTI = 35121
++pkg syscall (linux-s390x), const SIOCADDMULTI ideal-int
++pkg syscall (linux-s390x), const SIOCADDRT = 35083
++pkg syscall (linux-s390x), const SIOCADDRT ideal-int
++pkg syscall (linux-s390x), const SIOCATMARK = 35077
++pkg syscall (linux-s390x), const SIOCATMARK ideal-int
++pkg syscall (linux-s390x), const SIOCDARP = 35155
++pkg syscall (linux-s390x), const SIOCDARP ideal-int
++pkg syscall (linux-s390x), const SIOCDELDLCI = 35201
++pkg syscall (linux-s390x), const SIOCDELDLCI ideal-int
++pkg syscall (linux-s390x), const SIOCDELMULTI = 35122
++pkg syscall (linux-s390x), const SIOCDELMULTI ideal-int
++pkg syscall (linux-s390x), const SIOCDELRT = 35084
++pkg syscall (linux-s390x), const SIOCDELRT ideal-int
++pkg syscall (linux-s390x), const SIOCDEVPRIVATE = 35312
++pkg syscall (linux-s390x), const SIOCDEVPRIVATE ideal-int
++pkg syscall (linux-s390x), const SIOCDIFADDR = 35126
++pkg syscall (linux-s390x), const SIOCDIFADDR ideal-int
++pkg syscall (linux-s390x), const SIOCDRARP = 35168
++pkg syscall (linux-s390x), const SIOCDRARP ideal-int
++pkg syscall (linux-s390x), const SIOCGARP = 35156
++pkg syscall (linux-s390x), const SIOCGARP ideal-int
++pkg syscall (linux-s390x), const SIOCGIFADDR = 35093
++pkg syscall (linux-s390x), const SIOCGIFADDR ideal-int
++pkg syscall (linux-s390x), const SIOCGIFBR = 35136
++pkg syscall (linux-s390x), const SIOCGIFBRDADDR = 35097
++pkg syscall (linux-s390x), const SIOCGIFBRDADDR ideal-int
++pkg syscall (linux-s390x), const SIOCGIFBR ideal-int
++pkg syscall (linux-s390x), const SIOCGIFCONF = 35090
++pkg syscall (linux-s390x), const SIOCGIFCONF ideal-int
++pkg syscall (linux-s390x), const SIOCGIFCOUNT = 35128
++pkg syscall (linux-s390x), const SIOCGIFCOUNT ideal-int
++pkg syscall (linux-s390x), const SIOCGIFDSTADDR = 35095
++pkg syscall (linux-s390x), const SIOCGIFDSTADDR ideal-int
++pkg syscall (linux-s390x), const SIOCGIFENCAP = 35109
++pkg syscall (linux-s390x), const SIOCGIFENCAP ideal-int
++pkg syscall (linux-s390x), const SIOCGIFFLAGS = 35091
++pkg syscall (linux-s390x), const SIOCGIFFLAGS ideal-int
++pkg syscall (linux-s390x), const SIOCGIFHWADDR = 35111
++pkg syscall (linux-s390x), const SIOCGIFHWADDR ideal-int
++pkg syscall (linux-s390x), const SIOCGIFINDEX = 35123
++pkg syscall (linux-s390x), const SIOCGIFINDEX ideal-int
++pkg syscall (linux-s390x), const SIOCGIFMAP = 35184
++pkg syscall (linux-s390x), const SIOCGIFMAP ideal-int
++pkg syscall (linux-s390x), const SIOCGIFMEM = 35103
++pkg syscall (linux-s390x), const SIOCGIFMEM ideal-int
++pkg syscall (linux-s390x), const SIOCGIFMETRIC = 35101
++pkg syscall (linux-s390x), const SIOCGIFMETRIC ideal-int
++pkg syscall (linux-s390x), const SIOCGIFMTU = 35105
++pkg syscall (linux-s390x), const SIOCGIFMTU ideal-int
++pkg syscall (linux-s390x), const SIOCGIFNAME = 35088
++pkg syscall (linux-s390x), const SIOCGIFNAME ideal-int
++pkg syscall (linux-s390x), const SIOCGIFNETMASK = 35099
++pkg syscall (linux-s390x), const SIOCGIFNETMASK ideal-int
++pkg syscall (linux-s390x), const SIOCGIFPFLAGS = 35125
++pkg syscall (linux-s390x), const SIOCGIFPFLAGS ideal-int
++pkg syscall (linux-s390x), const SIOCGIFSLAVE = 35113
++pkg syscall (linux-s390x), const SIOCGIFSLAVE ideal-int
++pkg syscall (linux-s390x), const SIOCGIFTXQLEN = 35138
++pkg syscall (linux-s390x), const SIOCGIFTXQLEN ideal-int
++pkg syscall (linux-s390x), const SIOCGPGRP = 35076
++pkg syscall (linux-s390x), const SIOCGPGRP ideal-int
++pkg syscall (linux-s390x), const SIOCGRARP = 35169
++pkg syscall (linux-s390x), const SIOCGRARP ideal-int
++pkg syscall (linux-s390x), const SIOCGSTAMP = 35078
++pkg syscall (linux-s390x), const SIOCGSTAMP ideal-int
++pkg syscall (linux-s390x), const SIOCGSTAMPNS = 35079
++pkg syscall (linux-s390x), const SIOCGSTAMPNS ideal-int
++pkg syscall (linux-s390x), const SIOCPROTOPRIVATE = 35296
++pkg syscall (linux-s390x), const SIOCPROTOPRIVATE ideal-int
++pkg syscall (linux-s390x), const SIOCRTMSG = 35085
++pkg syscall (linux-s390x), const SIOCRTMSG ideal-int
++pkg syscall (linux-s390x), const SIOCSARP = 35157
++pkg syscall (linux-s390x), const SIOCSARP ideal-int
++pkg syscall (linux-s390x), const SIOCSIFADDR = 35094
++pkg syscall (linux-s390x), const SIOCSIFADDR ideal-int
++pkg syscall (linux-s390x), const SIOCSIFBR = 35137
++pkg syscall (linux-s390x), const SIOCSIFBRDADDR = 35098
++pkg syscall (linux-s390x), const SIOCSIFBRDADDR ideal-int
++pkg syscall (linux-s390x), const SIOCSIFBR ideal-int
++pkg syscall (linux-s390x), const SIOCSIFDSTADDR = 35096
++pkg syscall (linux-s390x), const SIOCSIFDSTADDR ideal-int
++pkg syscall (linux-s390x), const SIOCSIFENCAP = 35110
++pkg syscall (linux-s390x), const SIOCSIFENCAP ideal-int
++pkg syscall (linux-s390x), const SIOCSIFFLAGS = 35092
++pkg syscall (linux-s390x), const SIOCSIFFLAGS ideal-int
++pkg syscall (linux-s390x), const SIOCSIFHWADDR = 35108
++pkg syscall (linux-s390x), const SIOCSIFHWADDR ideal-int
++pkg syscall (linux-s390x), const SIOCSIFHWBROADCAST = 35127
++pkg syscall (linux-s390x), const SIOCSIFHWBROADCAST ideal-int
++pkg syscall (linux-s390x), const SIOCSIFLINK = 35089
++pkg syscall (linux-s390x), const SIOCSIFLINK ideal-int
++pkg syscall (linux-s390x), const SIOCSIFMAP = 35185
++pkg syscall (linux-s390x), const SIOCSIFMAP ideal-int
++pkg syscall (linux-s390x), const SIOCSIFMEM = 35104
++pkg syscall (linux-s390x), const SIOCSIFMEM ideal-int
++pkg syscall (linux-s390x), const SIOCSIFMETRIC = 35102
++pkg syscall (linux-s390x), const SIOCSIFMETRIC ideal-int
++pkg syscall (linux-s390x), const SIOCSIFMTU = 35106
++pkg syscall (linux-s390x), const SIOCSIFMTU ideal-int
++pkg syscall (linux-s390x), const SIOCSIFNAME = 35107
++pkg syscall (linux-s390x), const SIOCSIFNAME ideal-int
++pkg syscall (linux-s390x), const SIOCSIFNETMASK = 35100
++pkg syscall (linux-s390x), const SIOCSIFNETMASK ideal-int
++pkg syscall (linux-s390x), const SIOCSIFPFLAGS = 35124
++pkg syscall (linux-s390x), const SIOCSIFPFLAGS ideal-int
++pkg syscall (linux-s390x), const SIOCSIFSLAVE = 35120
++pkg syscall (linux-s390x), const SIOCSIFSLAVE ideal-int
++pkg syscall (linux-s390x), const SIOCSIFTXQLEN = 35139
++pkg syscall (linux-s390x), const SIOCSIFTXQLEN ideal-int
++pkg syscall (linux-s390x), const SIOCSPGRP = 35074
++pkg syscall (linux-s390x), const SIOCSPGRP ideal-int
++pkg syscall (linux-s390x), const SIOCSRARP = 35170
++pkg syscall (linux-s390x), const SIOCSRARP ideal-int
++pkg syscall (linux-s390x), const S_IREAD = 256
++pkg syscall (linux-s390x), const S_IREAD ideal-int
++pkg syscall (linux-s390x), const S_IRGRP = 32
++pkg syscall (linux-s390x), const S_IRGRP ideal-int
++pkg syscall (linux-s390x), const S_IROTH = 4
++pkg syscall (linux-s390x), const S_IROTH ideal-int
++pkg syscall (linux-s390x), const S_IRWXG = 56
++pkg syscall (linux-s390x), const S_IRWXG ideal-int
++pkg syscall (linux-s390x), const S_IRWXO = 7
++pkg syscall (linux-s390x), const S_IRWXO ideal-int
++pkg syscall (linux-s390x), const S_IRWXU = 448
++pkg syscall (linux-s390x), const S_IRWXU ideal-int
++pkg syscall (linux-s390x), const S_IWGRP = 16
++pkg syscall (linux-s390x), const S_IWGRP ideal-int
++pkg syscall (linux-s390x), const S_IWOTH = 2
++pkg syscall (linux-s390x), const S_IWOTH ideal-int
++pkg syscall (linux-s390x), const S_IWRITE = 128
++pkg syscall (linux-s390x), const S_IWRITE ideal-int
++pkg syscall (linux-s390x), const S_IXGRP = 8
++pkg syscall (linux-s390x), const S_IXGRP ideal-int
++pkg syscall (linux-s390x), const S_IXOTH = 1
++pkg syscall (linux-s390x), const S_IXOTH ideal-int
++pkg syscall (linux-s390x), const SizeofCmsghdr = 16
++pkg syscall (linux-s390x), const SizeofCmsghdr ideal-int
++pkg syscall (linux-s390x), const SizeofICMPv6Filter = 32
++pkg syscall (linux-s390x), const SizeofICMPv6Filter ideal-int
++pkg syscall (linux-s390x), const SizeofIfAddrmsg = 8
++pkg syscall (linux-s390x), const SizeofIfAddrmsg ideal-int
++pkg syscall (linux-s390x), const SizeofIfInfomsg = 16
++pkg syscall (linux-s390x), const SizeofIfInfomsg ideal-int
++pkg syscall (linux-s390x), const SizeofInet4Pktinfo = 12
++pkg syscall (linux-s390x), const SizeofInet4Pktinfo ideal-int
++pkg syscall (linux-s390x), const SizeofInet6Pktinfo = 20
++pkg syscall (linux-s390x), const SizeofInet6Pktinfo ideal-int
++pkg syscall (linux-s390x), const SizeofInotifyEvent = 16
++pkg syscall (linux-s390x), const SizeofInotifyEvent ideal-int
++pkg syscall (linux-s390x), const SizeofIPMreq = 8
++pkg syscall (linux-s390x), const SizeofIPMreq ideal-int
++pkg syscall (linux-s390x), const SizeofIPMreqn = 12
++pkg syscall (linux-s390x), const SizeofIPMreqn ideal-int
++pkg syscall (linux-s390x), const SizeofIPv6Mreq = 20
++pkg syscall (linux-s390x), const SizeofIPv6Mreq ideal-int
++pkg syscall (linux-s390x), const SizeofIPv6MTUInfo = 32
++pkg syscall (linux-s390x), const SizeofIPv6MTUInfo ideal-int
++pkg syscall (linux-s390x), const SizeofLinger = 8
++pkg syscall (linux-s390x), const SizeofLinger ideal-int
++pkg syscall (linux-s390x), const SizeofMsghdr = 56
++pkg syscall (linux-s390x), const SizeofMsghdr ideal-int
++pkg syscall (linux-s390x), const SizeofNlAttr = 4
++pkg syscall (linux-s390x), const SizeofNlAttr ideal-int
++pkg syscall (linux-s390x), const SizeofNlMsgerr = 20
++pkg syscall (linux-s390x), const SizeofNlMsgerr ideal-int
++pkg syscall (linux-s390x), const SizeofNlMsghdr = 16
++pkg syscall (linux-s390x), const SizeofNlMsghdr ideal-int
++pkg syscall (linux-s390x), const SizeofRtAttr = 4
++pkg syscall (linux-s390x), const SizeofRtAttr ideal-int
++pkg syscall (linux-s390x), const SizeofRtGenmsg = 1
++pkg syscall (linux-s390x), const SizeofRtGenmsg ideal-int
++pkg syscall (linux-s390x), const SizeofRtMsg = 12
++pkg syscall (linux-s390x), const SizeofRtMsg ideal-int
++pkg syscall (linux-s390x), const SizeofRtNexthop = 8
++pkg syscall (linux-s390x), const SizeofRtNexthop ideal-int
++pkg syscall (linux-s390x), const SizeofSockaddrAny = 112
++pkg syscall (linux-s390x), const SizeofSockaddrAny ideal-int
++pkg syscall (linux-s390x), const SizeofSockaddrInet4 = 16
++pkg syscall (linux-s390x), const SizeofSockaddrInet4 ideal-int
++pkg syscall (linux-s390x), const SizeofSockaddrInet6 = 28
++pkg syscall (linux-s390x), const SizeofSockaddrInet6 ideal-int
++pkg syscall (linux-s390x), const SizeofSockaddrLinklayer = 20
++pkg syscall (linux-s390x), const SizeofSockaddrLinklayer ideal-int
++pkg syscall (linux-s390x), const SizeofSockaddrNetlink = 12
++pkg syscall (linux-s390x), const SizeofSockaddrNetlink ideal-int
++pkg syscall (linux-s390x), const SizeofSockaddrUnix = 110
++pkg syscall (linux-s390x), const SizeofSockaddrUnix ideal-int
++pkg syscall (linux-s390x), const SizeofSockFilter = 8
++pkg syscall (linux-s390x), const SizeofSockFilter ideal-int
++pkg syscall (linux-s390x), const SizeofSockFprog = 16
++pkg syscall (linux-s390x), const SizeofSockFprog ideal-int
++pkg syscall (linux-s390x), const SizeofTCPInfo = 104
++pkg syscall (linux-s390x), const SizeofTCPInfo ideal-int
++pkg syscall (linux-s390x), const SizeofUcred = 12
++pkg syscall (linux-s390x), const SizeofUcred ideal-int
++pkg syscall (linux-s390x), const SO_ACCEPTCONN = 30
++pkg syscall (linux-s390x), const SO_ACCEPTCONN ideal-int
++pkg syscall (linux-s390x), const SO_ATTACH_FILTER = 26
++pkg syscall (linux-s390x), const SO_ATTACH_FILTER ideal-int
++pkg syscall (linux-s390x), const SO_BINDTODEVICE = 25
++pkg syscall (linux-s390x), const SO_BINDTODEVICE ideal-int
++pkg syscall (linux-s390x), const SO_BPF_EXTENSIONS = 48
++pkg syscall (linux-s390x), const SO_BPF_EXTENSIONS ideal-int
++pkg syscall (linux-s390x), const SO_BROADCAST = 6
++pkg syscall (linux-s390x), const SO_BSDCOMPAT = 14
++pkg syscall (linux-s390x), const SO_BSDCOMPAT ideal-int
++pkg syscall (linux-s390x), const SO_BUSY_POLL = 46
++pkg syscall (linux-s390x), const SO_BUSY_POLL ideal-int
++pkg syscall (linux-s390x), const SOCK_CLOEXEC = 524288
++pkg syscall (linux-s390x), const SOCK_CLOEXEC ideal-int
++pkg syscall (linux-s390x), const SOCK_DCCP = 6
++pkg syscall (linux-s390x), const SOCK_DCCP ideal-int
++pkg syscall (linux-s390x), const SOCK_NONBLOCK = 2048
++pkg syscall (linux-s390x), const SOCK_NONBLOCK ideal-int
++pkg syscall (linux-s390x), const SOCK_PACKET = 10
++pkg syscall (linux-s390x), const SOCK_PACKET ideal-int
++pkg syscall (linux-s390x), const SOCK_RDM = 4
++pkg syscall (linux-s390x), const SOCK_RDM ideal-int
++pkg syscall (linux-s390x), const SO_DEBUG = 1
++pkg syscall (linux-s390x), const SO_DEBUG ideal-int
++pkg syscall (linux-s390x), const SO_DETACH_FILTER = 27
++pkg syscall (linux-s390x), const SO_DETACH_FILTER ideal-int
++pkg syscall (linux-s390x), const SO_DOMAIN = 39
++pkg syscall (linux-s390x), const SO_DOMAIN ideal-int
++pkg syscall (linux-s390x), const SO_DONTROUTE = 5
++pkg syscall (linux-s390x), const SO_ERROR = 4
++pkg syscall (linux-s390x), const SO_ERROR ideal-int
++pkg syscall (linux-s390x), const SO_GET_FILTER = 26
++pkg syscall (linux-s390x), const SO_GET_FILTER ideal-int
++pkg syscall (linux-s390x), const SO_KEEPALIVE = 9
++pkg syscall (linux-s390x), const SOL_AAL = 265
++pkg syscall (linux-s390x), const SOL_AAL ideal-int
++pkg syscall (linux-s390x), const SOL_ATM = 264
++pkg syscall (linux-s390x), const SOL_ATM ideal-int
++pkg syscall (linux-s390x), const SOL_DECNET = 261
++pkg syscall (linux-s390x), const SOL_DECNET ideal-int
++pkg syscall (linux-s390x), const SOL_ICMPV6 = 58
++pkg syscall (linux-s390x), const SOL_ICMPV6 ideal-int
++pkg syscall (linux-s390x), const SO_LINGER = 13
++pkg syscall (linux-s390x), const SOL_IP = 0
++pkg syscall (linux-s390x), const SOL_IP ideal-int
++pkg syscall (linux-s390x), const SOL_IPV6 = 41
++pkg syscall (linux-s390x), const SOL_IPV6 ideal-int
++pkg syscall (linux-s390x), const SOL_IRDA = 266
++pkg syscall (linux-s390x), const SOL_IRDA ideal-int
++pkg syscall (linux-s390x), const SO_LOCK_FILTER = 44
++pkg syscall (linux-s390x), const SO_LOCK_FILTER ideal-int
++pkg syscall (linux-s390x), const SOL_PACKET = 263
++pkg syscall (linux-s390x), const SOL_PACKET ideal-int
++pkg syscall (linux-s390x), const SOL_RAW = 255
++pkg syscall (linux-s390x), const SOL_RAW ideal-int
++pkg syscall (linux-s390x), const SOL_SOCKET = 1
++pkg syscall (linux-s390x), const SOL_TCP = 6
++pkg syscall (linux-s390x), const SOL_TCP ideal-int
++pkg syscall (linux-s390x), const SOL_X25 = 262
++pkg syscall (linux-s390x), const SOL_X25 ideal-int
++pkg syscall (linux-s390x), const SO_MARK = 36
++pkg syscall (linux-s390x), const SO_MARK ideal-int
++pkg syscall (linux-s390x), const SOMAXCONN = 128
++pkg syscall (linux-s390x), const SO_NO_CHECK = 11
++pkg syscall (linux-s390x), const SO_NO_CHECK ideal-int
++pkg syscall (linux-s390x), const SO_NOFCS = 43
++pkg syscall (linux-s390x), const SO_NOFCS ideal-int
++pkg syscall (linux-s390x), const SO_OOBINLINE = 10
++pkg syscall (linux-s390x), const SO_OOBINLINE ideal-int
++pkg syscall (linux-s390x), const SO_PASSCRED = 16
++pkg syscall (linux-s390x), const SO_PASSCRED ideal-int
++pkg syscall (linux-s390x), const SO_PASSSEC = 34
++pkg syscall (linux-s390x), const SO_PASSSEC ideal-int
++pkg syscall (linux-s390x), const SO_PEEK_OFF = 42
++pkg syscall (linux-s390x), const SO_PEEK_OFF ideal-int
++pkg syscall (linux-s390x), const SO_PEERCRED = 17
++pkg syscall (linux-s390x), const SO_PEERCRED ideal-int
++pkg syscall (linux-s390x), const SO_PEERNAME = 28
++pkg syscall (linux-s390x), const SO_PEERNAME ideal-int
++pkg syscall (linux-s390x), const SO_PEERSEC = 31
++pkg syscall (linux-s390x), const SO_PEERSEC ideal-int
++pkg syscall (linux-s390x), const SO_PRIORITY = 12
++pkg syscall (linux-s390x), const SO_PRIORITY ideal-int
++pkg syscall (linux-s390x), const SO_PROTOCOL = 38
++pkg syscall (linux-s390x), const SO_PROTOCOL ideal-int
++pkg syscall (linux-s390x), const SO_RCVBUF = 8
++pkg syscall (linux-s390x), const SO_RCVBUFFORCE = 33
++pkg syscall (linux-s390x), const SO_RCVBUFFORCE ideal-int
++pkg syscall (linux-s390x), const SO_RCVLOWAT = 18
++pkg syscall (linux-s390x), const SO_RCVLOWAT ideal-int
++pkg syscall (linux-s390x), const SO_RCVTIMEO = 20
++pkg syscall (linux-s390x), const SO_RCVTIMEO ideal-int
++pkg syscall (linux-s390x), const SO_REUSEADDR = 2
++pkg syscall (linux-s390x), const SO_REUSEPORT = 15
++pkg syscall (linux-s390x), const SO_REUSEPORT ideal-int
++pkg syscall (linux-s390x), const SO_RXQ_OVFL = 40
++pkg syscall (linux-s390x), const SO_RXQ_OVFL ideal-int
++pkg syscall (linux-s390x), const SO_SECURITY_AUTHENTICATION = 22
++pkg syscall (linux-s390x), const SO_SECURITY_AUTHENTICATION ideal-int
++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_NETWORK = 24
++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_NETWORK ideal-int
++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_TRANSPORT = 23
++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_TRANSPORT ideal-int
++pkg syscall (linux-s390x), const SO_SELECT_ERR_QUEUE = 45
++pkg syscall (linux-s390x), const SO_SELECT_ERR_QUEUE ideal-int
++pkg syscall (linux-s390x), const SO_SNDBUF = 7
++pkg syscall (linux-s390x), const SO_SNDBUFFORCE = 32
++pkg syscall (linux-s390x), const SO_SNDBUFFORCE ideal-int
++pkg syscall (linux-s390x), const SO_SNDLOWAT = 19
++pkg syscall (linux-s390x), const SO_SNDLOWAT ideal-int
++pkg syscall (linux-s390x), const SO_SNDTIMEO = 21
++pkg syscall (linux-s390x), const SO_SNDTIMEO ideal-int
++pkg syscall (linux-s390x), const SO_TIMESTAMP = 29
++pkg syscall (linux-s390x), const SO_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const SO_TIMESTAMPING = 37
++pkg syscall (linux-s390x), const SO_TIMESTAMPING ideal-int
++pkg syscall (linux-s390x), const SO_TIMESTAMPNS = 35
++pkg syscall (linux-s390x), const SO_TIMESTAMPNS ideal-int
++pkg syscall (linux-s390x), const SO_TYPE = 3
++pkg syscall (linux-s390x), const SO_TYPE ideal-int
++pkg syscall (linux-s390x), const SO_WIFI_STATUS = 41
++pkg syscall (linux-s390x), const SO_WIFI_STATUS ideal-int
++pkg syscall (linux-s390x), const SYS_ACCESS = 33
++pkg syscall (linux-s390x), const SYS_ACCESS ideal-int
++pkg syscall (linux-s390x), const SYS_ACCT = 51
++pkg syscall (linux-s390x), const SYS_ACCT ideal-int
++pkg syscall (linux-s390x), const SYS_ADD_KEY = 278
++pkg syscall (linux-s390x), const SYS_ADD_KEY ideal-int
++pkg syscall (linux-s390x), const SYS_ADJTIMEX = 124
++pkg syscall (linux-s390x), const SYS_ADJTIMEX ideal-int
++pkg syscall (linux-s390x), const SYS_AFS_SYSCALL = 137
++pkg syscall (linux-s390x), const SYS_AFS_SYSCALL ideal-int
++pkg syscall (linux-s390x), const SYS_ALARM = 27
++pkg syscall (linux-s390x), const SYS_ALARM ideal-int
++pkg syscall (linux-s390x), const SYS_BDFLUSH = 134
++pkg syscall (linux-s390x), const SYS_BDFLUSH ideal-int
++pkg syscall (linux-s390x), const SYS_BRK = 45
++pkg syscall (linux-s390x), const SYS_BRK ideal-int
++pkg syscall (linux-s390x), const SYS_CAPGET = 184
++pkg syscall (linux-s390x), const SYS_CAPGET ideal-int
++pkg syscall (linux-s390x), const SYS_CAPSET = 185
++pkg syscall (linux-s390x), const SYS_CAPSET ideal-int
++pkg syscall (linux-s390x), const SYS_CHDIR = 12
++pkg syscall (linux-s390x), const SYS_CHDIR ideal-int
++pkg syscall (linux-s390x), const SYS_CHMOD = 15
++pkg syscall (linux-s390x), const SYS_CHMOD ideal-int
++pkg syscall (linux-s390x), const SYS_CHOWN = 212
++pkg syscall (linux-s390x), const SYS_CHOWN ideal-int
++pkg syscall (linux-s390x), const SYS_CHROOT = 61
++pkg syscall (linux-s390x), const SYS_CHROOT ideal-int
++pkg syscall (linux-s390x), const SYS_CLOCK_ADJTIME = 337
++pkg syscall (linux-s390x), const SYS_CLOCK_ADJTIME ideal-int
++pkg syscall (linux-s390x), const SYS_CLOCK_GETRES = 261
++pkg syscall (linux-s390x), const SYS_CLOCK_GETRES ideal-int
++pkg syscall (linux-s390x), const SYS_CLOCK_GETTIME = 260
++pkg syscall (linux-s390x), const SYS_CLOCK_GETTIME ideal-int
++pkg syscall (linux-s390x), const SYS_CLOCK_NANOSLEEP = 262
++pkg syscall (linux-s390x), const SYS_CLOCK_NANOSLEEP ideal-int
++pkg syscall (linux-s390x), const SYS_CLOCK_SETTIME = 259
++pkg syscall (linux-s390x), const SYS_CLOCK_SETTIME ideal-int
++pkg syscall (linux-s390x), const SYS_CLONE = 120
++pkg syscall (linux-s390x), const SYS_CLONE ideal-int
++pkg syscall (linux-s390x), const SYS_CLOSE = 6
++pkg syscall (linux-s390x), const SYS_CLOSE ideal-int
++pkg syscall (linux-s390x), const SYS_CREAT = 8
++pkg syscall (linux-s390x), const SYS_CREATE_MODULE = 127
++pkg syscall (linux-s390x), const SYS_CREATE_MODULE ideal-int
++pkg syscall (linux-s390x), const SYS_CREAT ideal-int
++pkg syscall (linux-s390x), const SYS_DELETE_MODULE = 129
++pkg syscall (linux-s390x), const SYS_DELETE_MODULE ideal-int
++pkg syscall (linux-s390x), const SYS_DUP2 = 63
++pkg syscall (linux-s390x), const SYS_DUP2 ideal-int
++pkg syscall (linux-s390x), const SYS_DUP3 = 326
++pkg syscall (linux-s390x), const SYS_DUP3 ideal-int
++pkg syscall (linux-s390x), const SYS_DUP = 41
++pkg syscall (linux-s390x), const SYS_DUP ideal-int
++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE1 = 327
++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE1 ideal-int
++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE = 249
++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE ideal-int
++pkg syscall (linux-s390x), const SYS_EPOLL_CTL = 250
++pkg syscall (linux-s390x), const SYS_EPOLL_CTL ideal-int
++pkg syscall (linux-s390x), const SYS_EPOLL_PWAIT = 312
++pkg syscall (linux-s390x), const SYS_EPOLL_PWAIT ideal-int
++pkg syscall (linux-s390x), const SYS_EPOLL_WAIT = 251
++pkg syscall (linux-s390x), const SYS_EPOLL_WAIT ideal-int
++pkg syscall (linux-s390x), const SYS_EVENTFD2 = 323
++pkg syscall (linux-s390x), const SYS_EVENTFD2 ideal-int
++pkg syscall (linux-s390x), const SYS_EVENTFD = 318
++pkg syscall (linux-s390x), const SYS_EVENTFD ideal-int
++pkg syscall (linux-s390x), const SYS_EXECVE = 11
++pkg syscall (linux-s390x), const SYS_EXECVE ideal-int
++pkg syscall (linux-s390x), const SYS_EXIT = 1
++pkg syscall (linux-s390x), const SYS_EXIT_GROUP = 248
++pkg syscall (linux-s390x), const SYS_EXIT_GROUP ideal-int
++pkg syscall (linux-s390x), const SYS_EXIT ideal-int
++pkg syscall (linux-s390x), const SYS_FACCESSAT = 300
++pkg syscall (linux-s390x), const SYS_FACCESSAT ideal-int
++pkg syscall (linux-s390x), const SYS_FADVISE64 = 253
++pkg syscall (linux-s390x), const SYS_FADVISE64 ideal-int
++pkg syscall (linux-s390x), const SYS_FALLOCATE = 314
++pkg syscall (linux-s390x), const SYS_FALLOCATE ideal-int
++pkg syscall (linux-s390x), const SYS_FANOTIFY_INIT = 332
++pkg syscall (linux-s390x), const SYS_FANOTIFY_INIT ideal-int
++pkg syscall (linux-s390x), const SYS_FANOTIFY_MARK = 333
++pkg syscall (linux-s390x), const SYS_FANOTIFY_MARK ideal-int
++pkg syscall (linux-s390x), const SYS_FCHDIR = 133
++pkg syscall (linux-s390x), const SYS_FCHDIR ideal-int
++pkg syscall (linux-s390x), const SYS_FCHMOD = 94
++pkg syscall (linux-s390x), const SYS_FCHMODAT = 299
++pkg syscall (linux-s390x), const SYS_FCHMODAT ideal-int
++pkg syscall (linux-s390x), const SYS_FCHMOD ideal-int
++pkg syscall (linux-s390x), const SYS_FCHOWN = 207
++pkg syscall (linux-s390x), const SYS_FCHOWNAT = 291
++pkg syscall (linux-s390x), const SYS_FCHOWNAT ideal-int
++pkg syscall (linux-s390x), const SYS_FCHOWN ideal-int
++pkg syscall (linux-s390x), const SYS_FCNTL = 55
++pkg syscall (linux-s390x), const SYS_FCNTL ideal-int
++pkg syscall (linux-s390x), const SYS_FDATASYNC = 148
++pkg syscall (linux-s390x), const SYS_FDATASYNC ideal-int
++pkg syscall (linux-s390x), const SYS_FGETXATTR = 229
++pkg syscall (linux-s390x), const SYS_FGETXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_FINIT_MODULE = 344
++pkg syscall (linux-s390x), const SYS_FINIT_MODULE ideal-int
++pkg syscall (linux-s390x), const SYS_FLISTXATTR = 232
++pkg syscall (linux-s390x), const SYS_FLISTXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_FLOCK = 143
++pkg syscall (linux-s390x), const SYS_FLOCK ideal-int
++pkg syscall (linux-s390x), const SYS_FORK = 2
++pkg syscall (linux-s390x), const SYS_FORK ideal-int
++pkg syscall (linux-s390x), const SYS_FREMOVEXATTR = 235
++pkg syscall (linux-s390x), const SYS_FREMOVEXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_FSETXATTR = 226
++pkg syscall (linux-s390x), const SYS_FSETXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_FSTAT = 108
++pkg syscall (linux-s390x), const SYS_FSTATFS = 100
++pkg syscall (linux-s390x), const SYS_FSTATFS64 = 266
++pkg syscall (linux-s390x), const SYS_FSTATFS64 ideal-int
++pkg syscall (linux-s390x), const SYS_FSTATFS ideal-int
++pkg syscall (linux-s390x), const SYS_FSTAT ideal-int
++pkg syscall (linux-s390x), const SYS_FSYNC = 118
++pkg syscall (linux-s390x), const SYS_FSYNC ideal-int
++pkg syscall (linux-s390x), const SYS_FTRUNCATE = 93
++pkg syscall (linux-s390x), const SYS_FTRUNCATE ideal-int
++pkg syscall (linux-s390x), const SYS_FUTEX = 238
++pkg syscall (linux-s390x), const SYS_FUTEX ideal-int
++pkg syscall (linux-s390x), const SYS_FUTIMESAT = 292
++pkg syscall (linux-s390x), const SYS_FUTIMESAT ideal-int
++pkg syscall (linux-s390x), const SYS_GETCPU = 311
++pkg syscall (linux-s390x), const SYS_GETCPU ideal-int
++pkg syscall (linux-s390x), const SYS_GETCWD = 183
++pkg syscall (linux-s390x), const SYS_GETCWD ideal-int
++pkg syscall (linux-s390x), const SYS_GETDENTS = 141
++pkg syscall (linux-s390x), const SYS_GETDENTS64 = 220
++pkg syscall (linux-s390x), const SYS_GETDENTS64 ideal-int
++pkg syscall (linux-s390x), const SYS_GETDENTS ideal-int
++pkg syscall (linux-s390x), const SYS_GETEGID = 202
++pkg syscall (linux-s390x), const SYS_GETEGID ideal-int
++pkg syscall (linux-s390x), const SYS_GETEUID = 201
++pkg syscall (linux-s390x), const SYS_GETEUID ideal-int
++pkg syscall (linux-s390x), const SYS_GETGID = 200
++pkg syscall (linux-s390x), const SYS_GETGID ideal-int
++pkg syscall (linux-s390x), const SYS_GETGROUPS = 205
++pkg syscall (linux-s390x), const SYS_GETGROUPS ideal-int
++pkg syscall (linux-s390x), const SYS_GETITIMER = 105
++pkg syscall (linux-s390x), const SYS_GETITIMER ideal-int
++pkg syscall (linux-s390x), const SYS_GET_KERNEL_SYMS = 130
++pkg syscall (linux-s390x), const SYS_GET_KERNEL_SYMS ideal-int
++pkg syscall (linux-s390x), const SYS_GETPGID = 132
++pkg syscall (linux-s390x), const SYS_GETPGID ideal-int
++pkg syscall (linux-s390x), const SYS_GETPGRP = 65
++pkg syscall (linux-s390x), const SYS_GETPGRP ideal-int
++pkg syscall (linux-s390x), const SYS_GETPID = 20
++pkg syscall (linux-s390x), const SYS_GETPID ideal-int
++pkg syscall (linux-s390x), const SYS_GETPMSG = 188
++pkg syscall (linux-s390x), const SYS_GETPMSG ideal-int
++pkg syscall (linux-s390x), const SYS_GETPPID = 64
++pkg syscall (linux-s390x), const SYS_GETPPID ideal-int
++pkg syscall (linux-s390x), const SYS_GETPRIORITY = 96
++pkg syscall (linux-s390x), const SYS_GETPRIORITY ideal-int
++pkg syscall (linux-s390x), const SYS_GETRESGID = 211
++pkg syscall (linux-s390x), const SYS_GETRESGID ideal-int
++pkg syscall (linux-s390x), const SYS_GETRESUID = 209
++pkg syscall (linux-s390x), const SYS_GETRESUID ideal-int
++pkg syscall (linux-s390x), const SYS_GETRLIMIT = 191
++pkg syscall (linux-s390x), const SYS_GETRLIMIT ideal-int
++pkg syscall (linux-s390x), const SYS_GET_ROBUST_LIST = 305
++pkg syscall (linux-s390x), const SYS_GET_ROBUST_LIST ideal-int
++pkg syscall (linux-s390x), const SYS_GETRUSAGE = 77
++pkg syscall (linux-s390x), const SYS_GETRUSAGE ideal-int
++pkg syscall (linux-s390x), const SYS_GETSID = 147
++pkg syscall (linux-s390x), const SYS_GETSID ideal-int
++pkg syscall (linux-s390x), const SYS_GETTID = 236
++pkg syscall (linux-s390x), const SYS_GETTID ideal-int
++pkg syscall (linux-s390x), const SYS_GETTIMEOFDAY = 78
++pkg syscall (linux-s390x), const SYS_GETTIMEOFDAY ideal-int
++pkg syscall (linux-s390x), const SYS_GETUID = 199
++pkg syscall (linux-s390x), const SYS_GETUID ideal-int
++pkg syscall (linux-s390x), const SYS_GETXATTR = 227
++pkg syscall (linux-s390x), const SYS_GETXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_IDLE = 112
++pkg syscall (linux-s390x), const SYS_IDLE ideal-int
++pkg syscall (linux-s390x), const SYS_INIT_MODULE = 128
++pkg syscall (linux-s390x), const SYS_INIT_MODULE ideal-int
++pkg syscall (linux-s390x), const SYS_INOTIFY_ADD_WATCH = 285
++pkg syscall (linux-s390x), const SYS_INOTIFY_ADD_WATCH ideal-int
++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT1 = 324
++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT1 ideal-int
++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT = 284
++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT ideal-int
++pkg syscall (linux-s390x), const SYS_INOTIFY_RM_WATCH = 286
++pkg syscall (linux-s390x), const SYS_INOTIFY_RM_WATCH ideal-int
++pkg syscall (linux-s390x), const SYS_IO_CANCEL = 247
++pkg syscall (linux-s390x), const SYS_IO_CANCEL ideal-int
++pkg syscall (linux-s390x), const SYS_IOCTL = 54
++pkg syscall (linux-s390x), const SYS_IOCTL ideal-int
++pkg syscall (linux-s390x), const SYS_IO_DESTROY = 244
++pkg syscall (linux-s390x), const SYS_IO_DESTROY ideal-int
++pkg syscall (linux-s390x), const SYS_IO_GETEVENTS = 245
++pkg syscall (linux-s390x), const SYS_IO_GETEVENTS ideal-int
++pkg syscall (linux-s390x), const SYS_IOPRIO_GET = 283
++pkg syscall (linux-s390x), const SYS_IOPRIO_GET ideal-int
++pkg syscall (linux-s390x), const SYS_IOPRIO_SET = 282
++pkg syscall (linux-s390x), const SYS_IOPRIO_SET ideal-int
++pkg syscall (linux-s390x), const SYS_IO_SETUP = 243
++pkg syscall (linux-s390x), const SYS_IO_SETUP ideal-int
++pkg syscall (linux-s390x), const SYS_IO_SUBMIT = 246
++pkg syscall (linux-s390x), const SYS_IO_SUBMIT ideal-int
++pkg syscall (linux-s390x), const SYS_IPC = 117
++pkg syscall (linux-s390x), const SYS_IPC ideal-int
++pkg syscall (linux-s390x), const SYS_KCMP = 343
++pkg syscall (linux-s390x), const SYS_KCMP ideal-int
++pkg syscall (linux-s390x), const SYS_KEXEC_LOAD = 277
++pkg syscall (linux-s390x), const SYS_KEXEC_LOAD ideal-int
++pkg syscall (linux-s390x), const SYS_KEYCTL = 280
++pkg syscall (linux-s390x), const SYS_KEYCTL ideal-int
++pkg syscall (linux-s390x), const SYS_KILL = 37
++pkg syscall (linux-s390x), const SYS_KILL ideal-int
++pkg syscall (linux-s390x), const SYS_LCHOWN = 198
++pkg syscall (linux-s390x), const SYS_LCHOWN ideal-int
++pkg syscall (linux-s390x), const SYS_LGETXATTR = 228
++pkg syscall (linux-s390x), const SYS_LGETXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_LINK = 9
++pkg syscall (linux-s390x), const SYS_LINKAT = 296
++pkg syscall (linux-s390x), const SYS_LINKAT ideal-int
++pkg syscall (linux-s390x), const SYS_LINK ideal-int
++pkg syscall (linux-s390x), const SYS_LISTXATTR = 230
++pkg syscall (linux-s390x), const SYS_LISTXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_LLISTXATTR = 231
++pkg syscall (linux-s390x), const SYS_LLISTXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_LOOKUP_DCOOKIE = 110
++pkg syscall (linux-s390x), const SYS_LOOKUP_DCOOKIE ideal-int
++pkg syscall (linux-s390x), const SYS_LREMOVEXATTR = 234
++pkg syscall (linux-s390x), const SYS_LREMOVEXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_LSEEK = 19
++pkg syscall (linux-s390x), const SYS_LSEEK ideal-int
++pkg syscall (linux-s390x), const SYS_LSETXATTR = 225
++pkg syscall (linux-s390x), const SYS_LSETXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_LSTAT = 107
++pkg syscall (linux-s390x), const SYS_LSTAT ideal-int
++pkg syscall (linux-s390x), const SYS_MADVISE = 219
++pkg syscall (linux-s390x), const SYS_MADVISE ideal-int
++pkg syscall (linux-s390x), const SYS_MINCORE = 218
++pkg syscall (linux-s390x), const SYS_MINCORE ideal-int
++pkg syscall (linux-s390x), const SYS_MKDIR = 39
++pkg syscall (linux-s390x), const SYS_MKDIRAT = 289
++pkg syscall (linux-s390x), const SYS_MKDIRAT ideal-int
++pkg syscall (linux-s390x), const SYS_MKDIR ideal-int
++pkg syscall (linux-s390x), const SYS_MKNOD = 14
++pkg syscall (linux-s390x), const SYS_MKNODAT = 290
++pkg syscall (linux-s390x), const SYS_MKNODAT ideal-int
++pkg syscall (linux-s390x), const SYS_MKNOD ideal-int
++pkg syscall (linux-s390x), const SYS_MLOCK = 150
++pkg syscall (linux-s390x), const SYS_MLOCKALL = 152
++pkg syscall (linux-s390x), const SYS_MLOCKALL ideal-int
++pkg syscall (linux-s390x), const SYS_MLOCK ideal-int
++pkg syscall (linux-s390x), const SYS_MMAP = 90
++pkg syscall (linux-s390x), const SYS_MMAP ideal-int
++pkg syscall (linux-s390x), const SYS_MOUNT = 21
++pkg syscall (linux-s390x), const SYS_MOUNT ideal-int
++pkg syscall (linux-s390x), const SYS_MPROTECT = 125
++pkg syscall (linux-s390x), const SYS_MPROTECT ideal-int
++pkg syscall (linux-s390x), const SYS_MQ_GETSETATTR = 276
++pkg syscall (linux-s390x), const SYS_MQ_GETSETATTR ideal-int
++pkg syscall (linux-s390x), const SYS_MQ_NOTIFY = 275
++pkg syscall (linux-s390x), const SYS_MQ_NOTIFY ideal-int
++pkg syscall (linux-s390x), const SYS_MQ_OPEN = 271
++pkg syscall (linux-s390x), const SYS_MQ_OPEN ideal-int
++pkg syscall (linux-s390x), const SYS_MQ_TIMEDRECEIVE = 274
++pkg syscall (linux-s390x), const SYS_MQ_TIMEDRECEIVE ideal-int
++pkg syscall (linux-s390x), const SYS_MQ_TIMEDSEND = 273
++pkg syscall (linux-s390x), const SYS_MQ_TIMEDSEND ideal-int
++pkg syscall (linux-s390x), const SYS_MQ_UNLINK = 272
++pkg syscall (linux-s390x), const SYS_MQ_UNLINK ideal-int
++pkg syscall (linux-s390x), const SYS_MREMAP = 163
++pkg syscall (linux-s390x), const SYS_MREMAP ideal-int
++pkg syscall (linux-s390x), const SYS_MSYNC = 144
++pkg syscall (linux-s390x), const SYS_MSYNC ideal-int
++pkg syscall (linux-s390x), const SYS_MUNLOCK = 151
++pkg syscall (linux-s390x), const SYS_MUNLOCKALL = 153
++pkg syscall (linux-s390x), const SYS_MUNLOCKALL ideal-int
++pkg syscall (linux-s390x), const SYS_MUNLOCK ideal-int
++pkg syscall (linux-s390x), const SYS_MUNMAP = 91
++pkg syscall (linux-s390x), const SYS_MUNMAP ideal-int
++pkg syscall (linux-s390x), const SYS_NAME_TO_HANDLE_AT = 335
++pkg syscall (linux-s390x), const SYS_NAME_TO_HANDLE_AT ideal-int
++pkg syscall (linux-s390x), const SYS_NANOSLEEP = 162
++pkg syscall (linux-s390x), const SYS_NANOSLEEP ideal-int
++pkg syscall (linux-s390x), const SYS_NEWFSTATAT = 293
++pkg syscall (linux-s390x), const SYS_NEWFSTATAT ideal-int
++pkg syscall (linux-s390x), const SYS_NFSSERVCTL = 169
++pkg syscall (linux-s390x), const SYS_NFSSERVCTL ideal-int
++pkg syscall (linux-s390x), const SYS_NICE = 34
++pkg syscall (linux-s390x), const SYS_NICE ideal-int
++pkg syscall (linux-s390x), const SYS_OPEN = 5
++pkg syscall (linux-s390x), const SYS_OPENAT = 288
++pkg syscall (linux-s390x), const SYS_OPENAT ideal-int
++pkg syscall (linux-s390x), const SYS_OPEN_BY_HANDLE_AT = 336
++pkg syscall (linux-s390x), const SYS_OPEN_BY_HANDLE_AT ideal-int
++pkg syscall (linux-s390x), const SYS_OPEN ideal-int
++pkg syscall (linux-s390x), const SYS_PAUSE = 29
++pkg syscall (linux-s390x), const SYS_PAUSE ideal-int
++pkg syscall (linux-s390x), const SYS_PERF_EVENT_OPEN = 331
++pkg syscall (linux-s390x), const SYS_PERF_EVENT_OPEN ideal-int
++pkg syscall (linux-s390x), const SYS_PERSONALITY = 136
++pkg syscall (linux-s390x), const SYS_PERSONALITY ideal-int
++pkg syscall (linux-s390x), const SYS_PIPE2 = 325
++pkg syscall (linux-s390x), const SYS_PIPE2 ideal-int
++pkg syscall (linux-s390x), const SYS_PIPE = 42
++pkg syscall (linux-s390x), const SYS_PIPE ideal-int
++pkg syscall (linux-s390x), const SYS_PIVOT_ROOT = 217
++pkg syscall (linux-s390x), const SYS_PIVOT_ROOT ideal-int
++pkg syscall (linux-s390x), const SYS_POLL = 168
++pkg syscall (linux-s390x), const SYS_POLL ideal-int
++pkg syscall (linux-s390x), const SYS_PPOLL = 302
++pkg syscall (linux-s390x), const SYS_PPOLL ideal-int
++pkg syscall (linux-s390x), const SYS_PRCTL = 172
++pkg syscall (linux-s390x), const SYS_PRCTL ideal-int
++pkg syscall (linux-s390x), const SYS_PREAD64 = 180
++pkg syscall (linux-s390x), const SYS_PREAD64 ideal-int
++pkg syscall (linux-s390x), const SYS_PREADV = 328
++pkg syscall (linux-s390x), const SYS_PREADV ideal-int
++pkg syscall (linux-s390x), const SYS_PRLIMIT64 = 334
++pkg syscall (linux-s390x), const SYS_PRLIMIT64 ideal-int
++pkg syscall (linux-s390x), const SYS_PROCESS_VM_READV = 340
++pkg syscall (linux-s390x), const SYS_PROCESS_VM_READV ideal-int
++pkg syscall (linux-s390x), const SYS_PROCESS_VM_WRITEV = 341
++pkg syscall (linux-s390x), const SYS_PROCESS_VM_WRITEV ideal-int
++pkg syscall (linux-s390x), const SYS_PSELECT6 = 301
++pkg syscall (linux-s390x), const SYS_PSELECT6 ideal-int
++pkg syscall (linux-s390x), const SYS_PTRACE = 26
++pkg syscall (linux-s390x), const SYS_PTRACE ideal-int
++pkg syscall (linux-s390x), const SYS_PUTPMSG = 189
++pkg syscall (linux-s390x), const SYS_PUTPMSG ideal-int
++pkg syscall (linux-s390x), const SYS_PWRITE64 = 181
++pkg syscall (linux-s390x), const SYS_PWRITE64 ideal-int
++pkg syscall (linux-s390x), const SYS_PWRITEV = 329
++pkg syscall (linux-s390x), const SYS_PWRITEV ideal-int
++pkg syscall (linux-s390x), const SYS_QUERY_MODULE = 167
++pkg syscall (linux-s390x), const SYS_QUERY_MODULE ideal-int
++pkg syscall (linux-s390x), const SYS_QUOTACTL = 131
++pkg syscall (linux-s390x), const SYS_QUOTACTL ideal-int
++pkg syscall (linux-s390x), const SYS_READ = 3
++pkg syscall (linux-s390x), const SYS_READAHEAD = 222
++pkg syscall (linux-s390x), const SYS_READAHEAD ideal-int
++pkg syscall (linux-s390x), const SYS_READDIR = 89
++pkg syscall (linux-s390x), const SYS_READDIR ideal-int
++pkg syscall (linux-s390x), const SYS_READ ideal-int
++pkg syscall (linux-s390x), const SYS_READLINK = 85
++pkg syscall (linux-s390x), const SYS_READLINKAT = 298
++pkg syscall (linux-s390x), const SYS_READLINKAT ideal-int
++pkg syscall (linux-s390x), const SYS_READLINK ideal-int
++pkg syscall (linux-s390x), const SYS_READV = 145
++pkg syscall (linux-s390x), const SYS_READV ideal-int
++pkg syscall (linux-s390x), const SYS_REBOOT = 88
++pkg syscall (linux-s390x), const SYS_REBOOT ideal-int
++pkg syscall (linux-s390x), const SYS_REMAP_FILE_PAGES = 267
++pkg syscall (linux-s390x), const SYS_REMAP_FILE_PAGES ideal-int
++pkg syscall (linux-s390x), const SYS_REMOVEXATTR = 233
++pkg syscall (linux-s390x), const SYS_REMOVEXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_RENAME = 38
++pkg syscall (linux-s390x), const SYS_RENAMEAT = 295
++pkg syscall (linux-s390x), const SYS_RENAMEAT ideal-int
++pkg syscall (linux-s390x), const SYS_RENAME ideal-int
++pkg syscall (linux-s390x), const SYS_REQUEST_KEY = 279
++pkg syscall (linux-s390x), const SYS_REQUEST_KEY ideal-int
++pkg syscall (linux-s390x), const SYS_RESTART_SYSCALL = 7
++pkg syscall (linux-s390x), const SYS_RESTART_SYSCALL ideal-int
++pkg syscall (linux-s390x), const SYS_RMDIR = 40
++pkg syscall (linux-s390x), const SYS_RMDIR ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGACTION = 174
++pkg syscall (linux-s390x), const SYS_RT_SIGACTION ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGPENDING = 176
++pkg syscall (linux-s390x), const SYS_RT_SIGPENDING ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGPROCMASK = 175
++pkg syscall (linux-s390x), const SYS_RT_SIGPROCMASK ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGQUEUEINFO = 178
++pkg syscall (linux-s390x), const SYS_RT_SIGQUEUEINFO ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGRETURN = 173
++pkg syscall (linux-s390x), const SYS_RT_SIGRETURN ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGSUSPEND = 179
++pkg syscall (linux-s390x), const SYS_RT_SIGSUSPEND ideal-int
++pkg syscall (linux-s390x), const SYS_RT_SIGTIMEDWAIT = 177
++pkg syscall (linux-s390x), const SYS_RT_SIGTIMEDWAIT ideal-int
++pkg syscall (linux-s390x), const SYS_RT_TGSIGQUEUEINFO = 330
++pkg syscall (linux-s390x), const SYS_RT_TGSIGQUEUEINFO ideal-int
++pkg syscall (linux-s390x), const SYS_S390_RUNTIME_INSTR = 342
++pkg syscall (linux-s390x), const SYS_S390_RUNTIME_INSTR ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_GETAFFINITY = 240
++pkg syscall (linux-s390x), const SYS_SCHED_GETAFFINITY ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_GETPARAM = 155
++pkg syscall (linux-s390x), const SYS_SCHED_GETPARAM ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MAX = 159
++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MIN = 160
++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_GETSCHEDULER = 157
++pkg syscall (linux-s390x), const SYS_SCHED_GETSCHEDULER ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_RR_GET_INTERVAL = 161
++pkg syscall (linux-s390x), const SYS_SCHED_RR_GET_INTERVAL ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_SETAFFINITY = 239
++pkg syscall (linux-s390x), const SYS_SCHED_SETAFFINITY ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_SETPARAM = 154
++pkg syscall (linux-s390x), const SYS_SCHED_SETPARAM ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_SETSCHEDULER = 156
++pkg syscall (linux-s390x), const SYS_SCHED_SETSCHEDULER ideal-int
++pkg syscall (linux-s390x), const SYS_SCHED_YIELD = 158
++pkg syscall (linux-s390x), const SYS_SCHED_YIELD ideal-int
++pkg syscall (linux-s390x), const SYS_SELECT = 142
++pkg syscall (linux-s390x), const SYS_SELECT ideal-int
++pkg syscall (linux-s390x), const SYS_SENDFILE = 187
++pkg syscall (linux-s390x), const SYS_SENDFILE ideal-int
++pkg syscall (linux-s390x), const SYS_SETDOMAINNAME = 121
++pkg syscall (linux-s390x), const SYS_SETDOMAINNAME ideal-int
++pkg syscall (linux-s390x), const SYS_SETFSGID = 216
++pkg syscall (linux-s390x), const SYS_SETFSGID ideal-int
++pkg syscall (linux-s390x), const SYS_SETFSUID = 215
++pkg syscall (linux-s390x), const SYS_SETFSUID ideal-int
++pkg syscall (linux-s390x), const SYS_SETGID = 214
++pkg syscall (linux-s390x), const SYS_SETGID ideal-int
++pkg syscall (linux-s390x), const SYS_SETGROUPS = 206
++pkg syscall (linux-s390x), const SYS_SETGROUPS ideal-int
++pkg syscall (linux-s390x), const SYS_SETHOSTNAME = 74
++pkg syscall (linux-s390x), const SYS_SETHOSTNAME ideal-int
++pkg syscall (linux-s390x), const SYS_SETITIMER = 104
++pkg syscall (linux-s390x), const SYS_SETITIMER ideal-int
++pkg syscall (linux-s390x), const SYS_SETNS = 339
++pkg syscall (linux-s390x), const SYS_SETNS ideal-int
++pkg syscall (linux-s390x), const SYS_SETPGID = 57
++pkg syscall (linux-s390x), const SYS_SETPGID ideal-int
++pkg syscall (linux-s390x), const SYS_SETPRIORITY = 97
++pkg syscall (linux-s390x), const SYS_SETPRIORITY ideal-int
++pkg syscall (linux-s390x), const SYS_SETREGID = 204
++pkg syscall (linux-s390x), const SYS_SETREGID ideal-int
++pkg syscall (linux-s390x), const SYS_SETRESGID = 210
++pkg syscall (linux-s390x), const SYS_SETRESGID ideal-int
++pkg syscall (linux-s390x), const SYS_SETRESUID = 208
++pkg syscall (linux-s390x), const SYS_SETRESUID ideal-int
++pkg syscall (linux-s390x), const SYS_SETREUID = 203
++pkg syscall (linux-s390x), const SYS_SETREUID ideal-int
++pkg syscall (linux-s390x), const SYS_SETRLIMIT = 75
++pkg syscall (linux-s390x), const SYS_SETRLIMIT ideal-int
++pkg syscall (linux-s390x), const SYS_SET_ROBUST_LIST = 304
++pkg syscall (linux-s390x), const SYS_SET_ROBUST_LIST ideal-int
++pkg syscall (linux-s390x), const SYS_SETSID = 66
++pkg syscall (linux-s390x), const SYS_SETSID ideal-int
++pkg syscall (linux-s390x), const SYS_SET_TID_ADDRESS = 252
++pkg syscall (linux-s390x), const SYS_SET_TID_ADDRESS ideal-int
++pkg syscall (linux-s390x), const SYS_SETTIMEOFDAY = 79
++pkg syscall (linux-s390x), const SYS_SETTIMEOFDAY ideal-int
++pkg syscall (linux-s390x), const SYS_SETUID = 213
++pkg syscall (linux-s390x), const SYS_SETUID ideal-int
++pkg syscall (linux-s390x), const SYS_SETXATTR = 224
++pkg syscall (linux-s390x), const SYS_SETXATTR ideal-int
++pkg syscall (linux-s390x), const SYS_SIGACTION = 67
++pkg syscall (linux-s390x), const SYS_SIGACTION ideal-int
++pkg syscall (linux-s390x), const SYS_SIGALTSTACK = 186
++pkg syscall (linux-s390x), const SYS_SIGALTSTACK ideal-int
++pkg syscall (linux-s390x), const SYS_SIGNAL = 48
++pkg syscall (linux-s390x), const SYS_SIGNALFD = 316
++pkg syscall (linux-s390x), const SYS_SIGNALFD4 = 322
++pkg syscall (linux-s390x), const SYS_SIGNALFD4 ideal-int
++pkg syscall (linux-s390x), const SYS_SIGNALFD ideal-int
++pkg syscall (linux-s390x), const SYS_SIGNAL ideal-int
++pkg syscall (linux-s390x), const SYS_SIGPENDING = 73
++pkg syscall (linux-s390x), const SYS_SIGPENDING ideal-int
++pkg syscall (linux-s390x), const SYS_SIGPROCMASK = 126
++pkg syscall (linux-s390x), const SYS_SIGPROCMASK ideal-int
++pkg syscall (linux-s390x), const SYS_SIGRETURN = 119
++pkg syscall (linux-s390x), const SYS_SIGRETURN ideal-int
++pkg syscall (linux-s390x), const SYS_SIGSUSPEND = 72
++pkg syscall (linux-s390x), const SYS_SIGSUSPEND ideal-int
++pkg syscall (linux-s390x), const SYS_SOCKETCALL = 102
++pkg syscall (linux-s390x), const SYS_SOCKETCALL ideal-int
++pkg syscall (linux-s390x), const SYS_SPLICE = 306
++pkg syscall (linux-s390x), const SYS_SPLICE ideal-int
++pkg syscall (linux-s390x), const SYS_STAT = 106
++pkg syscall (linux-s390x), const SYS_STATFS64 = 265
++pkg syscall (linux-s390x), const SYS_STATFS64 ideal-int
++pkg syscall (linux-s390x), const SYS_STATFS = 99
++pkg syscall (linux-s390x), const SYS_STATFS ideal-int
++pkg syscall (linux-s390x), const SYS_STAT ideal-int
++pkg syscall (linux-s390x), const SYS_SWAPOFF = 115
++pkg syscall (linux-s390x), const SYS_SWAPOFF ideal-int
++pkg syscall (linux-s390x), const SYS_SWAPON = 87
++pkg syscall (linux-s390x), const SYS_SWAPON ideal-int
++pkg syscall (linux-s390x), const SYS_SYMLINK = 83
++pkg syscall (linux-s390x), const SYS_SYMLINKAT = 297
++pkg syscall (linux-s390x), const SYS_SYMLINKAT ideal-int
++pkg syscall (linux-s390x), const SYS_SYMLINK ideal-int
++pkg syscall (linux-s390x), const SYS_SYNC = 36
++pkg syscall (linux-s390x), const SYS_SYNC_FILE_RANGE = 307
++pkg syscall (linux-s390x), const SYS_SYNC_FILE_RANGE ideal-int
++pkg syscall (linux-s390x), const SYS_SYNCFS = 338
++pkg syscall (linux-s390x), const SYS_SYNCFS ideal-int
++pkg syscall (linux-s390x), const SYS_SYNC ideal-int
++pkg syscall (linux-s390x), const SYS__SYSCTL = 149
++pkg syscall (linux-s390x), const SYS__SYSCTL ideal-int
++pkg syscall (linux-s390x), const SYS_SYSFS = 135
++pkg syscall (linux-s390x), const SYS_SYSFS ideal-int
++pkg syscall (linux-s390x), const SYS_SYSINFO = 116
++pkg syscall (linux-s390x), const SYS_SYSINFO ideal-int
++pkg syscall (linux-s390x), const SYS_SYSLOG = 103
++pkg syscall (linux-s390x), const SYS_SYSLOG ideal-int
++pkg syscall (linux-s390x), const SYS_TEE = 308
++pkg syscall (linux-s390x), const SYS_TEE ideal-int
++pkg syscall (linux-s390x), const SYS_TGKILL = 241
++pkg syscall (linux-s390x), const SYS_TGKILL ideal-int
++pkg syscall (linux-s390x), const SYS_TIMER_CREATE = 254
++pkg syscall (linux-s390x), const SYS_TIMER_CREATE ideal-int
++pkg syscall (linux-s390x), const SYS_TIMER_DELETE = 258
++pkg syscall (linux-s390x), const SYS_TIMER_DELETE ideal-int
++pkg syscall (linux-s390x), const SYS_TIMERFD = 317
++pkg syscall (linux-s390x), const SYS_TIMERFD_CREATE = 319
++pkg syscall (linux-s390x), const SYS_TIMERFD_CREATE ideal-int
++pkg syscall (linux-s390x), const SYS_TIMERFD_GETTIME = 321
++pkg syscall (linux-s390x), const SYS_TIMERFD_GETTIME ideal-int
++pkg syscall (linux-s390x), const SYS_TIMERFD ideal-int
++pkg syscall (linux-s390x), const SYS_TIMERFD_SETTIME = 320
++pkg syscall (linux-s390x), const SYS_TIMERFD_SETTIME ideal-int
++pkg syscall (linux-s390x), const SYS_TIMER_GETOVERRUN = 257
++pkg syscall (linux-s390x), const SYS_TIMER_GETOVERRUN ideal-int
++pkg syscall (linux-s390x), const SYS_TIMER_GETTIME = 256
++pkg syscall (linux-s390x), const SYS_TIMER_GETTIME ideal-int
++pkg syscall (linux-s390x), const SYS_TIMER_SETTIME = 255
++pkg syscall (linux-s390x), const SYS_TIMER_SETTIME ideal-int
++pkg syscall (linux-s390x), const SYS_TIMES = 43
++pkg syscall (linux-s390x), const SYS_TIMES ideal-int
++pkg syscall (linux-s390x), const SYS_TKILL = 237
++pkg syscall (linux-s390x), const SYS_TKILL ideal-int
++pkg syscall (linux-s390x), const SYS_TRUNCATE = 92
++pkg syscall (linux-s390x), const SYS_TRUNCATE ideal-int
++pkg syscall (linux-s390x), const SYS_UMASK = 60
++pkg syscall (linux-s390x), const SYS_UMASK ideal-int
++pkg syscall (linux-s390x), const SYS_UMOUNT = 22
++pkg syscall (linux-s390x), const SYS_UMOUNT2 = 52
++pkg syscall (linux-s390x), const SYS_UMOUNT2 ideal-int
++pkg syscall (linux-s390x), const SYS_UMOUNT ideal-int
++pkg syscall (linux-s390x), const SYS_UNAME = 122
++pkg syscall (linux-s390x), const SYS_UNAME ideal-int
++pkg syscall (linux-s390x), const SYS_UNLINK = 10
++pkg syscall (linux-s390x), const SYS_UNLINKAT = 294
++pkg syscall (linux-s390x), const SYS_UNLINKAT ideal-int
++pkg syscall (linux-s390x), const SYS_UNLINK ideal-int
++pkg syscall (linux-s390x), const SYS_UNSHARE = 303
++pkg syscall (linux-s390x), const SYS_UNSHARE ideal-int
++pkg syscall (linux-s390x), const SYS_USELIB = 86
++pkg syscall (linux-s390x), const SYS_USELIB ideal-int
++pkg syscall (linux-s390x), const SYS_USTAT = 62
++pkg syscall (linux-s390x), const SYS_USTAT ideal-int
++pkg syscall (linux-s390x), const SYS_UTIME = 30
++pkg syscall (linux-s390x), const SYS_UTIME ideal-int
++pkg syscall (linux-s390x), const SYS_UTIMENSAT = 315
++pkg syscall (linux-s390x), const SYS_UTIMENSAT ideal-int
++pkg syscall (linux-s390x), const SYS_UTIMES = 313
++pkg syscall (linux-s390x), const SYS_UTIMES ideal-int
++pkg syscall (linux-s390x), const SYS_VFORK = 190
++pkg syscall (linux-s390x), const SYS_VFORK ideal-int
++pkg syscall (linux-s390x), const SYS_VHANGUP = 111
++pkg syscall (linux-s390x), const SYS_VHANGUP ideal-int
++pkg syscall (linux-s390x), const SYS_VMSPLICE = 309
++pkg syscall (linux-s390x), const SYS_VMSPLICE ideal-int
++pkg syscall (linux-s390x), const SYS_WAIT4 = 114
++pkg syscall (linux-s390x), const SYS_WAIT4 ideal-int
++pkg syscall (linux-s390x), const SYS_WAITID = 281
++pkg syscall (linux-s390x), const SYS_WAITID ideal-int
++pkg syscall (linux-s390x), const SYS_WRITE = 4
++pkg syscall (linux-s390x), const SYS_WRITE ideal-int
++pkg syscall (linux-s390x), const SYS_WRITEV = 146
++pkg syscall (linux-s390x), const SYS_WRITEV ideal-int
++pkg syscall (linux-s390x), const TCFLSH = 21515
++pkg syscall (linux-s390x), const TCFLSH ideal-int
++pkg syscall (linux-s390x), const TCGETS = 21505
++pkg syscall (linux-s390x), const TCGETS ideal-int
++pkg syscall (linux-s390x), const TCIFLUSH = 0
++pkg syscall (linux-s390x), const TCIFLUSH ideal-int
++pkg syscall (linux-s390x), const TCIOFLUSH = 2
++pkg syscall (linux-s390x), const TCIOFLUSH ideal-int
++pkg syscall (linux-s390x), const TCOFLUSH = 1
++pkg syscall (linux-s390x), const TCOFLUSH ideal-int
++pkg syscall (linux-s390x), const TCP_CONGESTION = 13
++pkg syscall (linux-s390x), const TCP_CONGESTION ideal-int
++pkg syscall (linux-s390x), const TCP_CORK = 3
++pkg syscall (linux-s390x), const TCP_CORK ideal-int
++pkg syscall (linux-s390x), const TCP_DEFER_ACCEPT = 9
++pkg syscall (linux-s390x), const TCP_DEFER_ACCEPT ideal-int
++pkg syscall (linux-s390x), const TCP_INFO = 11
++pkg syscall (linux-s390x), const TCP_INFO ideal-int
++pkg syscall (linux-s390x), const TCP_KEEPCNT = 6
++pkg syscall (linux-s390x), const TCP_KEEPCNT ideal-int
++pkg syscall (linux-s390x), const TCP_KEEPIDLE = 4
++pkg syscall (linux-s390x), const TCP_KEEPIDLE ideal-int
++pkg syscall (linux-s390x), const TCP_KEEPINTVL = 5
++pkg syscall (linux-s390x), const TCP_KEEPINTVL ideal-int
++pkg syscall (linux-s390x), const TCP_LINGER2 = 8
++pkg syscall (linux-s390x), const TCP_LINGER2 ideal-int
++pkg syscall (linux-s390x), const TCP_MAXSEG = 2
++pkg syscall (linux-s390x), const TCP_MAXSEG ideal-int
++pkg syscall (linux-s390x), const TCP_MAXWIN = 65535
++pkg syscall (linux-s390x), const TCP_MAXWIN ideal-int
++pkg syscall (linux-s390x), const TCP_MAX_WINSHIFT = 14
++pkg syscall (linux-s390x), const TCP_MAX_WINSHIFT ideal-int
++pkg syscall (linux-s390x), const TCP_MD5SIG = 14
++pkg syscall (linux-s390x), const TCP_MD5SIG ideal-int
++pkg syscall (linux-s390x), const TCP_MD5SIG_MAXKEYLEN = 80
++pkg syscall (linux-s390x), const TCP_MD5SIG_MAXKEYLEN ideal-int
++pkg syscall (linux-s390x), const TCP_MSS = 512
++pkg syscall (linux-s390x), const TCP_MSS ideal-int
++pkg syscall (linux-s390x), const TCP_QUICKACK = 12
++pkg syscall (linux-s390x), const TCP_QUICKACK ideal-int
++pkg syscall (linux-s390x), const TCP_SYNCNT = 7
++pkg syscall (linux-s390x), const TCP_SYNCNT ideal-int
++pkg syscall (linux-s390x), const TCP_WINDOW_CLAMP = 10
++pkg syscall (linux-s390x), const TCP_WINDOW_CLAMP ideal-int
++pkg syscall (linux-s390x), const TCSAFLUSH = 2
++pkg syscall (linux-s390x), const TCSAFLUSH ideal-int
++pkg syscall (linux-s390x), const TCSETS = 21506
++pkg syscall (linux-s390x), const TCSETS ideal-int
++pkg syscall (linux-s390x), const TIOCCBRK = 21544
++pkg syscall (linux-s390x), const TIOCCBRK ideal-int
++pkg syscall (linux-s390x), const TIOCCONS = 21533
++pkg syscall (linux-s390x), const TIOCCONS ideal-int
++pkg syscall (linux-s390x), const TIOCEXCL = 21516
++pkg syscall (linux-s390x), const TIOCEXCL ideal-int
++pkg syscall (linux-s390x), const TIOCGDEV = 2147767346
++pkg syscall (linux-s390x), const TIOCGDEV ideal-int
++pkg syscall (linux-s390x), const TIOCGETD = 21540
++pkg syscall (linux-s390x), const TIOCGETD ideal-int
++pkg syscall (linux-s390x), const TIOCGEXCL = 2147767360
++pkg syscall (linux-s390x), const TIOCGEXCL ideal-int
++pkg syscall (linux-s390x), const TIOCGICOUNT = 21597
++pkg syscall (linux-s390x), const TIOCGICOUNT ideal-int
++pkg syscall (linux-s390x), const TIOCGLCKTRMIOS = 21590
++pkg syscall (linux-s390x), const TIOCGLCKTRMIOS ideal-int
++pkg syscall (linux-s390x), const TIOCGPGRP = 21519
++pkg syscall (linux-s390x), const TIOCGPGRP ideal-int
++pkg syscall (linux-s390x), const TIOCGPKT = 2147767352
++pkg syscall (linux-s390x), const TIOCGPKT ideal-int
++pkg syscall (linux-s390x), const TIOCGPTLCK = 2147767353
++pkg syscall (linux-s390x), const TIOCGPTLCK ideal-int
++pkg syscall (linux-s390x), const TIOCGPTN = 2147767344
++pkg syscall (linux-s390x), const TIOCGPTN ideal-int
++pkg syscall (linux-s390x), const TIOCGRS485 = 21550
++pkg syscall (linux-s390x), const TIOCGRS485 ideal-int
++pkg syscall (linux-s390x), const TIOCGSERIAL = 21534
++pkg syscall (linux-s390x), const TIOCGSERIAL ideal-int
++pkg syscall (linux-s390x), const TIOCGSID = 21545
++pkg syscall (linux-s390x), const TIOCGSID ideal-int
++pkg syscall (linux-s390x), const TIOCGSOFTCAR = 21529
++pkg syscall (linux-s390x), const TIOCGSOFTCAR ideal-int
++pkg syscall (linux-s390x), const TIOCGWINSZ = 21523
++pkg syscall (linux-s390x), const TIOCGWINSZ ideal-int
++pkg syscall (linux-s390x), const TIOCINQ = 21531
++pkg syscall (linux-s390x), const TIOCINQ ideal-int
++pkg syscall (linux-s390x), const TIOCLINUX = 21532
++pkg syscall (linux-s390x), const TIOCLINUX ideal-int
++pkg syscall (linux-s390x), const TIOCMBIC = 21527
++pkg syscall (linux-s390x), const TIOCMBIC ideal-int
++pkg syscall (linux-s390x), const TIOCMBIS = 21526
++pkg syscall (linux-s390x), const TIOCMBIS ideal-int
++pkg syscall (linux-s390x), const TIOCM_CAR = 64
++pkg syscall (linux-s390x), const TIOCM_CAR ideal-int
++pkg syscall (linux-s390x), const TIOCM_CD = 64
++pkg syscall (linux-s390x), const TIOCM_CD ideal-int
++pkg syscall (linux-s390x), const TIOCM_CTS = 32
++pkg syscall (linux-s390x), const TIOCM_CTS ideal-int
++pkg syscall (linux-s390x), const TIOCM_DSR = 256
++pkg syscall (linux-s390x), const TIOCM_DSR ideal-int
++pkg syscall (linux-s390x), const TIOCM_DTR = 2
++pkg syscall (linux-s390x), const TIOCM_DTR ideal-int
++pkg syscall (linux-s390x), const TIOCMGET = 21525
++pkg syscall (linux-s390x), const TIOCMGET ideal-int
++pkg syscall (linux-s390x), const TIOCMIWAIT = 21596
++pkg syscall (linux-s390x), const TIOCMIWAIT ideal-int
++pkg syscall (linux-s390x), const TIOCM_LE = 1
++pkg syscall (linux-s390x), const TIOCM_LE ideal-int
++pkg syscall (linux-s390x), const TIOCM_RI = 128
++pkg syscall (linux-s390x), const TIOCM_RI ideal-int
++pkg syscall (linux-s390x), const TIOCM_RNG = 128
++pkg syscall (linux-s390x), const TIOCM_RNG ideal-int
++pkg syscall (linux-s390x), const TIOCM_RTS = 4
++pkg syscall (linux-s390x), const TIOCM_RTS ideal-int
++pkg syscall (linux-s390x), const TIOCMSET = 21528
++pkg syscall (linux-s390x), const TIOCMSET ideal-int
++pkg syscall (linux-s390x), const TIOCM_SR = 16
++pkg syscall (linux-s390x), const TIOCM_SR ideal-int
++pkg syscall (linux-s390x), const TIOCM_ST = 8
++pkg syscall (linux-s390x), const TIOCM_ST ideal-int
++pkg syscall (linux-s390x), const TIOCNOTTY = 21538
++pkg syscall (linux-s390x), const TIOCNOTTY ideal-int
++pkg syscall (linux-s390x), const TIOCNXCL = 21517
++pkg syscall (linux-s390x), const TIOCNXCL ideal-int
++pkg syscall (linux-s390x), const TIOCOUTQ = 21521
++pkg syscall (linux-s390x), const TIOCOUTQ ideal-int
++pkg syscall (linux-s390x), const TIOCPKT = 21536
++pkg syscall (linux-s390x), const TIOCPKT_DATA = 0
++pkg syscall (linux-s390x), const TIOCPKT_DATA ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_DOSTOP = 32
++pkg syscall (linux-s390x), const TIOCPKT_DOSTOP ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_FLUSHREAD = 1
++pkg syscall (linux-s390x), const TIOCPKT_FLUSHREAD ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_FLUSHWRITE = 2
++pkg syscall (linux-s390x), const TIOCPKT_FLUSHWRITE ideal-int
++pkg syscall (linux-s390x), const TIOCPKT ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_IOCTL = 64
++pkg syscall (linux-s390x), const TIOCPKT_IOCTL ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_NOSTOP = 16
++pkg syscall (linux-s390x), const TIOCPKT_NOSTOP ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_START = 8
++pkg syscall (linux-s390x), const TIOCPKT_START ideal-int
++pkg syscall (linux-s390x), const TIOCPKT_STOP = 4
++pkg syscall (linux-s390x), const TIOCPKT_STOP ideal-int
++pkg syscall (linux-s390x), const TIOCSBRK = 21543
++pkg syscall (linux-s390x), const TIOCSBRK ideal-int
++pkg syscall (linux-s390x), const TIOCSCTTY = 21518
++pkg syscall (linux-s390x), const TIOCSCTTY ideal-int
++pkg syscall (linux-s390x), const TIOCSERCONFIG = 21587
++pkg syscall (linux-s390x), const TIOCSERCONFIG ideal-int
++pkg syscall (linux-s390x), const TIOCSERGETLSR = 21593
++pkg syscall (linux-s390x), const TIOCSERGETLSR ideal-int
++pkg syscall (linux-s390x), const TIOCSERGETMULTI = 21594
++pkg syscall (linux-s390x), const TIOCSERGETMULTI ideal-int
++pkg syscall (linux-s390x), const TIOCSERGSTRUCT = 21592
++pkg syscall (linux-s390x), const TIOCSERGSTRUCT ideal-int
++pkg syscall (linux-s390x), const TIOCSERGWILD = 21588
++pkg syscall (linux-s390x), const TIOCSERGWILD ideal-int
++pkg syscall (linux-s390x), const TIOCSERSETMULTI = 21595
++pkg syscall (linux-s390x), const TIOCSERSETMULTI ideal-int
++pkg syscall (linux-s390x), const TIOCSERSWILD = 21589
++pkg syscall (linux-s390x), const TIOCSERSWILD ideal-int
++pkg syscall (linux-s390x), const TIOCSER_TEMT = 1
++pkg syscall (linux-s390x), const TIOCSER_TEMT ideal-int
++pkg syscall (linux-s390x), const TIOCSETD = 21539
++pkg syscall (linux-s390x), const TIOCSETD ideal-int
++pkg syscall (linux-s390x), const TIOCSIG = 1074025526
++pkg syscall (linux-s390x), const TIOCSIG ideal-int
++pkg syscall (linux-s390x), const TIOCSLCKTRMIOS = 21591
++pkg syscall (linux-s390x), const TIOCSLCKTRMIOS ideal-int
++pkg syscall (linux-s390x), const TIOCSPGRP = 21520
++pkg syscall (linux-s390x), const TIOCSPGRP ideal-int
++pkg syscall (linux-s390x), const TIOCSPTLCK = 1074025521
++pkg syscall (linux-s390x), const TIOCSPTLCK ideal-int
++pkg syscall (linux-s390x), const TIOCSRS485 = 21551
++pkg syscall (linux-s390x), const TIOCSRS485 ideal-int
++pkg syscall (linux-s390x), const TIOCSSERIAL = 21535
++pkg syscall (linux-s390x), const TIOCSSERIAL ideal-int
++pkg syscall (linux-s390x), const TIOCSSOFTCAR = 21530
++pkg syscall (linux-s390x), const TIOCSSOFTCAR ideal-int
++pkg syscall (linux-s390x), const TIOCSTI = 21522
++pkg syscall (linux-s390x), const TIOCSTI ideal-int
++pkg syscall (linux-s390x), const TIOCSWINSZ = 21524
++pkg syscall (linux-s390x), const TIOCSWINSZ ideal-int
++pkg syscall (linux-s390x), const TIOCVHANGUP = 21559
++pkg syscall (linux-s390x), const TIOCVHANGUP ideal-int
++pkg syscall (linux-s390x), const TOSTOP = 256
++pkg syscall (linux-s390x), const TOSTOP ideal-int
++pkg syscall (linux-s390x), const TUNATTACHFILTER = 1074812117
++pkg syscall (linux-s390x), const TUNATTACHFILTER ideal-int
++pkg syscall (linux-s390x), const TUNDETACHFILTER = 1074812118
++pkg syscall (linux-s390x), const TUNDETACHFILTER ideal-int
++pkg syscall (linux-s390x), const TUNGETFEATURES = 2147767503
++pkg syscall (linux-s390x), const TUNGETFEATURES ideal-int
++pkg syscall (linux-s390x), const TUNGETIFF = 2147767506
++pkg syscall (linux-s390x), const TUNGETIFF ideal-int
++pkg syscall (linux-s390x), const TUNGETSNDBUF = 2147767507
++pkg syscall (linux-s390x), const TUNGETSNDBUF ideal-int
++pkg syscall (linux-s390x), const TUNGETVNETHDRSZ = 2147767511
++pkg syscall (linux-s390x), const TUNGETVNETHDRSZ ideal-int
++pkg syscall (linux-s390x), const TUNSETDEBUG = 1074025673
++pkg syscall (linux-s390x), const TUNSETDEBUG ideal-int
++pkg syscall (linux-s390x), const TUNSETGROUP = 1074025678
++pkg syscall (linux-s390x), const TUNSETGROUP ideal-int
++pkg syscall (linux-s390x), const TUNSETIFF = 1074025674
++pkg syscall (linux-s390x), const TUNSETIFF ideal-int
++pkg syscall (linux-s390x), const TUNSETLINK = 1074025677
++pkg syscall (linux-s390x), const TUNSETLINK ideal-int
++pkg syscall (linux-s390x), const TUNSETNOCSUM = 1074025672
++pkg syscall (linux-s390x), const TUNSETNOCSUM ideal-int
++pkg syscall (linux-s390x), const TUNSETOFFLOAD = 1074025680
++pkg syscall (linux-s390x), const TUNSETOFFLOAD ideal-int
++pkg syscall (linux-s390x), const TUNSETOWNER = 1074025676
++pkg syscall (linux-s390x), const TUNSETOWNER ideal-int
++pkg syscall (linux-s390x), const TUNSETPERSIST = 1074025675
++pkg syscall (linux-s390x), const TUNSETPERSIST ideal-int
++pkg syscall (linux-s390x), const TUNSETQUEUE = 1074025689
++pkg syscall (linux-s390x), const TUNSETQUEUE ideal-int
++pkg syscall (linux-s390x), const TUNSETSNDBUF = 1074025684
++pkg syscall (linux-s390x), const TUNSETSNDBUF ideal-int
++pkg syscall (linux-s390x), const TUNSETTXFILTER = 1074025681
++pkg syscall (linux-s390x), const TUNSETTXFILTER ideal-int
++pkg syscall (linux-s390x), const TUNSETVNETHDRSZ = 1074025688
++pkg syscall (linux-s390x), const TUNSETVNETHDRSZ ideal-int
++pkg syscall (linux-s390x), const VDISCARD = 13
++pkg syscall (linux-s390x), const VDISCARD ideal-int
++pkg syscall (linux-s390x), const VEOF = 4
++pkg syscall (linux-s390x), const VEOF ideal-int
++pkg syscall (linux-s390x), const VEOL = 11
++pkg syscall (linux-s390x), const VEOL2 = 16
++pkg syscall (linux-s390x), const VEOL2 ideal-int
++pkg syscall (linux-s390x), const VEOL ideal-int
++pkg syscall (linux-s390x), const VERASE = 2
++pkg syscall (linux-s390x), const VERASE ideal-int
++pkg syscall (linux-s390x), const VINTR = 0
++pkg syscall (linux-s390x), const VINTR ideal-int
++pkg syscall (linux-s390x), const VKILL = 3
++pkg syscall (linux-s390x), const VKILL ideal-int
++pkg syscall (linux-s390x), const VLNEXT = 15
++pkg syscall (linux-s390x), const VLNEXT ideal-int
++pkg syscall (linux-s390x), const VMIN = 6
++pkg syscall (linux-s390x), const VMIN ideal-int
++pkg syscall (linux-s390x), const VQUIT = 1
++pkg syscall (linux-s390x), const VQUIT ideal-int
++pkg syscall (linux-s390x), const VREPRINT = 12
++pkg syscall (linux-s390x), const VREPRINT ideal-int
++pkg syscall (linux-s390x), const VSTART = 8
++pkg syscall (linux-s390x), const VSTART ideal-int
++pkg syscall (linux-s390x), const VSTOP = 9
++pkg syscall (linux-s390x), const VSTOP ideal-int
++pkg syscall (linux-s390x), const VSUSP = 10
++pkg syscall (linux-s390x), const VSUSP ideal-int
++pkg syscall (linux-s390x), const VSWTC = 7
++pkg syscall (linux-s390x), const VSWTC ideal-int
++pkg syscall (linux-s390x), const VT0 = 0
++pkg syscall (linux-s390x), const VT0 ideal-int
++pkg syscall (linux-s390x), const VT1 = 16384
++pkg syscall (linux-s390x), const VT1 ideal-int
++pkg syscall (linux-s390x), const VTDLY = 16384
++pkg syscall (linux-s390x), const VTDLY ideal-int
++pkg syscall (linux-s390x), const VTIME = 5
++pkg syscall (linux-s390x), const VTIME ideal-int
++pkg syscall (linux-s390x), const VWERASE = 14
++pkg syscall (linux-s390x), const VWERASE ideal-int
++pkg syscall (linux-s390x), const WALL = 1073741824
++pkg syscall (linux-s390x), const WALL ideal-int
++pkg syscall (linux-s390x), const WCLONE = 2147483648
++pkg syscall (linux-s390x), const WCLONE ideal-int
++pkg syscall (linux-s390x), const WCONTINUED = 8
++pkg syscall (linux-s390x), const WCONTINUED ideal-int
++pkg syscall (linux-s390x), const WEXITED = 4
++pkg syscall (linux-s390x), const WEXITED ideal-int
++pkg syscall (linux-s390x), const WNOHANG = 1
++pkg syscall (linux-s390x), const WNOHANG ideal-int
++pkg syscall (linux-s390x), const WNOTHREAD = 536870912
++pkg syscall (linux-s390x), const WNOTHREAD ideal-int
++pkg syscall (linux-s390x), const WNOWAIT = 16777216
++pkg syscall (linux-s390x), const WNOWAIT ideal-int
++pkg syscall (linux-s390x), const WORDSIZE = 64
++pkg syscall (linux-s390x), const WORDSIZE ideal-int
++pkg syscall (linux-s390x), const WSTOPPED = 2
++pkg syscall (linux-s390x), const WSTOPPED ideal-int
++pkg syscall (linux-s390x), const WUNTRACED = 2
++pkg syscall (linux-s390x), const WUNTRACED ideal-int
++pkg syscall (linux-s390x), const XCASE = 4
++pkg syscall (linux-s390x), const XCASE ideal-int
++pkg syscall (linux-s390x), func Accept4(int, int) (int, Sockaddr, error)
++pkg syscall (linux-s390x), func Accept(int) (int, Sockaddr, error)
++pkg syscall (linux-s390x), func Access(string, uint32) error
++pkg syscall (linux-s390x), func Acct(string) error
++pkg syscall (linux-s390x), func Adjtimex(*Timex) (int, error)
++pkg syscall (linux-s390x), func AttachLsf(int, []SockFilter) error
++pkg syscall (linux-s390x), func Bind(int, Sockaddr) error
++pkg syscall (linux-s390x), func BindToDevice(int, string) error
++pkg syscall (linux-s390x), func Chroot(string) error
++pkg syscall (linux-s390x), func Close(int) error
++pkg syscall (linux-s390x), func CloseOnExec(int)
++pkg syscall (linux-s390x), func CmsgLen(int) int
++pkg syscall (linux-s390x), func CmsgSpace(int) int
++pkg syscall (linux-s390x), func Connect(int, Sockaddr) error
++pkg syscall (linux-s390x), func Creat(string, uint32) (int, error)
++pkg syscall (linux-s390x), func DetachLsf(int) error
++pkg syscall (linux-s390x), func Dup2(int, int) error
++pkg syscall (linux-s390x), func Dup3(int, int, int) error
++pkg syscall (linux-s390x), func Dup(int) (int, error)
++pkg syscall (linux-s390x), func EpollCreate1(int) (int, error)
++pkg syscall (linux-s390x), func EpollCreate(int) (int, error)
++pkg syscall (linux-s390x), func EpollCtl(int, int, int, *EpollEvent) error
++pkg syscall (linux-s390x), func EpollWait(int, []EpollEvent, int) (int, error)
++pkg syscall (linux-s390x), func Faccessat(int, string, uint32, int) error
++pkg syscall (linux-s390x), func Fallocate(int, uint32, int64, int64) error
++pkg syscall (linux-s390x), func Fchdir(int) error
++pkg syscall (linux-s390x), func Fchmodat(int, string, uint32, int) error
++pkg syscall (linux-s390x), func Fchmod(int, uint32) error
++pkg syscall (linux-s390x), func Fchownat(int, string, int, int, int) error
++pkg syscall (linux-s390x), func Fchown(int, int, int) error
++pkg syscall (linux-s390x), func FcntlFlock(uintptr, int, *Flock_t) error
++pkg syscall (linux-s390x), func Fdatasync(int) error
++pkg syscall (linux-s390x), func Flock(int, int) error
++pkg syscall (linux-s390x), func ForkExec(string, []string, *ProcAttr) (int, error)
++pkg syscall (linux-s390x), func Fstatfs(int, *Statfs_t) error
++pkg syscall (linux-s390x), func Fstat(int, *Stat_t) error
++pkg syscall (linux-s390x), func Fsync(int) error
++pkg syscall (linux-s390x), func Ftruncate(int, int64) error
++pkg syscall (linux-s390x), func Futimesat(int, string, []Timeval) error
++pkg syscall (linux-s390x), func Futimes(int, []Timeval) error
++pkg syscall (linux-s390x), func Getcwd([]uint8) (int, error)
++pkg syscall (linux-s390x), func Getdents(int, []uint8) (int, error)
++pkg syscall (linux-s390x), func Getpeername(int) (Sockaddr, error)
++pkg syscall (linux-s390x), func Getpgid(int) (int, error)
++pkg syscall (linux-s390x), func Getpgrp() int
++pkg syscall (linux-s390x), func Getpriority(int, int) (int, error)
++pkg syscall (linux-s390x), func Getrlimit(int, *Rlimit) error
++pkg syscall (linux-s390x), func Getrusage(int, *Rusage) error
++pkg syscall (linux-s390x), func Getsockname(int) (Sockaddr, error)
++pkg syscall (linux-s390x), func GetsockoptICMPv6Filter(int, int, int) (*ICMPv6Filter, error)
++pkg syscall (linux-s390x), func GetsockoptInet4Addr(int, int, int) ([4]uint8, error)
++pkg syscall (linux-s390x), func GetsockoptInt(int, int, int) (int, error)
++pkg syscall (linux-s390x), func GetsockoptIPMreq(int, int, int) (*IPMreq, error)
++pkg syscall (linux-s390x), func GetsockoptIPMreqn(int, int, int) (*IPMreqn, error)
++pkg syscall (linux-s390x), func GetsockoptIPv6Mreq(int, int, int) (*IPv6Mreq, error)
++pkg syscall (linux-s390x), func GetsockoptIPv6MTUInfo(int, int, int) (*IPv6MTUInfo, error)
++pkg syscall (linux-s390x), func GetsockoptUcred(int, int, int) (*Ucred, error)
++pkg syscall (linux-s390x), func Gettid() int
++pkg syscall (linux-s390x), func Getxattr(string, string, []uint8) (int, error)
++pkg syscall (linux-s390x), func InotifyAddWatch(int, string, uint32) (int, error)
++pkg syscall (linux-s390x), func InotifyInit1(int) (int, error)
++pkg syscall (linux-s390x), func InotifyInit() (int, error)
++pkg syscall (linux-s390x), func InotifyRmWatch(int, uint32) (int, error)
++pkg syscall (linux-s390x), func Kill(int, Signal) error
++pkg syscall (linux-s390x), func Klogctl(int, []uint8) (int, error)
++pkg syscall (linux-s390x), func Listen(int, int) error
++pkg syscall (linux-s390x), func Listxattr(string, []uint8) (int, error)
++pkg syscall (linux-s390x), func LsfJump(int, int, int, int) *SockFilter
++pkg syscall (linux-s390x), func LsfSocket(int, int) (int, error)
++pkg syscall (linux-s390x), func LsfStmt(int, int) *SockFilter
++pkg syscall (linux-s390x), func Lstat(string, *Stat_t) error
++pkg syscall (linux-s390x), func Madvise([]uint8, int) error
++pkg syscall (linux-s390x), func Mkdirat(int, string, uint32) error
++pkg syscall (linux-s390x), func Mkfifo(string, uint32) error
++pkg syscall (linux-s390x), func Mknodat(int, string, uint32, int) error
++pkg syscall (linux-s390x), func Mknod(string, uint32, int) error
++pkg syscall (linux-s390x), func Mlockall(int) error
++pkg syscall (linux-s390x), func Mlock([]uint8) error
++pkg syscall (linux-s390x), func Mmap(int, int64, int, int, int) ([]uint8, error)
++pkg syscall (linux-s390x), func Mount(string, string, string, uintptr, string) error
++pkg syscall (linux-s390x), func Mprotect([]uint8, int) error
++pkg syscall (linux-s390x), func Munlockall() error
++pkg syscall (linux-s390x), func Munlock([]uint8) error
++pkg syscall (linux-s390x), func Munmap([]uint8) error
++pkg syscall (linux-s390x), func Nanosleep(*Timespec, *Timespec) error
++pkg syscall (linux-s390x), func NetlinkRIB(int, int) ([]uint8, error)
++pkg syscall (linux-s390x), func Openat(int, string, int, uint32) (int, error)
++pkg syscall (linux-s390x), func Open(string, int, uint32) (int, error)
++pkg syscall (linux-s390x), func ParseDirent([]uint8, int, []string) (int, int, []string)
++pkg syscall (linux-s390x), func ParseNetlinkMessage([]uint8) ([]NetlinkMessage, error)
++pkg syscall (linux-s390x), func ParseNetlinkRouteAttr(*NetlinkMessage) ([]NetlinkRouteAttr, error)
++pkg syscall (linux-s390x), func ParseSocketControlMessage([]uint8) ([]SocketControlMessage, error)
++pkg syscall (linux-s390x), func ParseUnixCredentials(*SocketControlMessage) (*Ucred, error)
++pkg syscall (linux-s390x), func ParseUnixRights(*SocketControlMessage) ([]int, error)
++pkg syscall (linux-s390x), func Pause() error
++pkg syscall (linux-s390x), func Pipe2([]int, int) error
++pkg syscall (linux-s390x), func Pipe([]int) error
++pkg syscall (linux-s390x), func PivotRoot(string, string) error
++pkg syscall (linux-s390x), func Pread(int, []uint8, int64) (int, error)
++pkg syscall (linux-s390x), func PtraceAttach(int) error
++pkg syscall (linux-s390x), func PtraceCont(int, int) error
++pkg syscall (linux-s390x), func PtraceDetach(int) error
++pkg syscall (linux-s390x), func PtraceGetEventMsg(int) (uint, error)
++pkg syscall (linux-s390x), func PtraceGetRegs(int, *PtraceRegs) error
++pkg syscall (linux-s390x), func PtracePeekData(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x), func PtracePeekText(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x), func PtracePokeData(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x), func PtracePokeText(int, uintptr, []uint8) (int, error)
++pkg syscall (linux-s390x), func PtraceSetOptions(int, int) error
++pkg syscall (linux-s390x), func PtraceSetRegs(int, *PtraceRegs) error
++pkg syscall (linux-s390x), func PtraceSingleStep(int) error
++pkg syscall (linux-s390x), func PtraceSyscall(int, int) error
++pkg syscall (linux-s390x), func Pwrite(int, []uint8, int64) (int, error)
++pkg syscall (linux-s390x), func RawSyscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x), func RawSyscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x), func ReadDirent(int, []uint8) (int, error)
++pkg syscall (linux-s390x), func Read(int, []uint8) (int, error)
++pkg syscall (linux-s390x), func Reboot(int) error
++pkg syscall (linux-s390x), func Recvfrom(int, []uint8, int) (int, Sockaddr, error)
++pkg syscall (linux-s390x), func Recvmsg(int, []uint8, []uint8, int) (int, int, int, Sockaddr, error)
++pkg syscall (linux-s390x), func Removexattr(string, string) error
++pkg syscall (linux-s390x), func Renameat(int, string, int, string) error
++pkg syscall (linux-s390x), func Seek(int, int64, int) (int64, error)
++pkg syscall (linux-s390x), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) (int, error)
++pkg syscall (linux-s390x), func Sendfile(int, int, *int64, int) (int, error)
++pkg syscall (linux-s390x), func Sendmsg(int, []uint8, []uint8, Sockaddr, int) error
++pkg syscall (linux-s390x), func SendmsgN(int, []uint8, []uint8, Sockaddr, int) (int, error)
++pkg syscall (linux-s390x), func Sendto(int, []uint8, int, Sockaddr) error
++pkg syscall (linux-s390x), func Setdomainname([]uint8) error
++pkg syscall (linux-s390x), func Setfsgid(int) error
++pkg syscall (linux-s390x), func Setfsuid(int) error
++pkg syscall (linux-s390x), func Setgid(int) error
++pkg syscall (linux-s390x), func Setgroups([]int) error
++pkg syscall (linux-s390x), func Sethostname([]uint8) error
++pkg syscall (linux-s390x), func SetLsfPromisc(string, bool) error
++pkg syscall (linux-s390x), func SetNonblock(int, bool) error
++pkg syscall (linux-s390x), func Setpgid(int, int) error
++pkg syscall (linux-s390x), func Setpriority(int, int, int) error
++pkg syscall (linux-s390x), func Setregid(int, int) error
++pkg syscall (linux-s390x), func Setresgid(int, int, int) error
++pkg syscall (linux-s390x), func Setresuid(int, int, int) error
++pkg syscall (linux-s390x), func Setreuid(int, int) error
++pkg syscall (linux-s390x), func Setrlimit(int, *Rlimit) error
++pkg syscall (linux-s390x), func Setsid() (int, error)
++pkg syscall (linux-s390x), func SetsockoptByte(int, int, int, uint8) error
++pkg syscall (linux-s390x), func SetsockoptICMPv6Filter(int, int, int, *ICMPv6Filter) error
++pkg syscall (linux-s390x), func SetsockoptInet4Addr(int, int, int, [4]uint8) error
++pkg syscall (linux-s390x), func SetsockoptInt(int, int, int, int) error
++pkg syscall (linux-s390x), func SetsockoptIPMreq(int, int, int, *IPMreq) error
++pkg syscall (linux-s390x), func SetsockoptIPMreqn(int, int, int, *IPMreqn) error
++pkg syscall (linux-s390x), func SetsockoptIPv6Mreq(int, int, int, *IPv6Mreq) error
++pkg syscall (linux-s390x), func SetsockoptLinger(int, int, int, *Linger) error
++pkg syscall (linux-s390x), func SetsockoptString(int, int, int, string) error
++pkg syscall (linux-s390x), func SetsockoptTimeval(int, int, int, *Timeval) error
++pkg syscall (linux-s390x), func Settimeofday(*Timeval) error
++pkg syscall (linux-s390x), func Setuid(int) error
++pkg syscall (linux-s390x), func Setxattr(string, string, []uint8, int) error
++pkg syscall (linux-s390x), func Shutdown(int, int) error
++pkg syscall (linux-s390x), func SlicePtrFromStrings([]string) ([]*uint8, error)
++pkg syscall (linux-s390x), func Socket(int, int, int) (int, error)
++pkg syscall (linux-s390x), func Socketpair(int, int, int) ([2]int, error)
++pkg syscall (linux-s390x), func Splice(int, *int64, int, *int64, int, int) (int64, error)
++pkg syscall (linux-s390x), func Statfs(string, *Statfs_t) error
++pkg syscall (linux-s390x), func Stat(string, *Stat_t) error
++pkg syscall (linux-s390x), func StringSlicePtr([]string) []*uint8
++pkg syscall (linux-s390x), func Sync()
++pkg syscall (linux-s390x), func SyncFileRange(int, int64, int64, int) error
++pkg syscall (linux-s390x), func Syscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x), func Syscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
++pkg syscall (linux-s390x), func Sysinfo(*Sysinfo_t) error
++pkg syscall (linux-s390x), func Tee(int, int, int, int) (int64, error)
++pkg syscall (linux-s390x), func Tgkill(int, int, Signal) error
++pkg syscall (linux-s390x), func Times(*Tms) (uintptr, error)
++pkg syscall (linux-s390x), func Time(*Time_t) (Time_t, error)
++pkg syscall (linux-s390x), func TimevalToNsec(Timeval) int64
++pkg syscall (linux-s390x), func Truncate(string, int64) error
++pkg syscall (linux-s390x), func Umask(int) int
++pkg syscall (linux-s390x), func Uname(*Utsname) error
++pkg syscall (linux-s390x), func UnixCredentials(*Ucred) []uint8
++pkg syscall (linux-s390x), func UnixRights(...int) []uint8
++pkg syscall (linux-s390x), func Unlinkat(int, string) error
++pkg syscall (linux-s390x), func Unmount(string, int) error
++pkg syscall (linux-s390x), func Unshare(int) error
++pkg syscall (linux-s390x), func Ustat(int, *Ustat_t) error
++pkg syscall (linux-s390x), func Utime(string, *Utimbuf) error
++pkg syscall (linux-s390x), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
++pkg syscall (linux-s390x), func Write(int, []uint8) (int, error)
++pkg syscall (linux-s390x), method (*Cmsghdr) SetLen(int)
++pkg syscall (linux-s390x), method (*Iovec) SetLen(int)
++pkg syscall (linux-s390x), method (*Msghdr) SetControllen(int)
++pkg syscall (linux-s390x), method (*PtraceRegs) PC() uint64
++pkg syscall (linux-s390x), method (*PtraceRegs) SetPC(uint64)
++pkg syscall (linux-s390x), type Cmsghdr struct
++pkg syscall (linux-s390x), type Cmsghdr struct, Len uint64
++pkg syscall (linux-s390x), type Cmsghdr struct, Level int32
++pkg syscall (linux-s390x), type Cmsghdr struct, Type int32
++pkg syscall (linux-s390x), type Cmsghdr struct, X__cmsg_data [0]uint8
++pkg syscall (linux-s390x), type Credential struct
++pkg syscall (linux-s390x), type Credential struct, Gid uint32
++pkg syscall (linux-s390x), type Credential struct, Groups []uint32
++pkg syscall (linux-s390x), type Credential struct, Uid uint32
++pkg syscall (linux-s390x), type Dirent struct
++pkg syscall (linux-s390x), type Dirent struct, Ino uint64
++pkg syscall (linux-s390x), type Dirent struct, Name [256]uint8
++pkg syscall (linux-s390x), type Dirent struct, Off int64
++pkg syscall (linux-s390x), type Dirent struct, Pad_cgo_0 [5]uint8
++pkg syscall (linux-s390x), type Dirent struct, Reclen uint16
++pkg syscall (linux-s390x), type Dirent struct, Type uint8
++pkg syscall (linux-s390x), type EpollEvent struct
++pkg syscall (linux-s390x), type EpollEvent struct, Events uint32
++pkg syscall (linux-s390x), type EpollEvent struct, Fd int32
++pkg syscall (linux-s390x), type EpollEvent struct, Pad int32
++pkg syscall (linux-s390x), type FdSet struct
++pkg syscall (linux-s390x), type FdSet struct, Bits [16]int64
++pkg syscall (linux-s390x), type Flock_t struct
++pkg syscall (linux-s390x), type Flock_t struct, Len int64
++pkg syscall (linux-s390x), type Flock_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type Flock_t struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x), type Flock_t struct, Pid int32
++pkg syscall (linux-s390x), type Flock_t struct, Start int64
++pkg syscall (linux-s390x), type Flock_t struct, Type int16
++pkg syscall (linux-s390x), type Flock_t struct, Whence int16
++pkg syscall (linux-s390x), type Fsid struct
++pkg syscall (linux-s390x), type Fsid struct, X__val [2]int32
++pkg syscall (linux-s390x), type ICMPv6Filter struct
++pkg syscall (linux-s390x), type ICMPv6Filter struct, Data [8]uint32
++pkg syscall (linux-s390x), type IfAddrmsg struct
++pkg syscall (linux-s390x), type IfAddrmsg struct, Family uint8
++pkg syscall (linux-s390x), type IfAddrmsg struct, Flags uint8
++pkg syscall (linux-s390x), type IfAddrmsg struct, Index uint32
++pkg syscall (linux-s390x), type IfAddrmsg struct, Prefixlen uint8
++pkg syscall (linux-s390x), type IfAddrmsg struct, Scope uint8
++pkg syscall (linux-s390x), type IfInfomsg struct
++pkg syscall (linux-s390x), type IfInfomsg struct, Change uint32
++pkg syscall (linux-s390x), type IfInfomsg struct, Family uint8
++pkg syscall (linux-s390x), type IfInfomsg struct, Flags uint32
++pkg syscall (linux-s390x), type IfInfomsg struct, Index int32
++pkg syscall (linux-s390x), type IfInfomsg struct, Type uint16
++pkg syscall (linux-s390x), type IfInfomsg struct, X__ifi_pad uint8
++pkg syscall (linux-s390x), type Inet4Pktinfo struct
++pkg syscall (linux-s390x), type Inet4Pktinfo struct, Addr [4]uint8
++pkg syscall (linux-s390x), type Inet4Pktinfo struct, Ifindex int32
++pkg syscall (linux-s390x), type Inet4Pktinfo struct, Spec_dst [4]uint8
++pkg syscall (linux-s390x), type Inet6Pktinfo struct
++pkg syscall (linux-s390x), type Inet6Pktinfo struct, Addr [16]uint8
++pkg syscall (linux-s390x), type Inet6Pktinfo struct, Ifindex uint32
++pkg syscall (linux-s390x), type InotifyEvent struct
++pkg syscall (linux-s390x), type InotifyEvent struct, Cookie uint32
++pkg syscall (linux-s390x), type InotifyEvent struct, Len uint32
++pkg syscall (linux-s390x), type InotifyEvent struct, Mask uint32
++pkg syscall (linux-s390x), type InotifyEvent struct, Name [0]uint8
++pkg syscall (linux-s390x), type InotifyEvent struct, Wd int32
++pkg syscall (linux-s390x), type Iovec struct
++pkg syscall (linux-s390x), type Iovec struct, Base *uint8
++pkg syscall (linux-s390x), type Iovec struct, Len uint64
++pkg syscall (linux-s390x), type IPMreqn struct
++pkg syscall (linux-s390x), type IPMreqn struct, Address [4]uint8
++pkg syscall (linux-s390x), type IPMreqn struct, Ifindex int32
++pkg syscall (linux-s390x), type IPMreqn struct, Multiaddr [4]uint8
++pkg syscall (linux-s390x), type IPv6MTUInfo struct
++pkg syscall (linux-s390x), type IPv6MTUInfo struct, Addr RawSockaddrInet6
++pkg syscall (linux-s390x), type IPv6MTUInfo struct, Mtu uint32
++pkg syscall (linux-s390x), type Msghdr struct
++pkg syscall (linux-s390x), type Msghdr struct, Controllen uint64
++pkg syscall (linux-s390x), type Msghdr struct, Control *uint8
++pkg syscall (linux-s390x), type Msghdr struct, Flags int32
++pkg syscall (linux-s390x), type Msghdr struct, Iov *Iovec
++pkg syscall (linux-s390x), type Msghdr struct, Iovlen uint64
++pkg syscall (linux-s390x), type Msghdr struct, Namelen uint32
++pkg syscall (linux-s390x), type Msghdr struct, Name *uint8
++pkg syscall (linux-s390x), type Msghdr struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type Msghdr struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x), type NetlinkMessage struct
++pkg syscall (linux-s390x), type NetlinkMessage struct, Data []uint8
++pkg syscall (linux-s390x), type NetlinkMessage struct, Header NlMsghdr
++pkg syscall (linux-s390x), type NetlinkRouteAttr struct
++pkg syscall (linux-s390x), type NetlinkRouteAttr struct, Attr RtAttr
++pkg syscall (linux-s390x), type NetlinkRouteAttr struct, Value []uint8
++pkg syscall (linux-s390x), type NetlinkRouteRequest struct
++pkg syscall (linux-s390x), type NetlinkRouteRequest struct, Data RtGenmsg
++pkg syscall (linux-s390x), type NetlinkRouteRequest struct, Header NlMsghdr
++pkg syscall (linux-s390x), type NlAttr struct
++pkg syscall (linux-s390x), type NlAttr struct, Len uint16
++pkg syscall (linux-s390x), type NlAttr struct, Type uint16
++pkg syscall (linux-s390x), type NlMsgerr struct
++pkg syscall (linux-s390x), type NlMsgerr struct, Error int32
++pkg syscall (linux-s390x), type NlMsgerr struct, Msg NlMsghdr
++pkg syscall (linux-s390x), type NlMsghdr struct
++pkg syscall (linux-s390x), type NlMsghdr struct, Flags uint16
++pkg syscall (linux-s390x), type NlMsghdr struct, Len uint32
++pkg syscall (linux-s390x), type NlMsghdr struct, Pid uint32
++pkg syscall (linux-s390x), type NlMsghdr struct, Seq uint32
++pkg syscall (linux-s390x), type NlMsghdr struct, Type uint16
++pkg syscall (linux-s390x), type PtraceRegsFp struct
++pkg syscall (linux-s390x), type PtraceRegsFp struct, Fpc uint32
++pkg syscall (linux-s390x), type PtraceRegsFp struct, Fprs [16]float64
++pkg syscall (linux-s390x), type PtraceRegsFp struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type PtraceRegsPer struct
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Access_id uint8
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Address uint64
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Control_regs [0]uint64
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Ending_addr uint64
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_0 [24]uint8
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_1 [8]uint8
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_2 [6]uint8
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_3 [7]uint8
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Perc_atmid uint16
++pkg syscall (linux-s390x), type PtraceRegsPer struct, Starting_addr uint64
++pkg syscall (linux-s390x), type PtraceRegsPsw struct
++pkg syscall (linux-s390x), type PtraceRegsPsw struct, Addr uint64
++pkg syscall (linux-s390x), type PtraceRegsPsw struct, Mask uint64
++pkg syscall (linux-s390x), type PtraceRegs struct
++pkg syscall (linux-s390x), type PtraceRegs struct, Acrs [16]uint32
++pkg syscall (linux-s390x), type PtraceRegs struct, Fp_regs PtraceRegsFp
++pkg syscall (linux-s390x), type PtraceRegs struct, Gprs [16]uint64
++pkg syscall (linux-s390x), type PtraceRegs struct, Ieee_instruction_pointer uint64
++pkg syscall (linux-s390x), type PtraceRegs struct, Orig_gpr2 uint64
++pkg syscall (linux-s390x), type PtraceRegs struct, Per_info PtraceRegsPer
++pkg syscall (linux-s390x), type PtraceRegs struct, Psw PtraceRegsPsw
++pkg syscall (linux-s390x), type RawSockaddrAny struct, Pad [96]uint8
++pkg syscall (linux-s390x), type RawSockaddrInet4 struct, Family uint16
++pkg syscall (linux-s390x), type RawSockaddrInet4 struct, Zero [8]uint8
++pkg syscall (linux-s390x), type RawSockaddrInet6 struct, Family uint16
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Addr [8]uint8
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Family uint16
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Halen uint8
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Hatype uint16
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Ifindex int32
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Pkttype uint8
++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Protocol uint16
++pkg syscall (linux-s390x), type RawSockaddrNetlink struct
++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Family uint16
++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Groups uint32
++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Pad uint16
++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Pid uint32
++pkg syscall (linux-s390x), type RawSockaddr struct, Data [14]uint8
++pkg syscall (linux-s390x), type RawSockaddr struct, Family uint16
++pkg syscall (linux-s390x), type RawSockaddrUnix struct
++pkg syscall (linux-s390x), type RawSockaddrUnix struct, Family uint16
++pkg syscall (linux-s390x), type RawSockaddrUnix struct, Path [108]int8
++pkg syscall (linux-s390x), type Rlimit struct
++pkg syscall (linux-s390x), type Rlimit struct, Cur uint64
++pkg syscall (linux-s390x), type Rlimit struct, Max uint64
++pkg syscall (linux-s390x), type RtAttr struct
++pkg syscall (linux-s390x), type RtAttr struct, Len uint16
++pkg syscall (linux-s390x), type RtAttr struct, Type uint16
++pkg syscall (linux-s390x), type RtGenmsg struct
++pkg syscall (linux-s390x), type RtGenmsg struct, Family uint8
++pkg syscall (linux-s390x), type RtMsg struct
++pkg syscall (linux-s390x), type RtMsg struct, Dst_len uint8
++pkg syscall (linux-s390x), type RtMsg struct, Family uint8
++pkg syscall (linux-s390x), type RtMsg struct, Flags uint32
++pkg syscall (linux-s390x), type RtMsg struct, Protocol uint8
++pkg syscall (linux-s390x), type RtMsg struct, Scope uint8
++pkg syscall (linux-s390x), type RtMsg struct, Src_len uint8
++pkg syscall (linux-s390x), type RtMsg struct, Table uint8
++pkg syscall (linux-s390x), type RtMsg struct, Tos uint8
++pkg syscall (linux-s390x), type RtMsg struct, Type uint8
++pkg syscall (linux-s390x), type RtNexthop struct
++pkg syscall (linux-s390x), type RtNexthop struct, Flags uint8
++pkg syscall (linux-s390x), type RtNexthop struct, Hops uint8
++pkg syscall (linux-s390x), type RtNexthop struct, Ifindex int32
++pkg syscall (linux-s390x), type RtNexthop struct, Len uint16
++pkg syscall (linux-s390x), type Rusage struct, Idrss int64
++pkg syscall (linux-s390x), type Rusage struct, Inblock int64
++pkg syscall (linux-s390x), type Rusage struct, Isrss int64
++pkg syscall (linux-s390x), type Rusage struct, Ixrss int64
++pkg syscall (linux-s390x), type Rusage struct, Majflt int64
++pkg syscall (linux-s390x), type Rusage struct, Maxrss int64
++pkg syscall (linux-s390x), type Rusage struct, Minflt int64
++pkg syscall (linux-s390x), type Rusage struct, Msgrcv int64
++pkg syscall (linux-s390x), type Rusage struct, Msgsnd int64
++pkg syscall (linux-s390x), type Rusage struct, Nivcsw int64
++pkg syscall (linux-s390x), type Rusage struct, Nsignals int64
++pkg syscall (linux-s390x), type Rusage struct, Nswap int64
++pkg syscall (linux-s390x), type Rusage struct, Nvcsw int64
++pkg syscall (linux-s390x), type Rusage struct, Oublock int64
++pkg syscall (linux-s390x), type Rusage struct, Stime Timeval
++pkg syscall (linux-s390x), type Rusage struct, Utime Timeval
++pkg syscall (linux-s390x), type SockaddrLinklayer struct
++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Addr [8]uint8
++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Halen uint8
++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Hatype uint16
++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Ifindex int
++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Pkttype uint8
++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Protocol uint16
++pkg syscall (linux-s390x), type SockaddrNetlink struct
++pkg syscall (linux-s390x), type SockaddrNetlink struct, Family uint16
++pkg syscall (linux-s390x), type SockaddrNetlink struct, Groups uint32
++pkg syscall (linux-s390x), type SockaddrNetlink struct, Pad uint16
++pkg syscall (linux-s390x), type SockaddrNetlink struct, Pid uint32
++pkg syscall (linux-s390x), type SocketControlMessage struct
++pkg syscall (linux-s390x), type SocketControlMessage struct, Data []uint8
++pkg syscall (linux-s390x), type SocketControlMessage struct, Header Cmsghdr
++pkg syscall (linux-s390x), type SockFilter struct
++pkg syscall (linux-s390x), type SockFilter struct, Code uint16
++pkg syscall (linux-s390x), type SockFilter struct, Jf uint8
++pkg syscall (linux-s390x), type SockFilter struct, Jt uint8
++pkg syscall (linux-s390x), type SockFilter struct, K uint32
++pkg syscall (linux-s390x), type SockFprog struct
++pkg syscall (linux-s390x), type SockFprog struct, Filter *SockFilter
++pkg syscall (linux-s390x), type SockFprog struct, Len uint16
++pkg syscall (linux-s390x), type SockFprog struct, Pad_cgo_0 [6]uint8
++pkg syscall (linux-s390x), type Statfs_t struct
++pkg syscall (linux-s390x), type Statfs_t struct, Bavail uint64
++pkg syscall (linux-s390x), type Statfs_t struct, Bfree uint64
++pkg syscall (linux-s390x), type Statfs_t struct, Blocks uint64
++pkg syscall (linux-s390x), type Statfs_t struct, Bsize uint32
++pkg syscall (linux-s390x), type Statfs_t struct, Ffree uint64
++pkg syscall (linux-s390x), type Statfs_t struct, Files uint64
++pkg syscall (linux-s390x), type Statfs_t struct, Flags uint32
++pkg syscall (linux-s390x), type Statfs_t struct, Frsize uint32
++pkg syscall (linux-s390x), type Statfs_t struct, Fsid Fsid
++pkg syscall (linux-s390x), type Statfs_t struct, Namelen uint32
++pkg syscall (linux-s390x), type Statfs_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type Statfs_t struct, Spare [4]uint32
++pkg syscall (linux-s390x), type Statfs_t struct, Type uint32
++pkg syscall (linux-s390x), type Stat_t struct
++pkg syscall (linux-s390x), type Stat_t struct, Atim Timespec
++pkg syscall (linux-s390x), type Stat_t struct, Blksize int64
++pkg syscall (linux-s390x), type Stat_t struct, Blocks int64
++pkg syscall (linux-s390x), type Stat_t struct, Ctim Timespec
++pkg syscall (linux-s390x), type Stat_t struct, Dev uint64
++pkg syscall (linux-s390x), type Stat_t struct, Gid uint32
++pkg syscall (linux-s390x), type Stat_t struct, Ino uint64
++pkg syscall (linux-s390x), type Stat_t struct, Mode uint32
++pkg syscall (linux-s390x), type Stat_t struct, Mtim Timespec
++pkg syscall (linux-s390x), type Stat_t struct, Nlink uint64
++pkg syscall (linux-s390x), type Stat_t struct, Pad0 int32
++pkg syscall (linux-s390x), type Stat_t struct, Rdev uint64
++pkg syscall (linux-s390x), type Stat_t struct, Size int64
++pkg syscall (linux-s390x), type Stat_t struct, Uid uint32
++pkg syscall (linux-s390x), type Stat_t struct, X__unused [3]int64
++pkg syscall (linux-s390x), type Sysinfo_t struct
++pkg syscall (linux-s390x), type Sysinfo_t struct, Bufferram uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Freehigh uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Freeram uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Freeswap uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Loads [3]uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type Sysinfo_t struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x), type Sysinfo_t struct, Pad uint16
++pkg syscall (linux-s390x), type Sysinfo_t struct, Procs uint16
++pkg syscall (linux-s390x), type Sysinfo_t struct, Sharedram uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Totalhigh uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Totalram uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Totalswap uint64
++pkg syscall (linux-s390x), type Sysinfo_t struct, Unit uint32
++pkg syscall (linux-s390x), type Sysinfo_t struct, Uptime int64
++pkg syscall (linux-s390x), type Sysinfo_t struct, X_f [0]uint8
++pkg syscall (linux-s390x), type SysProcAttr struct, Chroot string
++pkg syscall (linux-s390x), type SysProcAttr struct, Cloneflags uintptr
++pkg syscall (linux-s390x), type SysProcAttr struct, Credential *Credential
++pkg syscall (linux-s390x), type SysProcAttr struct, Ctty int
++pkg syscall (linux-s390x), type SysProcAttr struct, Foreground bool
++pkg syscall (linux-s390x), type SysProcAttr struct, GidMappingsEnableSetgroups bool
++pkg syscall (linux-s390x), type SysProcAttr struct, GidMappings []SysProcIDMap
++pkg syscall (linux-s390x), type SysProcAttr struct, Noctty bool
++pkg syscall (linux-s390x), type SysProcAttr struct, Pdeathsig Signal
++pkg syscall (linux-s390x), type SysProcAttr struct, Pgid int
++pkg syscall (linux-s390x), type SysProcAttr struct, Ptrace bool
++pkg syscall (linux-s390x), type SysProcAttr struct, Setctty bool
++pkg syscall (linux-s390x), type SysProcAttr struct, Setpgid bool
++pkg syscall (linux-s390x), type SysProcAttr struct, Setsid bool
++pkg syscall (linux-s390x), type SysProcAttr struct, UidMappings []SysProcIDMap
++pkg syscall (linux-s390x), type SysProcIDMap struct
++pkg syscall (linux-s390x), type SysProcIDMap struct, ContainerID int
++pkg syscall (linux-s390x), type SysProcIDMap struct, HostID int
++pkg syscall (linux-s390x), type SysProcIDMap struct, Size int
++pkg syscall (linux-s390x), type TCPInfo struct
++pkg syscall (linux-s390x), type TCPInfo struct, Advmss uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Ato uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Backoff uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Ca_state uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Fackets uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Last_ack_recv uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Last_ack_sent uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Last_data_recv uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Last_data_sent uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Lost uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Options uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Pad_cgo_0 [2]uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Pmtu uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Probes uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_mss uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_rtt uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_space uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_ssthresh uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Reordering uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Retransmits uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Retrans uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Rto uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Rtt uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Rttvar uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Sacked uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Snd_cwnd uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Snd_mss uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Snd_ssthresh uint32
++pkg syscall (linux-s390x), type TCPInfo struct, State uint8
++pkg syscall (linux-s390x), type TCPInfo struct, Total_retrans uint32
++pkg syscall (linux-s390x), type TCPInfo struct, Unacked uint32
++pkg syscall (linux-s390x), type Termios struct
++pkg syscall (linux-s390x), type Termios struct, Cc [32]uint8
++pkg syscall (linux-s390x), type Termios struct, Cflag uint32
++pkg syscall (linux-s390x), type Termios struct, Iflag uint32
++pkg syscall (linux-s390x), type Termios struct, Ispeed uint32
++pkg syscall (linux-s390x), type Termios struct, Lflag uint32
++pkg syscall (linux-s390x), type Termios struct, Line uint8
++pkg syscall (linux-s390x), type Termios struct, Oflag uint32
++pkg syscall (linux-s390x), type Termios struct, Ospeed uint32
++pkg syscall (linux-s390x), type Termios struct, Pad_cgo_0 [3]uint8
++pkg syscall (linux-s390x), type Timespec struct, Nsec int64
++pkg syscall (linux-s390x), type Timespec struct, Sec int64
++pkg syscall (linux-s390x), type Time_t int64
++pkg syscall (linux-s390x), type Timeval struct, Sec int64
++pkg syscall (linux-s390x), type Timeval struct, Usec int64
++pkg syscall (linux-s390x), type Timex struct
++pkg syscall (linux-s390x), type Timex struct, Calcnt int64
++pkg syscall (linux-s390x), type Timex struct, Constant int64
++pkg syscall (linux-s390x), type Timex struct, Errcnt int64
++pkg syscall (linux-s390x), type Timex struct, Esterror int64
++pkg syscall (linux-s390x), type Timex struct, Freq int64
++pkg syscall (linux-s390x), type Timex struct, Jitcnt int64
++pkg syscall (linux-s390x), type Timex struct, Jitter int64
++pkg syscall (linux-s390x), type Timex struct, Maxerror int64
++pkg syscall (linux-s390x), type Timex struct, Modes uint32
++pkg syscall (linux-s390x), type Timex struct, Offset int64
++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_2 [4]uint8
++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_3 [44]uint8
++pkg syscall (linux-s390x), type Timex struct, Ppsfreq int64
++pkg syscall (linux-s390x), type Timex struct, Precision int64
++pkg syscall (linux-s390x), type Timex struct, Shift int32
++pkg syscall (linux-s390x), type Timex struct, Stabil int64
++pkg syscall (linux-s390x), type Timex struct, Status int32
++pkg syscall (linux-s390x), type Timex struct, Stbcnt int64
++pkg syscall (linux-s390x), type Timex struct, Tai int32
++pkg syscall (linux-s390x), type Timex struct, Tick int64
++pkg syscall (linux-s390x), type Timex struct, Time Timeval
++pkg syscall (linux-s390x), type Timex struct, Tolerance int64
++pkg syscall (linux-s390x), type Tms struct
++pkg syscall (linux-s390x), type Tms struct, Cstime int64
++pkg syscall (linux-s390x), type Tms struct, Cutime int64
++pkg syscall (linux-s390x), type Tms struct, Stime int64
++pkg syscall (linux-s390x), type Tms struct, Utime int64
++pkg syscall (linux-s390x), type Ucred struct
++pkg syscall (linux-s390x), type Ucred struct, Gid uint32
++pkg syscall (linux-s390x), type Ucred struct, Pid int32
++pkg syscall (linux-s390x), type Ucred struct, Uid uint32
++pkg syscall (linux-s390x), type Ustat_t struct
++pkg syscall (linux-s390x), type Ustat_t struct, Fname [6]uint8
++pkg syscall (linux-s390x), type Ustat_t struct, Fpack [6]uint8
++pkg syscall (linux-s390x), type Ustat_t struct, Pad_cgo_0 [4]uint8
++pkg syscall (linux-s390x), type Ustat_t struct, Pad_cgo_1 [4]uint8
++pkg syscall (linux-s390x), type Ustat_t struct, Tfree int32
++pkg syscall (linux-s390x), type Ustat_t struct, Tinode uint64
++pkg syscall (linux-s390x), type Utimbuf struct
++pkg syscall (linux-s390x), type Utimbuf struct, Actime int64
++pkg syscall (linux-s390x), type Utimbuf struct, Modtime int64
++pkg syscall (linux-s390x), type Utsname struct
++pkg syscall (linux-s390x), type Utsname struct, Domainname [65]uint8
++pkg syscall (linux-s390x), type Utsname struct, Machine [65]uint8
++pkg syscall (linux-s390x), type Utsname struct, Nodename [65]uint8
++pkg syscall (linux-s390x), type Utsname struct, Release [65]uint8
++pkg syscall (linux-s390x), type Utsname struct, Sysname [65]uint8
++pkg syscall (linux-s390x), type Utsname struct, Version [65]uint8
++pkg syscall (linux-s390x), type WaitStatus uint32
++pkg syscall (linux-s390x), var Stderr int
++pkg syscall (linux-s390x), var Stdin int
++pkg syscall (linux-s390x), var Stdout int
+diff --git a/misc/cgo/test/issue9400/asm_s390x.s b/misc/cgo/test/issue9400/asm_s390x.s
+new file mode 100644
+index 0000000..d47e9b1
+--- /dev/null
++++ b/misc/cgo/test/issue9400/asm_s390x.s
+@@ -0,0 +1,32 @@
++// Copyright 2014 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.
++
++// +build s390x
++// +build !gccgo
++
++#include "textflag.h"
++
++TEXT ·RewindAndSetgid(SB),NOSPLIT,$0-0
++ // Rewind stack pointer so anything that happens on the stack
++ // will clobber the test pattern created by the caller
++ // TODO(mundaym): Code generator should support ADD $(1024 * 8), R15
++ MOVD $(1024 * 8), R4
++ ADD R4, R15
++
++ // Ask signaller to setgid
++ // TODO(mundaym): Code generator should support MOVW $1, ·Baton(SB)
++ MOVD $·Baton(SB), R5
++ MOVW $1, R6
++ MOVW R6, 0(R5)
++
++ // Wait for setgid completion
++loop:
++ SYNC
++ MOVW ·Baton(SB), R3
++ CMP R3, $0
++ BNE loop
++
++ // Restore stack
++ SUB R4, R15
++ RET
+diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go
+index 8b20d12..373e71e 100644
+--- a/src/cmd/api/goapi.go
++++ b/src/cmd/api/goapi.go
+@@ -46,6 +46,8 @@ var contexts = []*build.Context{
+ {GOOS: "linux", GOARCH: "amd64"},
+ {GOOS: "linux", GOARCH: "arm", CgoEnabled: true},
+ {GOOS: "linux", GOARCH: "arm"},
++ {GOOS: "linux", GOARCH: "s390x", CgoEnabled: true},
++ {GOOS: "linux", GOARCH: "s390x"},
+ {GOOS: "darwin", GOARCH: "386", CgoEnabled: true},
+ {GOOS: "darwin", GOARCH: "386"},
+ {GOOS: "darwin", GOARCH: "amd64", CgoEnabled: true},
+diff --git a/src/cmd/asm/internal/arch/arch.go b/src/cmd/asm/internal/arch/arch.go
+index b6a51a8..902355f 100644
+--- a/src/cmd/asm/internal/arch/arch.go
++++ b/src/cmd/asm/internal/arch/arch.go
+@@ -11,6 +11,7 @@ import (
+ "cmd/internal/obj/mips"
+ "cmd/internal/obj/ppc64"
+ "cmd/internal/obj/x86"
++ "cmd/internal/obj/s390x"
+ "fmt"
+ "strings"
+ )
+@@ -82,6 +83,10 @@ func Set(GOARCH string) *Arch {
+ a := archPPC64()
+ a.LinkArch = &ppc64.Linkppc64le
+ return a
++ case "s390x":
++ a := archS390x()
++ a.LinkArch = &s390x.Links390x
++ return a
+ }
+ return nil
+ }
+@@ -426,3 +431,53 @@ func archMips64() *Arch {
+ IsJump: jumpMIPS64,
+ }
+ }
++
++func archS390x() *Arch {
++ register := make(map[string]int16)
++ // Create maps for easy lookup of instruction names etc.
++ // Note that there is no list of names as there is for x86.
++ for i := s390x.REG_R0; i <= s390x.REG_R15; i++ {
++ register[obj.Rconv(i)] = int16(i)
++ }
++ for i := s390x.REG_F0; i <= s390x.REG_F15; i++ {
++ register[obj.Rconv(i)] = int16(i)
++ }
++ for i := s390x.REG_AR0; i <= s390x.REG_AR15; i++ {
++ register[obj.Rconv(i)] = int16(i)
++ }
++ register["LR"] = s390x.REG_LR
++ // Pseudo-registers.
++ register["SB"] = RSB
++ register["FP"] = RFP
++ register["PC"] = RPC
++ // Avoid unintentionally clobbering g using R13.
++ delete(register, "R13")
++ register["g"] = s390x.REG_R13
++ registerPrefix := map[string]bool{
++ "AR": true,
++ "F": true,
++ "R": true,
++ }
++
++ instructions := make(map[string]int)
++ for i, s := range obj.Anames {
++ instructions[s] = i
++ }
++ for i, s := range s390x.Anames {
++ if i >= obj.A_ARCHSPECIFIC {
++ instructions[s] = i + obj.ABaseS390X
++ }
++ }
++ // Annoying aliases.
++ instructions["BR"] = s390x.ABR
++ instructions["BL"] = s390x.ABL
++
++ return &Arch{
++ LinkArch: &s390x.Links390x,
++ Instructions: instructions,
++ Register: register,
++ RegisterPrefix: registerPrefix,
++ RegisterNumber: s390xRegisterNumber,
++ IsJump: jumpS390x,
++ }
++}
+diff --git a/src/cmd/asm/internal/arch/s390x.go b/src/cmd/asm/internal/arch/s390x.go
+new file mode 100644
+index 0000000..b17b0af
+--- /dev/null
++++ b/src/cmd/asm/internal/arch/s390x.go
+@@ -0,0 +1,116 @@
++// Copyright 2015 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.
++
++// This file encapsulates some of the odd characteristics of the
++// s390x instruction set, to minimize its interaction
++// with the core of the assembler.
++
++package arch
++
++import "cmd/internal/obj/s390x"
++
++func jumpS390x(word string) bool {
++ switch word {
++ case "BC",
++ "BCL",
++ "BEQ",
++ "BGE",
++ "BGT",
++ "BL",
++ "BLE",
++ "BLT",
++ "BNE",
++ "BR",
++ "BVC",
++ "BVS",
++ "CMPBEQ",
++ "CMPBGE",
++ "CMPBGT",
++ "CMPBLE",
++ "CMPBLT",
++ "CMPBNE",
++ "CMPUBEQ",
++ "CMPUBGE",
++ "CMPUBGT",
++ "CMPUBLE",
++ "CMPUBLT",
++ "CMPUBNE",
++ "CALL",
++ "JMP":
++ return true
++ }
++ return false
++}
++
++// Iss390xRLD reports whether the op (as defined by an s390x.A* constant) is
++// one of the RLD-like instructions that require special handling.
++// The FMADD-like instructions behave similarly.
++func IsS390xRLD(op int) bool {
++ switch op {
++ case s390x.ARLDC, s390x.ARLDCR, s390x.ARLWMI, s390x.ARLWNM:
++ return true
++ case s390x.AFMADD,
++ s390x.AFMADDS,
++ s390x.AFMSUB,
++ s390x.AFMSUBS,
++ s390x.AFNMADD,
++ s390x.AFNMADDS,
++ s390x.AFNMSUB,
++ s390x.AFNMSUBS:
++ return true
++ }
++ return false
++}
++
++// Iss390xCMP reports whether the op (as defined by an s390x.A* constant) is
++// one of the CMP instructions that require special handling.
++func IsS390xCMP(op int) bool {
++ switch op {
++ case s390x.ACMP, s390x.ACMPU, s390x.ACMPW, s390x.ACMPWU:
++ return true
++ }
++ return false
++}
++
++// Iss390xNEG reports whether the op (as defined by an s390x.A* constant) is
++// one of the NEG-like instructions that require special handling.
++func IsS390xNEG(op int) bool {
++ switch op {
++ case s390x.AADDME,
++ s390x.AADDZE,
++ s390x.ANEG,
++ s390x.ASUBME,
++ s390x.ASUBZE:
++ return true
++ }
++ return false
++}
++
++// IsS390xStorageAndStorage reports whether the op (as defined by an s390x.A* constant) refers
++// to an storage-and-storage format instruction such as mvc, clc, xc, oc or nc.
++func IsS390xStorageAndStorage(op int) bool {
++ switch op {
++ case s390x.AMVC, s390x.ACLC, s390x.AXC, s390x.AOC, s390x.ANC:
++ return true
++ }
++ return false
++}
++
++func s390xRegisterNumber(name string, n int16) (int16, bool) {
++ switch name {
++ case "AR":
++ if 0 <= n && n <= 15 {
++ return s390x.REG_AR0 + n, true
++ }
++ case "F":
++ if 0 <= n && n <= 15 {
++ return s390x.REG_F0 + n, true
++ }
++ case "R":
++ if 0 <= n && n <= 15 {
++ return s390x.REG_R0 + n, true
++ }
++ }
++ return 0, false
++}
+diff --git a/src/cmd/asm/internal/asm/asm.go b/src/cmd/asm/internal/asm/asm.go
+index 9da3664..0aa2382 100644
+--- a/src/cmd/asm/internal/asm/asm.go
++++ b/src/cmd/asm/internal/asm/asm.go
+@@ -381,6 +381,20 @@ func (p *Parser) asmJump(op int, cond string, a []obj.Addr) {
+ prog.Reg = p.getRegister(prog, op, &a[1])
+ break
+ }
++ if p.arch.Thechar == 'z' {
++ // 3-operand jumps.
++ target = &a[2]
++ prog.From = a[0]
++ if a[1].Reg != 0 {
++ // compare two regs; jump.
++ prog.Reg = p.getRegister(prog, op, &a[1])
++ } else {
++ // compare reg with imm; jump.
++ prog.From3 = newAddr(a[1])
++ }
++ break
++ }
++
+ fallthrough
+ default:
+ p.errorf("wrong number of arguments to %s instruction", obj.Aconv(op))
+@@ -593,6 +607,15 @@ func (p *Parser) asmInstruction(op int, cond string, a []obj.Addr) {
+ p.errorf("invalid addressing modes for %s instruction", obj.Aconv(op))
+ return
+ }
++ case 'z':
++ if arch.IsS390xStorageAndStorage(op) {
++ prog.From = a[1]
++ prog.From3 = newAddr(a[0])
++ } else {
++ prog.Reg = p.getRegister(prog, op, &a[1])
++ prog.From = a[0]
++ }
++ prog.To = a[2]
+ default:
+ p.errorf("TODO: implement three-operand instructions for this architecture")
+ return
+diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
+index 0906ceb..38e672a 100644
+--- a/src/cmd/cgo/main.go
++++ b/src/cmd/cgo/main.go
+@@ -142,7 +142,6 @@ var ptrSizeMap = map[string]int64{
+ "mips64le": 8,
+ "ppc64": 8,
+ "ppc64le": 8,
+- "s390": 4,
+ "s390x": 8,
+ }
+
+@@ -155,8 +154,7 @@ var intSizeMap = map[string]int64{
+ "mips64le": 8,
+ "ppc64": 8,
+ "ppc64le": 8,
+- "s390": 4,
+- "s390x": 4,
++ "s390x": 8,
+ }
+
+ var cPrefix string
+diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go
+index ca0ec0a..912c6c6 100644
+--- a/src/cmd/cgo/out.go
++++ b/src/cmd/cgo/out.go
+@@ -62,6 +62,7 @@ func (p *Package) writeDefs() {
+ fmt.Fprintf(fm, "void _cgo_allocate(void *a, int c) { }\n")
+ fmt.Fprintf(fm, "void _cgo_panic(void *a, int c) { }\n")
+ fmt.Fprintf(fm, "void _cgo_reginit(void) { }\n")
++ fmt.Fprintf(fm, "void _cgo_load_g(void) { }\n")
+
+ // Write second Go output: definitions of _C_xxx.
+ // In a separate file so that the import of "unsafe" does not
+diff --git a/src/cmd/compile/internal/gc/cgen.go b/src/cmd/compile/internal/gc/cgen.go
+index 6456240..8855bac 100644
+--- a/src/cmd/compile/internal/gc/cgen.go
++++ b/src/cmd/compile/internal/gc/cgen.go
+@@ -252,7 +252,7 @@ func cgen_wb(n, res *Node, wb bool) {
+ return
+ }
+
+- if Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
++ if Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' || Ctxt.Arch.Thechar == 'z' {
+ // if both are addressable, move
+ if n.Addable {
+ if n.Op == OREGISTER || res.Op == OREGISTER {
+@@ -752,14 +752,14 @@ abop: // asymmetric binary
+ Regalloc(&n1, nl.Type, res)
+ Cgen(nl, &n1)
+
+- if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' { // TODO(rsc): Check opcode for arm
++ if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' { // TODO(rsc): Check opcode for arm
+ n2 = *nr
+ } else {
+ Regalloc(&n2, nr.Type, nil)
+ Cgen(nr, &n2)
+ }
+ } else {
+- if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' { // TODO(rsc): Check opcode for arm
++ if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' { // TODO(rsc): Check opcode for arm
+ n2 = *nr
+ } else {
+ Regalloc(&n2, nr.Type, res)
+@@ -1832,7 +1832,7 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) {
+ // but they don't support direct generation of a bool value yet.
+ // We can fix that as we go.
+ switch Ctxt.Arch.Thechar {
+- case '0', '5', '7', '9':
++ case '0', '5', '7', '9', 'z':
+ Fatalf("genval 0g, 5g, 7g, 9g ONAMES not fully implemented")
+ }
+ Cgen(n, res)
+@@ -1842,7 +1842,7 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) {
+ return
+ }
+
+- if n.Addable && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' {
++ if n.Addable && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' {
+ // no need for a temporary
+ bgenNonZero(n, nil, wantTrue, likely, to)
+ return
+@@ -2026,7 +2026,7 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) {
+ Cgen(nl, &n1)
+ nl = &n1
+
+- if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '9' {
++ if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' {
+ Thearch.Gins(Thearch.Optoas(OCMP, nr.Type), nl, nr)
+ bins(nr.Type, res, op, likely, to)
+ return
+@@ -2640,7 +2640,7 @@ func cgen_div(op Op, nl *Node, nr *Node, res *Node) {
+ // in peep and optoas in order to enable this.
+ // TODO(rsc): ppc64 needs to support the relevant instructions
+ // in peep and optoas in order to enable this.
+- if nr.Op != OLITERAL || Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
++ if nr.Op != OLITERAL || Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' || Ctxt.Arch.Thechar == 'z' {
+ goto longdiv
+ }
+ w = int(nl.Type.Width * 8)
+diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go
+index 3146cae..8c85c8f 100644
+--- a/src/cmd/compile/internal/gc/go.go
++++ b/src/cmd/compile/internal/gc/go.go
+@@ -493,6 +493,10 @@ var debugstr string
+ var Debug_checknil int
+ var Debug_typeassert int
+
++var Debugmergeopmv int = -1
++
++var Debugcnb int = -1
++
+ var importmyname *Sym // my name for package
+
+ var localpkg *Pkg // package being compiled
+diff --git a/src/cmd/compile/internal/gc/gsubr.go b/src/cmd/compile/internal/gc/gsubr.go
+index 30bf736..20d14cf 100644
+--- a/src/cmd/compile/internal/gc/gsubr.go
++++ b/src/cmd/compile/internal/gc/gsubr.go
+@@ -57,7 +57,7 @@ func Ismem(n *Node) bool {
+ return true
+
+ case OADDR:
+- return Thearch.Thechar == '6' || Thearch.Thechar == '9' // because 6g uses PC-relative addressing; TODO(rsc): not sure why 9g too
++ return Thearch.Thechar == '6' || Thearch.Thechar == '9' || Ctxt.Arch.Thechar == 'z' // because 6g uses PC-relative addressing; TODO(rsc): not sure why 9g too
+ }
+
+ return false
+@@ -83,7 +83,7 @@ func Gbranch(as int, t *Type, likely int) *obj.Prog {
+ p := Prog(as)
+ p.To.Type = obj.TYPE_BRANCH
+ p.To.Val = nil
+- if as != obj.AJMP && likely != 0 && Thearch.Thechar != '9' && Thearch.Thechar != '7' && Thearch.Thechar != '0' {
++ if as != obj.AJMP && likely != 0 && Thearch.Thechar != '9' && Thearch.Thechar != '7' && Thearch.Thechar != '0' && Ctxt.Arch.Thechar != 'z' {
+ p.From.Type = obj.TYPE_CONST
+ if likely > 0 {
+ p.From.Offset = 1
+@@ -449,7 +449,7 @@ func Naddr(a *obj.Addr, n *Node) {
+ case OADDR:
+ Naddr(a, n.Left)
+ a.Etype = uint8(Tptr)
+- if Thearch.Thechar != '0' && Thearch.Thechar != '5' && Thearch.Thechar != '7' && Thearch.Thechar != '9' { // TODO(rsc): Do this even for arm, ppc64.
++ if Thearch.Thechar != '0' && Thearch.Thechar != '5' && Thearch.Thechar != '7' && Thearch.Thechar != '9' && Thearch.Thechar != 'z' { // TODO(rsc): Do this even for arm, ppc64.
+ a.Width = int64(Widthptr)
+ }
+ if a.Type != obj.TYPE_MEM {
+diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go
+index fb30d58..83ba689 100644
+--- a/src/cmd/compile/internal/gc/lex.go
++++ b/src/cmd/compile/internal/gc/lex.go
+@@ -178,12 +178,14 @@ func Main() {
+ obj.Flagcount("N", "disable optimizations", &Debug['N'])
+ obj.Flagcount("P", "debug peephole optimizer", &Debug['P'])
+ obj.Flagcount("R", "debug register optimizer", &Debug['R'])
++ obj.Flagcount("pipeline", "disable load pipeline", &Debug['p'])
+ obj.Flagcount("S", "print assembly listing", &Debug['S'])
+ obj.Flagfn0("V", "print compiler version", doversion)
+ obj.Flagcount("W", "debug parse tree after type checking", &Debug['W'])
+ obj.Flagstr("asmhdr", "write assembly header to `file`", &asmhdr)
+ obj.Flagstr("buildid", "record `id` as the build id in the export metadata", &buildid)
+ obj.Flagcount("complete", "compiling complete package (no C or assembly)", &pure_go)
++ obj.Flagcount("cnb", "debug compare-and-branch optimization, step n", &Debugcnb)
+ obj.Flagstr("d", "print debug information about items in `list`", &debugstr)
+ obj.Flagcount("e", "no limit on number of errors reported", &Debug['e'])
+ obj.Flagcount("f", "debug stack frames", &Debug['f'])
+@@ -198,6 +200,7 @@ func Main() {
+ obj.Flagcount("m", "print optimization decisions", &Debug['m'])
+ obj.Flagcount("msan", "build code compatible with C/C++ memory sanitizer", &flag_msan)
+ obj.Flagcount("newexport", "use new export format", &newexport) // TODO(gri) remove eventually (issue 13241)
++ obj.Flagcount("mergeopmv", "debug merge operation-move optimization, step n", &Debugmergeopmv)
+ obj.Flagcount("nolocalimports", "reject local (relative) imports", &nolocalimports)
+ obj.Flagstr("o", "write output to `file`", &outfile)
+ obj.Flagstr("p", "set expected package import `path`", &myimportpath)
+diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go
+index ffc0ab9..de153b4 100644
+--- a/src/cmd/compile/internal/gc/pgen.go
++++ b/src/cmd/compile/internal/gc/pgen.go
+@@ -293,7 +293,7 @@ func allocauto(ptxt *obj.Prog) {
+ if haspointers(n.Type) {
+ stkptrsize = Stksize
+ }
+- if Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9' {
++ if Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9' || Thearch.Thechar == 'z' {
+ Stksize = Rnd(Stksize, int64(Widthptr))
+ }
+ if Stksize >= 1<<31 {
+@@ -330,7 +330,7 @@ func Cgen_checknil(n *Node) {
+ Fatalf("bad checknil")
+ }
+
+- if ((Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9') && n.Op != OREGISTER) || !n.Addable || n.Op == OLITERAL {
++ if ((Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9' || Thearch.Thechar == 'z') && n.Op != OREGISTER) || !n.Addable || n.Op == OLITERAL {
+ var reg Node
+ Regalloc(®, Types[Tptr], n)
+ Cgen(n, ®)
+diff --git a/src/cmd/compile/internal/gc/reg.go b/src/cmd/compile/internal/gc/reg.go
+index 14dc03b..ae54c26 100644
+--- a/src/cmd/compile/internal/gc/reg.go
++++ b/src/cmd/compile/internal/gc/reg.go
+@@ -249,7 +249,7 @@ func addmove(r *Flow, bn int, rn int, f int) {
+ p1.As = int16(Thearch.Optoas(OAS, Types[uint8(v.etype)]))
+
+ // TODO(rsc): Remove special case here.
+- if (Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9') && v.etype == TBOOL {
++ if (Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9' || Thearch.Thechar == 'z') && v.etype == TBOOL {
+ p1.As = int16(Thearch.Optoas(OAS, Types[TUINT8]))
+ }
+ p1.From.Type = obj.TYPE_REG
+@@ -302,7 +302,7 @@ func mkvar(f *Flow, a *obj.Addr) Bits {
+ // TODO(rsc): Remove special case here.
+ case obj.TYPE_ADDR:
+ var bit Bits
+- if Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9' {
++ if Thearch.Thechar == '0' || Thearch.Thechar == '5' || Thearch.Thechar == '7' || Thearch.Thechar == '9' || Thearch.Thechar == 'z' {
+ goto memcase
+ }
+ a.Type = obj.TYPE_MEM
+@@ -1114,7 +1114,7 @@ func regopt(firstp *obj.Prog) {
+
+ // Currently we never generate three register forms.
+ // If we do, this will need to change.
+- if p.From3Type() != obj.TYPE_NONE {
++ if p.From3Type() != obj.TYPE_NONE && p.From3Type() != obj.TYPE_CONST {
+ Fatalf("regopt not implemented for from3")
+ }
+
+diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go
+index e008317..0335138 100644
+--- a/src/cmd/compile/internal/gc/walk.go
++++ b/src/cmd/compile/internal/gc/walk.go
+@@ -617,7 +617,7 @@ opswitch:
+
+ if n.Left.Op == ONAME && n.Left.Sym.Name == "Sqrt" && n.Left.Sym.Pkg.Path == "math" {
+ switch Thearch.Thechar {
+- case '5', '6', '7':
++ case '5', '6', '7', 'z':
+ n.Op = OSQRT
+ n.Left = n.List.N
+ n.List = nil
+@@ -3285,7 +3285,7 @@ func samecheap(a *Node, b *Node) bool {
+ }
+
+ func walkrotate(np **Node) {
+- if Thearch.Thechar == '0' || Thearch.Thechar == '7' || Thearch.Thechar == '9' {
++ if Thearch.Thechar == '0' || Thearch.Thechar == '7' || Thearch.Thechar == '9' || Thearch.Thechar == 'z' {
+ return
+ }
+
+diff --git a/src/cmd/compile/internal/s390x/cgen.go b/src/cmd/compile/internal/s390x/cgen.go
+new file mode 100644
+index 0000000..a6fc7e3
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/cgen.go
+@@ -0,0 +1,178 @@
++// 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.
++
++package s390x
++
++import (
++ "cmd/compile/internal/gc"
++ "cmd/internal/obj"
++ "cmd/internal/obj/s390x"
++)
++
++type direction int
++
++const (
++ _FORWARDS direction = iota
++ _BACKWARDS
++)
++
++// blockcopy copies w bytes from &n to &res
++func blockcopy(n, res *gc.Node, osrc, odst, w int64) {
++ var dst gc.Node
++ var src gc.Node
++ if n.Ullman >= res.Ullman {
++ gc.Agenr(n, &dst, res) // temporarily use dst
++ gc.Regalloc(&src, gc.Types[gc.Tptr], nil)
++ gins(s390x.AMOVD, &dst, &src)
++ if res.Op == gc.ONAME {
++ gc.Gvardef(res)
++ }
++ gc.Agen(res, &dst)
++ } else {
++ if res.Op == gc.ONAME {
++ gc.Gvardef(res)
++ }
++ gc.Agenr(res, &dst, res)
++ gc.Agenr(n, &src, nil)
++ }
++ defer gc.Regfree(&src)
++ defer gc.Regfree(&dst)
++
++ var tmp gc.Node
++ gc.Regalloc(&tmp, gc.Types[gc.Tptr], nil)
++ defer gc.Regfree(&tmp)
++
++ offset := int64(0)
++ dir := _FORWARDS
++ if osrc < odst && int64(odst) < int64(osrc)+w {
++ // Reverse. Can't use MVC, fall back onto basic moves.
++ dir = _BACKWARDS
++ const copiesPerIter = 2
++ if w >= 8*copiesPerIter {
++ cnt := w - (w % (8 * copiesPerIter))
++ ginscon(s390x.AADD, w, &src)
++ ginscon(s390x.AADD, w, &dst)
++
++ var end gc.Node
++ gc.Regalloc(&end, gc.Types[gc.Tptr], nil)
++ p := gins(s390x.ASUB, nil, &end)
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = cnt
++ p.Reg = int16(src.Reg)
++
++ var label *obj.Prog
++ for i := 0; i < copiesPerIter; i++ {
++ offset := int64(-8 * (i + 1))
++ p := gins(s390x.AMOVD, &src, &tmp)
++ p.From.Type = obj.TYPE_MEM
++ p.From.Offset = offset
++ if i == 0 {
++ label = p
++ }
++ p = gins(s390x.AMOVD, &tmp, &dst)
++ p.To.Type = obj.TYPE_MEM
++ p.To.Offset = offset
++ }
++
++ ginscon(s390x.ASUB, 8*copiesPerIter, &src)
++ ginscon(s390x.ASUB, 8*copiesPerIter, &dst)
++ gins(s390x.ACMP, &src, &end)
++ gc.Patch(gc.Gbranch(s390x.ABNE, nil, 0), label)
++ gc.Regfree(&end)
++
++ w -= cnt
++ } else {
++ offset = w
++ }
++ }
++
++ if dir == _FORWARDS && w > 1024 {
++ // Loop over MVCs
++ cnt := w - (w % 256)
++
++ var end gc.Node
++ gc.Regalloc(&end, gc.Types[gc.Tptr], nil)
++ add := gins(s390x.AADD, nil, &end)
++ add.From.Type = obj.TYPE_CONST
++ add.From.Offset = cnt
++ add.Reg = int16(src.Reg)
++
++ mvc := gins(s390x.AMVC, &src, &dst)
++ mvc.From.Type = obj.TYPE_MEM
++ mvc.From.Offset = 0
++ mvc.To.Type = obj.TYPE_MEM
++ mvc.To.Offset = 0
++ mvc.From3 = new(obj.Addr)
++ mvc.From3.Type = obj.TYPE_CONST
++ mvc.From3.Offset = 256
++
++ ginscon(s390x.AADD, 256, &src)
++ ginscon(s390x.AADD, 256, &dst)
++ gins(s390x.ACMP, &src, &end)
++ gc.Patch(gc.Gbranch(s390x.ABNE, nil, 0), mvc)
++ gc.Regfree(&end)
++
++ w -= cnt
++ }
++
++ for w > 0 {
++ cnt := w
++ // If in reverse we can only do 8, 4, 2 or 1 bytes at a time.
++ if dir == _BACKWARDS {
++ switch {
++ case cnt >= 8:
++ cnt = 8
++ case cnt >= 4:
++ cnt = 4
++ case cnt >= 2:
++ cnt = 2
++ }
++ } else if cnt > 256 {
++ cnt = 256
++ }
++
++ switch cnt {
++ case 8, 4, 2, 1:
++ op := s390x.AMOVB
++ switch cnt {
++ case 8:
++ op = s390x.AMOVD
++ case 4:
++ op = s390x.AMOVW
++ case 2:
++ op = s390x.AMOVH
++ }
++ load := gins(op, &src, &tmp)
++ load.From.Type = obj.TYPE_MEM
++ load.From.Offset = offset
++
++ store := gins(op, &tmp, &dst)
++ store.To.Type = obj.TYPE_MEM
++ store.To.Offset = offset
++
++ if dir == _BACKWARDS {
++ load.From.Offset -= cnt
++ store.To.Offset -= cnt
++ }
++
++ default:
++ p := gins(s390x.AMVC, &src, &dst)
++ p.From.Type = obj.TYPE_MEM
++ p.From.Offset = offset
++ p.To.Type = obj.TYPE_MEM
++ p.To.Offset = offset
++ p.From3 = new(obj.Addr)
++ p.From3.Type = obj.TYPE_CONST
++ p.From3.Offset = cnt
++ }
++
++ switch dir {
++ case _FORWARDS:
++ offset += cnt
++ case _BACKWARDS:
++ offset -= cnt
++ }
++ w -= cnt
++ }
++}
+diff --git a/src/cmd/compile/internal/s390x/galign.go b/src/cmd/compile/internal/s390x/galign.go
+new file mode 100644
+index 0000000..14e6fe7
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/galign.go
+@@ -0,0 +1,95 @@
++// 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.
++
++package s390x
++
++import (
++ "cmd/compile/internal/gc"
++ "cmd/internal/obj"
++ "cmd/internal/obj/s390x"
++)
++
++var thechar int = 'z'
++
++var thestring string = "s390x"
++
++var thelinkarch *obj.LinkArch
++
++func linkarchinit() {
++ thestring = obj.Getgoarch()
++ gc.Thearch.Thestring = thestring
++ gc.Thearch.Thelinkarch = &s390x.Links390x
++}
++
++var MAXWIDTH int64 = 1 << 50
++
++/*
++ * go declares several platform-specific type aliases:
++ * int, uint, and uintptr
++ */
++var typedefs = []gc.Typedef{
++ gc.Typedef{"int", gc.TINT, gc.TINT64},
++ gc.Typedef{"uint", gc.TUINT, gc.TUINT64},
++ gc.Typedef{"uintptr", gc.TUINTPTR, gc.TUINT64},
++}
++
++func betypeinit() {
++ gc.Widthptr = 8
++ gc.Widthint = 8
++ gc.Widthreg = 8
++}
++
++func Main() {
++ gc.Thearch.Thechar = thechar
++ gc.Thearch.Thestring = thestring
++ gc.Thearch.Thelinkarch = thelinkarch
++ gc.Thearch.Typedefs = typedefs
++ gc.Thearch.REGSP = s390x.REGSP
++ gc.Thearch.REGCTXT = s390x.REGCTXT
++ gc.Thearch.REGCALLX = s390x.REG_R3
++ gc.Thearch.REGCALLX2 = s390x.REG_R4
++ gc.Thearch.REGRETURN = s390x.REG_R3
++ gc.Thearch.REGMIN = s390x.REG_R0
++ gc.Thearch.REGMAX = s390x.REG_R15
++ gc.Thearch.FREGMIN = s390x.REG_F0
++ gc.Thearch.FREGMAX = s390x.REG_F15
++ gc.Thearch.MAXWIDTH = MAXWIDTH
++ gc.Thearch.ReservedRegs = resvd
++
++ gc.Thearch.Betypeinit = betypeinit
++ gc.Thearch.Cgen_hmul = cgen_hmul
++ gc.Thearch.Cgen_shift = cgen_shift
++ gc.Thearch.Clearfat = clearfat
++ gc.Thearch.Defframe = defframe
++ gc.Thearch.Dodiv = dodiv
++ gc.Thearch.Excise = excise
++ gc.Thearch.Expandchecks = expandchecks
++ gc.Thearch.Getg = getg
++ gc.Thearch.Gins = gins
++ gc.Thearch.Ginscmp = ginscmp
++ gc.Thearch.Ginscon = ginscon
++ gc.Thearch.Ginsnop = ginsnop
++ gc.Thearch.Gmove = gmove
++ gc.Thearch.Linkarchinit = linkarchinit
++ gc.Thearch.Peep = peep
++ gc.Thearch.Proginfo = proginfo
++ gc.Thearch.Regtyp = regtyp
++ gc.Thearch.Sameaddr = sameaddr
++ gc.Thearch.Smallindir = smallindir
++ gc.Thearch.Stackaddr = stackaddr
++ gc.Thearch.Blockcopy = blockcopy
++ gc.Thearch.Sudoaddable = sudoaddable
++ gc.Thearch.Sudoclean = sudoclean
++ gc.Thearch.Excludedregs = excludedregs
++ gc.Thearch.RtoB = RtoB
++ gc.Thearch.FtoB = RtoB
++ gc.Thearch.BtoR = BtoR
++ gc.Thearch.BtoF = BtoF
++ gc.Thearch.Optoas = optoas
++ gc.Thearch.Doregbits = doregbits
++ gc.Thearch.Regnames = regnames
++
++ gc.Main()
++ gc.Exit(0)
++}
+diff --git a/src/cmd/compile/internal/s390x/ggen.go b/src/cmd/compile/internal/s390x/ggen.go
+new file mode 100644
+index 0000000..7e92422
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/ggen.go
+@@ -0,0 +1,611 @@
++// 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.
++
++package s390x
++
++import (
++ "cmd/compile/internal/gc"
++ "cmd/internal/obj"
++ "cmd/internal/obj/s390x"
++ "fmt"
++)
++
++// clearLoopCutOff is the (somewhat arbitrary) value above which it is better
++// to have a loop of clear instructions (e.g. XCs) rather than just generating
++// multiple instructions (i.e. loop unrolling).
++// Must be between 256 and 4096.
++const clearLoopCutoff = 1024
++
++func defframe(ptxt *obj.Prog) {
++ var n *gc.Node
++
++ // fill in argument size, stack size
++ ptxt.To.Type = obj.TYPE_TEXTSIZE
++
++ ptxt.To.Val = int32(gc.Rnd(gc.Curfn.Type.Argwid, int64(gc.Widthptr)))
++ frame := uint32(gc.Rnd(gc.Stksize+gc.Maxarg, int64(gc.Widthreg)))
++ ptxt.To.Offset = int64(frame)
++
++ // insert code to zero ambiguously live variables
++ // so that the garbage collector only sees initialized values
++ // when it looks for pointers.
++ p := ptxt
++
++ hi := int64(0)
++ lo := hi
++
++ // iterate through declarations - they are sorted in decreasing xoffset order.
++ for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next {
++ n = l.N
++ if !n.Name.Needzero {
++ continue
++ }
++ if n.Class != gc.PAUTO {
++ gc.Fatalf("needzero class %d", n.Class)
++ }
++ if n.Type.Width%int64(gc.Widthptr) != 0 || n.Xoffset%int64(gc.Widthptr) != 0 || n.Type.Width == 0 {
++ gc.Fatalf("var %v has size %d offset %d", gc.Nconv(n, obj.FmtLong), int(n.Type.Width), int(n.Xoffset))
++ }
++
++ if lo != hi && n.Xoffset+n.Type.Width >= lo-int64(2*gc.Widthreg) {
++ // merge with range we already have
++ lo = n.Xoffset
++
++ continue
++ }
++
++ // zero old range
++ p = zerorange(p, int64(frame), lo, hi)
++
++ // set new range
++ hi = n.Xoffset + n.Type.Width
++
++ lo = n.Xoffset
++ }
++
++ // zero final range
++ zerorange(p, int64(frame), lo, hi)
++}
++
++// zerorange clears the stack in the given range.
++func zerorange(p *obj.Prog, frame int64, lo int64, hi int64) *obj.Prog {
++ cnt := hi - lo
++ if cnt == 0 {
++ return p
++ }
++
++ // Adjust the frame to account for LR.
++ frame += 8
++ offset := frame + lo
++ reg := s390x.REGSP
++
++ // If the offset cannot fit in a 12-bit unsigned displacement then we
++ // need to create a copy of the stack pointer that we can adjust.
++ // We also need to do this if we are going to loop.
++ if offset < 0 || offset > 4096-clearLoopCutoff || cnt > clearLoopCutoff {
++ p = appendpp(p, s390x.AADD, obj.TYPE_CONST, 0, offset, obj.TYPE_REG, s390x.REGRT1, 0)
++ p.Reg = int16(s390x.REGSP)
++ reg = s390x.REGRT1
++ offset = 0
++ }
++
++ // Generate a loop of large clears.
++ if cnt > clearLoopCutoff {
++ n := cnt - (cnt % 256)
++ end := s390x.REGRT2
++ p = appendpp(p, s390x.AADD, obj.TYPE_CONST, 0, offset+n, obj.TYPE_REG, end, 0)
++ p.Reg = int16(reg)
++ p = appendpp(p, s390x.AXC, obj.TYPE_MEM, reg, offset, obj.TYPE_MEM, reg, offset)
++ p.From3 = new(obj.Addr)
++ p.From3.Type = obj.TYPE_CONST
++ p.From3.Offset = 256
++ pl := p
++ p = appendpp(p, s390x.AADD, obj.TYPE_CONST, 0, 256, obj.TYPE_REG, reg, 0)
++ p = appendpp(p, s390x.ACMP, obj.TYPE_REG, reg, 0, obj.TYPE_REG, end, 0)
++ p = appendpp(p, s390x.ABNE, obj.TYPE_NONE, 0, 0, obj.TYPE_BRANCH, 0, 0)
++ gc.Patch(p, pl)
++
++ cnt -= n
++ }
++
++ // Generate remaining clear instructions without a loop.
++ for cnt > 0 {
++ n := cnt
++
++ // Can clear at most 256 bytes per instruction.
++ if n > 256 {
++ n = 256
++ }
++
++ switch n {
++ // Handle very small clears with move instructions.
++ case 8, 4, 2, 1:
++ ins := s390x.AMOVB
++ switch n {
++ case 8:
++ ins = s390x.AMOVD
++ case 4:
++ ins = s390x.AMOVW
++ case 2:
++ ins = s390x.AMOVH
++ }
++ p = appendpp(p, ins, obj.TYPE_CONST, 0, 0, obj.TYPE_MEM, reg, offset)
++
++ // Handle clears that would require multiple move instructions with XC.
++ default:
++ p = appendpp(p, s390x.AXC, obj.TYPE_MEM, reg, offset, obj.TYPE_MEM, reg, offset)
++ p.From3 = new(obj.Addr)
++ p.From3.Type = obj.TYPE_CONST
++ p.From3.Offset = n
++ }
++
++ cnt -= n
++ offset += n
++ }
++
++ return p
++}
++
++func appendpp(p *obj.Prog, as int, ftype int, freg int, foffset int64, ttype int, treg int, toffset int64) *obj.Prog {
++ q := gc.Ctxt.NewProg()
++ gc.Clearp(q)
++ q.As = int16(as)
++ q.Lineno = p.Lineno
++ q.From.Type = int16(ftype)
++ q.From.Reg = int16(freg)
++ q.From.Offset = foffset
++ q.To.Type = int16(ttype)
++ q.To.Reg = int16(treg)
++ q.To.Offset = toffset
++ q.Link = p.Link
++ p.Link = q
++ return q
++}
++
++func ginsnop() {
++ var reg gc.Node
++ gc.Nodreg(®, gc.Types[gc.TINT], s390x.REG_R0)
++ gins(s390x.AOR, ®, ®)
++}
++
++var panicdiv *gc.Node
++
++/*
++ * generate division.
++ * generates one of:
++ * res = nl / nr
++ * res = nl % nr
++ * according to op.
++ */
++func dodiv(op gc.Op, nl *gc.Node, nr *gc.Node, res *gc.Node) {
++ // Have to be careful about handling
++ // most negative int divided by -1 correctly.
++ // The hardware will generate undefined result.
++ // Also need to explicitly trap on division on zero,
++ // the hardware will silently generate undefined result.
++ // DIVW will leave unpredicable result in higher 32-bit,
++ // so always use DIVD/DIVDU.
++ t := nl.Type
++
++ t0 := t
++ check := 0
++ if gc.Issigned[t.Etype] {
++ check = 1
++ if gc.Isconst(nl, gc.CTINT) && nl.Int() != -(1<<uint64(t.Width*8-1)) {
++ check = 0
++ } else if gc.Isconst(nr, gc.CTINT) && nr.Int() != -1 {
++ check = 0
++ }
++ }
++
++ if t.Width < 8 {
++ if gc.Issigned[t.Etype] {
++ t = gc.Types[gc.TINT64]
++ } else {
++ t = gc.Types[gc.TUINT64]
++ }
++ check = 0
++ }
++
++ a := optoas(gc.ODIV, t)
++
++ var tl gc.Node
++ gc.Regalloc(&tl, t0, nil)
++ var tr gc.Node
++ gc.Regalloc(&tr, t0, nil)
++ if nl.Ullman >= nr.Ullman {
++ gc.Cgen(nl, &tl)
++ gc.Cgen(nr, &tr)
++ } else {
++ gc.Cgen(nr, &tr)
++ gc.Cgen(nl, &tl)
++ }
++
++ if t != t0 {
++ // Convert
++ tl2 := tl
++
++ tr2 := tr
++ tl.Type = t
++ tr.Type = t
++ gmove(&tl2, &tl)
++ gmove(&tr2, &tr)
++ }
++
++ // Handle divide-by-zero panic.
++ p1 := gins(optoas(gc.OCMP, t), &tr, nil)
++
++ p1.To.Type = obj.TYPE_REG
++ p1.To.Reg = s390x.REGZERO
++ p1 = gc.Gbranch(optoas(gc.ONE, t), nil, +1)
++ if panicdiv == nil {
++ panicdiv = gc.Sysfunc("panicdivide")
++ }
++ gc.Ginscall(panicdiv, -1)
++ gc.Patch(p1, gc.Pc)
++
++ var p2 *obj.Prog
++ if check != 0 {
++ var nm1 gc.Node
++ gc.Nodconst(&nm1, t, -1)
++ gins(optoas(gc.OCMP, t), &tr, &nm1)
++ p1 := gc.Gbranch(optoas(gc.ONE, t), nil, +1)
++ if op == gc.ODIV {
++ // a / (-1) is -a.
++ gins(optoas(gc.OMINUS, t), nil, &tl)
++
++ gmove(&tl, res)
++ } else {
++ // a % (-1) is 0.
++ var nz gc.Node
++ gc.Nodconst(&nz, t, 0)
++
++ gmove(&nz, res)
++ }
++
++ p2 = gc.Gbranch(obj.AJMP, nil, 0)
++ gc.Patch(p1, gc.Pc)
++ }
++
++ p1 = gins(a, &tr, &tl)
++ if op == gc.ODIV {
++ gc.Regfree(&tr)
++ gmove(&tl, res)
++ } else {
++ // A%B = A-(A/B*B)
++ var tm gc.Node
++ gc.Regalloc(&tm, t, nil)
++
++ // patch div to use the 3 register form
++ // TODO(minux): add gins3?
++ p1.Reg = p1.To.Reg
++
++ p1.To.Reg = tm.Reg
++ gins(optoas(gc.OMUL, t), &tr, &tm)
++ gc.Regfree(&tr)
++ gins(optoas(gc.OSUB, t), &tm, &tl)
++ gc.Regfree(&tm)
++ gmove(&tl, res)
++ }
++
++ gc.Regfree(&tl)
++ if check != 0 {
++ gc.Patch(p2, gc.Pc)
++ }
++}
++
++/*
++ * generate high multiply:
++ * res = (nl*nr) >> width
++ */
++func cgen_hmul(nl *gc.Node, nr *gc.Node, res *gc.Node) {
++ // largest ullman on left.
++ if nl.Ullman < nr.Ullman {
++ tmp := (*gc.Node)(nl)
++ nl = nr
++ nr = tmp
++ }
++
++ t := (*gc.Type)(nl.Type)
++ w := int(int(t.Width * 8))
++ var n1 gc.Node
++ gc.Cgenr(nl, &n1, res)
++ var n2 gc.Node
++ gc.Cgenr(nr, &n2, nil)
++ switch gc.Simtype[t.Etype] {
++ case gc.TINT8,
++ gc.TINT16,
++ gc.TINT32:
++ gins(optoas(gc.OMUL, t), &n2, &n1)
++ p := (*obj.Prog)(gins(s390x.ASRAD, nil, &n1))
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = int64(w)
++
++ case gc.TUINT8,
++ gc.TUINT16,
++ gc.TUINT32:
++ gins(optoas(gc.OMUL, t), &n2, &n1)
++ p := (*obj.Prog)(gins(s390x.ASRD, nil, &n1))
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = int64(w)
++
++ case gc.TINT64,
++ gc.TUINT64:
++ if gc.Issigned[t.Etype] {
++ gins(s390x.AMULHD, &n2, &n1)
++ } else {
++ gins(s390x.AMULHDU, &n2, &n1)
++ }
++
++ default:
++ gc.Fatalf("cgen_hmul %v", t)
++ }
++
++ gc.Cgen(&n1, res)
++ gc.Regfree(&n1)
++ gc.Regfree(&n2)
++}
++
++/*
++ * generate shift according to op, one of:
++ * res = nl << nr
++ * res = nl >> nr
++ */
++func cgen_shift(op gc.Op, bounded bool, nl *gc.Node, nr *gc.Node, res *gc.Node) {
++ a := int(optoas(op, nl.Type))
++
++ if nr.Op == gc.OLITERAL {
++ var n1 gc.Node
++ gc.Regalloc(&n1, nl.Type, res)
++ gc.Cgen(nl, &n1)
++ sc := uint64(nr.Int())
++ if sc >= uint64(nl.Type.Width*8) {
++ // large shift gets 2 shifts by width-1
++ var n3 gc.Node
++ gc.Nodconst(&n3, gc.Types[gc.TUINT32], nl.Type.Width*8-1)
++
++ gins(a, &n3, &n1)
++ gins(a, &n3, &n1)
++ } else {
++ gins(a, nr, &n1)
++ }
++ gmove(&n1, res)
++ gc.Regfree(&n1)
++ return
++ }
++
++ if nl.Ullman >= gc.UINF {
++ var n4 gc.Node
++ gc.Tempname(&n4, nl.Type)
++ gc.Cgen(nl, &n4)
++ nl = &n4
++ }
++
++ if nr.Ullman >= gc.UINF {
++ var n5 gc.Node
++ gc.Tempname(&n5, nr.Type)
++ gc.Cgen(nr, &n5)
++ nr = &n5
++ }
++
++ // Allow either uint32 or uint64 as shift type,
++ // to avoid unnecessary conversion from uint32 to uint64
++ // just to do the comparison.
++ tcount := gc.Types[gc.Simtype[nr.Type.Etype]]
++
++ if tcount.Etype < gc.TUINT32 {
++ tcount = gc.Types[gc.TUINT32]
++ }
++
++ var n1 gc.Node
++ gc.Regalloc(&n1, nr.Type, nil) // to hold the shift type in CX
++ var n3 gc.Node
++ gc.Regalloc(&n3, tcount, &n1) // to clear high bits of CX
++
++ var n2 gc.Node
++ gc.Regalloc(&n2, nl.Type, res)
++
++ if nl.Ullman >= nr.Ullman {
++ gc.Cgen(nl, &n2)
++ gc.Cgen(nr, &n1)
++ gmove(&n1, &n3)
++ } else {
++ gc.Cgen(nr, &n1)
++ gmove(&n1, &n3)
++ gc.Cgen(nl, &n2)
++ }
++
++ gc.Regfree(&n3)
++
++ // test and fix up large shifts
++ if !bounded {
++ gc.Nodconst(&n3, tcount, nl.Type.Width*8)
++ gins(optoas(gc.OCMP, tcount), &n1, &n3)
++ p1 := (*obj.Prog)(gc.Gbranch(optoas(gc.OLT, tcount), nil, +1))
++ if op == gc.ORSH && gc.Issigned[nl.Type.Etype] {
++ gc.Nodconst(&n3, gc.Types[gc.TUINT32], nl.Type.Width*8-1)
++ gins(a, &n3, &n2)
++ } else {
++ gc.Nodconst(&n3, nl.Type, 0)
++ gmove(&n3, &n2)
++ }
++
++ gc.Patch(p1, gc.Pc)
++ }
++
++ gins(a, &n1, &n2)
++
++ gmove(&n2, res)
++
++ gc.Regfree(&n1)
++ gc.Regfree(&n2)
++}
++
++// clearfat clears (i.e. replaces with zeros) the value pointed to by nl.
++func clearfat(nl *gc.Node) {
++ if gc.Debug['g'] != 0 {
++ fmt.Printf("clearfat %v (%v, size: %d)\n", nl, nl.Type, nl.Type.Width)
++ }
++
++ // Avoid taking the address for simple enough types.
++ if gc.Componentgen(nil, nl) {
++ return
++ }
++
++ var dst gc.Node
++ gc.Regalloc(&dst, gc.Types[gc.Tptr], nil)
++ gc.Agen(nl, &dst)
++
++ var boff int64
++ w := int64(nl.Type.Width)
++ if w > clearLoopCutoff {
++ // Generate a loop clearing 256 bytes per iteration using XCs.
++ var end gc.Node
++ gc.Regalloc(&end, gc.Types[gc.Tptr], nil)
++ p := gins(s390x.AMOVD, &dst, &end)
++ p.From.Type = obj.TYPE_ADDR
++ p.From.Offset = w - (w % 256)
++
++ p = gins(s390x.AXC, &dst, &dst)
++ p.From.Type = obj.TYPE_MEM
++ p.From.Offset = 0
++ p.To.Type = obj.TYPE_MEM
++ p.To.Offset = 0
++ p.From3 = new(obj.Addr)
++ p.From3.Offset = 256
++ p.From3.Type = obj.TYPE_CONST
++ pl := (*obj.Prog)(p)
++
++ ginscon(s390x.AADD, 256, &dst)
++ gins(s390x.ACMP, &dst, &end)
++ gc.Patch(gc.Gbranch(s390x.ABNE, nil, 0), pl)
++ gc.Regfree(&end)
++ w = w % 256
++ }
++
++ // Generate instructions to clear the remaining memory.
++ for w > 0 {
++ n := w
++
++ // Can clear at most 256 bytes per instruction.
++ if n > 256 {
++ n = 256
++ }
++
++ switch n {
++ // Handle very small clears using moves.
++ case 8, 4, 2, 1:
++ ins := s390x.AMOVB
++ switch n {
++ case 8:
++ ins = s390x.AMOVD
++ case 4:
++ ins = s390x.AMOVW
++ case 2:
++ ins = s390x.AMOVH
++ }
++ p := gins(ins, nil, &dst)
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = 0
++ p.To.Type = obj.TYPE_MEM
++ p.To.Offset = boff
++
++ // Handle clears that would require multiple moves with a XC.
++ default:
++ p := gins(s390x.AXC, &dst, &dst)
++ p.From.Type = obj.TYPE_MEM
++ p.From.Offset = boff
++ p.To.Type = obj.TYPE_MEM
++ p.To.Offset = boff
++ p.From3 = new(obj.Addr)
++ p.From3.Offset = n
++ p.From3.Type = obj.TYPE_CONST
++ }
++
++ boff += n
++ w -= n
++ }
++
++ gc.Regfree(&dst)
++}
++
++// Called after regopt and peep have run.
++// Expand CHECKNIL pseudo-op into actual nil pointer check.
++func expandchecks(firstp *obj.Prog) {
++ var p1 *obj.Prog
++ var p2 *obj.Prog
++ for p := (*obj.Prog)(firstp); p != nil; p = p.Link {
++ if gc.Debug_checknil != 0 && gc.Ctxt.Debugvlog != 0 {
++ fmt.Printf("expandchecks: %v\n", p)
++ }
++ if p.As != obj.ACHECKNIL {
++ continue
++ }
++ if gc.Debug_checknil != 0 && p.Lineno > 1 { // p->lineno==1 in generated wrappers
++ gc.Warnl(int(p.Lineno), "generated nil check")
++ }
++ if p.From.Type != obj.TYPE_REG {
++ gc.Fatalf("invalid nil check %v\n", p)
++ }
++
++ /*
++ // check is
++ // TD $4, R0, arg (R0 is always zero)
++ // eqv. to:
++ // tdeq r0, arg
++ // NOTE: this needs special runtime support to make SIGTRAP recoverable.
++ reg = p->from.reg;
++ p->as = ATD;
++ p->from = p->to = p->from3 = zprog.from;
++ p->from.type = TYPE_CONST;
++ p->from.offset = 4;
++ p->from.reg = 0;
++ p->reg = REGZERO;
++ p->to.type = TYPE_REG;
++ p->to.reg = reg;
++ */
++ // check is
++ // CMP arg, $0
++ // BNE 2(PC) [likely]
++ // MOVD R0, 0(R0)
++ p1 = gc.Ctxt.NewProg()
++
++ p2 = gc.Ctxt.NewProg()
++ gc.Clearp(p1)
++ gc.Clearp(p2)
++ p1.Link = p2
++ p2.Link = p.Link
++ p.Link = p1
++ p1.Lineno = p.Lineno
++ p2.Lineno = p.Lineno
++ p1.Pc = 9999
++ p2.Pc = 9999
++ p.As = s390x.ACMP
++ p.To.Type = obj.TYPE_CONST
++ p.To.Offset = 0
++ p1.As = s390x.ABNE
++
++ //p1->from.type = TYPE_CONST;
++ //p1->from.offset = 1; // likely
++ p1.To.Type = obj.TYPE_BRANCH
++
++ p1.To.Val = p2.Link
++
++ // crash by write to memory address 0.
++ p2.As = s390x.AMOVD
++
++ p2.From.Type = obj.TYPE_REG
++ p2.From.Reg = s390x.REGZERO
++ p2.To.Type = obj.TYPE_MEM
++ p2.To.Reg = s390x.REGZERO
++ p2.To.Offset = 0
++ }
++}
++
++// res = runtime.getg()
++func getg(res *gc.Node) {
++ var n1 gc.Node
++ gc.Nodreg(&n1, res.Type, s390x.REGG)
++ gmove(&n1, res)
++}
+diff --git a/src/cmd/compile/internal/s390x/gsubr.go b/src/cmd/compile/internal/s390x/gsubr.go
+new file mode 100644
+index 0000000..2fafa7f
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/gsubr.go
+@@ -0,0 +1,1048 @@
++// Derived from Inferno utils/6c/txt.c
++// http://code.google.com/p/inferno-os/source/browse/utils/6c/txt.c
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/compile/internal/big"
++ "cmd/compile/internal/gc"
++ "cmd/internal/obj"
++ "cmd/internal/obj/s390x"
++ "fmt"
++)
++
++var resvd = []int{
++ s390x.REGZERO,
++ s390x.REGSP, // reserved for SP
++ s390x.REGG,
++ s390x.REGTMP, // REGTMP
++ s390x.REGTMP2,
++ s390x.FREGCVI,
++ s390x.FREGZERO,
++ s390x.FREGONE,
++ s390x.FREGTWO,
++ // s390x.FREGTMP,
++}
++
++/*
++ * generate
++ * as $c, n
++ */
++func ginscon(as int, c int64, n2 *gc.Node) {
++ var n1 gc.Node
++
++ gc.Nodconst(&n1, gc.Types[gc.TINT64], c)
++
++ if as != s390x.AMOVD && (c < -s390x.BIG || c > s390x.BIG) || n2.Op != gc.OREGISTER || as == s390x.AMULLD {
++ // cannot have more than 16-bit of immediate in ADD, etc.
++ // instead, MOV into register first.
++ var ntmp gc.Node
++ gc.Regalloc(&ntmp, gc.Types[gc.TINT64], nil)
++
++ rawgins(s390x.AMOVD, &n1, &ntmp)
++ rawgins(as, &ntmp, n2)
++ gc.Regfree(&ntmp)
++ return
++ }
++
++ rawgins(as, &n1, n2)
++}
++
++/*
++ * generate
++ * as n, $c (CMP/CMPU)
++ */
++func ginscon2(as int, n2 *gc.Node, c int64) {
++ var n1 gc.Node
++
++ gc.Nodconst(&n1, gc.Types[gc.TINT64], c)
++
++ switch as {
++ default:
++ gc.Fatalf("ginscon2")
++
++ case s390x.ACMP:
++ if -s390x.BIG <= c && c <= s390x.BIG {
++ rawgins(as, n2, &n1)
++ return
++ }
++
++ case s390x.ACMPU:
++ if 0 <= c && c <= 2*s390x.BIG {
++ rawgins(as, n2, &n1)
++ return
++ }
++ }
++
++ // MOV n1 into register first
++ var ntmp gc.Node
++ gc.Regalloc(&ntmp, gc.Types[gc.TINT64], nil)
++
++ rawgins(s390x.AMOVD, &n1, &ntmp)
++ rawgins(as, n2, &ntmp)
++ gc.Regfree(&ntmp)
++}
++
++func ginscmp(op gc.Op, t *gc.Type, n1, n2 *gc.Node, likely int) *obj.Prog {
++ if gc.Isint[t.Etype] && n1.Op == gc.OLITERAL && n2.Op != gc.OLITERAL {
++ // Reverse comparison to place constant last.
++ op = gc.Brrev(op)
++ n1, n2 = n2, n1
++ }
++
++ var r1, r2, g1, g2 gc.Node
++ gc.Regalloc(&r1, t, n1)
++ gc.Regalloc(&g1, n1.Type, &r1)
++ gc.Cgen(n1, &g1)
++ gmove(&g1, &r1)
++ if gc.Isint[t.Etype] && gc.Isconst(n2, gc.CTINT) {
++ ginscon2(optoas(gc.OCMP, t), &r1, n2.Int())
++ } else {
++ gc.Regalloc(&r2, t, n2)
++ gc.Regalloc(&g2, n1.Type, &r2)
++ gc.Cgen(n2, &g2)
++ gmove(&g2, &r2)
++ rawgins(optoas(gc.OCMP, t), &r1, &r2)
++ gc.Regfree(&g2)
++ gc.Regfree(&r2)
++ }
++ gc.Regfree(&g1)
++ gc.Regfree(&r1)
++ return gc.Gbranch(optoas(op, t), nil, likely)
++}
++
++// set up nodes representing 2^63
++var (
++ bigi gc.Node
++ bigf gc.Node
++ bignodes_did bool
++)
++
++func bignodes() {
++ if bignodes_did {
++ return
++ }
++ bignodes_did = true
++
++ var i big.Int
++ i.SetInt64(1)
++ i.Lsh(&i, 63)
++
++ gc.Nodconst(&bigi, gc.Types[gc.TUINT64], 0)
++ bigi.SetBigInt(&i)
++
++ bigi.Convconst(&bigf, gc.Types[gc.TFLOAT64])
++}
++
++// gmvc tries to move f to t using a mvc instruction.
++// If successful it returns true, otherwise it returns false.
++func gmvc(f, t *gc.Node) bool {
++ ft := int(gc.Simsimtype(f.Type))
++ tt := int(gc.Simsimtype(t.Type))
++
++ if ft != tt {
++ return false
++ }
++
++ if f.Op != gc.OINDREG || t.Op != gc.OINDREG {
++ return false
++ }
++
++ if f.Xoffset < 0 || f.Xoffset >= 4096 {
++ return false
++ }
++
++ if t.Xoffset < 0 || t.Xoffset >= 4096 {
++ return false
++ }
++
++ var len int64
++ switch ft {
++ case gc.TUINT8, gc.TINT8, gc.TBOOL:
++ len = 1
++ case gc.TUINT16, gc.TINT16:
++ len = 2
++ case gc.TUINT32, gc.TINT32, gc.TFLOAT32:
++ len = 4
++ case gc.TUINT64, gc.TINT64, gc.TFLOAT64, gc.TPTR64:
++ len = 8
++ case gc.TUNSAFEPTR:
++ len = int64(gc.Widthptr)
++ default:
++ return false
++ }
++
++ p := gc.Prog(s390x.AMVC)
++ gc.Naddr(&p.From, f)
++ gc.Naddr(&p.To, t)
++ p.From3 = new(obj.Addr)
++ p.From3.Offset = len
++ p.From3.Type = obj.TYPE_CONST
++ return true
++}
++
++/*
++ * generate move:
++ * t = f
++ * hard part is conversions.
++ */
++func gmove(f *gc.Node, t *gc.Node) {
++ if gc.Debug['M'] != 0 {
++ fmt.Printf("gmove %v -> %v\n", gc.Nconv(f, obj.FmtLong), gc.Nconv(t, obj.FmtLong))
++ }
++
++ ft := int(gc.Simsimtype(f.Type))
++ tt := int(gc.Simsimtype(t.Type))
++ cvt := (*gc.Type)(t.Type)
++
++ if gc.Iscomplex[ft] || gc.Iscomplex[tt] {
++ gc.Complexmove(f, t)
++ return
++ }
++
++ // cannot have two memory operands
++ var a int
++ if gc.Ismem(f) && gc.Ismem(t) {
++ if gmvc(f, t) {
++ return
++ }
++ goto hard
++ }
++
++ // convert constant to desired type
++ if f.Op == gc.OLITERAL {
++ var con gc.Node
++ f.Convconst(&con, t.Type)
++ f = &con
++ ft = tt // so big switch will choose a simple mov
++
++ // some constants can't move directly to memory.
++ if gc.Ismem(t) {
++ // float constants come from memory.
++ if gc.Isfloat[tt] {
++ goto hard
++ }
++
++ // all immediates are 16-bit sign-extended
++ // unless moving into a register.
++ if gc.Isint[tt] {
++ if i := con.Int(); int64(int16(i)) != i {
++ goto hard
++ }
++ }
++ }
++ }
++
++ // a float-to-int or int-to-float conversion requires the source operand in a register
++ if gc.Ismem(f) && ((gc.Isfloat[ft] && gc.Isint[tt]) || (gc.Isint[ft] && gc.Isfloat[tt])) {
++ cvt = (*gc.Type)(f.Type)
++ goto hard
++ }
++
++ // a float32-to-float64 or float64-to-float32 conversion requires the source operand in a register
++ if gc.Ismem(f) && gc.Isfloat[ft] && gc.Isfloat[tt] && (ft != tt) {
++ cvt = (*gc.Type)(f.Type)
++ goto hard
++ }
++
++ // float constants come from memory.
++ //if(isfloat[tt])
++ // goto hard;
++
++ // 64-bit immediates are also from memory.
++ //if(isint[tt])
++ // goto hard;
++ //// 64-bit immediates are really 32-bit sign-extended
++ //// unless moving into a register.
++ //if(isint[tt]) {
++ // if(mpcmpfixfix(con.val.u.xval, minintval[TINT32]) < 0)
++ // goto hard;
++ // if(mpcmpfixfix(con.val.u.xval, maxintval[TINT32]) > 0)
++ // goto hard;
++ //}
++
++ // value -> value copy, only one memory operand.
++ // figure out the instruction to use.
++ // break out of switch for one-instruction gins.
++ // goto rdst for "destination must be register".
++ // goto hard for "convert to cvt type first".
++ // otherwise handle and return.
++
++ switch uint32(ft)<<16 | uint32(tt) {
++ default:
++ gc.Fatalf("gmove %v -> %v", gc.Tconv(f.Type, obj.FmtLong), gc.Tconv(t.Type, obj.FmtLong))
++
++ /*
++ * integer copy and truncate
++ */
++ case gc.TINT8<<16 | gc.TINT8, // same size
++ gc.TUINT8<<16 | gc.TINT8,
++ gc.TINT16<<16 | gc.TINT8,
++ // truncate
++ gc.TUINT16<<16 | gc.TINT8,
++ gc.TINT32<<16 | gc.TINT8,
++ gc.TUINT32<<16 | gc.TINT8,
++ gc.TINT64<<16 | gc.TINT8,
++ gc.TUINT64<<16 | gc.TINT8:
++ a = s390x.AMOVB
++
++ case gc.TINT8<<16 | gc.TUINT8, // same size
++ gc.TUINT8<<16 | gc.TUINT8,
++ gc.TINT16<<16 | gc.TUINT8,
++ // truncate
++ gc.TUINT16<<16 | gc.TUINT8,
++ gc.TINT32<<16 | gc.TUINT8,
++ gc.TUINT32<<16 | gc.TUINT8,
++ gc.TINT64<<16 | gc.TUINT8,
++ gc.TUINT64<<16 | gc.TUINT8:
++ a = s390x.AMOVBZ
++
++ case gc.TINT16<<16 | gc.TINT16, // same size
++ gc.TUINT16<<16 | gc.TINT16,
++ gc.TINT32<<16 | gc.TINT16,
++ // truncate
++ gc.TUINT32<<16 | gc.TINT16,
++ gc.TINT64<<16 | gc.TINT16,
++ gc.TUINT64<<16 | gc.TINT16:
++ a = s390x.AMOVH
++
++ case gc.TINT16<<16 | gc.TUINT16, // same size
++ gc.TUINT16<<16 | gc.TUINT16,
++ gc.TINT32<<16 | gc.TUINT16,
++ // truncate
++ gc.TUINT32<<16 | gc.TUINT16,
++ gc.TINT64<<16 | gc.TUINT16,
++ gc.TUINT64<<16 | gc.TUINT16:
++ a = s390x.AMOVHZ
++
++ case gc.TINT32<<16 | gc.TINT32, // same size
++ gc.TUINT32<<16 | gc.TINT32,
++ gc.TINT64<<16 | gc.TINT32,
++ // truncate
++ gc.TUINT64<<16 | gc.TINT32:
++ a = s390x.AMOVW
++
++ case gc.TINT32<<16 | gc.TUINT32, // same size
++ gc.TUINT32<<16 | gc.TUINT32,
++ gc.TINT64<<16 | gc.TUINT32,
++ gc.TUINT64<<16 | gc.TUINT32:
++ a = s390x.AMOVWZ
++
++ case gc.TINT64<<16 | gc.TINT64, // same size
++ gc.TINT64<<16 | gc.TUINT64,
++ gc.TUINT64<<16 | gc.TINT64,
++ gc.TUINT64<<16 | gc.TUINT64:
++ a = s390x.AMOVD
++
++ /*
++ * integer up-conversions
++ */
++ case gc.TINT8<<16 | gc.TINT16, // sign extend int8
++ gc.TINT8<<16 | gc.TUINT16,
++ gc.TINT8<<16 | gc.TINT32,
++ gc.TINT8<<16 | gc.TUINT32,
++ gc.TINT8<<16 | gc.TINT64,
++ gc.TINT8<<16 | gc.TUINT64:
++ a = s390x.AMOVB
++
++ goto rdst
++
++ case gc.TUINT8<<16 | gc.TINT16, // zero extend uint8
++ gc.TUINT8<<16 | gc.TUINT16,
++ gc.TUINT8<<16 | gc.TINT32,
++ gc.TUINT8<<16 | gc.TUINT32,
++ gc.TUINT8<<16 | gc.TINT64,
++ gc.TUINT8<<16 | gc.TUINT64:
++ a = s390x.AMOVBZ
++
++ goto rdst
++
++ case gc.TINT16<<16 | gc.TINT32, // sign extend int16
++ gc.TINT16<<16 | gc.TUINT32,
++ gc.TINT16<<16 | gc.TINT64,
++ gc.TINT16<<16 | gc.TUINT64:
++ a = s390x.AMOVH
++
++ goto rdst
++
++ case gc.TUINT16<<16 | gc.TINT32, // zero extend uint16
++ gc.TUINT16<<16 | gc.TUINT32,
++ gc.TUINT16<<16 | gc.TINT64,
++ gc.TUINT16<<16 | gc.TUINT64:
++ a = s390x.AMOVHZ
++
++ goto rdst
++
++ case gc.TINT32<<16 | gc.TINT64, // sign extend int32
++ gc.TINT32<<16 | gc.TUINT64:
++ a = s390x.AMOVW
++
++ goto rdst
++
++ case gc.TUINT32<<16 | gc.TINT64, // zero extend uint32
++ gc.TUINT32<<16 | gc.TUINT64:
++ a = s390x.AMOVWZ
++
++ goto rdst
++
++ /*
++ * float to integer
++ */
++ case gc.TFLOAT32<<16 | gc.TUINT8,
++ gc.TFLOAT32<<16 | gc.TUINT16:
++ cvt = gc.Types[gc.TUINT32]
++
++ goto hard
++
++ case gc.TFLOAT32<<16 | gc.TUINT32:
++ a = s390x.ACLFEBR
++
++ goto rdst
++
++ case gc.TFLOAT32<<16 | gc.TUINT64:
++ a = s390x.ACLGEBR
++
++ goto rdst
++
++ case gc.TFLOAT64<<16 | gc.TUINT8,
++ gc.TFLOAT64<<16 | gc.TUINT16:
++ cvt = gc.Types[gc.TUINT32]
++
++ goto hard
++
++ case gc.TFLOAT64<<16 | gc.TUINT32:
++ a = s390x.ACLFDBR
++
++ goto rdst
++
++ case gc.TFLOAT64<<16 | gc.TUINT64:
++ a = s390x.ACLGDBR
++
++ goto rdst
++
++ case gc.TFLOAT32<<16 | gc.TINT8,
++ gc.TFLOAT32<<16 | gc.TINT16:
++ cvt = gc.Types[gc.TINT32]
++
++ goto hard
++
++ case gc.TFLOAT32<<16 | gc.TINT32:
++ a = s390x.ACFEBRA
++
++ goto rdst
++
++ case gc.TFLOAT32<<16 | gc.TINT64:
++ a = s390x.ACGEBRA
++
++ goto rdst
++
++ case gc.TFLOAT64<<16 | gc.TINT8,
++ gc.TFLOAT64<<16 | gc.TINT16:
++ cvt = gc.Types[gc.TINT32]
++
++ goto hard
++
++ case gc.TFLOAT64<<16 | gc.TINT32:
++ a = s390x.ACFDBRA
++
++ goto rdst
++
++ case gc.TFLOAT64<<16 | gc.TINT64:
++ a = s390x.ACGDBRA
++
++ goto rdst
++
++ /*
++ * integer to float
++ */
++ case gc.TUINT8<<16 | gc.TFLOAT32,
++ gc.TUINT16<<16 | gc.TFLOAT32:
++ cvt = gc.Types[gc.TUINT32]
++
++ goto hard
++
++ case gc.TUINT32<<16 | gc.TFLOAT32:
++ a = s390x.ACELFBR
++
++ goto rdst
++
++ case gc.TUINT64<<16 | gc.TFLOAT32:
++ a = s390x.ACELGBR
++
++ goto rdst
++
++ case gc.TUINT8<<16 | gc.TFLOAT64,
++ gc.TUINT16<<16 | gc.TFLOAT64:
++ cvt = gc.Types[gc.TUINT32]
++
++ goto hard
++
++ case gc.TUINT32<<16 | gc.TFLOAT64:
++ a = s390x.ACDLFBR
++
++ goto rdst
++
++ case gc.TUINT64<<16 | gc.TFLOAT64:
++ a = s390x.ACDLGBR
++
++ goto rdst
++
++ case gc.TINT8<<16 | gc.TFLOAT32,
++ gc.TINT16<<16 | gc.TFLOAT32:
++ cvt = gc.Types[gc.TINT32]
++
++ goto hard
++
++ case gc.TINT32<<16 | gc.TFLOAT32:
++ a = s390x.ACEFBRA
++
++ goto rdst
++
++ case gc.TINT64<<16 | gc.TFLOAT32:
++ a = s390x.ACEGBRA
++
++ goto rdst
++
++ case gc.TINT8<<16 | gc.TFLOAT64,
++ gc.TINT16<<16 | gc.TFLOAT64:
++ cvt = gc.Types[gc.TINT32]
++
++ goto hard
++
++ case gc.TINT32<<16 | gc.TFLOAT64:
++ a = s390x.ACDFBRA
++
++ goto rdst
++
++ case gc.TINT64<<16 | gc.TFLOAT64:
++ a = s390x.ACDGBRA
++
++ goto rdst
++
++ /*
++ * float to float
++ */
++ case gc.TFLOAT32<<16 | gc.TFLOAT32:
++ a = s390x.AFMOVS
++
++ case gc.TFLOAT64<<16 | gc.TFLOAT64:
++ a = s390x.AFMOVD
++
++ case gc.TFLOAT32<<16 | gc.TFLOAT64:
++ a = s390x.ALDEBR
++ goto rdst
++
++ case gc.TFLOAT64<<16 | gc.TFLOAT32:
++ a = s390x.AFRSP
++ goto rdst
++ }
++
++ gins(a, f, t)
++ return
++
++ // requires register destination
++rdst:
++ {
++ var r1 gc.Node
++ gc.Regalloc(&r1, t.Type, t)
++
++ gins(a, f, &r1)
++ gmove(&r1, t)
++ gc.Regfree(&r1)
++ return
++ }
++
++ // requires register intermediate
++hard:
++ var r1 gc.Node
++ gc.Regalloc(&r1, cvt, t)
++
++ gmove(f, &r1)
++ gmove(&r1, t)
++ gc.Regfree(&r1)
++ return
++}
++
++func intLiteral(n *gc.Node) (x int64, ok bool) {
++ switch {
++ case n == nil:
++ return
++ case gc.Isconst(n, gc.CTINT):
++ return n.Int(), true
++ case gc.Isconst(n, gc.CTBOOL):
++ return int64(obj.Bool2int(n.Bool())), true
++ }
++ return
++}
++
++// gins is called by the front end.
++// It synthesizes some multiple-instruction sequences
++// so the front end can stay simpler.
++func gins(as int, f, t *gc.Node) *obj.Prog {
++ if as >= obj.A_ARCHSPECIFIC {
++ if x, ok := intLiteral(f); ok {
++ ginscon(as, x, t)
++ return nil // caller must not use
++ }
++ }
++ if as == s390x.ACMP || as == s390x.ACMPU {
++ if x, ok := intLiteral(t); ok {
++ ginscon2(as, f, x)
++ return nil // caller must not use
++ }
++ }
++ return rawgins(as, f, t)
++}
++
++/*
++ * generate one instruction:
++ * as f, t
++ */
++func rawgins(as int, f *gc.Node, t *gc.Node) *obj.Prog {
++ // TODO(austin): Add self-move test like in 6g (but be careful
++ // of truncation moves)
++
++ p := gc.Prog(as)
++ gc.Naddr(&p.From, f)
++ gc.Naddr(&p.To, t)
++
++ switch as {
++ // Bad things the front end has done to us. Crash to find call stack.
++ case s390x.AAND, s390x.AMULLD:
++ if p.From.Type == obj.TYPE_CONST {
++ gc.Debug['h'] = 1
++ gc.Fatalf("bad inst: %v", p)
++ }
++ case s390x.ACMP, s390x.ACMPU:
++ if p.From.Type == obj.TYPE_MEM || p.To.Type == obj.TYPE_MEM {
++ gc.Debug['h'] = 1
++ gc.Fatalf("bad inst: %v", p)
++ }
++ }
++
++ if gc.Debug['g'] != 0 {
++ fmt.Printf("%v\n", p)
++ }
++
++ w := int32(0)
++ switch as {
++ case s390x.AMOVB, s390x.AMOVBZ:
++ w = 1
++
++ case s390x.AMOVH, s390x.AMOVHZ:
++ w = 2
++
++ case s390x.AMOVW, s390x.AMOVWZ:
++ w = 4
++
++ case s390x.AMOVD:
++ if p.From.Type == obj.TYPE_CONST || p.From.Type == obj.TYPE_ADDR {
++ break
++ }
++ w = 8
++ }
++
++ if w != 0 && ((f != nil && p.From.Width < int64(w)) || (t != nil && p.To.Type != obj.TYPE_REG && p.To.Width > int64(w))) {
++ gc.Dump("f", f)
++ gc.Dump("t", t)
++ gc.Fatalf("bad width: %v (%d, %d)\n", p, p.From.Width, p.To.Width)
++ }
++
++ return p
++}
++
++/*
++ * return Axxx for Oxxx on type t.
++ */
++func optoas(op gc.Op, t *gc.Type) int {
++ if t == nil {
++ gc.Fatalf("optoas: t is nil")
++ }
++
++ // avoid constant conversions in switches below
++ const (
++ OMINUS_ = uint32(gc.OMINUS) << 16
++ OLSH_ = uint32(gc.OLSH) << 16
++ ORSH_ = uint32(gc.ORSH) << 16
++ OADD_ = uint32(gc.OADD) << 16
++ OSUB_ = uint32(gc.OSUB) << 16
++ OMUL_ = uint32(gc.OMUL) << 16
++ ODIV_ = uint32(gc.ODIV) << 16
++ OOR_ = uint32(gc.OOR) << 16
++ OAND_ = uint32(gc.OAND) << 16
++ OXOR_ = uint32(gc.OXOR) << 16
++ OEQ_ = uint32(gc.OEQ) << 16
++ ONE_ = uint32(gc.ONE) << 16
++ OLT_ = uint32(gc.OLT) << 16
++ OLE_ = uint32(gc.OLE) << 16
++ OGE_ = uint32(gc.OGE) << 16
++ OGT_ = uint32(gc.OGT) << 16
++ OCMP_ = uint32(gc.OCMP) << 16
++ OAS_ = uint32(gc.OAS) << 16
++ OHMUL_ = uint32(gc.OHMUL) << 16
++ OSQRT_ = uint32(gc.OSQRT) << 16
++ )
++
++ a := int(obj.AXXX)
++ switch uint32(op)<<16 | uint32(gc.Simtype[t.Etype]) {
++ default:
++ gc.Fatalf("optoas: no entry for op=%v type=%v", gc.Oconv(int(op), 0), t)
++
++ case OEQ_ | gc.TBOOL,
++ OEQ_ | gc.TINT8,
++ OEQ_ | gc.TUINT8,
++ OEQ_ | gc.TINT16,
++ OEQ_ | gc.TUINT16,
++ OEQ_ | gc.TINT32,
++ OEQ_ | gc.TUINT32,
++ OEQ_ | gc.TINT64,
++ OEQ_ | gc.TUINT64,
++ OEQ_ | gc.TPTR32,
++ OEQ_ | gc.TPTR64,
++ OEQ_ | gc.TFLOAT32,
++ OEQ_ | gc.TFLOAT64:
++ a = s390x.ABEQ
++
++ case ONE_ | gc.TBOOL,
++ ONE_ | gc.TINT8,
++ ONE_ | gc.TUINT8,
++ ONE_ | gc.TINT16,
++ ONE_ | gc.TUINT16,
++ ONE_ | gc.TINT32,
++ ONE_ | gc.TUINT32,
++ ONE_ | gc.TINT64,
++ ONE_ | gc.TUINT64,
++ ONE_ | gc.TPTR32,
++ ONE_ | gc.TPTR64,
++ ONE_ | gc.TFLOAT32,
++ ONE_ | gc.TFLOAT64:
++ a = s390x.ABNE
++
++ case OLT_ | gc.TINT8, // ACMP
++ OLT_ | gc.TINT16,
++ OLT_ | gc.TINT32,
++ OLT_ | gc.TINT64,
++ OLT_ | gc.TUINT8,
++ // ACMPU
++ OLT_ | gc.TUINT16,
++ OLT_ | gc.TUINT32,
++ OLT_ | gc.TUINT64,
++ OLT_ | gc.TFLOAT32,
++ // AFCMPU
++ OLT_ | gc.TFLOAT64:
++ a = s390x.ABLT
++
++ case OLE_ | gc.TINT8, // ACMP
++ OLE_ | gc.TINT16,
++ OLE_ | gc.TINT32,
++ OLE_ | gc.TINT64,
++ OLE_ | gc.TUINT8,
++ // ACMPU
++ OLE_ | gc.TUINT16,
++ OLE_ | gc.TUINT32,
++ OLE_ | gc.TUINT64,
++ OLE_ | gc.TFLOAT32,
++ OLE_ | gc.TFLOAT64:
++ a = s390x.ABLE
++
++ case OGT_ | gc.TINT8,
++ OGT_ | gc.TINT16,
++ OGT_ | gc.TINT32,
++ OGT_ | gc.TINT64,
++ OGT_ | gc.TUINT8,
++ OGT_ | gc.TUINT16,
++ OGT_ | gc.TUINT32,
++ OGT_ | gc.TUINT64,
++ OGT_ | gc.TFLOAT32,
++ OGT_ | gc.TFLOAT64:
++ a = s390x.ABGT
++
++ case OGE_ | gc.TINT8,
++ OGE_ | gc.TINT16,
++ OGE_ | gc.TINT32,
++ OGE_ | gc.TINT64,
++ OGE_ | gc.TUINT8,
++ OGE_ | gc.TUINT16,
++ OGE_ | gc.TUINT32,
++ OGE_ | gc.TUINT64,
++ OGE_ | gc.TFLOAT32,
++ OGE_ | gc.TFLOAT64:
++ a = s390x.ABGE
++
++ case OCMP_ | gc.TBOOL,
++ OCMP_ | gc.TINT8,
++ OCMP_ | gc.TINT16,
++ OCMP_ | gc.TINT32,
++ OCMP_ | gc.TPTR32,
++ OCMP_ | gc.TINT64:
++ a = s390x.ACMP
++
++ case OCMP_ | gc.TUINT8,
++ OCMP_ | gc.TUINT16,
++ OCMP_ | gc.TUINT32,
++ OCMP_ | gc.TUINT64,
++ OCMP_ | gc.TPTR64:
++ a = s390x.ACMPU
++
++ case OCMP_ | gc.TFLOAT32:
++ a = s390x.ACEBR
++
++ case OCMP_ | gc.TFLOAT64:
++ a = s390x.AFCMPU
++
++ case OAS_ | gc.TBOOL,
++ OAS_ | gc.TINT8:
++ a = s390x.AMOVB
++
++ case OAS_ | gc.TUINT8:
++ a = s390x.AMOVBZ
++
++ case OAS_ | gc.TINT16:
++ a = s390x.AMOVH
++
++ case OAS_ | gc.TUINT16:
++ a = s390x.AMOVHZ
++
++ case OAS_ | gc.TINT32:
++ a = s390x.AMOVW
++
++ case OAS_ | gc.TUINT32,
++ OAS_ | gc.TPTR32:
++ a = s390x.AMOVWZ
++
++ case OAS_ | gc.TINT64,
++ OAS_ | gc.TUINT64,
++ OAS_ | gc.TPTR64:
++ a = s390x.AMOVD
++
++ case OAS_ | gc.TFLOAT32:
++ a = s390x.AFMOVS
++
++ case OAS_ | gc.TFLOAT64:
++ a = s390x.AFMOVD
++
++ case OADD_ | gc.TINT8,
++ OADD_ | gc.TUINT8,
++ OADD_ | gc.TINT16,
++ OADD_ | gc.TUINT16,
++ OADD_ | gc.TINT32,
++ OADD_ | gc.TUINT32,
++ OADD_ | gc.TPTR32,
++ OADD_ | gc.TINT64,
++ OADD_ | gc.TUINT64,
++ OADD_ | gc.TPTR64:
++ a = s390x.AADD
++
++ case OADD_ | gc.TFLOAT32:
++ a = s390x.AFADDS
++
++ case OADD_ | gc.TFLOAT64:
++ a = s390x.AFADD
++
++ case OSUB_ | gc.TINT8,
++ OSUB_ | gc.TUINT8,
++ OSUB_ | gc.TINT16,
++ OSUB_ | gc.TUINT16,
++ OSUB_ | gc.TINT32,
++ OSUB_ | gc.TUINT32,
++ OSUB_ | gc.TPTR32,
++ OSUB_ | gc.TINT64,
++ OSUB_ | gc.TUINT64,
++ OSUB_ | gc.TPTR64:
++ a = s390x.ASUB
++
++ case OSUB_ | gc.TFLOAT32:
++ a = s390x.AFSUBS
++
++ case OSUB_ | gc.TFLOAT64:
++ a = s390x.AFSUB
++
++ case OMINUS_ | gc.TINT8,
++ OMINUS_ | gc.TUINT8,
++ OMINUS_ | gc.TINT16,
++ OMINUS_ | gc.TUINT16,
++ OMINUS_ | gc.TINT32,
++ OMINUS_ | gc.TUINT32,
++ OMINUS_ | gc.TPTR32,
++ OMINUS_ | gc.TINT64,
++ OMINUS_ | gc.TUINT64,
++ OMINUS_ | gc.TPTR64:
++ a = s390x.ANEG
++
++ case OAND_ | gc.TINT8,
++ OAND_ | gc.TUINT8,
++ OAND_ | gc.TINT16,
++ OAND_ | gc.TUINT16,
++ OAND_ | gc.TINT32,
++ OAND_ | gc.TUINT32,
++ OAND_ | gc.TPTR32,
++ OAND_ | gc.TINT64,
++ OAND_ | gc.TUINT64,
++ OAND_ | gc.TPTR64:
++ a = s390x.AAND
++
++ case OOR_ | gc.TINT8,
++ OOR_ | gc.TUINT8,
++ OOR_ | gc.TINT16,
++ OOR_ | gc.TUINT16,
++ OOR_ | gc.TINT32,
++ OOR_ | gc.TUINT32,
++ OOR_ | gc.TPTR32,
++ OOR_ | gc.TINT64,
++ OOR_ | gc.TUINT64,
++ OOR_ | gc.TPTR64:
++ a = s390x.AOR
++
++ case OXOR_ | gc.TINT8,
++ OXOR_ | gc.TUINT8,
++ OXOR_ | gc.TINT16,
++ OXOR_ | gc.TUINT16,
++ OXOR_ | gc.TINT32,
++ OXOR_ | gc.TUINT32,
++ OXOR_ | gc.TPTR32,
++ OXOR_ | gc.TINT64,
++ OXOR_ | gc.TUINT64,
++ OXOR_ | gc.TPTR64:
++ a = s390x.AXOR
++
++ case OLSH_ | gc.TINT8,
++ OLSH_ | gc.TUINT8,
++ OLSH_ | gc.TINT16,
++ OLSH_ | gc.TUINT16,
++ OLSH_ | gc.TINT32,
++ OLSH_ | gc.TUINT32,
++ OLSH_ | gc.TPTR32,
++ OLSH_ | gc.TINT64,
++ OLSH_ | gc.TUINT64,
++ OLSH_ | gc.TPTR64:
++ a = s390x.ASLD
++
++ case ORSH_ | gc.TUINT8,
++ ORSH_ | gc.TUINT16,
++ ORSH_ | gc.TUINT32,
++ ORSH_ | gc.TPTR32,
++ ORSH_ | gc.TUINT64,
++ ORSH_ | gc.TPTR64:
++ a = s390x.ASRD
++
++ case ORSH_ | gc.TINT8,
++ ORSH_ | gc.TINT16,
++ ORSH_ | gc.TINT32,
++ ORSH_ | gc.TINT64:
++ a = s390x.ASRAD
++
++ case OHMUL_ | gc.TINT64:
++ a = s390x.AMULHD
++
++ case OHMUL_ | gc.TUINT64,
++ OHMUL_ | gc.TPTR64:
++ a = s390x.AMULHDU
++
++ case OMUL_ | gc.TINT8,
++ OMUL_ | gc.TINT16,
++ OMUL_ | gc.TINT32,
++ OMUL_ | gc.TINT64:
++ a = s390x.AMULLD
++
++ case OMUL_ | gc.TUINT8,
++ OMUL_ | gc.TUINT16,
++ OMUL_ | gc.TUINT32,
++ OMUL_ | gc.TPTR32,
++ // don't use word multiply, the high 32-bit are undefined.
++ OMUL_ | gc.TUINT64,
++ OMUL_ | gc.TPTR64:
++ // for 64-bit multiplies, signedness doesn't matter.
++ a = s390x.AMULLD
++
++ case OMUL_ | gc.TFLOAT32:
++ a = s390x.AFMULS
++
++ case OMUL_ | gc.TFLOAT64:
++ a = s390x.AFMUL
++
++ case ODIV_ | gc.TINT8,
++ ODIV_ | gc.TINT16,
++ ODIV_ | gc.TINT32,
++ ODIV_ | gc.TINT64:
++ a = s390x.ADIVD
++
++ case ODIV_ | gc.TUINT8,
++ ODIV_ | gc.TUINT16,
++ ODIV_ | gc.TUINT32,
++ ODIV_ | gc.TPTR32,
++ ODIV_ | gc.TUINT64,
++ ODIV_ | gc.TPTR64:
++ a = s390x.ADIVDU
++
++ case ODIV_ | gc.TFLOAT32:
++ a = s390x.AFDIVS
++
++ case ODIV_ | gc.TFLOAT64:
++ a = s390x.AFDIV
++
++ case OSQRT_ | gc.TFLOAT64:
++ a = s390x.AFSQRT
++ }
++
++ return a
++}
++
++const (
++ ODynam = 1 << 0
++ OAddable = 1 << 1
++)
++
++func xgen(n *gc.Node, a *gc.Node, o int) bool {
++ // TODO(minux)
++
++ return -1 != 0 /*TypeKind(100016)*/
++}
++
++func sudoclean() {
++ return
++}
++
++/*
++ * generate code to compute address of n,
++ * a reference to a (perhaps nested) field inside
++ * an array or struct.
++ * return 0 on failure, 1 on success.
++ * on success, leaves usable address in a.
++ *
++ * caller is responsible for calling sudoclean
++ * after successful sudoaddable,
++ * to release the register used for a.
++ */
++func sudoaddable(as int, n *gc.Node, a *obj.Addr) bool {
++ // TODO(minux)
++
++ *a = obj.Addr{}
++ return false
++}
+diff --git a/src/cmd/compile/internal/s390x/opt.go b/src/cmd/compile/internal/s390x/opt.go
+new file mode 100644
+index 0000000..07c2814
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/opt.go
+@@ -0,0 +1,12 @@
++// Copyright 2014 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.
++
++package s390x
++
++// Many Power ISA arithmetic and logical instructions come in four
++// standard variants. These bits let us map between variants.
++const (
++ V_CC = 1 << 0 // xCC (affect CR field 0 flags)
++ V_V = 1 << 1 // xV (affect SO and OV flags)
++)
+diff --git a/src/cmd/compile/internal/s390x/peep.go b/src/cmd/compile/internal/s390x/peep.go
+new file mode 100644
+index 0000000..9d7e8cc
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/peep.go
+@@ -0,0 +1,1303 @@
++// Derived from Inferno utils/6c/peep.c
++// http://code.google.com/p/inferno-os/source/browse/utils/6c/peep.c
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/compile/internal/gc"
++ "cmd/internal/obj"
++ "cmd/internal/obj/s390x"
++ "fmt"
++)
++
++var gactive uint32
++var mergeopmv_cnt int
++var cnb_cnt int
++
++func peep(firstp *obj.Prog) {
++ g := (*gc.Graph)(gc.Flowstart(firstp, nil))
++ if g == nil {
++ return
++ }
++ gactive = 0
++
++ var p *obj.Prog
++
++ if false {
++ // constant propagation
++ // find MOV $con,R followed by
++ // another MOV $con,R without
++ // setting R in the interim
++ for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++ p = r.Prog
++ switch p.As {
++ case s390x.AMOVB,
++ s390x.AMOVW,
++ s390x.AMOVD:
++ if regtyp(&p.To) {
++ if p.From.Type == obj.TYPE_CONST || p.From.Type == obj.TYPE_FCONST {
++ conprop(r)
++ }
++ }
++ }
++ }
++ }
++
++ var r *gc.Flow
++ var t int
++loop1:
++ // if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ // gc.Dumpit("loop1", g.Start, 0)
++ // }
++
++ t = 0
++ for r = g.Start; r != nil; r = r.Link {
++ p = r.Prog
++
++ // TODO(austin) Handle smaller moves. arm and amd64
++ // distinguish between moves that moves that *must*
++ // sign/zero extend and moves that don't care so they
++ // can eliminate moves that don't care without
++ // breaking moves that do care. This might let us
++ // simplify or remove the next peep loop, too.
++ if p.As == s390x.AMOVD || p.As == s390x.AFMOVD {
++ if regtyp(&p.To) {
++ // Try to eliminate reg->reg moves
++ if regtyp(&p.From) {
++ if p.From.Type == p.To.Type {
++ if copyprop(r) {
++ excise(r)
++ t++
++ } else if subprop(r) && copyprop(r) {
++ excise(r)
++ t++
++ }
++ }
++ }
++
++ // Convert uses to $0 to uses of R0 and
++ // propagate R0
++ if regzer(&p.From) != 0 {
++ if p.To.Type == obj.TYPE_REG {
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = s390x.REGZERO
++ if copyprop(r) {
++ excise(r)
++ t++
++ } else if subprop(r) && copyprop(r) {
++ excise(r)
++ t++
++ }
++ }
++ }
++ }
++ }
++ }
++
++ if t != 0 {
++ goto loop1
++ }
++
++ if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ gc.Dumpit("pass7 copyprop", g.Start, 0)
++ }
++
++ /*
++ * look for MOVB x,R; MOVB R,R (for small MOVs not handled above)
++ */
++ var p1 *obj.Prog
++ var r1 *gc.Flow
++ for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++ p = r.Prog
++ switch p.As {
++ default:
++ continue
++
++ case s390x.AMOVH,
++ s390x.AMOVHZ,
++ s390x.AMOVB,
++ s390x.AMOVBZ,
++ s390x.AMOVW,
++ s390x.AMOVWZ:
++ if p.To.Type != obj.TYPE_REG {
++ continue
++ }
++ }
++
++ r1 = r.Link
++ if r1 == nil {
++ continue
++ }
++ p1 = r1.Prog
++ if p1.As != p.As {
++ continue
++ }
++ if p1.From.Type != obj.TYPE_REG || p1.From.Reg != p.To.Reg {
++ continue
++ }
++ if p1.To.Type != obj.TYPE_REG || p1.To.Reg != p.To.Reg {
++ continue
++ }
++ excise(r1)
++ }
++
++ if gc.Debug['P'] > 1 {
++ goto ret /* allow following code improvement to be suppressed */
++ }
++
++ if gc.Debug['p'] == 0 {
++ // load pipelining
++ // push any load from memory as early as possible
++ // to give it time to complete before use.
++ for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++ p = r.Prog
++ switch p.As {
++ case s390x.AMOVB,
++ s390x.AMOVW,
++ s390x.AMOVD:
++
++ if regtyp(&p.To) && !regconsttyp(&p.From) {
++ pushback(r)
++ }
++ }
++ }
++ if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ gc.Dumpit("pass8 push load as early as possible", g.Start, 0)
++ }
++
++ }
++
++ /*
++ * look for OP a, b, c; MOV c, d; -> OP a, b, d;
++ */
++
++ for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++
++ if (gc.Debugmergeopmv != -1) && (mergeopmv_cnt >= gc.Debugmergeopmv) {
++ break
++ }
++
++ p = r.Prog
++
++ switch p.As {
++ case s390x.AADD,
++ s390x.AADDC,
++ s390x.AADDME,
++ s390x.AADDE,
++ s390x.AADDZE,
++ s390x.AAND,
++ s390x.AANDN,
++ s390x.ADIVW,
++ s390x.ADIVWU,
++ s390x.ADIVD,
++ s390x.ADIVDU,
++ s390x.AMULLW,
++ s390x.AMULHD,
++ s390x.AMULHDU,
++ s390x.AMULLD,
++ s390x.ANAND,
++ s390x.ANOR,
++ s390x.AOR,
++ s390x.AORN,
++ s390x.AREM,
++ s390x.AREMU,
++ s390x.AREMD,
++ s390x.AREMDU,
++ s390x.ARLWMI,
++ s390x.ARLWNM,
++ s390x.ASLW,
++ s390x.ASRAW,
++ s390x.ASRW,
++ s390x.ASLD,
++ s390x.ASRAD,
++ s390x.ASRD,
++ s390x.ASUB,
++ s390x.ASUBC,
++ s390x.ASUBME,
++ s390x.ASUBE,
++ s390x.ASUBZE,
++ s390x.AXOR:
++ if p.To.Type != obj.TYPE_REG {
++ continue
++ }
++ if p.Reg == 0 { // Only for 3 ops instruction
++ continue
++ }
++ default:
++ continue
++ }
++
++ r1 := r.Link
++ for ; r1 != nil; r1 = r1.Link {
++ if r1.Prog.As != obj.ANOP {
++ break
++ }
++ }
++
++ if r1 == nil {
++ continue
++ }
++
++ p1 := r1.Prog
++ switch p1.As {
++ case s390x.AMOVD,
++ s390x.AMOVW, s390x.AMOVWZ,
++ s390x.AMOVH, s390x.AMOVHZ,
++ s390x.AMOVB, s390x.AMOVBZ:
++ if p1.To.Type != obj.TYPE_REG {
++ continue
++ }
++
++ default:
++ continue
++ }
++ if p1.From.Type != obj.TYPE_REG || p1.From.Reg != p.To.Reg {
++ continue
++ }
++
++ if trymergeopmv(r1) {
++ p.To = p1.To
++ excise(r1)
++ mergeopmv_cnt += 1
++ }
++ }
++
++ if gc.Debug['v'] != 0 {
++ gc.Dumpit("Merge operation and move", g.Start, 0)
++ }
++
++ /*
++ * look for CMP x, y; Branch -> Compare and branch
++ */
++
++ if gc.Debugcnb == 0 {
++ goto ret
++ }
++
++ for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++ if (gc.Debugcnb != -1) && (cnb_cnt >= gc.Debugcnb) {
++ break
++ }
++ p = r.Prog
++ r1 = gc.Uniqs(r)
++ if r1 == nil {
++ continue
++ }
++ p1 = r1.Prog
++
++ switch p.As {
++ case s390x.ACMP:
++ switch p1.As {
++ case s390x.ABCL, s390x.ABC:
++ continue
++ case s390x.ABEQ:
++ t = s390x.ACMPBEQ
++ case s390x.ABGE:
++ t = s390x.ACMPBGE
++ case s390x.ABGT:
++ t = s390x.ACMPBGT
++ case s390x.ABLE:
++ t = s390x.ACMPBLE
++ case s390x.ABLT:
++ t = s390x.ACMPBLT
++ case s390x.ABNE:
++ t = s390x.ACMPBNE
++ default:
++ continue
++ }
++
++ case s390x.ACMPU:
++ switch p1.As {
++ case s390x.ABCL, s390x.ABC:
++ continue
++ case s390x.ABEQ:
++ t = s390x.ACMPUBEQ
++ case s390x.ABGE:
++ t = s390x.ACMPUBGE
++ case s390x.ABGT:
++ t = s390x.ACMPUBGT
++ case s390x.ABLE:
++ t = s390x.ACMPUBLE
++ case s390x.ABLT:
++ t = s390x.ACMPUBLT
++ case s390x.ABNE:
++ t = s390x.ACMPUBNE
++ default:
++ continue
++ }
++
++ case s390x.ACMPW, s390x.ACMPWU:
++ continue
++
++ default:
++ continue
++ }
++
++ if gc.Debug['D'] != 0 {
++ fmt.Printf("cnb %v; %v -> ", p, p1)
++ }
++
++ if p1.To.Sym != nil {
++ continue
++ }
++
++ if p.To.Type == obj.TYPE_REG {
++ p1.As = int16(t)
++ p1.From = p.From
++ p1.Reg = p.To.Reg
++ p1.From3 = nil
++ } else if p.To.Type == obj.TYPE_CONST {
++ switch p.As {
++ case s390x.ACMP, s390x.ACMPW:
++ if (p.To.Offset < -(1 << 7)) || (p.To.Offset >= ((1 << 7) - 1)) {
++ continue
++ }
++ case s390x.ACMPU, s390x.ACMPWU:
++ if p.To.Offset >= (1 << 8) {
++ continue
++ }
++ default:
++ }
++ p1.As = int16(t)
++ p1.From = p.From
++ p1.Reg = 0
++ p1.From3 = new(obj.Addr)
++ *(p1.From3) = p.To
++ } else {
++ continue
++ }
++
++ if gc.Debug['D'] != 0 {
++ fmt.Printf("%v\n", p1)
++ }
++ cnb_cnt += 1
++ excise(r)
++ }
++
++ if gc.Debug['v'] != 0 {
++ gc.Dumpit("compare and branch", g.Start, 0)
++ }
++
++ret:
++ gc.Flowend(g)
++}
++
++func conprop(r0 *gc.Flow) {
++ var p *obj.Prog
++ var t int
++
++ p0 := (*obj.Prog)(r0.Prog)
++ v0 := (*obj.Addr)(&p0.To)
++ r := (*gc.Flow)(r0)
++
++loop:
++ r = gc.Uniqs(r)
++ if r == nil || r == r0 {
++ return
++ }
++ if gc.Uniqp(r) == nil {
++ return
++ }
++
++ p = r.Prog
++ t = copyu(p, v0, nil)
++ switch t {
++ case 0, // miss
++ 1: // use
++ goto loop
++
++ case 2, // rar
++ 4: // use and set
++ break
++
++ case 3: // set
++ if p.As == p0.As {
++ if p.From.Type == p0.From.Type {
++ if p.From.Reg == p0.From.Reg {
++ if p.From.Node == p0.From.Node {
++ if p.From.Offset == p0.From.Offset {
++ if p.From.Scale == p0.From.Scale {
++ if p.From.Type == obj.TYPE_FCONST && p.From.Val.(float64) == p0.From.Val.(float64) {
++ if p.From.Index == p0.From.Index {
++ excise(r)
++ goto loop
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++}
++
++// is 'a' a register or constant?
++func regconsttyp(a *obj.Addr) bool {
++ if regtyp(a) {
++ return true
++ }
++ switch a.Type {
++ case obj.TYPE_CONST,
++ obj.TYPE_FCONST,
++ obj.TYPE_SCONST,
++ obj.TYPE_ADDR: // TODO(rsc): Not all TYPE_ADDRs are constants.
++ return true
++ }
++
++ return false
++}
++
++func pushback(r0 *gc.Flow) {
++ var r *gc.Flow
++ var p *obj.Prog
++
++ var b *gc.Flow
++ p0 := (*obj.Prog)(r0.Prog)
++ for r = gc.Uniqp(r0); r != nil && gc.Uniqs(r) != nil; r = gc.Uniqp(r) {
++ p = r.Prog
++ if p.As != obj.ANOP {
++ if !regconsttyp(&p.From) || !regtyp(&p.To) {
++ break
++ }
++ if copyu(p, &p0.To, nil) != 0 || copyu(p0, &p.To, nil) != 0 {
++ break
++ }
++ }
++
++ if p.As == obj.ACALL {
++ break
++ }
++ b = r
++ }
++
++ if b == nil {
++ if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ fmt.Printf("no pushback: %v\n", r0.Prog)
++ if r != nil {
++ fmt.Printf("\t%v [%v]\n", r.Prog, gc.Uniqs(r) != nil)
++ }
++ }
++
++ return
++ }
++
++ if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ fmt.Printf("pushback\n")
++ for r := (*gc.Flow)(b); ; r = r.Link {
++ fmt.Printf("\t%v\n", r.Prog)
++ if r == r0 {
++ break
++ }
++ }
++ }
++
++ t := obj.Prog(*r0.Prog)
++ for r = gc.Uniqp(r0); ; r = gc.Uniqp(r) {
++ p0 = r.Link.Prog
++ p = r.Prog
++ p0.As = p.As
++ p0.Lineno = p.Lineno
++ p0.From = p.From
++ p0.To = p.To
++ p0.From3 = p.From3
++ p0.Reg = p.Reg
++ p0.RegTo2 = p.RegTo2
++ if r == b {
++ break
++ }
++ }
++
++ p0 = r.Prog
++ p0.As = t.As
++ p0.Lineno = t.Lineno
++ p0.From = t.From
++ p0.To = t.To
++ p0.From3 = t.From3
++ p0.Reg = t.Reg
++ p0.RegTo2 = t.RegTo2
++
++ if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ fmt.Printf("\tafter\n")
++ for r := (*gc.Flow)(b); ; r = r.Link {
++ fmt.Printf("\t%v\n", r.Prog)
++ if r == r0 {
++ break
++ }
++ }
++ }
++}
++
++func excise(r *gc.Flow) {
++ p := (*obj.Prog)(r.Prog)
++ if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++ fmt.Printf("%v ===delete===\n", p)
++ }
++ obj.Nopout(p)
++ gc.Ostats.Ndelmov++
++}
++
++/*
++ * regzer returns 1 if a's value is 0 (a is R0 or $0)
++ */
++func regzer(a *obj.Addr) int {
++ if a.Type == obj.TYPE_CONST || a.Type == obj.TYPE_ADDR {
++ if a.Sym == nil && a.Reg == 0 {
++ if a.Offset == 0 {
++ return 1
++ }
++ }
++ }
++ if a.Type == obj.TYPE_REG {
++ if a.Reg == s390x.REGZERO {
++ return 1
++ }
++ }
++ return 0
++}
++
++func regtyp(a *obj.Addr) bool {
++ // TODO(rsc): Floating point register exclusions?
++ return a.Type == obj.TYPE_REG && s390x.REG_R0 <= a.Reg && a.Reg <= s390x.REG_F15 && a.Reg != s390x.REGZERO
++}
++
++/*
++ * the idea is to substitute
++ * one register for another
++ * from one MOV to another
++ * MOV a, R1
++ * ADD b, R1 / no use of R2
++ * MOV R1, R2
++ * would be converted to
++ * MOV a, R2
++ * ADD b, R2
++ * MOV R2, R1
++ * hopefully, then the former or latter MOV
++ * will be eliminated by copy propagation.
++ *
++ * r0 (the argument, not the register) is the MOV at the end of the
++ * above sequences. This returns 1 if it modified any instructions.
++ */
++func subprop(r0 *gc.Flow) bool {
++ p := (*obj.Prog)(r0.Prog)
++ v1 := (*obj.Addr)(&p.From)
++ if !regtyp(v1) {
++ return false
++ }
++ v2 := (*obj.Addr)(&p.To)
++ if !regtyp(v2) {
++ return false
++ }
++ for r := gc.Uniqp(r0); r != nil; r = gc.Uniqp(r) {
++ if gc.Uniqs(r) == nil {
++ break
++ }
++ p = r.Prog
++ if p.As == obj.AVARDEF || p.As == obj.AVARKILL {
++ continue
++ }
++ if p.Info.Flags&gc.Call != 0 {
++ return false
++ }
++
++ if p.Info.Flags&(gc.RightRead|gc.RightWrite) == gc.RightWrite {
++ if p.To.Type == v1.Type {
++ if p.To.Reg == v1.Reg {
++ copysub(&p.To, v1, v2, 1)
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("gotit: %v->%v\n%v", gc.Ctxt.Dconv(v1), gc.Ctxt.Dconv(v2), r.Prog)
++ if p.From.Type == v2.Type {
++ fmt.Printf(" excise")
++ }
++ fmt.Printf("\n")
++ }
++
++ for r = gc.Uniqs(r); r != r0; r = gc.Uniqs(r) {
++ p = r.Prog
++ copysub(&p.From, v1, v2, 1)
++ copysub1(p, v1, v2, 1)
++ copysub(&p.To, v1, v2, 1)
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("%v\n", r.Prog)
++ }
++ }
++
++ t := int(int(v1.Reg))
++ v1.Reg = v2.Reg
++ v2.Reg = int16(t)
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("%v last\n", r.Prog)
++ }
++ return true
++ }
++ }
++ }
++
++ if copyau(&p.From, v2) || copyau1(p, v2) || copyau(&p.To, v2) {
++ break
++ }
++ if copysub(&p.From, v1, v2, 0) != 0 || copysub1(p, v1, v2, 0) != 0 || copysub(&p.To, v1, v2, 0) != 0 {
++ break
++ }
++ }
++
++ return false
++}
++
++/*
++ * The idea is to remove redundant copies.
++ * v1->v2 F=0
++ * (use v2 s/v2/v1/)*
++ * set v1 F=1
++ * use v2 return fail (v1->v2 move must remain)
++ * -----------------
++ * v1->v2 F=0
++ * (use v2 s/v2/v1/)*
++ * set v1 F=1
++ * set v2 return success (caller can remove v1->v2 move)
++ */
++func copyprop(r0 *gc.Flow) bool {
++ p := (*obj.Prog)(r0.Prog)
++ v1 := (*obj.Addr)(&p.From)
++ v2 := (*obj.Addr)(&p.To)
++ if copyas(v1, v2) {
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("eliminating self-move: %v\n", r0.Prog)
++ }
++ return true
++ }
++
++ gactive++
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("trying to eliminate %v->%v move from:\n%v\n", gc.Ctxt.Dconv(v1), gc.Ctxt.Dconv(v2), r0.Prog)
++ }
++ return copy1(v1, v2, r0.S1, 0)
++}
++
++// copy1 replaces uses of v2 with v1 starting at r and returns 1 if
++// all uses were rewritten.
++func copy1(v1 *obj.Addr, v2 *obj.Addr, r *gc.Flow, f int) bool {
++ if uint32(r.Active) == gactive {
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("act set; return 1\n")
++ }
++ return true
++ }
++
++ r.Active = int32(gactive)
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("copy1 replace %v with %v f=%d\n", gc.Ctxt.Dconv(v2), gc.Ctxt.Dconv(v1), f)
++ }
++ var t int
++ var p *obj.Prog
++ for ; r != nil; r = r.S1 {
++ p = r.Prog
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("%v", p)
++ }
++ if f == 0 && gc.Uniqp(r) == nil {
++ // Multiple predecessors; conservatively
++ // assume v1 was set on other path
++ f = 1
++
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; merge; f=%d", f)
++ }
++ }
++
++ t = copyu(p, v2, nil)
++ switch t {
++ case 2: /* rar, can't split */
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; %v rar; return 0\n", gc.Ctxt.Dconv(v2))
++ }
++ return false
++
++ case 3: /* set */
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; %v set; return 1\n", gc.Ctxt.Dconv(v2))
++ }
++ return true
++
++ case 1, /* used, substitute */
++ 4: /* use and set */
++ if f != 0 {
++ if gc.Debug['P'] == 0 {
++ return false
++ }
++ if t == 4 {
++ fmt.Printf("; %v used+set and f=%d; return 0\n", gc.Ctxt.Dconv(v2), f)
++ } else {
++ fmt.Printf("; %v used and f=%d; return 0\n", gc.Ctxt.Dconv(v2), f)
++ }
++ return false
++ }
++
++ if copyu(p, v2, v1) != 0 {
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; sub fail; return 0\n")
++ }
++ return false
++ }
++
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; sub %v->%v\n => %v", gc.Ctxt.Dconv(v2), gc.Ctxt.Dconv(v1), p)
++ }
++ if t == 4 {
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; %v used+set; return 1\n", gc.Ctxt.Dconv(v2))
++ }
++ return true
++ }
++ }
++
++ if f == 0 {
++ t = copyu(p, v1, nil)
++ if f == 0 && (t == 2 || t == 3 || t == 4) {
++ f = 1
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("; %v set and !f; f=%d", gc.Ctxt.Dconv(v1), f)
++ }
++ }
++ }
++
++ if gc.Debug['P'] != 0 {
++ fmt.Printf("\n")
++ }
++ if r.S2 != nil {
++ if !copy1(v1, v2, r.S2, f) {
++ return false
++ }
++ }
++ }
++
++ return true
++}
++
++// If s==nil, copyu returns the set/use of v in p; otherwise, it
++// modifies p to replace reads of v with reads of s and returns 0 for
++// success or non-zero for failure.
++//
++// If s==nil, copy returns one of the following values:
++// 1 if v only used
++// 2 if v is set and used in one address (read-alter-rewrite;
++// can't substitute)
++// 3 if v is only set
++// 4 if v is set in one address and used in another (so addresses
++// can be rewritten independently)
++// 0 otherwise (not touched)
++func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
++ if p.From3Type() != obj.TYPE_NONE && p.From3Type() != obj.TYPE_CONST {
++ // Currently we never generate a From3 with anything other than a constant in it.
++ fmt.Printf("copyu: From3 (%v) not implemented\n", gc.Ctxt.Dconv(p.From3))
++ }
++
++ switch p.As {
++ default:
++ fmt.Printf("copyu: can't find %v\n", obj.Aconv(int(p.As)))
++ return 2
++
++ case obj.ANOP, /* read p->from, write p->to */
++ s390x.AMOVH,
++ s390x.AMOVHZ,
++ s390x.AMOVB,
++ s390x.AMOVBZ,
++ s390x.AMOVW,
++ s390x.AMOVWZ,
++ s390x.AMOVD,
++ s390x.ANEG,
++ s390x.AADDME,
++ s390x.AADDZE,
++ s390x.ASUBME,
++ s390x.ASUBZE,
++ s390x.AFMOVS,
++ s390x.AFMOVD,
++ s390x.AFRSP,
++ s390x.AFNEG,
++ s390x.ALDEBR,
++ s390x.ACLFEBR,
++ s390x.ACLGEBR,
++ s390x.ACLFDBR,
++ s390x.ACLGDBR,
++ s390x.ACFEBRA,
++ s390x.ACGEBRA,
++ s390x.ACFDBRA,
++ s390x.ACGDBRA,
++ s390x.ACELFBR,
++ s390x.ACELGBR,
++ s390x.ACDLFBR,
++ s390x.ACDLGBR,
++ s390x.ACEFBRA,
++ s390x.ACEGBRA,
++ s390x.ACDFBRA,
++ s390x.ACDGBRA,
++ s390x.AFSQRT:
++
++ if s != nil {
++ if copysub(&p.From, v, s, 1) != 0 {
++ return 1
++ }
++
++ // Update only indirect uses of v in p->to
++ if !copyas(&p.To, v) {
++ if copysub(&p.To, v, s, 1) != 0 {
++ return 1
++ }
++ }
++ return 0
++ }
++
++ if copyas(&p.To, v) {
++ // Fix up implicit from
++ if p.From.Type == obj.TYPE_NONE {
++ p.From = p.To
++ }
++ if copyau(&p.From, v) {
++ return 4
++ }
++ return 3
++ }
++
++ if copyau(&p.From, v) {
++ return 1
++ }
++ if copyau(&p.To, v) {
++ // p->to only indirectly uses v
++ return 1
++ }
++
++ return 0
++
++ // read p->from, read p->reg, rar p->to
++ case s390x.ARLWMI:
++ if copyas(&p.To, v) {
++ return 2
++ }
++ fallthrough
++ // read p->from, read p->reg, write p->to
++ case s390x.AADD,
++ s390x.AADDC,
++ s390x.AADDE,
++ s390x.ASUB,
++ s390x.ASLW,
++ s390x.ASRW,
++ s390x.ASRAW,
++ s390x.ASLD,
++ s390x.ASRD,
++ s390x.ASRAD,
++ s390x.AOR,
++ s390x.AORN,
++ s390x.AAND,
++ s390x.AANDN,
++ s390x.ANAND,
++ s390x.ANOR,
++ s390x.AXOR,
++ s390x.AMULLW,
++ s390x.AMULLD,
++ s390x.ADIVW,
++ s390x.ADIVD,
++ s390x.ADIVWU,
++ s390x.ADIVDU,
++ s390x.AREM,
++ s390x.AREMU,
++ s390x.AREMD,
++ s390x.AREMDU,
++ s390x.ARLWNM,
++ s390x.AFADDS,
++ s390x.AFADD,
++ s390x.AFSUBS,
++ s390x.AFSUB,
++ s390x.AFMULS,
++ s390x.AFMUL,
++ s390x.AFDIVS,
++ s390x.AFDIV:
++ if s != nil {
++ if copysub(&p.From, v, s, 1) != 0 {
++ return 1
++ }
++ if copysub1(p, v, s, 1) != 0 {
++ return 1
++ }
++
++ // Update only indirect uses of v in p->to
++ if !copyas(&p.To, v) {
++ if copysub(&p.To, v, s, 1) != 0 {
++ return 1
++ }
++ }
++ return 0
++ }
++
++ if copyas(&p.To, v) {
++ if p.Reg == 0 {
++ // Fix up implicit reg (e.g., ADD
++ // R3,R4 -> ADD R3,R4,R4) so we can
++ // update reg and to separately.
++ p.Reg = p.To.Reg
++ }
++
++ if copyau(&p.From, v) {
++ return 4
++ }
++ if copyau1(p, v) {
++ return 4
++ }
++ return 3
++ }
++
++ if copyau(&p.From, v) {
++ return 1
++ }
++ if copyau1(p, v) {
++ return 1
++ }
++ if copyau(&p.To, v) {
++ return 1
++ }
++ return 0
++
++ case s390x.ABEQ,
++ s390x.ABGT,
++ s390x.ABGE,
++ s390x.ABLT,
++ s390x.ABLE,
++ s390x.ABNE,
++ s390x.ABVC,
++ s390x.ABVS:
++ return 0
++
++ case obj.ACHECKNIL, /* read p->from */
++ s390x.ACMP, /* read p->from, read p->to */
++ s390x.ACMPU,
++ s390x.ACMPW,
++ s390x.ACMPWU,
++ s390x.AFCMPO,
++ s390x.AFCMPU,
++ s390x.ACEBR,
++ s390x.AMVC,
++ s390x.ACLC,
++ s390x.AXC,
++ s390x.AOC,
++ s390x.ANC:
++ if s != nil {
++ if copysub(&p.From, v, s, 1) != 0 {
++ return 1
++ }
++ return copysub(&p.To, v, s, 1)
++ }
++
++ if copyau(&p.From, v) {
++ return 1
++ }
++ if copyau(&p.To, v) {
++ return 1
++ }
++ return 0
++
++ // go never generates a branch to a GPR
++ // read p->to
++ case s390x.ABR:
++ if s != nil {
++ if copysub(&p.To, v, s, 1) != 0 {
++ return 1
++ }
++ return 0
++ }
++
++ if copyau(&p.To, v) {
++ return 1
++ }
++ return 0
++
++ case obj.ARET:
++ if s != nil {
++ return 0
++ }
++
++ // All registers die at this point, so claim
++ // everything is set (and not used).
++ return 3
++
++ case s390x.ABL:
++ if v.Type == obj.TYPE_REG {
++ // TODO(rsc): REG_R0 and REG_F0 used to be
++ // (when register numbers started at 0) exregoffset and exfregoffset,
++ // which are unset entirely.
++ // It's strange that this handles R0 and F0 differently from the other
++ // registers. Possible failure to optimize?
++ if s390x.REG_R0 < v.Reg && v.Reg <= s390x.REGEXT {
++ return 2
++ }
++ if v.Reg == s390x.REGARG {
++ return 2
++ }
++ if s390x.REG_F0 < v.Reg && v.Reg <= s390x.FREGEXT {
++ return 2
++ }
++ }
++
++ if p.From.Type == obj.TYPE_REG && v.Type == obj.TYPE_REG && p.From.Reg == v.Reg {
++ return 2
++ }
++
++ if s != nil {
++ if copysub(&p.To, v, s, 1) != 0 {
++ return 1
++ }
++ return 0
++ }
++
++ if copyau(&p.To, v) {
++ return 4
++ }
++ return 3
++
++ case obj.ATEXT:
++ if v.Type == obj.TYPE_REG {
++ if v.Reg == s390x.REGARG {
++ return 3
++ }
++ }
++ return 0
++
++ case obj.APCDATA,
++ obj.AFUNCDATA,
++ obj.AVARDEF,
++ obj.AVARKILL:
++ return 0
++ }
++}
++
++// copyas returns 1 if a and v address the same register.
++//
++// If a is the from operand, this means this operation reads the
++// register in v. If a is the to operand, this means this operation
++// writes the register in v.
++func copyas(a *obj.Addr, v *obj.Addr) bool {
++ if regtyp(v) {
++ if a.Type == v.Type {
++ if a.Reg == v.Reg {
++ return true
++ }
++ }
++ }
++ return false
++}
++
++// copyau returns 1 if a either directly or indirectly addresses the
++// same register as v.
++//
++// If a is the from operand, this means this operation reads the
++// register in v. If a is the to operand, this means the operation
++// either reads or writes the register in v (if !copyas(a, v), then
++// the operation reads the register in v).
++func copyau(a *obj.Addr, v *obj.Addr) bool {
++ if copyas(a, v) {
++ return true
++ }
++ if v.Type == obj.TYPE_REG {
++ if a.Type == obj.TYPE_MEM || (a.Type == obj.TYPE_ADDR && a.Reg != 0) {
++ if v.Reg == a.Reg {
++ return true
++ }
++ }
++ }
++ return false
++}
++
++// copyau1 returns 1 if p->reg references the same register as v and v
++// is a direct reference.
++func copyau1(p *obj.Prog, v *obj.Addr) bool {
++ if regtyp(v) && v.Reg != 0 {
++ if p.Reg == v.Reg {
++ return true
++ }
++ }
++ return false
++}
++
++// copysub replaces v with s in a if f!=0 or indicates it if could if f==0.
++// Returns 1 on failure to substitute (it always succeeds on s390x).
++func copysub(a *obj.Addr, v *obj.Addr, s *obj.Addr, f int) int {
++ if f != 0 {
++ if copyau(a, v) {
++ a.Reg = s.Reg
++ }
++ }
++ return 0
++}
++
++// copysub1 replaces v with s in p1->reg if f!=0 or indicates if it could if f==0.
++// Returns 1 on failure to substitute (it always succeeds on s390x).
++func copysub1(p1 *obj.Prog, v *obj.Addr, s *obj.Addr, f int) int {
++ if f != 0 {
++ if copyau1(p1, v) {
++ p1.Reg = s.Reg
++ }
++ }
++ return 0
++}
++
++func sameaddr(a *obj.Addr, v *obj.Addr) bool {
++ if a.Type != v.Type {
++ return false
++ }
++ if regtyp(v) && a.Reg == v.Reg {
++ return true
++ }
++ if v.Type == obj.NAME_AUTO || v.Type == obj.NAME_PARAM {
++ if v.Offset == a.Offset {
++ return true
++ }
++ }
++ return false
++}
++
++func smallindir(a *obj.Addr, reg *obj.Addr) bool {
++ return reg.Type == obj.TYPE_REG && a.Type == obj.TYPE_MEM && a.Reg == reg.Reg && 0 <= a.Offset && a.Offset < 4096
++}
++
++func stackaddr(a *obj.Addr) bool {
++ return a.Type == obj.TYPE_REG && a.Reg == s390x.REGSP
++}
++
++func trymergeopmv(r *gc.Flow) bool {
++ p := r.Prog
++ reg := p.From.Reg
++ r2 := gc.Uniqs(r)
++
++ for ; r2 != nil; r2 = gc.Uniqs(r2) {
++ p2 := r2.Prog
++ switch p2.As {
++ case obj.ANOP:
++ continue
++
++ case s390x.AEXRL,
++ s390x.ASYSCALL,
++ s390x.ABR,
++ s390x.ABC,
++ s390x.ABEQ,
++ s390x.ABGE,
++ s390x.ABGT,
++ s390x.ABLE,
++ s390x.ABLT,
++ s390x.ABNE,
++ s390x.ACMPBEQ,
++ s390x.ACMPBGE,
++ s390x.ACMPBGT,
++ s390x.ACMPBLE,
++ s390x.ACMPBLT,
++ s390x.ACMPBNE:
++ return false
++
++ case s390x.ACMP,
++ s390x.ACMPU,
++ s390x.ACMPW,
++ s390x.ACMPWU:
++ if p2.From.Type == obj.TYPE_REG && p2.From.Reg == reg {
++ return false
++ }
++ if p2.To.Type == obj.TYPE_REG && p2.To.Reg == reg {
++ //different from other instructions, To.Reg is a source register in CMP
++ return false
++ }
++ continue
++
++ case s390x.AMOVD,
++ s390x.AMOVW, s390x.AMOVWZ,
++ s390x.AMOVH, s390x.AMOVHZ,
++ s390x.AMOVB, s390x.AMOVBZ:
++ if p2.From.Type == obj.TYPE_REG && p2.From.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.From.Type == obj.TYPE_ADDR && p2.From.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.To.Type == obj.TYPE_ADDR && p2.To.Reg == reg {
++ //For store operations
++ //also use; can't change
++ return false
++ }
++ if p2.To.Type == obj.TYPE_REG && p2.To.Reg == reg {
++ return true
++ }
++ continue
++
++ case s390x.AMVC, s390x.ACLC, s390x.AXC, s390x.AOC, s390x.ANC:
++ if p2.From.Type == obj.TYPE_MEM && p2.From.Reg == reg {
++ return false
++ }
++ if p2.To.Type == obj.TYPE_MEM && p2.To.Reg == reg {
++ return false
++ }
++ continue
++
++ default:
++ if p2.From.Type == obj.TYPE_REG && p2.From.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.From.Type == obj.TYPE_ADDR && p2.From.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.Reg != 0 && p2.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.From3 != nil && p2.From3.Type == obj.TYPE_REG && p2.From3.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.From3 != nil && p2.From3.Type == obj.TYPE_ADDR && p2.From3.Reg == reg {
++ //use; can't change
++ return false
++ }
++ if p2.To.Type == obj.TYPE_ADDR && p2.To.Reg == reg {
++ //For store operations
++ //also use; can't change
++ return false
++ }
++ if p2.To.Type == obj.TYPE_REG && p2.To.Reg == reg {
++ if p2.Reg == 0 {
++ //p2.To is also used as source in 2 operands instruction
++ return false
++ } else {
++ //def; can change
++ return true
++ }
++ }
++ continue
++ }
++ }
++ return false
++}
+diff --git a/src/cmd/compile/internal/s390x/prog.go b/src/cmd/compile/internal/s390x/prog.go
+new file mode 100644
+index 0000000..7330d32
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/prog.go
+@@ -0,0 +1,182 @@
++// Copyright 2014 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.
++
++package s390x
++
++import (
++ "cmd/compile/internal/gc"
++ "cmd/internal/obj"
++ "cmd/internal/obj/s390x"
++)
++
++const (
++ LeftRdwr uint32 = gc.LeftRead | gc.LeftWrite
++ RightRdwr uint32 = gc.RightRead | gc.RightWrite
++)
++
++// This table gives the basic information about instruction
++// generated by the compiler and processed in the optimizer.
++// See opt.h for bit definitions.
++//
++// Instructions not generated need not be listed.
++// As an exception to that rule, we typically write down all the
++// size variants of an operation even if we just use a subset.
++//
++// The table is formatted for 8-space tabs.
++var progtable = [s390x.ALAST]obj.ProgInfo{
++ obj.ATYPE: {Flags: gc.Pseudo | gc.Skip},
++ obj.ATEXT: {Flags: gc.Pseudo},
++ obj.AFUNCDATA: {Flags: gc.Pseudo},
++ obj.APCDATA: {Flags: gc.Pseudo},
++ obj.AUNDEF: {Flags: gc.Break},
++ obj.AUSEFIELD: {Flags: gc.OK},
++ obj.ACHECKNIL: {Flags: gc.LeftRead},
++ obj.AVARDEF: {Flags: gc.Pseudo | gc.RightWrite},
++ obj.AVARKILL: {Flags: gc.Pseudo | gc.RightWrite},
++
++ // NOP is an internal no-op that also stands
++ // for USED and SET annotations, not the Power opcode.
++ obj.ANOP: {Flags: gc.LeftRead | gc.RightWrite},
++
++ // Integer
++ s390x.AADD: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ASUB: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ANEG: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AAND: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AOR: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AXOR: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AMULLD: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AMULLW: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AMULHDU: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ADIVD: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ADIVDU: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ASLD: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ASRD: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ASRAD: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.ACMP: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++ s390x.ACMPU: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++
++ // Floating point.
++ s390x.AFADD: {Flags: gc.SizeD | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFADDS: {Flags: gc.SizeF | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFSUB: {Flags: gc.SizeD | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFSUBS: {Flags: gc.SizeF | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFMUL: {Flags: gc.SizeD | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFMULS: {Flags: gc.SizeF | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFDIV: {Flags: gc.SizeD | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFDIVS: {Flags: gc.SizeF | gc.LeftRead | gc.RegRead | gc.RightWrite},
++ s390x.AFCMPU: {Flags: gc.SizeD | gc.LeftRead | gc.RightRead},
++ s390x.ACEBR: {Flags: gc.SizeF | gc.LeftRead | gc.RightRead},
++ s390x.AFRSP: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ALDEBR: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.AFSQRT: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite},
++
++ // Conversions
++ s390x.ACEFBRA: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACDFBRA: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACEGBRA: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACDGBRA: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACFEBRA: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACFDBRA: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACGEBRA: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACGDBRA: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACELFBR: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACDLFBR: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACELGBR: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACDLGBR: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACLFEBR: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACLFDBR: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACLGEBR: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
++ s390x.ACLGDBR: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
++
++ // Moves
++ s390x.AMOVB: {Flags: gc.SizeB | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++ s390x.AMOVBZ: {Flags: gc.SizeB | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++ s390x.AMOVH: {Flags: gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++ s390x.AMOVHZ: {Flags: gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++ s390x.AMOVW: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++
++ // there is no AMOVWU.
++ s390x.AMOVWZ: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++ s390x.AMOVD: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Move},
++ s390x.AFMOVS: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
++ s390x.AFMOVD: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Move},
++
++ // Storage operations
++ s390x.AMVC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++ s390x.ACLC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++ s390x.AXC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++ s390x.AOC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++ s390x.ANC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
++
++ // Jumps
++ s390x.ABR: {Flags: gc.Jump | gc.Break},
++ s390x.ABL: {Flags: gc.Call},
++ s390x.ABEQ: {Flags: gc.Cjmp},
++ s390x.ABNE: {Flags: gc.Cjmp},
++ s390x.ABGE: {Flags: gc.Cjmp},
++ s390x.ABLT: {Flags: gc.Cjmp},
++ s390x.ABGT: {Flags: gc.Cjmp},
++ s390x.ABLE: {Flags: gc.Cjmp},
++ s390x.ACMPBEQ: {Flags: gc.Cjmp},
++ s390x.ACMPBNE: {Flags: gc.Cjmp},
++ s390x.ACMPBGE: {Flags: gc.Cjmp},
++ s390x.ACMPBLT: {Flags: gc.Cjmp},
++ s390x.ACMPBGT: {Flags: gc.Cjmp},
++ s390x.ACMPBLE: {Flags: gc.Cjmp},
++ s390x.ACMPUBEQ: {Flags: gc.Cjmp},
++ s390x.ACMPUBNE: {Flags: gc.Cjmp},
++ s390x.ACMPUBGE: {Flags: gc.Cjmp},
++ s390x.ACMPUBLT: {Flags: gc.Cjmp},
++ s390x.ACMPUBGT: {Flags: gc.Cjmp},
++ s390x.ACMPUBLE: {Flags: gc.Cjmp},
++
++ obj.ARET: {Flags: gc.Break},
++ obj.ADUFFZERO: {Flags: gc.Call},
++ obj.ADUFFCOPY: {Flags: gc.Call},
++}
++
++func proginfo(p *obj.Prog) {
++ info := &p.Info
++ *info = progtable[p.As]
++ if info.Flags == 0 {
++ gc.Fatalf("proginfo: unknown instruction %v", p)
++ }
++
++ if (info.Flags&gc.RegRead != 0) && p.Reg == 0 {
++ info.Flags &^= gc.RegRead
++ info.Flags |= gc.RightRead /*CanRegRead |*/
++ }
++
++ if (p.From.Type == obj.TYPE_MEM || p.From.Type == obj.TYPE_ADDR) && p.From.Reg != 0 {
++ info.Regindex |= RtoB(int(p.From.Reg))
++ if info.Flags&gc.PostInc != 0 {
++ info.Regset |= RtoB(int(p.From.Reg))
++ }
++ }
++
++ if (p.To.Type == obj.TYPE_MEM || p.To.Type == obj.TYPE_ADDR) && p.To.Reg != 0 {
++ info.Regindex |= RtoB(int(p.To.Reg))
++ if info.Flags&gc.PostInc != 0 {
++ info.Regset |= RtoB(int(p.To.Reg))
++ }
++ }
++
++ if p.From.Type == obj.TYPE_ADDR && p.From.Sym != nil && (info.Flags&gc.LeftRead != 0) {
++ info.Flags &^= gc.LeftRead
++ info.Flags |= gc.LeftAddr
++ }
++
++ if p.As == obj.ADUFFZERO {
++ info.Reguse |= 1<<0 | RtoB(s390x.REG_R3)
++ info.Regset |= RtoB(s390x.REG_R3)
++ }
++
++ if p.As == obj.ADUFFCOPY {
++ // TODO(austin) Revisit when duffcopy is implemented
++ info.Reguse |= RtoB(s390x.REG_R3) | RtoB(s390x.REG_R4) | RtoB(s390x.REG_R5)
++
++ info.Regset |= RtoB(s390x.REG_R3) | RtoB(s390x.REG_R4)
++ }
++}
+diff --git a/src/cmd/compile/internal/s390x/reg.go b/src/cmd/compile/internal/s390x/reg.go
+new file mode 100644
+index 0000000..ece9060
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/reg.go
+@@ -0,0 +1,131 @@
++// Derived from Inferno utils/6c/reg.c
++// http://code.google.com/p/inferno-os/source/browse/utils/6c/reg.c
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import "cmd/internal/obj/s390x"
++import "cmd/compile/internal/gc"
++
++const (
++ NREGVAR = 32 /* 16 general + 16 floating */
++)
++
++var regname = []string{
++ ".R0",
++ ".R1",
++ ".R2",
++ ".R3",
++ ".R4",
++ ".R5",
++ ".R6",
++ ".R7",
++ ".R8",
++ ".R9",
++ ".R10",
++ ".R11",
++ ".R12",
++ ".R13",
++ ".R14",
++ ".R15",
++ ".F0",
++ ".F1",
++ ".F2",
++ ".F3",
++ ".F4",
++ ".F5",
++ ".F6",
++ ".F7",
++ ".F8",
++ ".F9",
++ ".F10",
++ ".F11",
++ ".F12",
++ ".F13",
++ ".F14",
++ ".F15",
++}
++
++func regnames(n *int) []string {
++ *n = NREGVAR
++ return regname
++}
++
++func excludedregs() uint64 {
++ // Exclude registers with fixed functions
++ // AZHANG TODO: Should other dedicated registers be reserved here?
++ regbits := uint64(RtoB(s390x.REG_R0) | RtoB(s390x.REGSP) | RtoB(s390x.REGG) | RtoB(s390x.REGTMP) | RtoB(s390x.REGTMP2) | RtoB(s390x.REG_LR))
++
++ // Also exclude floating point registers with fixed constants
++ regbits |= RtoB(s390x.REG_F11) | RtoB(s390x.REG_F12) | RtoB(s390x.REG_F13) | RtoB(s390x.REG_F14)
++
++ return regbits
++}
++
++func doregbits(r int) uint64 {
++ return 0
++}
++
++/*
++ * track register variables including external registers:
++ * bit reg
++ * 0 R0
++ * ... ...
++ * 15 R15
++ * 16+0 F0
++ * 16+1 F1
++ * ... ...
++ * 16+15 F15
++ */
++func RtoB(r int) uint64 {
++ if r >= s390x.REG_R0 && r <= s390x.REG_R15 {
++ return 1 << uint(r-s390x.REG_R0)
++ }
++ if r >= s390x.REG_F0 && r <= s390x.REG_F15 {
++ return 1 << uint(16+r-s390x.REG_F0)
++ }
++ return 0
++}
++
++func BtoR(b uint64) int {
++ b &= 0xffff
++ if b == 0 {
++ return 0
++ }
++ return gc.Bitno(b) + s390x.REG_R0
++}
++
++func BtoF(b uint64) int {
++ b >>= 16
++ b &= 0xffff
++ if b == 0 {
++ return 0
++ }
++ return gc.Bitno(b) + s390x.REG_F0
++}
+diff --git a/src/cmd/compile/main.go b/src/cmd/compile/main.go
+index 3d11f51..a73f4f6 100644
+--- a/src/cmd/compile/main.go
++++ b/src/cmd/compile/main.go
+@@ -11,6 +11,7 @@ import (
+ "cmd/compile/internal/mips64"
+ "cmd/compile/internal/ppc64"
+ "cmd/compile/internal/x86"
++ "cmd/compile/internal/s390x"
+ "cmd/internal/obj"
+ "fmt"
+ "log"
+@@ -38,5 +39,7 @@ func main() {
+ mips64.Main()
+ case "ppc64", "ppc64le":
+ ppc64.Main()
++ case "s390x":
++ s390x.Main()
+ }
+ }
+diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
+index 39a88cc..e8b5862 100644
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -58,6 +58,7 @@ var okgoarch = []string{
+ "mips64le",
+ "ppc64",
+ "ppc64le",
++ "s390x",
+ }
+
+ // The known operating systems.
+diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
+index 20d9535..c8ab50e 100644
+--- a/src/cmd/dist/buildtool.go
++++ b/src/cmd/dist/buildtool.go
+@@ -37,6 +37,7 @@ var bootstrapDirs = []string{
+ "compile/internal/mips64",
+ "compile/internal/ppc64",
+ "compile/internal/x86",
++ "compile/internal/s390x",
+ "internal/gcprog",
+ "internal/obj",
+ "internal/obj/arm",
+@@ -44,6 +45,7 @@ var bootstrapDirs = []string{
+ "internal/obj/mips",
+ "internal/obj/ppc64",
+ "internal/obj/x86",
++ "internal/obj/s390x",
+ "link",
+ "link/internal/amd64",
+ "link/internal/arm",
+@@ -52,6 +54,7 @@ var bootstrapDirs = []string{
+ "link/internal/mips64",
+ "link/internal/ppc64",
+ "link/internal/x86",
++ "link/internal/s390x",
+ }
+
+ func bootstrapBuildTools() {
+diff --git a/src/cmd/dist/util.go b/src/cmd/dist/util.go
+index 1b5d1f9..cf8966d 100644
+--- a/src/cmd/dist/util.go
++++ b/src/cmd/dist/util.go
+@@ -452,6 +452,8 @@ func main() {
+ } else {
+ gohostarch = "mips64le"
+ }
++ case strings.Contains(out, "s390x"):
++ gohostarch = "s390x"
+ case gohostos == "darwin":
+ if strings.Contains(run("", CheckExit, "uname", "-v"), "RELEASE_ARM_") {
+ gohostarch = "arm"
+diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go
+index ebeb11c..4e10902 100644
+--- a/src/cmd/go/build.go
++++ b/src/cmd/go/build.go
+@@ -2954,6 +2954,8 @@ func (b *builder) gccArchArgs() []string {
+ return []string{"-m64"}
+ case "arm":
+ return []string{"-marm"} // not thumb
++ case "s390x":
++ return []string{"-m64", "-march=z9-109"}
+ }
+ return nil
+ }
+diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go
+index f7f7662..771ca29 100644
+--- a/src/cmd/internal/obj/link.go
++++ b/src/cmd/internal/obj/link.go
+@@ -521,6 +521,9 @@ const (
+ // R_ADDRPOWER_DS but inserts the offset from the TOC to the address of the the
+ // relocated symbol rather than the symbol's address.
+ R_ADDRPOWER_TOCREL_DS
++
++ // R_PCRELDBL is for S390x (z) 2-byte aligned addresses (e.g. R_390_PLT32DBL)
++ R_PCRELDBL
+ )
+
+ type Auto struct {
+diff --git a/src/cmd/internal/obj/s390x/a.out.go b/src/cmd/internal/obj/s390x/a.out.go
+new file mode 100644
+index 0000000..94f53c9
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/a.out.go
+@@ -0,0 +1,370 @@
++// Based on cmd/internal/obj/ppc64/a.out.go.
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import "cmd/internal/obj"
++
++//go:generate go run ../stringer.go -i $GOFILE -o anames.go -p s390x
++
++/*
++ * s390x
++ */
++const (
++ NSNAME = 8
++ NSYM = 50
++ NREG = 16 /* number of general registers */
++ NFREG = 16 /* number of floating point registers */
++)
++
++const (
++ REG_R0 = obj.RBaseS390X + iota
++ REG_R1
++ REG_R2
++ REG_R3
++ REG_R4
++ REG_R5
++ REG_R6
++ REG_R7
++ REG_R8
++ REG_R9
++ REG_R10
++ REG_R11
++ REG_R12
++ REG_R13
++ REG_R14
++ REG_R15
++
++ REG_F0
++ REG_F1
++ REG_F2
++ REG_F3
++ REG_F4
++ REG_F5
++ REG_F6
++ REG_F7
++ REG_F8
++ REG_F9
++ REG_F10
++ REG_F11
++ REG_F12
++ REG_F13
++ REG_F14
++ REG_F15
++
++ REG_AR0
++ REG_AR1
++ REG_AR2
++ REG_AR3
++ REG_AR4
++ REG_AR5
++ REG_AR6
++ REG_AR7
++ REG_AR8
++ REG_AR9
++ REG_AR10
++ REG_AR11
++ REG_AR12
++ REG_AR13
++ REG_AR14
++ REG_AR15
++
++ REG_RESERVED // first of 1024 reserved registers
++
++ REGZERO = REG_R0 /* set to zero */
++ REGRET = REG_R2
++ REGARG = -1 /* -1 disables passing the first argument in register */
++ REGRT1 = REG_R3 /* reserved for runtime, duffzero and duffcopy (does this need to be reserved on z?) */
++ REGRT2 = REG_R4 /* reserved for runtime, duffcopy (does this need to be reserved on z?) */
++ REGMIN = REG_R5 /* register variables allocated from here to REGMAX */
++ REGTMP = REG_R10 /* used by the linker */
++ REGTMP2 = REG_R11 /* used by the linker */
++ REGCTXT = REG_R12 /* context for closures */
++ REGG = REG_R13 /* G */
++ REG_LR = REG_R14 /* link register */
++ REGSP = REG_R15 /* stack pointer */
++ REGEXT = REG_R9 /* external registers allocated from here down */
++ REGMAX = REG_R8
++ FREGRET = REG_F0
++ FREGMIN = REG_F5 /* first register variable */
++ FREGMAX = REG_F10 /* last register variable for zg only */
++ FREGEXT = REG_F10 /* first external register */
++ FREGCVI = REG_F11 /* floating conversion constant */
++ FREGZERO = REG_F12 /* both float and double */
++ FREGONE = REG_F13 /* double */
++ FREGTWO = REG_F14 /* double */
++// FREGTMP = REG_F15 /* double */
++)
++
++/*
++ * GENERAL:
++ *
++ * compiler allocates R3 up as temps
++ * compiler allocates register variables R5-R9
++ * compiler allocates external registers R10 down
++ *
++ * compiler allocates register variables F5-F9
++ * compiler allocates external registers F10 down
++ */
++const (
++ BIG = 32768 - 8
++ DISP12 = 4096
++ DISP16 = 65536
++ DISP20 = 1048576
++)
++
++const (
++ /* mark flags */
++ LABEL = 1 << 0
++ LEAF = 1 << 1
++ FLOAT = 1 << 2
++ BRANCH = 1 << 3
++ LOAD = 1 << 4
++ FCMP = 1 << 5
++ SYNC = 1 << 6
++ LIST = 1 << 7
++ FOLL = 1 << 8
++ NOSCHED = 1 << 9
++)
++
++const ( // comments from func aclass in asmz.go
++ C_NONE = iota
++ C_REG // general-purpose register
++ C_FREG // floating-point register
++ C_AREG // access register
++ C_ZCON // constant == 0
++ C_SCON // 0 <= constant <= 0x7fff (positive int16)
++ C_UCON // constant & 0xffff == 0 (int32 or uint32)
++ C_ADDCON // 0 > constant >= -0x8000 (negative int16)
++ C_ANDCON // constant <= 0xffff
++ C_LCON // constant (int32 or uint32)
++ C_DCON // constant (int64 or uint64)
++ C_SACON // computed address, 16-bit displacement, possibly SP-relative
++ C_SECON // computed address, 16-bit displacement, possibly SB-relative, unused?
++ C_LACON // computed address, 32-bit displacement, possibly SP-relative
++ C_LECON // computed address, 32-bit displacement, possibly SB-relative, unused?
++ C_DACON // computed address, 64-bit displacment?
++ C_SBRA // short branch
++ C_LBRA // long branch
++ C_SAUTO // short auto
++ C_LAUTO // long auto
++ C_ZOREG // heap address, register-based, displacement == 0
++ C_SOREG // heap address, register-based, int16 displacement
++ C_LOREG // heap address, register-based, int32 displacement
++ C_ANY
++ C_GOK // general address
++ C_ADDR // relocation for extern or static symbols
++ C_TEXTSIZE // text size
++ C_NCLASS // must be the last
++)
++
++const (
++ // integer arithmetic
++ AADD = obj.ABaseS390X + obj.A_ARCHSPECIFIC + iota
++ AADDC
++ AADDME
++ AADDE
++ AADDZE
++ ADIVW
++ ADIVWU
++ ADIVD
++ ADIVDU
++ AMULLW
++ AMULLD
++ AMULHD
++ AMULHDU
++ ASUB
++ ASUBC
++ ASUBME
++ ASUBV
++ ASUBE
++ ASUBZE
++ AREM
++ AREMU
++ AREMD
++ AREMDU
++ ANEG
++
++ // integer moves
++ AMOVWBR
++ AMOVB
++ AMOVBZ
++ AMOVH
++ AMOVHBR
++ AMOVHZ
++ AMOVW
++ AMOVWZ
++ AMOVD
++
++ // integer bitwise
++ AAND
++ AANDN
++ ANAND
++ ANOR
++ AOR
++ AORN
++ AXOR
++ ASLW
++ ASLD
++ ASRW
++ ASRAW
++ ASRD
++ ASRAD
++ ARLWMI
++ ARLWNM
++ ARLDMI
++ ARLDC
++ ARLDCR
++ ARLDCL
++
++ // floating point
++ AFABS
++ AFADD
++ AFADDS
++ AFCMPO
++ AFCMPU
++ ACEBR
++ AFDIV
++ AFDIVS
++ AFMADD
++ AFMADDS
++ AFMOVD
++ AFMOVS
++ AFMSUB
++ AFMSUBS
++ AFMUL
++ AFMULS
++ AFNABS
++ AFNEG
++ AFNMADD
++ AFNMADDS
++ AFNMSUB
++ AFNMSUBS
++ AFRSP
++ ALDEBR
++ AFSUB
++ AFSUBS
++ AFSQRT
++ AFSQRTS
++
++ // convert from int32/int64 to float/float64
++ ACEFBRA
++ ACDFBRA
++ ACEGBRA
++ ACDGBRA
++
++ // convert from float/float64 to int32/int64
++ ACFEBRA
++ ACFDBRA
++ ACGEBRA
++ ACGDBRA
++
++ // convert from uint32/uint64 to float/float64
++ ACELFBR
++ ACDLFBR
++ ACELGBR
++ ACDLGBR
++
++ // convert from float/float64 to uint32/uint64
++ ACLFEBR
++ ACLFDBR
++ ACLGEBR
++ ACLGDBR
++
++ // compare
++ ACMP
++ ACMPU
++ ACMPW
++ ACMPWU
++
++ // compare and swap
++ ACS
++ ACSG
++
++ // serialize
++ ASYNC
++
++ // branch
++ ABC
++ ABCL
++ ABEQ
++ ABGE
++ ABGT
++ ABLE
++ ABLT
++ ABNE
++ ABVC
++ ABVS
++ ASYSCALL
++
++ // compare and branch
++ ACMPBEQ
++ ACMPBGE
++ ACMPBGT
++ ACMPBLE
++ ACMPBLT
++ ACMPBNE
++ ACMPUBEQ
++ ACMPUBGE
++ ACMPUBGT
++ ACMPUBLE
++ ACMPUBLT
++ ACMPUBNE
++
++ // storage-and-storage
++ AMVC
++ ACLC
++ AXC
++ AOC
++ ANC
++
++ // load
++ AEXRL
++ ALARL
++ ALA
++ ALAY
++
++ // store clock
++ ASTCK
++ ASTCKC
++ ASTCKE
++ ASTCKF
++
++ // binary
++ ABYTE
++ AWORD
++ ADWORD
++
++ // end marker
++ ALAST
++
++ // aliases
++ ABR = obj.AJMP
++ ABL = obj.ACALL
++)
+diff --git a/src/cmd/internal/obj/s390x/anames.go b/src/cmd/internal/obj/s390x/anames.go
+new file mode 100644
+index 0000000..b34f092
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/anames.go
+@@ -0,0 +1,152 @@
++// Generated by stringer -i a.out.go -o anames.go -p s390x
++// Do not edit.
++
++package s390x
++
++import "cmd/internal/obj"
++
++var Anames = []string{
++ obj.A_ARCHSPECIFIC: "ADD",
++ "ADDC",
++ "ADDME",
++ "ADDE",
++ "ADDZE",
++ "DIVW",
++ "DIVWU",
++ "DIVD",
++ "DIVDU",
++ "MULLW",
++ "MULLD",
++ "MULHD",
++ "MULHDU",
++ "SUB",
++ "SUBC",
++ "SUBME",
++ "SUBV",
++ "SUBE",
++ "SUBZE",
++ "REM",
++ "REMU",
++ "REMD",
++ "REMDU",
++ "NEG",
++ "MOVWBR",
++ "MOVB",
++ "MOVBZ",
++ "MOVH",
++ "MOVHBR",
++ "MOVHZ",
++ "MOVW",
++ "MOVWZ",
++ "MOVD",
++ "AND",
++ "ANDN",
++ "NAND",
++ "NOR",
++ "OR",
++ "ORN",
++ "XOR",
++ "SLW",
++ "SLD",
++ "SRW",
++ "SRAW",
++ "SRD",
++ "SRAD",
++ "RLWMI",
++ "RLWNM",
++ "RLDMI",
++ "RLDC",
++ "RLDCR",
++ "RLDCL",
++ "FABS",
++ "FADD",
++ "FADDS",
++ "FCMPO",
++ "FCMPU",
++ "CEBR",
++ "FDIV",
++ "FDIVS",
++ "FMADD",
++ "FMADDS",
++ "FMOVD",
++ "FMOVS",
++ "FMSUB",
++ "FMSUBS",
++ "FMUL",
++ "FMULS",
++ "FNABS",
++ "FNEG",
++ "FNMADD",
++ "FNMADDS",
++ "FNMSUB",
++ "FNMSUBS",
++ "FRSP",
++ "LDEBR",
++ "FSUB",
++ "FSUBS",
++ "FSQRT",
++ "FSQRTS",
++ "CEFBRA",
++ "CDFBRA",
++ "CEGBRA",
++ "CDGBRA",
++ "CFEBRA",
++ "CFDBRA",
++ "CGEBRA",
++ "CGDBRA",
++ "CELFBR",
++ "CDLFBR",
++ "CELGBR",
++ "CDLGBR",
++ "CLFEBR",
++ "CLFDBR",
++ "CLGEBR",
++ "CLGDBR",
++ "CMP",
++ "CMPU",
++ "CMPW",
++ "CMPWU",
++ "CS",
++ "CSG",
++ "SYNC",
++ "BC",
++ "BCL",
++ "BEQ",
++ "BGE",
++ "BGT",
++ "BLE",
++ "BLT",
++ "BNE",
++ "BVC",
++ "BVS",
++ "SYSCALL",
++ "CMPBEQ",
++ "CMPBGE",
++ "CMPBGT",
++ "CMPBLE",
++ "CMPBLT",
++ "CMPBNE",
++ "CMPUBEQ",
++ "CMPUBGE",
++ "CMPUBGT",
++ "CMPUBLE",
++ "CMPUBLT",
++ "CMPUBNE",
++ "MVC",
++ "CLC",
++ "XC",
++ "OC",
++ "NC",
++ "EXRL",
++ "LARL",
++ "LA",
++ "LAY",
++ "STCK",
++ "STCKC",
++ "STCKE",
++ "STCKF",
++ "BYTE",
++ "WORD",
++ "DWORD",
++ "LAST",
++}
+diff --git a/src/cmd/internal/obj/s390x/anamesz.go b/src/cmd/internal/obj/s390x/anamesz.go
+new file mode 100644
+index 0000000..230eddb
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/anamesz.go
+@@ -0,0 +1,64 @@
++package s390x
++
++var cnamesz = []string{
++ "NONE",
++ "REG",
++ "FREG",
++ "AREG",
++ "ZCON",
++ "SCON",
++ "UCON",
++ "ADDCON",
++ "ANDCON",
++ "LCON",
++ "DCON",
++ "SACON",
++ "SECON",
++ "LACON",
++ "LECON",
++ "DACON",
++ "SBRA",
++ "LBRA",
++ "SAUTO",
++ "LAUTO",
++ "ZOREG",
++ "SOREG",
++ "LOREG",
++ "LR",
++ "ANY",
++ "GOK",
++ "ADDR",
++ "TEXTSIZE",
++ "NCLASS",
++}
++
++// const ( // comments from func aclass in asmz.go
++// C_NONE = iota
++// C_REG // general-purpose register
++// C_FREG // floating-point register
++// C_AREG // access register
++// C_ZCON // constant == 0
++// C_SCON // 0 <= constant <= 0x7fff (positive int16)
++// C_UCON // constant & 0xffff == 0 (int32 or uint32)
++// C_ADDCON // 0 > constant >= -0x8000 (negative int16)
++// C_ANDCON // constant <= 0xffff
++// C_LCON // constant (int32 or uint32)
++// C_DCON // constant (int64 or uint64)
++// C_SACON // computed address, 16-bit displacement, possibly SP-relative
++// C_SECON // computed address, 16-bit displacement, possibly SB-relative, unused?
++// C_LACON // computed address, 32-bit displacement, possibly SP-relative
++// C_LECON // computed address, 32-bit displacement, possibly SB-relative, unused?
++// C_DACON // computed address, 64-bit displacment?
++// C_SBRA // short branch
++// C_LBRA // long branch
++// C_SAUTO // short auto
++// C_LAUTO // long auto
++// C_ZOREG // heap address, register-based, displacement == 0
++// C_SOREG // heap address, register-based, int16 displacement
++// C_LOREG // heap address, register-based, int32 displacement
++// C_ANY
++// C_GOK // general address
++// C_ADDR // relocation for extern or static symbols
++// C_TEXTSIZE // text size
++// C_NCLASS
++// )
+diff --git a/src/cmd/internal/obj/s390x/asmz.go b/src/cmd/internal/obj/s390x/asmz.go
+new file mode 100644
+index 0000000..b3d4bd5
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/asmz.go
+@@ -0,0 +1,3983 @@
++// Based on cmd/internal/obj/ppc64/asm9.go.
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/internal/obj"
++ "log"
++ "sort"
++)
++
++// Instruction layout.
++const (
++ FuncAlign = 16
++)
++
++const (
++ r0iszero = 1
++)
++
++type Optab struct {
++ as int16 // opcode
++ a1 uint8 // source
++ a2 uint8 // register
++ a3 uint8 // destination
++ a4 uint8
++ type_ int8
++ param int16
++}
++
++var optab = []Optab{
++ // p.Optab, p.From.Class, p.Reg, p.From3.Class, p.To.Class, type, param
++ Optab{obj.ATEXT, C_ADDR, C_NONE, C_NONE, C_TEXTSIZE, 0, 0},
++ Optab{obj.ATEXT, C_ADDR, C_NONE, C_LCON, C_TEXTSIZE, 0, 0},
++ /* move register */
++ Optab{AMOVD, C_REG, C_NONE, C_NONE, C_REG, 1, 0},
++ Optab{AMOVB, C_REG, C_NONE, C_NONE, C_REG, 12, 0},
++ Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_REG, 13, 0},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_REG, 12, 0},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_REG, 13, 0},
++ Optab{AADD, C_REG, C_REG, C_NONE, C_REG, 2, 0},
++ Optab{AADD, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
++ Optab{AADD, C_ADDCON, C_REG, C_NONE, C_REG, 4, 0},
++ Optab{AADD, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 0},
++ Optab{AADD, C_UCON, C_NONE, C_NONE, C_REG, 20, 0},
++ Optab{AADD, C_UCON, C_REG, C_NONE, C_REG, 20, 0},
++ Optab{AADD, C_LCON, C_REG, C_NONE, C_REG, 22, 0},
++ Optab{AADD, C_LCON, C_NONE, C_NONE, C_REG, 22, 0},
++ Optab{AADDC, C_REG, C_REG, C_NONE, C_REG, 2, 0},
++ Optab{AADDC, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
++ Optab{AADDC, C_ADDCON, C_REG, C_NONE, C_REG, 4, 0},
++ Optab{AADDC, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 0},
++ Optab{AADDC, C_LCON, C_REG, C_NONE, C_REG, 22, 0},
++ Optab{AADDC, C_LCON, C_NONE, C_NONE, C_REG, 22, 0},
++ Optab{AAND, C_REG, C_REG, C_NONE, C_REG, 6, 0}, /* logical, no literal */
++ Optab{AAND, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
++ Optab{AAND, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 0},
++ Optab{AAND, C_ANDCON, C_REG, C_NONE, C_REG, 58, 0},
++ Optab{AAND, C_UCON, C_NONE, C_NONE, C_REG, 59, 0},
++ Optab{AAND, C_UCON, C_REG, C_NONE, C_REG, 59, 0},
++ Optab{AAND, C_LCON, C_NONE, C_NONE, C_REG, 23, 0},
++ Optab{AAND, C_LCON, C_REG, C_NONE, C_REG, 23, 0},
++ Optab{AMULLW, C_REG, C_REG, C_NONE, C_REG, 2, 0},
++ Optab{AMULLW, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
++ Optab{AMULLW, C_ADDCON, C_REG, C_NONE, C_REG, 4, 0},
++ Optab{AMULLW, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 0},
++ Optab{AMULLW, C_ANDCON, C_REG, C_NONE, C_REG, 4, 0},
++ Optab{AMULLW, C_ANDCON, C_NONE, C_NONE, C_REG, 4, 0},
++ Optab{AMULLW, C_LCON, C_REG, C_NONE, C_REG, 22, 0},
++ Optab{AMULLW, C_LCON, C_NONE, C_NONE, C_REG, 22, 0},
++ Optab{ASUBC, C_REG, C_REG, C_NONE, C_REG, 10, 0},
++ Optab{ASUBC, C_REG, C_NONE, C_NONE, C_REG, 10, 0},
++ Optab{ASUBC, C_REG, C_NONE, C_ADDCON, C_REG, 27, 0},
++ Optab{ASUBC, C_REG, C_NONE, C_LCON, C_REG, 28, 0},
++ Optab{AOR, C_REG, C_REG, C_NONE, C_REG, 6, 0}, /* logical, literal not cc (or/xor) */
++ Optab{AOR, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
++ Optab{AOR, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 0},
++ Optab{AOR, C_ANDCON, C_REG, C_NONE, C_REG, 58, 0},
++ Optab{AOR, C_UCON, C_NONE, C_NONE, C_REG, 59, 0},
++ Optab{AOR, C_UCON, C_REG, C_NONE, C_REG, 59, 0},
++ Optab{AOR, C_LCON, C_NONE, C_NONE, C_REG, 23, 0},
++ Optab{AOR, C_LCON, C_REG, C_NONE, C_REG, 23, 0},
++ Optab{ADIVW, C_REG, C_REG, C_NONE, C_REG, 2, 0}, /* op r1[,r2],r3 */
++ Optab{ADIVW, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
++ Optab{ASUB, C_REG, C_REG, C_NONE, C_REG, 10, 0}, /* op r2[,r1],r3 */
++ Optab{ASUB, C_REG, C_NONE, C_NONE, C_REG, 10, 0},
++ Optab{ASLW, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
++ Optab{ASLW, C_REG, C_REG, C_NONE, C_REG, 6, 0},
++ Optab{ASLD, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
++ Optab{ASLD, C_REG, C_REG, C_NONE, C_REG, 6, 0},
++ Optab{ASLD, C_SCON, C_REG, C_NONE, C_REG, 25, 0},
++ Optab{ASLD, C_SCON, C_NONE, C_NONE, C_REG, 25, 0},
++ Optab{ASLW, C_SCON, C_REG, C_NONE, C_REG, 57, 0},
++ Optab{ASLW, C_SCON, C_NONE, C_NONE, C_REG, 57, 0},
++ Optab{ASRAW, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
++ Optab{ASRAW, C_REG, C_REG, C_NONE, C_REG, 6, 0},
++ Optab{ASRAW, C_SCON, C_REG, C_NONE, C_REG, 56, 0},
++ Optab{ASRAW, C_SCON, C_NONE, C_NONE, C_REG, 56, 0},
++ Optab{ASRAD, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
++ Optab{ASRAD, C_REG, C_REG, C_NONE, C_REG, 6, 0},
++ Optab{ASRAD, C_SCON, C_REG, C_NONE, C_REG, 56, 0},
++ Optab{ASRAD, C_SCON, C_NONE, C_NONE, C_REG, 56, 0},
++ Optab{ARLWMI, C_SCON, C_REG, C_LCON, C_REG, 62, 0},
++ Optab{ARLWMI, C_REG, C_REG, C_LCON, C_REG, 63, 0},
++ Optab{ARLDMI, C_SCON, C_REG, C_LCON, C_REG, 30, 0},
++ Optab{ARLDC, C_SCON, C_REG, C_LCON, C_REG, 29, 0},
++ Optab{ARLDCL, C_SCON, C_REG, C_LCON, C_REG, 29, 0},
++ Optab{ARLDCL, C_REG, C_REG, C_LCON, C_REG, 14, 0},
++ Optab{ARLDCL, C_REG, C_NONE, C_LCON, C_REG, 14, 0},
++ Optab{AFADD, C_FREG, C_NONE, C_NONE, C_FREG, 2, 0},
++ Optab{AFADD, C_FREG, C_REG, C_NONE, C_FREG, 2, 0},
++ Optab{AFABS, C_FREG, C_NONE, C_NONE, C_FREG, 33, 0},
++ Optab{AFABS, C_NONE, C_NONE, C_NONE, C_FREG, 33, 0},
++ Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 0},
++ Optab{AFMADD, C_FREG, C_REG, C_FREG, C_FREG, 34, 0},
++ Optab{AFMUL, C_FREG, C_NONE, C_NONE, C_FREG, 32, 0},
++ Optab{AFMUL, C_FREG, C_REG, C_NONE, C_FREG, 32, 0},
++ Optab{ACS, C_REG, C_REG, C_NONE, C_SOREG, 79, 0},
++ Optab{ACSG, C_REG, C_REG, C_NONE, C_SOREG, 79, 0},
++ Optab{ACEFBRA, C_REG, C_NONE, C_NONE, C_FREG, 82, 0},
++ Optab{ACFEBRA, C_FREG, C_NONE, C_NONE, C_REG, 83, 0},
++ Optab{AMVC, C_SOREG, C_NONE, C_SCON, C_SOREG, 84, 0},
++ Optab{ALARL, C_LCON, C_NONE, C_NONE, C_REG, 85, 0},
++ Optab{ALA, C_SOREG, C_NONE, C_NONE, C_REG, 86, 0},
++ Optab{AEXRL, C_LCON, C_NONE, C_NONE, C_REG, 87, 0},
++ Optab{ASTCK, C_NONE, C_NONE, C_NONE, C_SAUTO, 88, REGSP},
++ Optab{ASTCK, C_NONE, C_NONE, C_NONE, C_SOREG, 88, 0},
++
++ /* store, short offset */
++ Optab{AMOVD, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
++ Optab{AMOVW, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
++ Optab{AMOVWZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
++ Optab{AMOVBZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
++ Optab{AMOVB, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
++ Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
++ Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
++ Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
++ Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
++ Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
++ Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
++
++ /* load, short offset */
++ Optab{AMOVD, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVW, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVWZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVBZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVB, C_ZOREG, C_REG, C_NONE, C_REG, 9, REGZERO},
++ Optab{AMOVD, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
++ Optab{AMOVW, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
++ Optab{AMOVWZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
++ Optab{AMOVBZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
++ Optab{AMOVB, C_SAUTO, C_NONE, C_NONE, C_REG, 9, REGSP},
++ Optab{AMOVD, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVW, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVWZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVBZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
++ Optab{AMOVB, C_SOREG, C_NONE, C_NONE, C_REG, 9, REGZERO},
++
++ /* store, long offset */
++ Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
++ Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
++ Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
++ Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
++ Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
++ Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
++ Optab{AMOVD, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
++ Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
++ Optab{AMOVB, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
++
++ /* load, long offset */
++ Optab{AMOVD, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
++ Optab{AMOVW, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
++ Optab{AMOVWZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
++ Optab{AMOVBZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
++ Optab{AMOVB, C_LAUTO, C_NONE, C_NONE, C_REG, 37, REGSP},
++ Optab{AMOVD, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
++ Optab{AMOVW, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
++ Optab{AMOVWZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
++ Optab{AMOVBZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
++ Optab{AMOVB, C_LOREG, C_NONE, C_NONE, C_REG, 37, REGZERO},
++ Optab{AMOVD, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
++ Optab{AMOVW, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
++ Optab{AMOVWZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
++ Optab{AMOVBZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
++ Optab{AMOVB, C_ADDR, C_NONE, C_NONE, C_REG, 76, 0},
++
++ /* store constant */
++ Optab{AMOVD, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVW, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVWZ, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVB, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVBZ, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVD, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVW, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVWZ, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVB, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++ Optab{AMOVBZ, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
++
++ /* load constant */
++ Optab{AMOVD, C_SACON, C_NONE, C_NONE, C_REG, 3, REGSP},
++ Optab{AMOVD, C_LACON, C_NONE, C_NONE, C_REG, 26, REGSP},
++ Optab{AMOVD, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVW, C_SACON, C_NONE, C_NONE, C_REG, 3, REGSP},
++ Optab{AMOVW, C_LACON, C_NONE, C_NONE, C_REG, 26, REGSP},
++ Optab{AMOVW, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVWZ, C_SACON, C_NONE, C_NONE, C_REG, 3, REGSP},
++ Optab{AMOVWZ, C_LACON, C_NONE, C_NONE, C_REG, 26, REGSP},
++ Optab{AMOVWZ, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVB, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVBZ, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVB, C_SCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVBZ, C_SCON, C_NONE, C_NONE, C_REG, 3, 0},
++
++ /* load unsigned/long constants (TODO: check) */
++ Optab{AMOVD, C_UCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVD, C_LCON, C_NONE, C_NONE, C_REG, 19, 0},
++ Optab{AMOVW, C_UCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVW, C_LCON, C_NONE, C_NONE, C_REG, 19, 0},
++ Optab{AMOVWZ, C_UCON, C_NONE, C_NONE, C_REG, 3, 0},
++ Optab{AMOVWZ, C_LCON, C_NONE, C_NONE, C_REG, 19, 0},
++ Optab{AMOVHBR, C_ZOREG, C_REG, C_NONE, C_REG, 45, 0},
++ Optab{AMOVHBR, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 0},
++ Optab{AMOVHBR, C_REG, C_REG, C_NONE, C_ZOREG, 44, 0},
++ Optab{AMOVHBR, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 0},
++
++ Optab{ASYSCALL, C_NONE, C_NONE, C_NONE, C_NONE, 5, 0},
++ Optab{ASYSCALL, C_SCON, C_NONE, C_NONE, C_NONE, 77, 0},
++ Optab{ABEQ, C_NONE, C_NONE, C_NONE, C_SBRA, 16, 0},
++ Optab{ABR, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 0},
++ Optab{ABC, C_SCON, C_REG, C_NONE, C_SBRA, 16, 0},
++ Optab{ABC, C_SCON, C_REG, C_NONE, C_LBRA, 17, 0},
++ Optab{ABR, C_NONE, C_NONE, C_NONE, C_REG, 18, 0},
++ Optab{ABR, C_REG, C_NONE, C_NONE, C_REG, 18, 0},
++ Optab{ABR, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 0},
++ Optab{ABC, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 0},
++ Optab{ACMPBEQ, C_REG, C_REG, C_NONE, C_SBRA, 89, 0},
++ Optab{ACMPBEQ, C_REG, C_NONE, C_ADDCON, C_SBRA, 90, 0},
++ Optab{ACMPBEQ, C_REG, C_NONE, C_SCON, C_SBRA, 90, 0},
++ Optab{ACMPUBEQ, C_REG, C_REG, C_NONE, C_SBRA, 89, 0},
++ Optab{ACMPUBEQ, C_REG, C_NONE, C_ANDCON, C_SBRA, 90, 0},
++
++ Optab{AFMOVD, C_SAUTO, C_NONE, C_NONE, C_FREG, 8, REGSP},
++ Optab{AFMOVD, C_SOREG, C_NONE, C_NONE, C_FREG, 8, REGZERO},
++ Optab{AFMOVD, C_LAUTO, C_NONE, C_NONE, C_FREG, 36, REGSP},
++ Optab{AFMOVD, C_LOREG, C_NONE, C_NONE, C_FREG, 36, REGZERO},
++ Optab{AFMOVD, C_ADDR, C_NONE, C_NONE, C_FREG, 75, 0},
++ Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
++ Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
++ Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
++ Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
++ Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_ADDR, 74, 0},
++ Optab{ASYNC, C_NONE, C_NONE, C_NONE, C_NONE, 81, 0},
++ Optab{ABYTE, C_SCON, C_NONE, C_NONE, C_NONE, 40, 0},
++ Optab{AWORD, C_LCON, C_NONE, C_NONE, C_NONE, 40, 0},
++ Optab{ADWORD, C_LCON, C_NONE, C_NONE, C_NONE, 31, 0},
++ Optab{ADWORD, C_DCON, C_NONE, C_NONE, C_NONE, 31, 0},
++ Optab{AADDME, C_REG, C_NONE, C_NONE, C_REG, 47, 0},
++ Optab{ANEG, C_REG, C_NONE, C_NONE, C_REG, 47, 0},
++ Optab{ANEG, C_NONE, C_NONE, C_NONE, C_REG, 47, 0},
++ Optab{AREM, C_REG, C_NONE, C_NONE, C_REG, 50, 0},
++ Optab{AREM, C_REG, C_REG, C_NONE, C_REG, 50, 0},
++ Optab{AREMU, C_REG, C_NONE, C_NONE, C_REG, 50, 0},
++ Optab{AREMU, C_REG, C_REG, C_NONE, C_REG, 50, 0},
++ Optab{AREMD, C_REG, C_NONE, C_NONE, C_REG, 51, 0},
++ Optab{AREMD, C_REG, C_REG, C_NONE, C_REG, 51, 0},
++ Optab{AREMDU, C_REG, C_NONE, C_NONE, C_REG, 51, 0},
++ Optab{AREMDU, C_REG, C_REG, C_NONE, C_REG, 51, 0},
++
++ /* 32-bit access registers */
++ Optab{AMOVW, C_AREG, C_NONE, C_NONE, C_REG, 68, 0},
++ Optab{AMOVWZ, C_AREG, C_NONE, C_NONE, C_REG, 68, 0},
++ Optab{AMOVW, C_REG, C_NONE, C_NONE, C_AREG, 69, 0},
++ Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_AREG, 69, 0},
++
++ Optab{ACMP, C_REG, C_NONE, C_NONE, C_REG, 70, 0},
++ Optab{ACMP, C_REG, C_REG, C_NONE, C_REG, 70, 0},
++ Optab{ACMP, C_REG, C_NONE, C_NONE, C_ADDCON, 71, 0},
++ Optab{ACMP, C_REG, C_REG, C_NONE, C_ADDCON, 71, 0},
++ Optab{ACMPU, C_REG, C_NONE, C_NONE, C_REG, 70, 0},
++ Optab{ACMPU, C_REG, C_REG, C_NONE, C_REG, 70, 0},
++ Optab{ACMPU, C_REG, C_NONE, C_NONE, C_ANDCON, 71, 0},
++ Optab{ACMPU, C_REG, C_REG, C_NONE, C_ANDCON, 71, 0},
++ Optab{AFCMPO, C_FREG, C_NONE, C_NONE, C_FREG, 70, 0},
++ Optab{AFCMPO, C_FREG, C_REG, C_NONE, C_FREG, 70, 0},
++
++ Optab{obj.AUNDEF, C_NONE, C_NONE, C_NONE, C_NONE, 78, 0},
++ Optab{obj.APCDATA, C_LCON, C_NONE, C_NONE, C_LCON, 0, 0},
++ Optab{obj.AFUNCDATA, C_SCON, C_NONE, C_NONE, C_ADDR, 0, 0},
++ Optab{obj.ANOP, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0},
++ Optab{obj.ANOP, C_SAUTO, C_NONE, C_NONE, C_NONE, 0, 0},
++
++ Optab{obj.AXXX, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0},
++}
++
++type Oprang struct {
++ start []Optab
++ stop []Optab
++}
++
++var oprange [ALAST & obj.AMask]Oprang
++
++var xcmp [C_NCLASS][C_NCLASS]uint8
++
++func spanz(ctxt *obj.Link, cursym *obj.LSym) {
++ p := cursym.Text
++ if p == nil || p.Link == nil { // handle external functions and ELF section symbols
++ return
++ }
++ ctxt.Cursym = cursym
++ ctxt.Autosize = int32(p.To.Offset + 8)
++
++ if oprange[AANDN&obj.AMask].start == nil {
++ buildop(ctxt)
++ }
++
++ buffer := make([]byte, 0)
++ changed := true
++ for changed {
++ changed = false
++ buffer = buffer[:0]
++ ctxt.Cursym.R = make([]obj.Reloc, 0)
++ for p := cursym.Text; p != nil; p = p.Link {
++ pc := int64(len(buffer))
++ if pc != p.Pc {
++ changed = true
++ }
++ p.Pc = pc
++ ctxt.Pc = p.Pc
++ ctxt.Curp = p
++ asmout(ctxt, &buffer)
++ if pc == int64(len(buffer)) {
++ switch p.As {
++ case obj.ANOP, obj.AFUNCDATA, obj.APCDATA, obj.ATEXT:
++ // ok
++ default:
++ ctxt.Diag("zero-width instruction\n%v", p)
++ }
++ }
++ }
++ }
++
++ cursym.Size = int64(len(buffer))
++ if cursym.Size%FuncAlign != 0 {
++ cursym.Size += FuncAlign - (cursym.Size % FuncAlign)
++ }
++ obj.Symgrow(ctxt, cursym, cursym.Size)
++ copy(cursym.P, buffer)
++}
++
++func isint32(v int64) bool {
++ return int64(int32(v)) == v
++}
++
++func isuint32(v uint64) bool {
++ return uint64(uint32(v)) == v
++}
++
++func aclass(ctxt *obj.Link, a *obj.Addr) int {
++ switch a.Type {
++ case obj.TYPE_NONE:
++ return C_NONE
++
++ case obj.TYPE_REG:
++ if REG_R0 <= a.Reg && a.Reg <= REG_R15 {
++ return C_REG
++ }
++ if REG_F0 <= a.Reg && a.Reg <= REG_F15 {
++ return C_FREG
++ }
++ if REG_AR0 <= a.Reg && a.Reg <= REG_AR15 {
++ return C_AREG
++ }
++ return C_GOK
++
++ case obj.TYPE_MEM:
++ switch a.Name {
++ case obj.NAME_EXTERN,
++ obj.NAME_STATIC:
++ if a.Sym != nil { // use relocation
++ ctxt.Instoffset = a.Offset
++ return C_ADDR
++ }
++
++ case obj.NAME_AUTO:
++ ctxt.Instoffset = int64(ctxt.Autosize) + a.Offset
++ if ctxt.Instoffset >= -BIG && ctxt.Instoffset < BIG {
++ return C_SAUTO
++ }
++ return C_LAUTO
++
++ case obj.NAME_PARAM:
++ ctxt.Instoffset = int64(ctxt.Autosize) + a.Offset + 8
++ if ctxt.Instoffset >= -BIG && ctxt.Instoffset < BIG {
++ return C_SAUTO
++ }
++ return C_LAUTO
++
++ case obj.NAME_NONE:
++ ctxt.Instoffset = a.Offset
++ if ctxt.Instoffset == 0 {
++ return C_ZOREG
++ }
++ if ctxt.Instoffset >= -BIG && ctxt.Instoffset < BIG {
++ return C_SOREG
++ }
++ return C_LOREG
++ }
++
++ return C_GOK
++
++ case obj.TYPE_TEXTSIZE:
++ return C_TEXTSIZE
++
++ case obj.TYPE_CONST,
++ obj.TYPE_ADDR:
++ switch a.Name {
++ case obj.TYPE_NONE:
++ ctxt.Instoffset = a.Offset
++ if a.Reg != 0 {
++ if -BIG <= ctxt.Instoffset && ctxt.Instoffset <= BIG {
++ return C_SACON
++ }
++ if isint32(ctxt.Instoffset) {
++ return C_LACON
++ }
++ return C_DACON
++ }
++ goto consize
++
++ case obj.NAME_EXTERN,
++ obj.NAME_STATIC:
++ s := a.Sym
++ if s == nil {
++ break
++ }
++ if s.Type == obj.SCONST {
++ ctxt.Instoffset = s.Value + a.Offset
++ goto consize
++ }
++
++ ctxt.Instoffset = s.Value + a.Offset
++
++ /* not sure why this barfs */
++ return C_LCON
++
++ case obj.NAME_AUTO:
++ ctxt.Instoffset = int64(ctxt.Autosize) + a.Offset
++ if ctxt.Instoffset >= -BIG && ctxt.Instoffset < BIG {
++ return C_SACON
++ }
++ return C_LACON
++
++ case obj.NAME_PARAM:
++ ctxt.Instoffset = int64(ctxt.Autosize) + a.Offset + 8
++ if ctxt.Instoffset >= -BIG && ctxt.Instoffset < BIG {
++ return C_SACON
++ }
++ return C_LACON
++ }
++
++ return C_GOK
++
++ consize:
++ if ctxt.Instoffset >= 0 {
++ if ctxt.Instoffset <= 0x7fff {
++ return C_SCON
++ }
++ if ctxt.Instoffset <= 0xffff {
++ return C_ANDCON
++ }
++ if ctxt.Instoffset&0xffff == 0 && isuint32(uint64(ctxt.Instoffset)) { /* && (instoffset & (1<<31)) == 0) */
++ return C_UCON
++ }
++ if isint32(ctxt.Instoffset) || isuint32(uint64(ctxt.Instoffset)) {
++ return C_LCON
++ }
++ return C_DCON
++ }
++
++ if ctxt.Instoffset >= -0x8000 {
++ return C_ADDCON
++ }
++ if ctxt.Instoffset&0xffff == 0 && isint32(ctxt.Instoffset) {
++ return C_UCON
++ }
++ if isint32(ctxt.Instoffset) {
++ return C_LCON
++ }
++ return C_DCON
++
++ case obj.TYPE_BRANCH:
++ return C_SBRA
++ }
++
++ return C_GOK
++}
++
++func oplook(ctxt *obj.Link, p *obj.Prog) *Optab {
++ a1 := int(p.Optab)
++ if a1 != 0 {
++ return &optab[a1-1:][0]
++ }
++ a1 = int(p.From.Class)
++ if a1 == 0 {
++ a1 = aclass(ctxt, &p.From) + 1
++ p.From.Class = int8(a1)
++ }
++
++ a1--
++ a3 := C_NONE + 1
++ if p.From3 != nil {
++ a3 = int(p.From3.Class)
++ if a3 == 0 {
++ a3 = aclass(ctxt, p.From3) + 1
++ p.From3.Class = int8(a3)
++ }
++ }
++
++ a3--
++ a4 := int(p.To.Class)
++ if a4 == 0 {
++ a4 = aclass(ctxt, &p.To) + 1
++ p.To.Class = int8(a4)
++ }
++
++ a4--
++ a2 := C_NONE
++ if p.Reg != 0 {
++ a2 = C_REG
++ }
++
++ r0 := p.As & obj.AMask
++
++ o := oprange[r0].start
++ if o == nil {
++ o = oprange[r0].stop /* just generate an error */
++ }
++
++ e := oprange[r0].stop
++ c1 := xcmp[a1][:]
++ c3 := xcmp[a3][:]
++ c4 := xcmp[a4][:]
++ for ; -cap(o) < -cap(e); o = o[1:] {
++ if int(o[0].a2) == a2 {
++ if c1[o[0].a1] != 0 {
++ if c3[o[0].a3] != 0 {
++ if c4[o[0].a4] != 0 {
++ p.Optab = uint16((-cap(o) + cap(optab)) + 1)
++ return &o[0]
++ }
++ }
++ }
++ }
++ }
++
++ // cannot find a case; abort
++ ctxt.Diag("illegal combination %v %v %v %v %v\n", obj.Aconv(int(p.As)), DRconv(a1), DRconv(a2), DRconv(a3), DRconv(a4))
++ ctxt.Diag("prog: %v\n", p)
++ return nil
++}
++
++func cmp(a int, b int) bool {
++ if a == b {
++ return true
++ }
++ switch a {
++ case C_LCON:
++ if b == C_ZCON || b == C_SCON || b == C_UCON || b == C_ADDCON || b == C_ANDCON {
++ return true
++ }
++
++ case C_ADDCON:
++ if b == C_ZCON || b == C_SCON {
++ return true
++ }
++
++ case C_ANDCON:
++ if b == C_ZCON || b == C_SCON {
++ return true
++ }
++
++ case C_UCON:
++ if b == C_ZCON {
++ return true
++ }
++
++ case C_SCON:
++ if b == C_ZCON {
++ return true
++ }
++
++ case C_LACON:
++ if b == C_SACON {
++ return true
++ }
++
++ case C_LBRA:
++ if b == C_SBRA {
++ return true
++ }
++
++ case C_LAUTO:
++ if b == C_SAUTO {
++ return true
++ }
++
++ case C_REG:
++ if b == C_ZCON {
++ return r0iszero != 0 /*TypeKind(100016)*/
++ }
++
++ case C_LOREG:
++ if b == C_ZOREG || b == C_SOREG {
++ return true
++ }
++
++ case C_SOREG:
++ if b == C_ZOREG {
++ return true
++ }
++
++ case C_ANY:
++ return true
++ }
++
++ return false
++}
++
++type ocmp []Optab
++
++func (x ocmp) Len() int {
++ return len(x)
++}
++
++func (x ocmp) Swap(i, j int) {
++ x[i], x[j] = x[j], x[i]
++}
++
++func (x ocmp) Less(i, j int) bool {
++ p1 := &x[i]
++ p2 := &x[j]
++ n := int(p1.as) - int(p2.as)
++ if n != 0 {
++ return n < 0
++ }
++ n = int(p1.a1) - int(p2.a1)
++ if n != 0 {
++ return n < 0
++ }
++ n = int(p1.a2) - int(p2.a2)
++ if n != 0 {
++ return n < 0
++ }
++ n = int(p1.a3) - int(p2.a3)
++ if n != 0 {
++ return n < 0
++ }
++ n = int(p1.a4) - int(p2.a4)
++ if n != 0 {
++ return n < 0
++ }
++ return false
++}
++func opset(a, b0 int16) {
++ oprange[a&obj.AMask] = oprange[b0]
++}
++
++func buildop(ctxt *obj.Link) {
++ var n int
++
++ for i := 0; i < C_NCLASS; i++ {
++ for n = 0; n < C_NCLASS; n++ {
++ if cmp(n, i) {
++ xcmp[i][n] = 1
++ }
++ }
++ }
++ for n = 0; optab[n].as != obj.AXXX; n++ {
++ }
++ sort.Sort(ocmp(optab[:n]))
++ for i := 0; i < n; i++ {
++ r := optab[i].as
++ r0 := r & obj.AMask
++ oprange[r0].start = optab[i:]
++ for optab[i].as == r {
++ i++
++ }
++ oprange[r0].stop = optab[i:]
++ i--
++
++ // opset() aliases optab ranges for similar instructions, to reduce the number of optabs in the array.
++ // oprange[] is used by oplook() to find the Optab entry that applies to a given Prog.
++ switch r {
++ default:
++ ctxt.Diag("unknown op in build: %v", obj.Aconv(int(r)))
++ log.Fatalf("bad code")
++
++ case AREM:
++
++ case AREMU:
++
++ case AREMD:
++
++ case AREMDU:
++
++ case ADIVW: /* op Rb[,Ra],Rd */
++ opset(AADDE, r0)
++ opset(AMULLD, r0)
++ opset(AMULHD, r0)
++ opset(AMULHDU, r0)
++ opset(ADIVD, r0)
++ opset(ADIVDU, r0)
++
++ case AMOVBZ: /* lbz, stz, rlwm(r/r), lhz, lha, stz, and x variants */
++ opset(AMOVH, r0)
++ opset(AMOVHZ, r0)
++
++ case ALA:
++ opset(ALAY, r0)
++
++ case ALARL:
++
++ case AMVC:
++ opset(ACLC, r0)
++ opset(AXC, r0)
++ opset(AOC, r0)
++ opset(ANC, r0)
++
++ case AEXRL:
++
++ case ASTCK:
++ opset(ASTCKC, r0)
++ opset(ASTCKE, r0)
++ opset(ASTCKF, r0)
++
++ case AAND: /* logical op Rb,Rs,Ra; no literal */
++ opset(AANDN, r0)
++ opset(ANAND, r0)
++ opset(ANOR, r0)
++ opset(AORN, r0)
++
++ case AADDME: /* op Ra, Rd */
++ opset(AADDZE, r0)
++ opset(ASUBME, r0)
++ opset(ASUBZE, r0)
++
++ case AADDC:
++
++ case ABEQ:
++ opset(ABGE, r0)
++ opset(ABGT, r0)
++ opset(ABLE, r0)
++ opset(ABLT, r0)
++ opset(ABNE, r0)
++ opset(ABVC, r0)
++ opset(ABVS, r0)
++
++ case ABR:
++ opset(ABL, r0)
++
++ case ABC:
++ opset(ABCL, r0)
++
++ case AFABS: /* fop [s,]d */
++ opset(AFNABS, r0)
++ opset(AFNEG, r0)
++ opset(AFRSP, r0)
++ opset(ALDEBR, r0)
++ opset(AFSQRT, r0)
++ opset(AFSQRTS, r0)
++
++ case AFADD:
++ opset(AFADDS, r0)
++ opset(AFDIV, r0)
++ opset(AFDIVS, r0)
++ opset(AFSUB, r0)
++ opset(AFSUBS, r0)
++
++ case AFMADD:
++ opset(AFMADDS, r0)
++ opset(AFMSUB, r0)
++ opset(AFMSUBS, r0)
++ opset(AFNMADD, r0)
++ opset(AFNMADDS, r0)
++ opset(AFNMSUB, r0)
++ opset(AFNMSUBS, r0)
++
++ case AFMUL:
++ opset(AFMULS, r0)
++
++ case AFCMPO:
++ opset(AFCMPU, r0)
++ opset(ACEBR, r0)
++
++ case ANEG: /* op [Ra,] Rd */
++
++ case AOR: /* or/xor Rb,Rs,Ra; ori/xori $uimm,Rs,Ra; oris/xoris $uimm,Rs,Ra */
++ opset(AXOR, r0)
++
++ case ASLW:
++ opset(ASRW, r0)
++
++ case ASLD:
++ opset(ASRD, r0)
++
++ case ACS, ACSG:
++
++ case ASRAW: /* sraw Rb,Rs,Ra; srawi sh,Rs,Ra */
++
++ case ASRAD: /* sraw Rb,Rs,Ra; srawi sh,Rs,Ra */
++
++ case ASUB: /* SUB Ra,Rb,Rd => subf Rd,ra,rb */
++ opset(ASUBC, r0)
++ opset(ASUBE, r0)
++
++ case ASYNC:
++
++ case ARLWMI:
++ opset(ARLWNM, r0)
++
++ case ARLDMI:
++
++ case ARLDC:
++
++ case ARLDCL:
++ opset(ARLDCR, r0)
++
++ case AFMOVD:
++ opset(AFMOVS, r0)
++
++ case ASYSCALL: /* just the op; flow of control */
++
++ case AMOVHBR:
++ opset(AMOVWBR, r0)
++
++ case ACMP:
++ opset(ACMPW, r0)
++
++ case ACMPU:
++ opset(ACMPWU, r0)
++
++ case ACEFBRA:
++ opset(ACDFBRA, r0)
++ opset(ACEGBRA, r0)
++ opset(ACDGBRA, r0)
++ opset(ACELFBR, r0)
++ opset(ACDLFBR, r0)
++ opset(ACELGBR, r0)
++ opset(ACDLGBR, r0)
++
++ case ACFEBRA:
++ opset(ACFDBRA, r0)
++ opset(ACGEBRA, r0)
++ opset(ACGDBRA, r0)
++ opset(ACLFEBR, r0)
++ opset(ACLFDBR, r0)
++ opset(ACLGEBR, r0)
++ opset(ACLGDBR, r0)
++
++ case ACMPBEQ:
++ opset(ACMPBGE, r0)
++ opset(ACMPBGT, r0)
++ opset(ACMPBLE, r0)
++ opset(ACMPBLT, r0)
++ opset(ACMPBNE, r0)
++
++ case ACMPUBEQ:
++ opset(ACMPUBGE, r0)
++ opset(ACMPUBGT, r0)
++ opset(ACMPUBLE, r0)
++ opset(ACMPUBLT, r0)
++ opset(ACMPUBNE, r0)
++
++ case AADD,
++ AMOVW,
++ /* load/store/move word with sign extension; special 32-bit move; move 32-bit literals */
++ AMOVWZ, /* load/store/move word with zero extension; move 32-bit literals */
++ AMOVD, /* load/store/move 64-bit values, including 32-bit literals with/without sign-extension */
++ AMOVB, /* macro: move byte with sign extension */
++ AMULLW,
++ /* op $s[,r2],r3; op r1[,r2],r3; no cc/v */
++ ASUBC, /* op r1,$s,r3; op r1[,r2],r3 */
++ ABYTE,
++ AWORD,
++ ADWORD,
++ obj.ANOP,
++ obj.ATEXT,
++ obj.AUNDEF,
++ obj.AFUNCDATA,
++ obj.APCDATA:
++ break
++ }
++ }
++}
++
++const (
++ OP_A uint32 = 0x5A00 // FORMAT_RX1 ADD (32)
++ OP_AD uint32 = 0x6A00 // FORMAT_RX1 ADD NORMALIZED (long HFP)
++ OP_ADB uint32 = 0xED1A // FORMAT_RXE ADD (long BFP)
++ OP_ADBR uint32 = 0xB31A // FORMAT_RRE ADD (long BFP)
++ OP_ADR uint32 = 0x2A00 // FORMAT_RR ADD NORMALIZED (long HFP)
++ OP_ADTR uint32 = 0xB3D2 // FORMAT_RRF1 ADD (long DFP)
++ OP_ADTRA uint32 = 0xB3D2 // FORMAT_RRF1 ADD (long DFP)
++ OP_AE uint32 = 0x7A00 // FORMAT_RX1 ADD NORMALIZED (short HFP)
++ OP_AEB uint32 = 0xED0A // FORMAT_RXE ADD (short BFP)
++ OP_AEBR uint32 = 0xB30A // FORMAT_RRE ADD (short BFP)
++ OP_AER uint32 = 0x3A00 // FORMAT_RR ADD NORMALIZED (short HFP)
++ OP_AFI uint32 = 0xC209 // FORMAT_RIL1 ADD IMMEDIATE (32)
++ OP_AG uint32 = 0xE308 // FORMAT_RXY1 ADD (64)
++ OP_AGF uint32 = 0xE318 // FORMAT_RXY1 ADD (64<-32)
++ OP_AGFI uint32 = 0xC208 // FORMAT_RIL1 ADD IMMEDIATE (64<-32)
++ OP_AGFR uint32 = 0xB918 // FORMAT_RRE ADD (64<-32)
++ OP_AGHI uint32 = 0xA70B // FORMAT_RI1 ADD HALFWORD IMMEDIATE (64)
++ OP_AGHIK uint32 = 0xECD9 // FORMAT_RIE4 ADD IMMEDIATE (64<-16)
++ OP_AGR uint32 = 0xB908 // FORMAT_RRE ADD (64)
++ OP_AGRK uint32 = 0xB9E8 // FORMAT_RRF1 ADD (64)
++ OP_AGSI uint32 = 0xEB7A // FORMAT_SIY ADD IMMEDIATE (64<-8)
++ OP_AH uint32 = 0x4A00 // FORMAT_RX1 ADD HALFWORD
++ OP_AHHHR uint32 = 0xB9C8 // FORMAT_RRF1 ADD HIGH (32)
++ OP_AHHLR uint32 = 0xB9D8 // FORMAT_RRF1 ADD HIGH (32)
++ OP_AHI uint32 = 0xA70A // FORMAT_RI1 ADD HALFWORD IMMEDIATE (32)
++ OP_AHIK uint32 = 0xECD8 // FORMAT_RIE4 ADD IMMEDIATE (32<-16)
++ OP_AHY uint32 = 0xE37A // FORMAT_RXY1 ADD HALFWORD
++ OP_AIH uint32 = 0xCC08 // FORMAT_RIL1 ADD IMMEDIATE HIGH (32)
++ OP_AL uint32 = 0x5E00 // FORMAT_RX1 ADD LOGICAL (32)
++ OP_ALC uint32 = 0xE398 // FORMAT_RXY1 ADD LOGICAL WITH CARRY (32)
++ OP_ALCG uint32 = 0xE388 // FORMAT_RXY1 ADD LOGICAL WITH CARRY (64)
++ OP_ALCGR uint32 = 0xB988 // FORMAT_RRE ADD LOGICAL WITH CARRY (64)
++ OP_ALCR uint32 = 0xB998 // FORMAT_RRE ADD LOGICAL WITH CARRY (32)
++ OP_ALFI uint32 = 0xC20B // FORMAT_RIL1 ADD LOGICAL IMMEDIATE (32)
++ OP_ALG uint32 = 0xE30A // FORMAT_RXY1 ADD LOGICAL (64)
++ OP_ALGF uint32 = 0xE31A // FORMAT_RXY1 ADD LOGICAL (64<-32)
++ OP_ALGFI uint32 = 0xC20A // FORMAT_RIL1 ADD LOGICAL IMMEDIATE (64<-32)
++ OP_ALGFR uint32 = 0xB91A // FORMAT_RRE ADD LOGICAL (64<-32)
++ OP_ALGHSIK uint32 = 0xECDB // FORMAT_RIE4 ADD LOGICAL WITH SIGNED IMMEDIATE (64<-16)
++ OP_ALGR uint32 = 0xB90A // FORMAT_RRE ADD LOGICAL (64)
++ OP_ALGRK uint32 = 0xB9EA // FORMAT_RRF1 ADD LOGICAL (64)
++ OP_ALGSI uint32 = 0xEB7E // FORMAT_SIY ADD LOGICAL WITH SIGNED IMMEDIATE (64<-8)
++ OP_ALHHHR uint32 = 0xB9CA // FORMAT_RRF1 ADD LOGICAL HIGH (32)
++ OP_ALHHLR uint32 = 0xB9DA // FORMAT_RRF1 ADD LOGICAL HIGH (32)
++ OP_ALHSIK uint32 = 0xECDA // FORMAT_RIE4 ADD LOGICAL WITH SIGNED IMMEDIATE (32<-16)
++ OP_ALR uint32 = 0x1E00 // FORMAT_RR ADD LOGICAL (32)
++ OP_ALRK uint32 = 0xB9FA // FORMAT_RRF1 ADD LOGICAL (32)
++ OP_ALSI uint32 = 0xEB6E // FORMAT_SIY ADD LOGICAL WITH SIGNED IMMEDIATE (32<-8)
++ OP_ALSIH uint32 = 0xCC0A // FORMAT_RIL1 ADD LOGICAL WITH SIGNED IMMEDIATE HIGH (32)
++ OP_ALSIHN uint32 = 0xCC0B // FORMAT_RIL1 ADD LOGICAL WITH SIGNED IMMEDIATE HIGH (32)
++ OP_ALY uint32 = 0xE35E // FORMAT_RXY1 ADD LOGICAL (32)
++ OP_AP uint32 = 0xFA00 // FORMAT_SS2 ADD DECIMAL
++ OP_AR uint32 = 0x1A00 // FORMAT_RR ADD (32)
++ OP_ARK uint32 = 0xB9F8 // FORMAT_RRF1 ADD (32)
++ OP_ASI uint32 = 0xEB6A // FORMAT_SIY ADD IMMEDIATE (32<-8)
++ OP_AU uint32 = 0x7E00 // FORMAT_RX1 ADD UNNORMALIZED (short HFP)
++ OP_AUR uint32 = 0x3E00 // FORMAT_RR ADD UNNORMALIZED (short HFP)
++ OP_AW uint32 = 0x6E00 // FORMAT_RX1 ADD UNNORMALIZED (long HFP)
++ OP_AWR uint32 = 0x2E00 // FORMAT_RR ADD UNNORMALIZED (long HFP)
++ OP_AXBR uint32 = 0xB34A // FORMAT_RRE ADD (extended BFP)
++ OP_AXR uint32 = 0x3600 // FORMAT_RR ADD NORMALIZED (extended HFP)
++ OP_AXTR uint32 = 0xB3DA // FORMAT_RRF1 ADD (extended DFP)
++ OP_AXTRA uint32 = 0xB3DA // FORMAT_RRF1 ADD (extended DFP)
++ OP_AY uint32 = 0xE35A // FORMAT_RXY1 ADD (32)
++ OP_BAKR uint32 = 0xB240 // FORMAT_RRE BRANCH AND STACK
++ OP_BAL uint32 = 0x4500 // FORMAT_RX1 BRANCH AND LINK
++ OP_BALR uint32 = 0x0500 // FORMAT_RR BRANCH AND LINK
++ OP_BAS uint32 = 0x4D00 // FORMAT_RX1 BRANCH AND SAVE
++ OP_BASR uint32 = 0x0D00 // FORMAT_RR BRANCH AND SAVE
++ OP_BASSM uint32 = 0x0C00 // FORMAT_RR BRANCH AND SAVE AND SET MODE
++ OP_BC uint32 = 0x4700 // FORMAT_RX2 BRANCH ON CONDITION
++ OP_BCR uint32 = 0x0700 // FORMAT_RR BRANCH ON CONDITION
++ OP_BCT uint32 = 0x4600 // FORMAT_RX1 BRANCH ON COUNT (32)
++ OP_BCTG uint32 = 0xE346 // FORMAT_RXY1 BRANCH ON COUNT (64)
++ OP_BCTGR uint32 = 0xB946 // FORMAT_RRE BRANCH ON COUNT (64)
++ OP_BCTR uint32 = 0x0600 // FORMAT_RR BRANCH ON COUNT (32)
++ OP_BPP uint32 = 0xC700 // FORMAT_SMI BRANCH PREDICTION PRELOAD
++ OP_BPRP uint32 = 0xC500 // FORMAT_MII BRANCH PREDICTION RELATIVE PRELOAD
++ OP_BRAS uint32 = 0xA705 // FORMAT_RI2 BRANCH RELATIVE AND SAVE
++ OP_BRASL uint32 = 0xC005 // FORMAT_RIL2 BRANCH RELATIVE AND SAVE LONG
++ OP_BRC uint32 = 0xA704 // FORMAT_RI3 BRANCH RELATIVE ON CONDITION
++ OP_BRCL uint32 = 0xC004 // FORMAT_RIL3 BRANCH RELATIVE ON CONDITION LONG
++ OP_BRCT uint32 = 0xA706 // FORMAT_RI2 BRANCH RELATIVE ON COUNT (32)
++ OP_BRCTG uint32 = 0xA707 // FORMAT_RI2 BRANCH RELATIVE ON COUNT (64)
++ OP_BRCTH uint32 = 0xCC06 // FORMAT_RIL2 BRANCH RELATIVE ON COUNT HIGH (32)
++ OP_BRXH uint32 = 0x8400 // FORMAT_RSI BRANCH RELATIVE ON INDEX HIGH (32)
++ OP_BRXHG uint32 = 0xEC44 // FORMAT_RIE5 BRANCH RELATIVE ON INDEX HIGH (64)
++ OP_BRXLE uint32 = 0x8500 // FORMAT_RSI BRANCH RELATIVE ON INDEX LOW OR EQ. (32)
++ OP_BRXLG uint32 = 0xEC45 // FORMAT_RIE5 BRANCH RELATIVE ON INDEX LOW OR EQ. (64)
++ OP_BSA uint32 = 0xB25A // FORMAT_RRE BRANCH AND SET AUTHORITY
++ OP_BSG uint32 = 0xB258 // FORMAT_RRE BRANCH IN SUBSPACE GROUP
++ OP_BSM uint32 = 0x0B00 // FORMAT_RR BRANCH AND SET MODE
++ OP_BXH uint32 = 0x8600 // FORMAT_RS1 BRANCH ON INDEX HIGH (32)
++ OP_BXHG uint32 = 0xEB44 // FORMAT_RSY1 BRANCH ON INDEX HIGH (64)
++ OP_BXLE uint32 = 0x8700 // FORMAT_RS1 BRANCH ON INDEX LOW OR EQUAL (32)
++ OP_BXLEG uint32 = 0xEB45 // FORMAT_RSY1 BRANCH ON INDEX LOW OR EQUAL (64)
++ OP_C uint32 = 0x5900 // FORMAT_RX1 COMPARE (32)
++ OP_CD uint32 = 0x6900 // FORMAT_RX1 COMPARE (long HFP)
++ OP_CDB uint32 = 0xED19 // FORMAT_RXE COMPARE (long BFP)
++ OP_CDBR uint32 = 0xB319 // FORMAT_RRE COMPARE (long BFP)
++ OP_CDFBR uint32 = 0xB395 // FORMAT_RRE CONVERT FROM FIXED (32 to long BFP)
++ OP_CDFBRA uint32 = 0xB395 // FORMAT_RRF5 CONVERT FROM FIXED (32 to long BFP)
++ OP_CDFR uint32 = 0xB3B5 // FORMAT_RRE CONVERT FROM FIXED (32 to long HFP)
++ OP_CDFTR uint32 = 0xB951 // FORMAT_RRE CONVERT FROM FIXED (32 to long DFP)
++ OP_CDGBR uint32 = 0xB3A5 // FORMAT_RRE CONVERT FROM FIXED (64 to long BFP)
++ OP_CDGBRA uint32 = 0xB3A5 // FORMAT_RRF5 CONVERT FROM FIXED (64 to long BFP)
++ OP_CDGR uint32 = 0xB3C5 // FORMAT_RRE CONVERT FROM FIXED (64 to long HFP)
++ OP_CDGTR uint32 = 0xB3F1 // FORMAT_RRE CONVERT FROM FIXED (64 to long DFP)
++ OP_CDGTRA uint32 = 0xB3F1 // FORMAT_RRF5 CONVERT FROM FIXED (64 to long DFP)
++ OP_CDLFBR uint32 = 0xB391 // FORMAT_RRF5 CONVERT FROM LOGICAL (32 to long BFP)
++ OP_CDLFTR uint32 = 0xB953 // FORMAT_RRF5 CONVERT FROM LOGICAL (32 to long DFP)
++ OP_CDLGBR uint32 = 0xB3A1 // FORMAT_RRF5 CONVERT FROM LOGICAL (64 to long BFP)
++ OP_CDLGTR uint32 = 0xB952 // FORMAT_RRF5 CONVERT FROM LOGICAL (64 to long DFP)
++ OP_CDR uint32 = 0x2900 // FORMAT_RR COMPARE (long HFP)
++ OP_CDS uint32 = 0xBB00 // FORMAT_RS1 COMPARE DOUBLE AND SWAP (32)
++ OP_CDSG uint32 = 0xEB3E // FORMAT_RSY1 COMPARE DOUBLE AND SWAP (64)
++ OP_CDSTR uint32 = 0xB3F3 // FORMAT_RRE CONVERT FROM SIGNED PACKED (64 to long DFP)
++ OP_CDSY uint32 = 0xEB31 // FORMAT_RSY1 COMPARE DOUBLE AND SWAP (32)
++ OP_CDTR uint32 = 0xB3E4 // FORMAT_RRE COMPARE (long DFP)
++ OP_CDUTR uint32 = 0xB3F2 // FORMAT_RRE CONVERT FROM UNSIGNED PACKED (64 to long DFP)
++ OP_CDZT uint32 = 0xEDAA // FORMAT_RSL CONVERT FROM ZONED (to long DFP)
++ OP_CE uint32 = 0x7900 // FORMAT_RX1 COMPARE (short HFP)
++ OP_CEB uint32 = 0xED09 // FORMAT_RXE COMPARE (short BFP)
++ OP_CEBR uint32 = 0xB309 // FORMAT_RRE COMPARE (short BFP)
++ OP_CEDTR uint32 = 0xB3F4 // FORMAT_RRE COMPARE BIASED EXPONENT (long DFP)
++ OP_CEFBR uint32 = 0xB394 // FORMAT_RRE CONVERT FROM FIXED (32 to short BFP)
++ OP_CEFBRA uint32 = 0xB394 // FORMAT_RRF5 CONVERT FROM FIXED (32 to short BFP)
++ OP_CEFR uint32 = 0xB3B4 // FORMAT_RRE CONVERT FROM FIXED (32 to short HFP)
++ OP_CEGBR uint32 = 0xB3A4 // FORMAT_RRE CONVERT FROM FIXED (64 to short BFP)
++ OP_CEGBRA uint32 = 0xB3A4 // FORMAT_RRF5 CONVERT FROM FIXED (64 to short BFP)
++ OP_CEGR uint32 = 0xB3C4 // FORMAT_RRE CONVERT FROM FIXED (64 to short HFP)
++ OP_CELFBR uint32 = 0xB390 // FORMAT_RRF5 CONVERT FROM LOGICAL (32 to short BFP)
++ OP_CELGBR uint32 = 0xB3A0 // FORMAT_RRF5 CONVERT FROM LOGICAL (64 to short BFP)
++ OP_CER uint32 = 0x3900 // FORMAT_RR COMPARE (short HFP)
++ OP_CEXTR uint32 = 0xB3FC // FORMAT_RRE COMPARE BIASED EXPONENT (extended DFP)
++ OP_CFC uint32 = 0xB21A // FORMAT_S COMPARE AND FORM CODEWORD
++ OP_CFDBR uint32 = 0xB399 // FORMAT_RRF5 CONVERT TO FIXED (long BFP to 32)
++ OP_CFDBRA uint32 = 0xB399 // FORMAT_RRF5 CONVERT TO FIXED (long BFP to 32)
++ OP_CFDR uint32 = 0xB3B9 // FORMAT_RRF5 CONVERT TO FIXED (long HFP to 32)
++ OP_CFDTR uint32 = 0xB941 // FORMAT_RRF5 CONVERT TO FIXED (long DFP to 32)
++ OP_CFEBR uint32 = 0xB398 // FORMAT_RRF5 CONVERT TO FIXED (short BFP to 32)
++ OP_CFEBRA uint32 = 0xB398 // FORMAT_RRF5 CONVERT TO FIXED (short BFP to 32)
++ OP_CFER uint32 = 0xB3B8 // FORMAT_RRF5 CONVERT TO FIXED (short HFP to 32)
++ OP_CFI uint32 = 0xC20D // FORMAT_RIL1 COMPARE IMMEDIATE (32)
++ OP_CFXBR uint32 = 0xB39A // FORMAT_RRF5 CONVERT TO FIXED (extended BFP to 32)
++ OP_CFXBRA uint32 = 0xB39A // FORMAT_RRF5 CONVERT TO FIXED (extended BFP to 32)
++ OP_CFXR uint32 = 0xB3BA // FORMAT_RRF5 CONVERT TO FIXED (extended HFP to 32)
++ OP_CFXTR uint32 = 0xB949 // FORMAT_RRF5 CONVERT TO FIXED (extended DFP to 32)
++ OP_CG uint32 = 0xE320 // FORMAT_RXY1 COMPARE (64)
++ OP_CGDBR uint32 = 0xB3A9 // FORMAT_RRF5 CONVERT TO FIXED (long BFP to 64)
++ OP_CGDBRA uint32 = 0xB3A9 // FORMAT_RRF5 CONVERT TO FIXED (long BFP to 64)
++ OP_CGDR uint32 = 0xB3C9 // FORMAT_RRF5 CONVERT TO FIXED (long HFP to 64)
++ OP_CGDTR uint32 = 0xB3E1 // FORMAT_RRF5 CONVERT TO FIXED (long DFP to 64)
++ OP_CGDTRA uint32 = 0xB3E1 // FORMAT_RRF5 CONVERT TO FIXED (long DFP to 64)
++ OP_CGEBR uint32 = 0xB3A8 // FORMAT_RRF5 CONVERT TO FIXED (short BFP to 64)
++ OP_CGEBRA uint32 = 0xB3A8 // FORMAT_RRF5 CONVERT TO FIXED (short BFP to 64)
++ OP_CGER uint32 = 0xB3C8 // FORMAT_RRF5 CONVERT TO FIXED (short HFP to 64)
++ OP_CGF uint32 = 0xE330 // FORMAT_RXY1 COMPARE (64<-32)
++ OP_CGFI uint32 = 0xC20C // FORMAT_RIL1 COMPARE IMMEDIATE (64<-32)
++ OP_CGFR uint32 = 0xB930 // FORMAT_RRE COMPARE (64<-32)
++ OP_CGFRL uint32 = 0xC60C // FORMAT_RIL2 COMPARE RELATIVE LONG (64<-32)
++ OP_CGH uint32 = 0xE334 // FORMAT_RXY1 COMPARE HALFWORD (64<-16)
++ OP_CGHI uint32 = 0xA70F // FORMAT_RI1 COMPARE HALFWORD IMMEDIATE (64<-16)
++ OP_CGHRL uint32 = 0xC604 // FORMAT_RIL2 COMPARE HALFWORD RELATIVE LONG (64<-16)
++ OP_CGHSI uint32 = 0xE558 // FORMAT_SIL COMPARE HALFWORD IMMEDIATE (64<-16)
++ OP_CGIB uint32 = 0xECFC // FORMAT_RIS COMPARE IMMEDIATE AND BRANCH (64<-8)
++ OP_CGIJ uint32 = 0xEC7C // FORMAT_RIE3 COMPARE IMMEDIATE AND BRANCH RELATIVE (64<-8)
++ OP_CGIT uint32 = 0xEC70 // FORMAT_RIE1 COMPARE IMMEDIATE AND TRAP (64<-16)
++ OP_CGR uint32 = 0xB920 // FORMAT_RRE COMPARE (64)
++ OP_CGRB uint32 = 0xECE4 // FORMAT_RRS COMPARE AND BRANCH (64)
++ OP_CGRJ uint32 = 0xEC64 // FORMAT_RIE2 COMPARE AND BRANCH RELATIVE (64)
++ OP_CGRL uint32 = 0xC608 // FORMAT_RIL2 COMPARE RELATIVE LONG (64)
++ OP_CGRT uint32 = 0xB960 // FORMAT_RRF3 COMPARE AND TRAP (64)
++ OP_CGXBR uint32 = 0xB3AA // FORMAT_RRF5 CONVERT TO FIXED (extended BFP to 64)
++ OP_CGXBRA uint32 = 0xB3AA // FORMAT_RRF5 CONVERT TO FIXED (extended BFP to 64)
++ OP_CGXR uint32 = 0xB3CA // FORMAT_RRF5 CONVERT TO FIXED (extended HFP to 64)
++ OP_CGXTR uint32 = 0xB3E9 // FORMAT_RRF5 CONVERT TO FIXED (extended DFP to 64)
++ OP_CGXTRA uint32 = 0xB3E9 // FORMAT_RRF5 CONVERT TO FIXED (extended DFP to 64)
++ OP_CH uint32 = 0x4900 // FORMAT_RX1 COMPARE HALFWORD (32<-16)
++ OP_CHF uint32 = 0xE3CD // FORMAT_RXY1 COMPARE HIGH (32)
++ OP_CHHR uint32 = 0xB9CD // FORMAT_RRE COMPARE HIGH (32)
++ OP_CHHSI uint32 = 0xE554 // FORMAT_SIL COMPARE HALFWORD IMMEDIATE (16)
++ OP_CHI uint32 = 0xA70E // FORMAT_RI1 COMPARE HALFWORD IMMEDIATE (32<-16)
++ OP_CHLR uint32 = 0xB9DD // FORMAT_RRE COMPARE HIGH (32)
++ OP_CHRL uint32 = 0xC605 // FORMAT_RIL2 COMPARE HALFWORD RELATIVE LONG (32<-16)
++ OP_CHSI uint32 = 0xE55C // FORMAT_SIL COMPARE HALFWORD IMMEDIATE (32<-16)
++ OP_CHY uint32 = 0xE379 // FORMAT_RXY1 COMPARE HALFWORD (32<-16)
++ OP_CIB uint32 = 0xECFE // FORMAT_RIS COMPARE IMMEDIATE AND BRANCH (32<-8)
++ OP_CIH uint32 = 0xCC0D // FORMAT_RIL1 COMPARE IMMEDIATE HIGH (32)
++ OP_CIJ uint32 = 0xEC7E // FORMAT_RIE3 COMPARE IMMEDIATE AND BRANCH RELATIVE (32<-8)
++ OP_CIT uint32 = 0xEC72 // FORMAT_RIE1 COMPARE IMMEDIATE AND TRAP (32<-16)
++ OP_CKSM uint32 = 0xB241 // FORMAT_RRE CHECKSUM
++ OP_CL uint32 = 0x5500 // FORMAT_RX1 COMPARE LOGICAL (32)
++ OP_CLC uint32 = 0xD500 // FORMAT_SS1 COMPARE LOGICAL (character)
++ OP_CLCL uint32 = 0x0F00 // FORMAT_RR COMPARE LOGICAL LONG
++ OP_CLCLE uint32 = 0xA900 // FORMAT_RS1 COMPARE LOGICAL LONG EXTENDED
++ OP_CLCLU uint32 = 0xEB8F // FORMAT_RSY1 COMPARE LOGICAL LONG UNICODE
++ OP_CLFDBR uint32 = 0xB39D // FORMAT_RRF5 CONVERT TO LOGICAL (long BFP to 32)
++ OP_CLFDTR uint32 = 0xB943 // FORMAT_RRF5 CONVERT TO LOGICAL (long DFP to 32)
++ OP_CLFEBR uint32 = 0xB39C // FORMAT_RRF5 CONVERT TO LOGICAL (short BFP to 32)
++ OP_CLFHSI uint32 = 0xE55D // FORMAT_SIL COMPARE LOGICAL IMMEDIATE (32<-16)
++ OP_CLFI uint32 = 0xC20F // FORMAT_RIL1 COMPARE LOGICAL IMMEDIATE (32)
++ OP_CLFIT uint32 = 0xEC73 // FORMAT_RIE1 COMPARE LOGICAL IMMEDIATE AND TRAP (32<-16)
++ OP_CLFXBR uint32 = 0xB39E // FORMAT_RRF5 CONVERT TO LOGICAL (extended BFP to 32)
++ OP_CLFXTR uint32 = 0xB94B // FORMAT_RRF5 CONVERT TO LOGICAL (extended DFP to 32)
++ OP_CLG uint32 = 0xE321 // FORMAT_RXY1 COMPARE LOGICAL (64)
++ OP_CLGDBR uint32 = 0xB3AD // FORMAT_RRF5 CONVERT TO LOGICAL (long BFP to 64)
++ OP_CLGDTR uint32 = 0xB942 // FORMAT_RRF5 CONVERT TO LOGICAL (long DFP to 64)
++ OP_CLGEBR uint32 = 0xB3AC // FORMAT_RRF5 CONVERT TO LOGICAL (short BFP to 64)
++ OP_CLGF uint32 = 0xE331 // FORMAT_RXY1 COMPARE LOGICAL (64<-32)
++ OP_CLGFI uint32 = 0xC20E // FORMAT_RIL1 COMPARE LOGICAL IMMEDIATE (64<-32)
++ OP_CLGFR uint32 = 0xB931 // FORMAT_RRE COMPARE LOGICAL (64<-32)
++ OP_CLGFRL uint32 = 0xC60E // FORMAT_RIL2 COMPARE LOGICAL RELATIVE LONG (64<-32)
++ OP_CLGHRL uint32 = 0xC606 // FORMAT_RIL2 COMPARE LOGICAL RELATIVE LONG (64<-16)
++ OP_CLGHSI uint32 = 0xE559 // FORMAT_SIL COMPARE LOGICAL IMMEDIATE (64<-16)
++ OP_CLGIB uint32 = 0xECFD // FORMAT_RIS COMPARE LOGICAL IMMEDIATE AND BRANCH (64<-8)
++ OP_CLGIJ uint32 = 0xEC7D // FORMAT_RIE3 COMPARE LOGICAL IMMEDIATE AND BRANCH RELATIVE (64<-8)
++ OP_CLGIT uint32 = 0xEC71 // FORMAT_RIE1 COMPARE LOGICAL IMMEDIATE AND TRAP (64<-16)
++ OP_CLGR uint32 = 0xB921 // FORMAT_RRE COMPARE LOGICAL (64)
++ OP_CLGRB uint32 = 0xECE5 // FORMAT_RRS COMPARE LOGICAL AND BRANCH (64)
++ OP_CLGRJ uint32 = 0xEC65 // FORMAT_RIE2 COMPARE LOGICAL AND BRANCH RELATIVE (64)
++ OP_CLGRL uint32 = 0xC60A // FORMAT_RIL2 COMPARE LOGICAL RELATIVE LONG (64)
++ OP_CLGRT uint32 = 0xB961 // FORMAT_RRF3 COMPARE LOGICAL AND TRAP (64)
++ OP_CLGT uint32 = 0xEB2B // FORMAT_RSY2 COMPARE LOGICAL AND TRAP (64)
++ OP_CLGXBR uint32 = 0xB3AE // FORMAT_RRF5 CONVERT TO LOGICAL (extended BFP to 64)
++ OP_CLGXTR uint32 = 0xB94A // FORMAT_RRF5 CONVERT TO LOGICAL (extended DFP to 64)
++ OP_CLHF uint32 = 0xE3CF // FORMAT_RXY1 COMPARE LOGICAL HIGH (32)
++ OP_CLHHR uint32 = 0xB9CF // FORMAT_RRE COMPARE LOGICAL HIGH (32)
++ OP_CLHHSI uint32 = 0xE555 // FORMAT_SIL COMPARE LOGICAL IMMEDIATE (16)
++ OP_CLHLR uint32 = 0xB9DF // FORMAT_RRE COMPARE LOGICAL HIGH (32)
++ OP_CLHRL uint32 = 0xC607 // FORMAT_RIL2 COMPARE LOGICAL RELATIVE LONG (32<-16)
++ OP_CLI uint32 = 0x9500 // FORMAT_SI COMPARE LOGICAL (immediate)
++ OP_CLIB uint32 = 0xECFF // FORMAT_RIS COMPARE LOGICAL IMMEDIATE AND BRANCH (32<-8)
++ OP_CLIH uint32 = 0xCC0F // FORMAT_RIL1 COMPARE LOGICAL IMMEDIATE HIGH (32)
++ OP_CLIJ uint32 = 0xEC7F // FORMAT_RIE3 COMPARE LOGICAL IMMEDIATE AND BRANCH RELATIVE (32<-8)
++ OP_CLIY uint32 = 0xEB55 // FORMAT_SIY COMPARE LOGICAL (immediate)
++ OP_CLM uint32 = 0xBD00 // FORMAT_RS2 COMPARE LOGICAL CHAR. UNDER MASK (low)
++ OP_CLMH uint32 = 0xEB20 // FORMAT_RSY2 COMPARE LOGICAL CHAR. UNDER MASK (high)
++ OP_CLMY uint32 = 0xEB21 // FORMAT_RSY2 COMPARE LOGICAL CHAR. UNDER MASK (low)
++ OP_CLR uint32 = 0x1500 // FORMAT_RR COMPARE LOGICAL (32)
++ OP_CLRB uint32 = 0xECF7 // FORMAT_RRS COMPARE LOGICAL AND BRANCH (32)
++ OP_CLRJ uint32 = 0xEC77 // FORMAT_RIE2 COMPARE LOGICAL AND BRANCH RELATIVE (32)
++ OP_CLRL uint32 = 0xC60F // FORMAT_RIL2 COMPARE LOGICAL RELATIVE LONG (32)
++ OP_CLRT uint32 = 0xB973 // FORMAT_RRF3 COMPARE LOGICAL AND TRAP (32)
++ OP_CLST uint32 = 0xB25D // FORMAT_RRE COMPARE LOGICAL STRING
++ OP_CLT uint32 = 0xEB23 // FORMAT_RSY2 COMPARE LOGICAL AND TRAP (32)
++ OP_CLY uint32 = 0xE355 // FORMAT_RXY1 COMPARE LOGICAL (32)
++ OP_CMPSC uint32 = 0xB263 // FORMAT_RRE COMPRESSION CALL
++ OP_CP uint32 = 0xF900 // FORMAT_SS2 COMPARE DECIMAL
++ OP_CPSDR uint32 = 0xB372 // FORMAT_RRF2 COPY SIGN (long)
++ OP_CPYA uint32 = 0xB24D // FORMAT_RRE COPY ACCESS
++ OP_CR uint32 = 0x1900 // FORMAT_RR COMPARE (32)
++ OP_CRB uint32 = 0xECF6 // FORMAT_RRS COMPARE AND BRANCH (32)
++ OP_CRDTE uint32 = 0xB98F // FORMAT_RRF2 COMPARE AND REPLACE DAT TABLE ENTRY
++ OP_CRJ uint32 = 0xEC76 // FORMAT_RIE2 COMPARE AND BRANCH RELATIVE (32)
++ OP_CRL uint32 = 0xC60D // FORMAT_RIL2 COMPARE RELATIVE LONG (32)
++ OP_CRT uint32 = 0xB972 // FORMAT_RRF3 COMPARE AND TRAP (32)
++ OP_CS uint32 = 0xBA00 // FORMAT_RS1 COMPARE AND SWAP (32)
++ OP_CSCH uint32 = 0xB230 // FORMAT_S CLEAR SUBCHANNEL
++ OP_CSDTR uint32 = 0xB3E3 // FORMAT_RRF4 CONVERT TO SIGNED PACKED (long DFP to 64)
++ OP_CSG uint32 = 0xEB30 // FORMAT_RSY1 COMPARE AND SWAP (64)
++ OP_CSP uint32 = 0xB250 // FORMAT_RRE COMPARE AND SWAP AND PURGE
++ OP_CSPG uint32 = 0xB98A // FORMAT_RRE COMPARE AND SWAP AND PURGE
++ OP_CSST uint32 = 0xC802 // FORMAT_SSF COMPARE AND SWAP AND STORE
++ OP_CSXTR uint32 = 0xB3EB // FORMAT_RRF4 CONVERT TO SIGNED PACKED (extended DFP to 128)
++ OP_CSY uint32 = 0xEB14 // FORMAT_RSY1 COMPARE AND SWAP (32)
++ OP_CU12 uint32 = 0xB2A7 // FORMAT_RRF3 CONVERT UTF-8 TO UTF-16
++ OP_CU14 uint32 = 0xB9B0 // FORMAT_RRF3 CONVERT UTF-8 TO UTF-32
++ OP_CU21 uint32 = 0xB2A6 // FORMAT_RRF3 CONVERT UTF-16 TO UTF-8
++ OP_CU24 uint32 = 0xB9B1 // FORMAT_RRF3 CONVERT UTF-16 TO UTF-32
++ OP_CU41 uint32 = 0xB9B2 // FORMAT_RRE CONVERT UTF-32 TO UTF-8
++ OP_CU42 uint32 = 0xB9B3 // FORMAT_RRE CONVERT UTF-32 TO UTF-16
++ OP_CUDTR uint32 = 0xB3E2 // FORMAT_RRE CONVERT TO UNSIGNED PACKED (long DFP to 64)
++ OP_CUSE uint32 = 0xB257 // FORMAT_RRE COMPARE UNTIL SUBSTRING EQUAL
++ OP_CUTFU uint32 = 0xB2A7 // FORMAT_RRF3 CONVERT UTF-8 TO UNICODE
++ OP_CUUTF uint32 = 0xB2A6 // FORMAT_RRF3 CONVERT UNICODE TO UTF-8
++ OP_CUXTR uint32 = 0xB3EA // FORMAT_RRE CONVERT TO UNSIGNED PACKED (extended DFP to 128)
++ OP_CVB uint32 = 0x4F00 // FORMAT_RX1 CONVERT TO BINARY (32)
++ OP_CVBG uint32 = 0xE30E // FORMAT_RXY1 CONVERT TO BINARY (64)
++ OP_CVBY uint32 = 0xE306 // FORMAT_RXY1 CONVERT TO BINARY (32)
++ OP_CVD uint32 = 0x4E00 // FORMAT_RX1 CONVERT TO DECIMAL (32)
++ OP_CVDG uint32 = 0xE32E // FORMAT_RXY1 CONVERT TO DECIMAL (64)
++ OP_CVDY uint32 = 0xE326 // FORMAT_RXY1 CONVERT TO DECIMAL (32)
++ OP_CXBR uint32 = 0xB349 // FORMAT_RRE COMPARE (extended BFP)
++ OP_CXFBR uint32 = 0xB396 // FORMAT_RRE CONVERT FROM FIXED (32 to extended BFP)
++ OP_CXFBRA uint32 = 0xB396 // FORMAT_RRF5 CONVERT FROM FIXED (32 to extended BFP)
++ OP_CXFR uint32 = 0xB3B6 // FORMAT_RRE CONVERT FROM FIXED (32 to extended HFP)
++ OP_CXFTR uint32 = 0xB959 // FORMAT_RRE CONVERT FROM FIXED (32 to extended DFP)
++ OP_CXGBR uint32 = 0xB3A6 // FORMAT_RRE CONVERT FROM FIXED (64 to extended BFP)
++ OP_CXGBRA uint32 = 0xB3A6 // FORMAT_RRF5 CONVERT FROM FIXED (64 to extended BFP)
++ OP_CXGR uint32 = 0xB3C6 // FORMAT_RRE CONVERT FROM FIXED (64 to extended HFP)
++ OP_CXGTR uint32 = 0xB3F9 // FORMAT_RRE CONVERT FROM FIXED (64 to extended DFP)
++ OP_CXGTRA uint32 = 0xB3F9 // FORMAT_RRF5 CONVERT FROM FIXED (64 to extended DFP)
++ OP_CXLFBR uint32 = 0xB392 // FORMAT_RRF5 CONVERT FROM LOGICAL (32 to extended BFP)
++ OP_CXLFTR uint32 = 0xB95B // FORMAT_RRF5 CONVERT FROM LOGICAL (32 to extended DFP)
++ OP_CXLGBR uint32 = 0xB3A2 // FORMAT_RRF5 CONVERT FROM LOGICAL (64 to extended BFP)
++ OP_CXLGTR uint32 = 0xB95A // FORMAT_RRF5 CONVERT FROM LOGICAL (64 to extended DFP)
++ OP_CXR uint32 = 0xB369 // FORMAT_RRE COMPARE (extended HFP)
++ OP_CXSTR uint32 = 0xB3FB // FORMAT_RRE CONVERT FROM SIGNED PACKED (128 to extended DFP)
++ OP_CXTR uint32 = 0xB3EC // FORMAT_RRE COMPARE (extended DFP)
++ OP_CXUTR uint32 = 0xB3FA // FORMAT_RRE CONVERT FROM UNSIGNED PACKED (128 to ext. DFP)
++ OP_CXZT uint32 = 0xEDAB // FORMAT_RSL CONVERT FROM ZONED (to extended DFP)
++ OP_CY uint32 = 0xE359 // FORMAT_RXY1 COMPARE (32)
++ OP_CZDT uint32 = 0xEDA8 // FORMAT_RSL CONVERT TO ZONED (from long DFP)
++ OP_CZXT uint32 = 0xEDA9 // FORMAT_RSL CONVERT TO ZONED (from extended DFP)
++ OP_D uint32 = 0x5D00 // FORMAT_RX1 DIVIDE (32<-64)
++ OP_DD uint32 = 0x6D00 // FORMAT_RX1 DIVIDE (long HFP)
++ OP_DDB uint32 = 0xED1D // FORMAT_RXE DIVIDE (long BFP)
++ OP_DDBR uint32 = 0xB31D // FORMAT_RRE DIVIDE (long BFP)
++ OP_DDR uint32 = 0x2D00 // FORMAT_RR DIVIDE (long HFP)
++ OP_DDTR uint32 = 0xB3D1 // FORMAT_RRF1 DIVIDE (long DFP)
++ OP_DDTRA uint32 = 0xB3D1 // FORMAT_RRF1 DIVIDE (long DFP)
++ OP_DE uint32 = 0x7D00 // FORMAT_RX1 DIVIDE (short HFP)
++ OP_DEB uint32 = 0xED0D // FORMAT_RXE DIVIDE (short BFP)
++ OP_DEBR uint32 = 0xB30D // FORMAT_RRE DIVIDE (short BFP)
++ OP_DER uint32 = 0x3D00 // FORMAT_RR DIVIDE (short HFP)
++ OP_DIDBR uint32 = 0xB35B // FORMAT_RRF2 DIVIDE TO INTEGER (long BFP)
++ OP_DIEBR uint32 = 0xB353 // FORMAT_RRF2 DIVIDE TO INTEGER (short BFP)
++ OP_DL uint32 = 0xE397 // FORMAT_RXY1 DIVIDE LOGICAL (32<-64)
++ OP_DLG uint32 = 0xE387 // FORMAT_RXY1 DIVIDE LOGICAL (64<-128)
++ OP_DLGR uint32 = 0xB987 // FORMAT_RRE DIVIDE LOGICAL (64<-128)
++ OP_DLR uint32 = 0xB997 // FORMAT_RRE DIVIDE LOGICAL (32<-64)
++ OP_DP uint32 = 0xFD00 // FORMAT_SS2 DIVIDE DECIMAL
++ OP_DR uint32 = 0x1D00 // FORMAT_RR DIVIDE (32<-64)
++ OP_DSG uint32 = 0xE30D // FORMAT_RXY1 DIVIDE SINGLE (64)
++ OP_DSGF uint32 = 0xE31D // FORMAT_RXY1 DIVIDE SINGLE (64<-32)
++ OP_DSGFR uint32 = 0xB91D // FORMAT_RRE DIVIDE SINGLE (64<-32)
++ OP_DSGR uint32 = 0xB90D // FORMAT_RRE DIVIDE SINGLE (64)
++ OP_DXBR uint32 = 0xB34D // FORMAT_RRE DIVIDE (extended BFP)
++ OP_DXR uint32 = 0xB22D // FORMAT_RRE DIVIDE (extended HFP)
++ OP_DXTR uint32 = 0xB3D9 // FORMAT_RRF1 DIVIDE (extended DFP)
++ OP_DXTRA uint32 = 0xB3D9 // FORMAT_RRF1 DIVIDE (extended DFP)
++ OP_EAR uint32 = 0xB24F // FORMAT_RRE EXTRACT ACCESS
++ OP_ECAG uint32 = 0xEB4C // FORMAT_RSY1 EXTRACT CACHE ATTRIBUTE
++ OP_ECTG uint32 = 0xC801 // FORMAT_SSF EXTRACT CPU TIME
++ OP_ED uint32 = 0xDE00 // FORMAT_SS1 EDIT
++ OP_EDMK uint32 = 0xDF00 // FORMAT_SS1 EDIT AND MARK
++ OP_EEDTR uint32 = 0xB3E5 // FORMAT_RRE EXTRACT BIASED EXPONENT (long DFP to 64)
++ OP_EEXTR uint32 = 0xB3ED // FORMAT_RRE EXTRACT BIASED EXPONENT (extended DFP to 64)
++ OP_EFPC uint32 = 0xB38C // FORMAT_RRE EXTRACT FPC
++ OP_EPAIR uint32 = 0xB99A // FORMAT_RRE EXTRACT PRIMARY ASN AND INSTANCE
++ OP_EPAR uint32 = 0xB226 // FORMAT_RRE EXTRACT PRIMARY ASN
++ OP_EPSW uint32 = 0xB98D // FORMAT_RRE EXTRACT PSW
++ OP_EREG uint32 = 0xB249 // FORMAT_RRE EXTRACT STACKED REGISTERS (32)
++ OP_EREGG uint32 = 0xB90E // FORMAT_RRE EXTRACT STACKED REGISTERS (64)
++ OP_ESAIR uint32 = 0xB99B // FORMAT_RRE EXTRACT SECONDARY ASN AND INSTANCE
++ OP_ESAR uint32 = 0xB227 // FORMAT_RRE EXTRACT SECONDARY ASN
++ OP_ESDTR uint32 = 0xB3E7 // FORMAT_RRE EXTRACT SIGNIFICANCE (long DFP)
++ OP_ESEA uint32 = 0xB99D // FORMAT_RRE EXTRACT AND SET EXTENDED AUTHORITY
++ OP_ESTA uint32 = 0xB24A // FORMAT_RRE EXTRACT STACKED STATE
++ OP_ESXTR uint32 = 0xB3EF // FORMAT_RRE EXTRACT SIGNIFICANCE (extended DFP)
++ OP_ETND uint32 = 0xB2EC // FORMAT_RRE EXTRACT TRANSACTION NESTING DEPTH
++ OP_EX uint32 = 0x4400 // FORMAT_RX1 EXECUTE
++ OP_EXRL uint32 = 0xC600 // FORMAT_RIL2 EXECUTE RELATIVE LONG
++ OP_FIDBR uint32 = 0xB35F // FORMAT_RRF5 LOAD FP INTEGER (long BFP)
++ OP_FIDBRA uint32 = 0xB35F // FORMAT_RRF5 LOAD FP INTEGER (long BFP)
++ OP_FIDR uint32 = 0xB37F // FORMAT_RRE LOAD FP INTEGER (long HFP)
++ OP_FIDTR uint32 = 0xB3D7 // FORMAT_RRF5 LOAD FP INTEGER (long DFP)
++ OP_FIEBR uint32 = 0xB357 // FORMAT_RRF5 LOAD FP INTEGER (short BFP)
++ OP_FIEBRA uint32 = 0xB357 // FORMAT_RRF5 LOAD FP INTEGER (short BFP)
++ OP_FIER uint32 = 0xB377 // FORMAT_RRE LOAD FP INTEGER (short HFP)
++ OP_FIXBR uint32 = 0xB347 // FORMAT_RRF5 LOAD FP INTEGER (extended BFP)
++ OP_FIXBRA uint32 = 0xB347 // FORMAT_RRF5 LOAD FP INTEGER (extended BFP)
++ OP_FIXR uint32 = 0xB367 // FORMAT_RRE LOAD FP INTEGER (extended HFP)
++ OP_FIXTR uint32 = 0xB3DF // FORMAT_RRF5 LOAD FP INTEGER (extended DFP)
++ OP_FLOGR uint32 = 0xB983 // FORMAT_RRE FIND LEFTMOST ONE
++ OP_HDR uint32 = 0x2400 // FORMAT_RR HALVE (long HFP)
++ OP_HER uint32 = 0x3400 // FORMAT_RR HALVE (short HFP)
++ OP_HSCH uint32 = 0xB231 // FORMAT_S HALT SUBCHANNEL
++ OP_IAC uint32 = 0xB224 // FORMAT_RRE INSERT ADDRESS SPACE CONTROL
++ OP_IC uint32 = 0x4300 // FORMAT_RX1 INSERT CHARACTER
++ OP_ICM uint32 = 0xBF00 // FORMAT_RS2 INSERT CHARACTERS UNDER MASK (low)
++ OP_ICMH uint32 = 0xEB80 // FORMAT_RSY2 INSERT CHARACTERS UNDER MASK (high)
++ OP_ICMY uint32 = 0xEB81 // FORMAT_RSY2 INSERT CHARACTERS UNDER MASK (low)
++ OP_ICY uint32 = 0xE373 // FORMAT_RXY1 INSERT CHARACTER
++ OP_IDTE uint32 = 0xB98E // FORMAT_RRF2 INVALIDATE DAT TABLE ENTRY
++ OP_IEDTR uint32 = 0xB3F6 // FORMAT_RRF2 INSERT BIASED EXPONENT (64 to long DFP)
++ OP_IEXTR uint32 = 0xB3FE // FORMAT_RRF2 INSERT BIASED EXPONENT (64 to extended DFP)
++ OP_IIHF uint32 = 0xC008 // FORMAT_RIL1 INSERT IMMEDIATE (high)
++ OP_IIHH uint32 = 0xA500 // FORMAT_RI1 INSERT IMMEDIATE (high high)
++ OP_IIHL uint32 = 0xA501 // FORMAT_RI1 INSERT IMMEDIATE (high low)
++ OP_IILF uint32 = 0xC009 // FORMAT_RIL1 INSERT IMMEDIATE (low)
++ OP_IILH uint32 = 0xA502 // FORMAT_RI1 INSERT IMMEDIATE (low high)
++ OP_IILL uint32 = 0xA503 // FORMAT_RI1 INSERT IMMEDIATE (low low)
++ OP_IPK uint32 = 0xB20B // FORMAT_S INSERT PSW KEY
++ OP_IPM uint32 = 0xB222 // FORMAT_RRE INSERT PROGRAM MASK
++ OP_IPTE uint32 = 0xB221 // FORMAT_RRF1 INVALIDATE PAGE TABLE ENTRY
++ OP_ISKE uint32 = 0xB229 // FORMAT_RRE INSERT STORAGE KEY EXTENDED
++ OP_IVSK uint32 = 0xB223 // FORMAT_RRE INSERT VIRTUAL STORAGE KEY
++ OP_KDB uint32 = 0xED18 // FORMAT_RXE COMPARE AND SIGNAL (long BFP)
++ OP_KDBR uint32 = 0xB318 // FORMAT_RRE COMPARE AND SIGNAL (long BFP)
++ OP_KDTR uint32 = 0xB3E0 // FORMAT_RRE COMPARE AND SIGNAL (long DFP)
++ OP_KEB uint32 = 0xED08 // FORMAT_RXE COMPARE AND SIGNAL (short BFP)
++ OP_KEBR uint32 = 0xB308 // FORMAT_RRE COMPARE AND SIGNAL (short BFP)
++ OP_KIMD uint32 = 0xB93E // FORMAT_RRE COMPUTE INTERMEDIATE MESSAGE DIGEST
++ OP_KLMD uint32 = 0xB93F // FORMAT_RRE COMPUTE LAST MESSAGE DIGEST
++ OP_KM uint32 = 0xB92E // FORMAT_RRE CIPHER MESSAGE
++ OP_KMAC uint32 = 0xB91E // FORMAT_RRE COMPUTE MESSAGE AUTHENTICATION CODE
++ OP_KMC uint32 = 0xB92F // FORMAT_RRE CIPHER MESSAGE WITH CHAINING
++ OP_KMCTR uint32 = 0xB92D // FORMAT_RRF2 CIPHER MESSAGE WITH COUNTER
++ OP_KMF uint32 = 0xB92A // FORMAT_RRE CIPHER MESSAGE WITH CFB
++ OP_KMO uint32 = 0xB92B // FORMAT_RRE CIPHER MESSAGE WITH OFB
++ OP_KXBR uint32 = 0xB348 // FORMAT_RRE COMPARE AND SIGNAL (extended BFP)
++ OP_KXTR uint32 = 0xB3E8 // FORMAT_RRE COMPARE AND SIGNAL (extended DFP)
++ OP_L uint32 = 0x5800 // FORMAT_RX1 LOAD (32)
++ OP_LA uint32 = 0x4100 // FORMAT_RX1 LOAD ADDRESS
++ OP_LAA uint32 = 0xEBF8 // FORMAT_RSY1 LOAD AND ADD (32)
++ OP_LAAG uint32 = 0xEBE8 // FORMAT_RSY1 LOAD AND ADD (64)
++ OP_LAAL uint32 = 0xEBFA // FORMAT_RSY1 LOAD AND ADD LOGICAL (32)
++ OP_LAALG uint32 = 0xEBEA // FORMAT_RSY1 LOAD AND ADD LOGICAL (64)
++ OP_LAE uint32 = 0x5100 // FORMAT_RX1 LOAD ADDRESS EXTENDED
++ OP_LAEY uint32 = 0xE375 // FORMAT_RXY1 LOAD ADDRESS EXTENDED
++ OP_LAM uint32 = 0x9A00 // FORMAT_RS1 LOAD ACCESS MULTIPLE
++ OP_LAMY uint32 = 0xEB9A // FORMAT_RSY1 LOAD ACCESS MULTIPLE
++ OP_LAN uint32 = 0xEBF4 // FORMAT_RSY1 LOAD AND AND (32)
++ OP_LANG uint32 = 0xEBE4 // FORMAT_RSY1 LOAD AND AND (64)
++ OP_LAO uint32 = 0xEBF6 // FORMAT_RSY1 LOAD AND OR (32)
++ OP_LAOG uint32 = 0xEBE6 // FORMAT_RSY1 LOAD AND OR (64)
++ OP_LARL uint32 = 0xC000 // FORMAT_RIL2 LOAD ADDRESS RELATIVE LONG
++ OP_LASP uint32 = 0xE500 // FORMAT_SSE LOAD ADDRESS SPACE PARAMETERS
++ OP_LAT uint32 = 0xE39F // FORMAT_RXY1 LOAD AND TRAP (32L<-32)
++ OP_LAX uint32 = 0xEBF7 // FORMAT_RSY1 LOAD AND EXCLUSIVE OR (32)
++ OP_LAXG uint32 = 0xEBE7 // FORMAT_RSY1 LOAD AND EXCLUSIVE OR (64)
++ OP_LAY uint32 = 0xE371 // FORMAT_RXY1 LOAD ADDRESS
++ OP_LB uint32 = 0xE376 // FORMAT_RXY1 LOAD BYTE (32)
++ OP_LBH uint32 = 0xE3C0 // FORMAT_RXY1 LOAD BYTE HIGH (32<-8)
++ OP_LBR uint32 = 0xB926 // FORMAT_RRE LOAD BYTE (32)
++ OP_LCDBR uint32 = 0xB313 // FORMAT_RRE LOAD COMPLEMENT (long BFP)
++ OP_LCDFR uint32 = 0xB373 // FORMAT_RRE LOAD COMPLEMENT (long)
++ OP_LCDR uint32 = 0x2300 // FORMAT_RR LOAD COMPLEMENT (long HFP)
++ OP_LCEBR uint32 = 0xB303 // FORMAT_RRE LOAD COMPLEMENT (short BFP)
++ OP_LCER uint32 = 0x3300 // FORMAT_RR LOAD COMPLEMENT (short HFP)
++ OP_LCGFR uint32 = 0xB913 // FORMAT_RRE LOAD COMPLEMENT (64<-32)
++ OP_LCGR uint32 = 0xB903 // FORMAT_RRE LOAD COMPLEMENT (64)
++ OP_LCR uint32 = 0x1300 // FORMAT_RR LOAD COMPLEMENT (32)
++ OP_LCTL uint32 = 0xB700 // FORMAT_RS1 LOAD CONTROL (32)
++ OP_LCTLG uint32 = 0xEB2F // FORMAT_RSY1 LOAD CONTROL (64)
++ OP_LCXBR uint32 = 0xB343 // FORMAT_RRE LOAD COMPLEMENT (extended BFP)
++ OP_LCXR uint32 = 0xB363 // FORMAT_RRE LOAD COMPLEMENT (extended HFP)
++ OP_LD uint32 = 0x6800 // FORMAT_RX1 LOAD (long)
++ OP_LDE uint32 = 0xED24 // FORMAT_RXE LOAD LENGTHENED (short to long HFP)
++ OP_LDEB uint32 = 0xED04 // FORMAT_RXE LOAD LENGTHENED (short to long BFP)
++ OP_LDEBR uint32 = 0xB304 // FORMAT_RRE LOAD LENGTHENED (short to long BFP)
++ OP_LDER uint32 = 0xB324 // FORMAT_RRE LOAD LENGTHENED (short to long HFP)
++ OP_LDETR uint32 = 0xB3D4 // FORMAT_RRF4 LOAD LENGTHENED (short to long DFP)
++ OP_LDGR uint32 = 0xB3C1 // FORMAT_RRE LOAD FPR FROM GR (64 to long)
++ OP_LDR uint32 = 0x2800 // FORMAT_RR LOAD (long)
++ OP_LDXBR uint32 = 0xB345 // FORMAT_RRE LOAD ROUNDED (extended to long BFP)
++ OP_LDXBRA uint32 = 0xB345 // FORMAT_RRF5 LOAD ROUNDED (extended to long BFP)
++ OP_LDXR uint32 = 0x2500 // FORMAT_RR LOAD ROUNDED (extended to long HFP)
++ OP_LDXTR uint32 = 0xB3DD // FORMAT_RRF5 LOAD ROUNDED (extended to long DFP)
++ OP_LDY uint32 = 0xED65 // FORMAT_RXY1 LOAD (long)
++ OP_LE uint32 = 0x7800 // FORMAT_RX1 LOAD (short)
++ OP_LEDBR uint32 = 0xB344 // FORMAT_RRE LOAD ROUNDED (long to short BFP)
++ OP_LEDBRA uint32 = 0xB344 // FORMAT_RRF5 LOAD ROUNDED (long to short BFP)
++ OP_LEDR uint32 = 0x3500 // FORMAT_RR LOAD ROUNDED (long to short HFP)
++ OP_LEDTR uint32 = 0xB3D5 // FORMAT_RRF5 LOAD ROUNDED (long to short DFP)
++ OP_LER uint32 = 0x3800 // FORMAT_RR LOAD (short)
++ OP_LEXBR uint32 = 0xB346 // FORMAT_RRE LOAD ROUNDED (extended to short BFP)
++ OP_LEXBRA uint32 = 0xB346 // FORMAT_RRF5 LOAD ROUNDED (extended to short BFP)
++ OP_LEXR uint32 = 0xB366 // FORMAT_RRE LOAD ROUNDED (extended to short HFP)
++ OP_LEY uint32 = 0xED64 // FORMAT_RXY1 LOAD (short)
++ OP_LFAS uint32 = 0xB2BD // FORMAT_S LOAD FPC AND SIGNAL
++ OP_LFH uint32 = 0xE3CA // FORMAT_RXY1 LOAD HIGH (32)
++ OP_LFHAT uint32 = 0xE3C8 // FORMAT_RXY1 LOAD HIGH AND TRAP (32H<-32)
++ OP_LFPC uint32 = 0xB29D // FORMAT_S LOAD FPC
++ OP_LG uint32 = 0xE304 // FORMAT_RXY1 LOAD (64)
++ OP_LGAT uint32 = 0xE385 // FORMAT_RXY1 LOAD AND TRAP (64)
++ OP_LGB uint32 = 0xE377 // FORMAT_RXY1 LOAD BYTE (64)
++ OP_LGBR uint32 = 0xB906 // FORMAT_RRE LOAD BYTE (64)
++ OP_LGDR uint32 = 0xB3CD // FORMAT_RRE LOAD GR FROM FPR (long to 64)
++ OP_LGF uint32 = 0xE314 // FORMAT_RXY1 LOAD (64<-32)
++ OP_LGFI uint32 = 0xC001 // FORMAT_RIL1 LOAD IMMEDIATE (64<-32)
++ OP_LGFR uint32 = 0xB914 // FORMAT_RRE LOAD (64<-32)
++ OP_LGFRL uint32 = 0xC40C // FORMAT_RIL2 LOAD RELATIVE LONG (64<-32)
++ OP_LGH uint32 = 0xE315 // FORMAT_RXY1 LOAD HALFWORD (64)
++ OP_LGHI uint32 = 0xA709 // FORMAT_RI1 LOAD HALFWORD IMMEDIATE (64)
++ OP_LGHR uint32 = 0xB907 // FORMAT_RRE LOAD HALFWORD (64)
++ OP_LGHRL uint32 = 0xC404 // FORMAT_RIL2 LOAD HALFWORD RELATIVE LONG (64<-16)
++ OP_LGR uint32 = 0xB904 // FORMAT_RRE LOAD (64)
++ OP_LGRL uint32 = 0xC408 // FORMAT_RIL2 LOAD RELATIVE LONG (64)
++ OP_LH uint32 = 0x4800 // FORMAT_RX1 LOAD HALFWORD (32)
++ OP_LHH uint32 = 0xE3C4 // FORMAT_RXY1 LOAD HALFWORD HIGH (32<-16)
++ OP_LHI uint32 = 0xA708 // FORMAT_RI1 LOAD HALFWORD IMMEDIATE (32)
++ OP_LHR uint32 = 0xB927 // FORMAT_RRE LOAD HALFWORD (32)
++ OP_LHRL uint32 = 0xC405 // FORMAT_RIL2 LOAD HALFWORD RELATIVE LONG (32<-16)
++ OP_LHY uint32 = 0xE378 // FORMAT_RXY1 LOAD HALFWORD (32)
++ OP_LLC uint32 = 0xE394 // FORMAT_RXY1 LOAD LOGICAL CHARACTER (32)
++ OP_LLCH uint32 = 0xE3C2 // FORMAT_RXY1 LOAD LOGICAL CHARACTER HIGH (32<-8)
++ OP_LLCR uint32 = 0xB994 // FORMAT_RRE LOAD LOGICAL CHARACTER (32)
++ OP_LLGC uint32 = 0xE390 // FORMAT_RXY1 LOAD LOGICAL CHARACTER (64)
++ OP_LLGCR uint32 = 0xB984 // FORMAT_RRE LOAD LOGICAL CHARACTER (64)
++ OP_LLGF uint32 = 0xE316 // FORMAT_RXY1 LOAD LOGICAL (64<-32)
++ OP_LLGFAT uint32 = 0xE39D // FORMAT_RXY1 LOAD LOGICAL AND TRAP (64<-32)
++ OP_LLGFR uint32 = 0xB916 // FORMAT_RRE LOAD LOGICAL (64<-32)
++ OP_LLGFRL uint32 = 0xC40E // FORMAT_RIL2 LOAD LOGICAL RELATIVE LONG (64<-32)
++ OP_LLGH uint32 = 0xE391 // FORMAT_RXY1 LOAD LOGICAL HALFWORD (64)
++ OP_LLGHR uint32 = 0xB985 // FORMAT_RRE LOAD LOGICAL HALFWORD (64)
++ OP_LLGHRL uint32 = 0xC406 // FORMAT_RIL2 LOAD LOGICAL HALFWORD RELATIVE LONG (64<-16)
++ OP_LLGT uint32 = 0xE317 // FORMAT_RXY1 LOAD LOGICAL THIRTY ONE BITS
++ OP_LLGTAT uint32 = 0xE39C // FORMAT_RXY1 LOAD LOGICAL THIRTY ONE BITS AND TRAP (64<-31)
++ OP_LLGTR uint32 = 0xB917 // FORMAT_RRE LOAD LOGICAL THIRTY ONE BITS
++ OP_LLH uint32 = 0xE395 // FORMAT_RXY1 LOAD LOGICAL HALFWORD (32)
++ OP_LLHH uint32 = 0xE3C6 // FORMAT_RXY1 LOAD LOGICAL HALFWORD HIGH (32<-16)
++ OP_LLHR uint32 = 0xB995 // FORMAT_RRE LOAD LOGICAL HALFWORD (32)
++ OP_LLHRL uint32 = 0xC402 // FORMAT_RIL2 LOAD LOGICAL HALFWORD RELATIVE LONG (32<-16)
++ OP_LLIHF uint32 = 0xC00E // FORMAT_RIL1 LOAD LOGICAL IMMEDIATE (high)
++ OP_LLIHH uint32 = 0xA50C // FORMAT_RI1 LOAD LOGICAL IMMEDIATE (high high)
++ OP_LLIHL uint32 = 0xA50D // FORMAT_RI1 LOAD LOGICAL IMMEDIATE (high low)
++ OP_LLILF uint32 = 0xC00F // FORMAT_RIL1 LOAD LOGICAL IMMEDIATE (low)
++ OP_LLILH uint32 = 0xA50E // FORMAT_RI1 LOAD LOGICAL IMMEDIATE (low high)
++ OP_LLILL uint32 = 0xA50F // FORMAT_RI1 LOAD LOGICAL IMMEDIATE (low low)
++ OP_LM uint32 = 0x9800 // FORMAT_RS1 LOAD MULTIPLE (32)
++ OP_LMD uint32 = 0xEF00 // FORMAT_SS5 LOAD MULTIPLE DISJOINT
++ OP_LMG uint32 = 0xEB04 // FORMAT_RSY1 LOAD MULTIPLE (64)
++ OP_LMH uint32 = 0xEB96 // FORMAT_RSY1 LOAD MULTIPLE HIGH
++ OP_LMY uint32 = 0xEB98 // FORMAT_RSY1 LOAD MULTIPLE (32)
++ OP_LNDBR uint32 = 0xB311 // FORMAT_RRE LOAD NEGATIVE (long BFP)
++ OP_LNDFR uint32 = 0xB371 // FORMAT_RRE LOAD NEGATIVE (long)
++ OP_LNDR uint32 = 0x2100 // FORMAT_RR LOAD NEGATIVE (long HFP)
++ OP_LNEBR uint32 = 0xB301 // FORMAT_RRE LOAD NEGATIVE (short BFP)
++ OP_LNER uint32 = 0x3100 // FORMAT_RR LOAD NEGATIVE (short HFP)
++ OP_LNGFR uint32 = 0xB911 // FORMAT_RRE LOAD NEGATIVE (64<-32)
++ OP_LNGR uint32 = 0xB901 // FORMAT_RRE LOAD NEGATIVE (64)
++ OP_LNR uint32 = 0x1100 // FORMAT_RR LOAD NEGATIVE (32)
++ OP_LNXBR uint32 = 0xB341 // FORMAT_RRE LOAD NEGATIVE (extended BFP)
++ OP_LNXR uint32 = 0xB361 // FORMAT_RRE LOAD NEGATIVE (extended HFP)
++ OP_LOC uint32 = 0xEBF2 // FORMAT_RSY2 LOAD ON CONDITION (32)
++ OP_LOCG uint32 = 0xEBE2 // FORMAT_RSY2 LOAD ON CONDITION (64)
++ OP_LOCGR uint32 = 0xB9E2 // FORMAT_RRF3 LOAD ON CONDITION (64)
++ OP_LOCR uint32 = 0xB9F2 // FORMAT_RRF3 LOAD ON CONDITION (32)
++ OP_LPD uint32 = 0xC804 // FORMAT_SSF LOAD PAIR DISJOINT (32)
++ OP_LPDBR uint32 = 0xB310 // FORMAT_RRE LOAD POSITIVE (long BFP)
++ OP_LPDFR uint32 = 0xB370 // FORMAT_RRE LOAD POSITIVE (long)
++ OP_LPDG uint32 = 0xC805 // FORMAT_SSF LOAD PAIR DISJOINT (64)
++ OP_LPDR uint32 = 0x2000 // FORMAT_RR LOAD POSITIVE (long HFP)
++ OP_LPEBR uint32 = 0xB300 // FORMAT_RRE LOAD POSITIVE (short BFP)
++ OP_LPER uint32 = 0x3000 // FORMAT_RR LOAD POSITIVE (short HFP)
++ OP_LPGFR uint32 = 0xB910 // FORMAT_RRE LOAD POSITIVE (64<-32)
++ OP_LPGR uint32 = 0xB900 // FORMAT_RRE LOAD POSITIVE (64)
++ OP_LPQ uint32 = 0xE38F // FORMAT_RXY1 LOAD PAIR FROM QUADWORD
++ OP_LPR uint32 = 0x1000 // FORMAT_RR LOAD POSITIVE (32)
++ OP_LPSW uint32 = 0x8200 // FORMAT_S LOAD PSW
++ OP_LPSWE uint32 = 0xB2B2 // FORMAT_S LOAD PSW EXTENDED
++ OP_LPTEA uint32 = 0xB9AA // FORMAT_RRF2 LOAD PAGE TABLE ENTRY ADDRESS
++ OP_LPXBR uint32 = 0xB340 // FORMAT_RRE LOAD POSITIVE (extended BFP)
++ OP_LPXR uint32 = 0xB360 // FORMAT_RRE LOAD POSITIVE (extended HFP)
++ OP_LR uint32 = 0x1800 // FORMAT_RR LOAD (32)
++ OP_LRA uint32 = 0xB100 // FORMAT_RX1 LOAD REAL ADDRESS (32)
++ OP_LRAG uint32 = 0xE303 // FORMAT_RXY1 LOAD REAL ADDRESS (64)
++ OP_LRAY uint32 = 0xE313 // FORMAT_RXY1 LOAD REAL ADDRESS (32)
++ OP_LRDR uint32 = 0x2500 // FORMAT_RR LOAD ROUNDED (extended to long HFP)
++ OP_LRER uint32 = 0x3500 // FORMAT_RR LOAD ROUNDED (long to short HFP)
++ OP_LRL uint32 = 0xC40D // FORMAT_RIL2 LOAD RELATIVE LONG (32)
++ OP_LRV uint32 = 0xE31E // FORMAT_RXY1 LOAD REVERSED (32)
++ OP_LRVG uint32 = 0xE30F // FORMAT_RXY1 LOAD REVERSED (64)
++ OP_LRVGR uint32 = 0xB90F // FORMAT_RRE LOAD REVERSED (64)
++ OP_LRVH uint32 = 0xE31F // FORMAT_RXY1 LOAD REVERSED (16)
++ OP_LRVR uint32 = 0xB91F // FORMAT_RRE LOAD REVERSED (32)
++ OP_LT uint32 = 0xE312 // FORMAT_RXY1 LOAD AND TEST (32)
++ OP_LTDBR uint32 = 0xB312 // FORMAT_RRE LOAD AND TEST (long BFP)
++ OP_LTDR uint32 = 0x2200 // FORMAT_RR LOAD AND TEST (long HFP)
++ OP_LTDTR uint32 = 0xB3D6 // FORMAT_RRE LOAD AND TEST (long DFP)
++ OP_LTEBR uint32 = 0xB302 // FORMAT_RRE LOAD AND TEST (short BFP)
++ OP_LTER uint32 = 0x3200 // FORMAT_RR LOAD AND TEST (short HFP)
++ OP_LTG uint32 = 0xE302 // FORMAT_RXY1 LOAD AND TEST (64)
++ OP_LTGF uint32 = 0xE332 // FORMAT_RXY1 LOAD AND TEST (64<-32)
++ OP_LTGFR uint32 = 0xB912 // FORMAT_RRE LOAD AND TEST (64<-32)
++ OP_LTGR uint32 = 0xB902 // FORMAT_RRE LOAD AND TEST (64)
++ OP_LTR uint32 = 0x1200 // FORMAT_RR LOAD AND TEST (32)
++ OP_LTXBR uint32 = 0xB342 // FORMAT_RRE LOAD AND TEST (extended BFP)
++ OP_LTXR uint32 = 0xB362 // FORMAT_RRE LOAD AND TEST (extended HFP)
++ OP_LTXTR uint32 = 0xB3DE // FORMAT_RRE LOAD AND TEST (extended DFP)
++ OP_LURA uint32 = 0xB24B // FORMAT_RRE LOAD USING REAL ADDRESS (32)
++ OP_LURAG uint32 = 0xB905 // FORMAT_RRE LOAD USING REAL ADDRESS (64)
++ OP_LXD uint32 = 0xED25 // FORMAT_RXE LOAD LENGTHENED (long to extended HFP)
++ OP_LXDB uint32 = 0xED05 // FORMAT_RXE LOAD LENGTHENED (long to extended BFP)
++ OP_LXDBR uint32 = 0xB305 // FORMAT_RRE LOAD LENGTHENED (long to extended BFP)
++ OP_LXDR uint32 = 0xB325 // FORMAT_RRE LOAD LENGTHENED (long to extended HFP)
++ OP_LXDTR uint32 = 0xB3DC // FORMAT_RRF4 LOAD LENGTHENED (long to extended DFP)
++ OP_LXE uint32 = 0xED26 // FORMAT_RXE LOAD LENGTHENED (short to extended HFP)
++ OP_LXEB uint32 = 0xED06 // FORMAT_RXE LOAD LENGTHENED (short to extended BFP)
++ OP_LXEBR uint32 = 0xB306 // FORMAT_RRE LOAD LENGTHENED (short to extended BFP)
++ OP_LXER uint32 = 0xB326 // FORMAT_RRE LOAD LENGTHENED (short to extended HFP)
++ OP_LXR uint32 = 0xB365 // FORMAT_RRE LOAD (extended)
++ OP_LY uint32 = 0xE358 // FORMAT_RXY1 LOAD (32)
++ OP_LZDR uint32 = 0xB375 // FORMAT_RRE LOAD ZERO (long)
++ OP_LZER uint32 = 0xB374 // FORMAT_RRE LOAD ZERO (short)
++ OP_LZXR uint32 = 0xB376 // FORMAT_RRE LOAD ZERO (extended)
++ OP_M uint32 = 0x5C00 // FORMAT_RX1 MULTIPLY (64<-32)
++ OP_MAD uint32 = 0xED3E // FORMAT_RXF MULTIPLY AND ADD (long HFP)
++ OP_MADB uint32 = 0xED1E // FORMAT_RXF MULTIPLY AND ADD (long BFP)
++ OP_MADBR uint32 = 0xB31E // FORMAT_RRD MULTIPLY AND ADD (long BFP)
++ OP_MADR uint32 = 0xB33E // FORMAT_RRD MULTIPLY AND ADD (long HFP)
++ OP_MAE uint32 = 0xED2E // FORMAT_RXF MULTIPLY AND ADD (short HFP)
++ OP_MAEB uint32 = 0xED0E // FORMAT_RXF MULTIPLY AND ADD (short BFP)
++ OP_MAEBR uint32 = 0xB30E // FORMAT_RRD MULTIPLY AND ADD (short BFP)
++ OP_MAER uint32 = 0xB32E // FORMAT_RRD MULTIPLY AND ADD (short HFP)
++ OP_MAY uint32 = 0xED3A // FORMAT_RXF MULTIPLY & ADD UNNORMALIZED (long to ext. HFP)
++ OP_MAYH uint32 = 0xED3C // FORMAT_RXF MULTIPLY AND ADD UNNRM. (long to ext. high HFP)
++ OP_MAYHR uint32 = 0xB33C // FORMAT_RRD MULTIPLY AND ADD UNNRM. (long to ext. high HFP)
++ OP_MAYL uint32 = 0xED38 // FORMAT_RXF MULTIPLY AND ADD UNNRM. (long to ext. low HFP)
++ OP_MAYLR uint32 = 0xB338 // FORMAT_RRD MULTIPLY AND ADD UNNRM. (long to ext. low HFP)
++ OP_MAYR uint32 = 0xB33A // FORMAT_RRD MULTIPLY & ADD UNNORMALIZED (long to ext. HFP)
++ OP_MC uint32 = 0xAF00 // FORMAT_SI MONITOR CALL
++ OP_MD uint32 = 0x6C00 // FORMAT_RX1 MULTIPLY (long HFP)
++ OP_MDB uint32 = 0xED1C // FORMAT_RXE MULTIPLY (long BFP)
++ OP_MDBR uint32 = 0xB31C // FORMAT_RRE MULTIPLY (long BFP)
++ OP_MDE uint32 = 0x7C00 // FORMAT_RX1 MULTIPLY (short to long HFP)
++ OP_MDEB uint32 = 0xED0C // FORMAT_RXE MULTIPLY (short to long BFP)
++ OP_MDEBR uint32 = 0xB30C // FORMAT_RRE MULTIPLY (short to long BFP)
++ OP_MDER uint32 = 0x3C00 // FORMAT_RR MULTIPLY (short to long HFP)
++ OP_MDR uint32 = 0x2C00 // FORMAT_RR MULTIPLY (long HFP)
++ OP_MDTR uint32 = 0xB3D0 // FORMAT_RRF1 MULTIPLY (long DFP)
++ OP_MDTRA uint32 = 0xB3D0 // FORMAT_RRF1 MULTIPLY (long DFP)
++ OP_ME uint32 = 0x7C00 // FORMAT_RX1 MULTIPLY (short to long HFP)
++ OP_MEE uint32 = 0xED37 // FORMAT_RXE MULTIPLY (short HFP)
++ OP_MEEB uint32 = 0xED17 // FORMAT_RXE MULTIPLY (short BFP)
++ OP_MEEBR uint32 = 0xB317 // FORMAT_RRE MULTIPLY (short BFP)
++ OP_MEER uint32 = 0xB337 // FORMAT_RRE MULTIPLY (short HFP)
++ OP_MER uint32 = 0x3C00 // FORMAT_RR MULTIPLY (short to long HFP)
++ OP_MFY uint32 = 0xE35C // FORMAT_RXY1 MULTIPLY (64<-32)
++ OP_MGHI uint32 = 0xA70D // FORMAT_RI1 MULTIPLY HALFWORD IMMEDIATE (64)
++ OP_MH uint32 = 0x4C00 // FORMAT_RX1 MULTIPLY HALFWORD (32)
++ OP_MHI uint32 = 0xA70C // FORMAT_RI1 MULTIPLY HALFWORD IMMEDIATE (32)
++ OP_MHY uint32 = 0xE37C // FORMAT_RXY1 MULTIPLY HALFWORD (32)
++ OP_ML uint32 = 0xE396 // FORMAT_RXY1 MULTIPLY LOGICAL (64<-32)
++ OP_MLG uint32 = 0xE386 // FORMAT_RXY1 MULTIPLY LOGICAL (128<-64)
++ OP_MLGR uint32 = 0xB986 // FORMAT_RRE MULTIPLY LOGICAL (128<-64)
++ OP_MLR uint32 = 0xB996 // FORMAT_RRE MULTIPLY LOGICAL (64<-32)
++ OP_MP uint32 = 0xFC00 // FORMAT_SS2 MULTIPLY DECIMAL
++ OP_MR uint32 = 0x1C00 // FORMAT_RR MULTIPLY (64<-32)
++ OP_MS uint32 = 0x7100 // FORMAT_RX1 MULTIPLY SINGLE (32)
++ OP_MSCH uint32 = 0xB232 // FORMAT_S MODIFY SUBCHANNEL
++ OP_MSD uint32 = 0xED3F // FORMAT_RXF MULTIPLY AND SUBTRACT (long HFP)
++ OP_MSDB uint32 = 0xED1F // FORMAT_RXF MULTIPLY AND SUBTRACT (long BFP)
++ OP_MSDBR uint32 = 0xB31F // FORMAT_RRD MULTIPLY AND SUBTRACT (long BFP)
++ OP_MSDR uint32 = 0xB33F // FORMAT_RRD MULTIPLY AND SUBTRACT (long HFP)
++ OP_MSE uint32 = 0xED2F // FORMAT_RXF MULTIPLY AND SUBTRACT (short HFP)
++ OP_MSEB uint32 = 0xED0F // FORMAT_RXF MULTIPLY AND SUBTRACT (short BFP)
++ OP_MSEBR uint32 = 0xB30F // FORMAT_RRD MULTIPLY AND SUBTRACT (short BFP)
++ OP_MSER uint32 = 0xB32F // FORMAT_RRD MULTIPLY AND SUBTRACT (short HFP)
++ OP_MSFI uint32 = 0xC201 // FORMAT_RIL1 MULTIPLY SINGLE IMMEDIATE (32)
++ OP_MSG uint32 = 0xE30C // FORMAT_RXY1 MULTIPLY SINGLE (64)
++ OP_MSGF uint32 = 0xE31C // FORMAT_RXY1 MULTIPLY SINGLE (64<-32)
++ OP_MSGFI uint32 = 0xC200 // FORMAT_RIL1 MULTIPLY SINGLE IMMEDIATE (64<-32)
++ OP_MSGFR uint32 = 0xB91C // FORMAT_RRE MULTIPLY SINGLE (64<-32)
++ OP_MSGR uint32 = 0xB90C // FORMAT_RRE MULTIPLY SINGLE (64)
++ OP_MSR uint32 = 0xB252 // FORMAT_RRE MULTIPLY SINGLE (32)
++ OP_MSTA uint32 = 0xB247 // FORMAT_RRE MODIFY STACKED STATE
++ OP_MSY uint32 = 0xE351 // FORMAT_RXY1 MULTIPLY SINGLE (32)
++ OP_MVC uint32 = 0xD200 // FORMAT_SS1 MOVE (character)
++ OP_MVCDK uint32 = 0xE50F // FORMAT_SSE MOVE WITH DESTINATION KEY
++ OP_MVCIN uint32 = 0xE800 // FORMAT_SS1 MOVE INVERSE
++ OP_MVCK uint32 = 0xD900 // FORMAT_SS4 MOVE WITH KEY
++ OP_MVCL uint32 = 0x0E00 // FORMAT_RR MOVE LONG
++ OP_MVCLE uint32 = 0xA800 // FORMAT_RS1 MOVE LONG EXTENDED
++ OP_MVCLU uint32 = 0xEB8E // FORMAT_RSY1 MOVE LONG UNICODE
++ OP_MVCOS uint32 = 0xC800 // FORMAT_SSF MOVE WITH OPTIONAL SPECIFICATIONS
++ OP_MVCP uint32 = 0xDA00 // FORMAT_SS4 MOVE TO PRIMARY
++ OP_MVCS uint32 = 0xDB00 // FORMAT_SS4 MOVE TO SECONDARY
++ OP_MVCSK uint32 = 0xE50E // FORMAT_SSE MOVE WITH SOURCE KEY
++ OP_MVGHI uint32 = 0xE548 // FORMAT_SIL MOVE (64<-16)
++ OP_MVHHI uint32 = 0xE544 // FORMAT_SIL MOVE (16<-16)
++ OP_MVHI uint32 = 0xE54C // FORMAT_SIL MOVE (32<-16)
++ OP_MVI uint32 = 0x9200 // FORMAT_SI MOVE (immediate)
++ OP_MVIY uint32 = 0xEB52 // FORMAT_SIY MOVE (immediate)
++ OP_MVN uint32 = 0xD100 // FORMAT_SS1 MOVE NUMERICS
++ OP_MVO uint32 = 0xF100 // FORMAT_SS2 MOVE WITH OFFSET
++ OP_MVPG uint32 = 0xB254 // FORMAT_RRE MOVE PAGE
++ OP_MVST uint32 = 0xB255 // FORMAT_RRE MOVE STRING
++ OP_MVZ uint32 = 0xD300 // FORMAT_SS1 MOVE ZONES
++ OP_MXBR uint32 = 0xB34C // FORMAT_RRE MULTIPLY (extended BFP)
++ OP_MXD uint32 = 0x6700 // FORMAT_RX1 MULTIPLY (long to extended HFP)
++ OP_MXDB uint32 = 0xED07 // FORMAT_RXE MULTIPLY (long to extended BFP)
++ OP_MXDBR uint32 = 0xB307 // FORMAT_RRE MULTIPLY (long to extended BFP)
++ OP_MXDR uint32 = 0x2700 // FORMAT_RR MULTIPLY (long to extended HFP)
++ OP_MXR uint32 = 0x2600 // FORMAT_RR MULTIPLY (extended HFP)
++ OP_MXTR uint32 = 0xB3D8 // FORMAT_RRF1 MULTIPLY (extended DFP)
++ OP_MXTRA uint32 = 0xB3D8 // FORMAT_RRF1 MULTIPLY (extended DFP)
++ OP_MY uint32 = 0xED3B // FORMAT_RXF MULTIPLY UNNORMALIZED (long to ext. HFP)
++ OP_MYH uint32 = 0xED3D // FORMAT_RXF MULTIPLY UNNORM. (long to ext. high HFP)
++ OP_MYHR uint32 = 0xB33D // FORMAT_RRD MULTIPLY UNNORM. (long to ext. high HFP)
++ OP_MYL uint32 = 0xED39 // FORMAT_RXF MULTIPLY UNNORM. (long to ext. low HFP)
++ OP_MYLR uint32 = 0xB339 // FORMAT_RRD MULTIPLY UNNORM. (long to ext. low HFP)
++ OP_MYR uint32 = 0xB33B // FORMAT_RRD MULTIPLY UNNORMALIZED (long to ext. HFP)
++ OP_N uint32 = 0x5400 // FORMAT_RX1 AND (32)
++ OP_NC uint32 = 0xD400 // FORMAT_SS1 AND (character)
++ OP_NG uint32 = 0xE380 // FORMAT_RXY1 AND (64)
++ OP_NGR uint32 = 0xB980 // FORMAT_RRE AND (64)
++ OP_NGRK uint32 = 0xB9E4 // FORMAT_RRF1 AND (64)
++ OP_NI uint32 = 0x9400 // FORMAT_SI AND (immediate)
++ OP_NIAI uint32 = 0xB2FA // FORMAT_IE NEXT INSTRUCTION ACCESS INTENT
++ OP_NIHF uint32 = 0xC00A // FORMAT_RIL1 AND IMMEDIATE (high)
++ OP_NIHH uint32 = 0xA504 // FORMAT_RI1 AND IMMEDIATE (high high)
++ OP_NIHL uint32 = 0xA505 // FORMAT_RI1 AND IMMEDIATE (high low)
++ OP_NILF uint32 = 0xC00B // FORMAT_RIL1 AND IMMEDIATE (low)
++ OP_NILH uint32 = 0xA506 // FORMAT_RI1 AND IMMEDIATE (low high)
++ OP_NILL uint32 = 0xA507 // FORMAT_RI1 AND IMMEDIATE (low low)
++ OP_NIY uint32 = 0xEB54 // FORMAT_SIY AND (immediate)
++ OP_NR uint32 = 0x1400 // FORMAT_RR AND (32)
++ OP_NRK uint32 = 0xB9F4 // FORMAT_RRF1 AND (32)
++ OP_NTSTG uint32 = 0xE325 // FORMAT_RXY1 NONTRANSACTIONAL STORE
++ OP_NY uint32 = 0xE354 // FORMAT_RXY1 AND (32)
++ OP_O uint32 = 0x5600 // FORMAT_RX1 OR (32)
++ OP_OC uint32 = 0xD600 // FORMAT_SS1 OR (character)
++ OP_OG uint32 = 0xE381 // FORMAT_RXY1 OR (64)
++ OP_OGR uint32 = 0xB981 // FORMAT_RRE OR (64)
++ OP_OGRK uint32 = 0xB9E6 // FORMAT_RRF1 OR (64)
++ OP_OI uint32 = 0x9600 // FORMAT_SI OR (immediate)
++ OP_OIHF uint32 = 0xC00C // FORMAT_RIL1 OR IMMEDIATE (high)
++ OP_OIHH uint32 = 0xA508 // FORMAT_RI1 OR IMMEDIATE (high high)
++ OP_OIHL uint32 = 0xA509 // FORMAT_RI1 OR IMMEDIATE (high low)
++ OP_OILF uint32 = 0xC00D // FORMAT_RIL1 OR IMMEDIATE (low)
++ OP_OILH uint32 = 0xA50A // FORMAT_RI1 OR IMMEDIATE (low high)
++ OP_OILL uint32 = 0xA50B // FORMAT_RI1 OR IMMEDIATE (low low)
++ OP_OIY uint32 = 0xEB56 // FORMAT_SIY OR (immediate)
++ OP_OR uint32 = 0x1600 // FORMAT_RR OR (32)
++ OP_ORK uint32 = 0xB9F6 // FORMAT_RRF1 OR (32)
++ OP_OY uint32 = 0xE356 // FORMAT_RXY1 OR (32)
++ OP_PACK uint32 = 0xF200 // FORMAT_SS2 PACK
++ OP_PALB uint32 = 0xB248 // FORMAT_RRE PURGE ALB
++ OP_PC uint32 = 0xB218 // FORMAT_S PROGRAM CALL
++ OP_PCC uint32 = 0xB92C // FORMAT_RRE PERFORM CRYPTOGRAPHIC COMPUTATION
++ OP_PCKMO uint32 = 0xB928 // FORMAT_RRE PERFORM CRYPTOGRAPHIC KEY MGMT. OPERATIONS
++ OP_PFD uint32 = 0xE336 // FORMAT_RXY2 PREFETCH DATA
++ OP_PFDRL uint32 = 0xC602 // FORMAT_RIL3 PREFETCH DATA RELATIVE LONG
++ OP_PFMF uint32 = 0xB9AF // FORMAT_RRE PERFORM FRAME MANAGEMENT FUNCTION
++ OP_PFPO uint32 = 0x010A // FORMAT_E PERFORM FLOATING-POINT OPERATION
++ OP_PGIN uint32 = 0xB22E // FORMAT_RRE PAGE IN
++ OP_PGOUT uint32 = 0xB22F // FORMAT_RRE PAGE OUT
++ OP_PKA uint32 = 0xE900 // FORMAT_SS6 PACK ASCII
++ OP_PKU uint32 = 0xE100 // FORMAT_SS6 PACK UNICODE
++ OP_PLO uint32 = 0xEE00 // FORMAT_SS5 PERFORM LOCKED OPERATION
++ OP_POPCNT uint32 = 0xB9E1 // FORMAT_RRE POPULATION COUNT
++ OP_PPA uint32 = 0xB2E8 // FORMAT_RRF3 PERFORM PROCESSOR ASSIST
++ OP_PR uint32 = 0x0101 // FORMAT_E PROGRAM RETURN
++ OP_PT uint32 = 0xB228 // FORMAT_RRE PROGRAM TRANSFER
++ OP_PTF uint32 = 0xB9A2 // FORMAT_RRE PERFORM TOPOLOGY FUNCTION
++ OP_PTFF uint32 = 0x0104 // FORMAT_E PERFORM TIMING FACILITY FUNCTION
++ OP_PTI uint32 = 0xB99E // FORMAT_RRE PROGRAM TRANSFER WITH INSTANCE
++ OP_PTLB uint32 = 0xB20D // FORMAT_S PURGE TLB
++ OP_QADTR uint32 = 0xB3F5 // FORMAT_RRF2 QUANTIZE (long DFP)
++ OP_QAXTR uint32 = 0xB3FD // FORMAT_RRF2 QUANTIZE (extended DFP)
++ OP_RCHP uint32 = 0xB23B // FORMAT_S RESET CHANNEL PATH
++ OP_RISBG uint32 = 0xEC55 // FORMAT_RIE6 ROTATE THEN INSERT SELECTED BITS
++ OP_RISBGN uint32 = 0xEC59 // FORMAT_RIE6 ROTATE THEN INSERT SELECTED BITS
++ OP_RISBHG uint32 = 0xEC5D // FORMAT_RIE6 ROTATE THEN INSERT SELECTED BITS HIGH
++ OP_RISBLG uint32 = 0xEC51 // FORMAT_RIE6 ROTATE THEN INSERT SELECTED BITS LOW
++ OP_RLL uint32 = 0xEB1D // FORMAT_RSY1 ROTATE LEFT SINGLE LOGICAL (32)
++ OP_RLLG uint32 = 0xEB1C // FORMAT_RSY1 ROTATE LEFT SINGLE LOGICAL (64)
++ OP_RNSBG uint32 = 0xEC54 // FORMAT_RIE6 ROTATE THEN AND SELECTED BITS
++ OP_ROSBG uint32 = 0xEC56 // FORMAT_RIE6 ROTATE THEN OR SELECTED BITS
++ OP_RP uint32 = 0xB277 // FORMAT_S RESUME PROGRAM
++ OP_RRBE uint32 = 0xB22A // FORMAT_RRE RESET REFERENCE BIT EXTENDED
++ OP_RRBM uint32 = 0xB9AE // FORMAT_RRE RESET REFERENCE BITS MULTIPLE
++ OP_RRDTR uint32 = 0xB3F7 // FORMAT_RRF2 REROUND (long DFP)
++ OP_RRXTR uint32 = 0xB3FF // FORMAT_RRF2 REROUND (extended DFP)
++ OP_RSCH uint32 = 0xB238 // FORMAT_S RESUME SUBCHANNEL
++ OP_RXSBG uint32 = 0xEC57 // FORMAT_RIE6 ROTATE THEN EXCLUSIVE OR SELECTED BITS
++ OP_S uint32 = 0x5B00 // FORMAT_RX1 SUBTRACT (32)
++ OP_SAC uint32 = 0xB219 // FORMAT_S SET ADDRESS SPACE CONTROL
++ OP_SACF uint32 = 0xB279 // FORMAT_S SET ADDRESS SPACE CONTROL FAST
++ OP_SAL uint32 = 0xB237 // FORMAT_S SET ADDRESS LIMIT
++ OP_SAM24 uint32 = 0x010C // FORMAT_E SET ADDRESSING MODE (24)
++ OP_SAM31 uint32 = 0x010D // FORMAT_E SET ADDRESSING MODE (31)
++ OP_SAM64 uint32 = 0x010E // FORMAT_E SET ADDRESSING MODE (64)
++ OP_SAR uint32 = 0xB24E // FORMAT_RRE SET ACCESS
++ OP_SCHM uint32 = 0xB23C // FORMAT_S SET CHANNEL MONITOR
++ OP_SCK uint32 = 0xB204 // FORMAT_S SET CLOCK
++ OP_SCKC uint32 = 0xB206 // FORMAT_S SET CLOCK COMPARATOR
++ OP_SCKPF uint32 = 0x0107 // FORMAT_E SET CLOCK PROGRAMMABLE FIELD
++ OP_SD uint32 = 0x6B00 // FORMAT_RX1 SUBTRACT NORMALIZED (long HFP)
++ OP_SDB uint32 = 0xED1B // FORMAT_RXE SUBTRACT (long BFP)
++ OP_SDBR uint32 = 0xB31B // FORMAT_RRE SUBTRACT (long BFP)
++ OP_SDR uint32 = 0x2B00 // FORMAT_RR SUBTRACT NORMALIZED (long HFP)
++ OP_SDTR uint32 = 0xB3D3 // FORMAT_RRF1 SUBTRACT (long DFP)
++ OP_SDTRA uint32 = 0xB3D3 // FORMAT_RRF1 SUBTRACT (long DFP)
++ OP_SE uint32 = 0x7B00 // FORMAT_RX1 SUBTRACT NORMALIZED (short HFP)
++ OP_SEB uint32 = 0xED0B // FORMAT_RXE SUBTRACT (short BFP)
++ OP_SEBR uint32 = 0xB30B // FORMAT_RRE SUBTRACT (short BFP)
++ OP_SER uint32 = 0x3B00 // FORMAT_RR SUBTRACT NORMALIZED (short HFP)
++ OP_SFASR uint32 = 0xB385 // FORMAT_RRE SET FPC AND SIGNAL
++ OP_SFPC uint32 = 0xB384 // FORMAT_RRE SET FPC
++ OP_SG uint32 = 0xE309 // FORMAT_RXY1 SUBTRACT (64)
++ OP_SGF uint32 = 0xE319 // FORMAT_RXY1 SUBTRACT (64<-32)
++ OP_SGFR uint32 = 0xB919 // FORMAT_RRE SUBTRACT (64<-32)
++ OP_SGR uint32 = 0xB909 // FORMAT_RRE SUBTRACT (64)
++ OP_SGRK uint32 = 0xB9E9 // FORMAT_RRF1 SUBTRACT (64)
++ OP_SH uint32 = 0x4B00 // FORMAT_RX1 SUBTRACT HALFWORD
++ OP_SHHHR uint32 = 0xB9C9 // FORMAT_RRF1 SUBTRACT HIGH (32)
++ OP_SHHLR uint32 = 0xB9D9 // FORMAT_RRF1 SUBTRACT HIGH (32)
++ OP_SHY uint32 = 0xE37B // FORMAT_RXY1 SUBTRACT HALFWORD
++ OP_SIGP uint32 = 0xAE00 // FORMAT_RS1 SIGNAL PROCESSOR
++ OP_SL uint32 = 0x5F00 // FORMAT_RX1 SUBTRACT LOGICAL (32)
++ OP_SLA uint32 = 0x8B00 // FORMAT_RS1 SHIFT LEFT SINGLE (32)
++ OP_SLAG uint32 = 0xEB0B // FORMAT_RSY1 SHIFT LEFT SINGLE (64)
++ OP_SLAK uint32 = 0xEBDD // FORMAT_RSY1 SHIFT LEFT SINGLE (32)
++ OP_SLB uint32 = 0xE399 // FORMAT_RXY1 SUBTRACT LOGICAL WITH BORROW (32)
++ OP_SLBG uint32 = 0xE389 // FORMAT_RXY1 SUBTRACT LOGICAL WITH BORROW (64)
++ OP_SLBGR uint32 = 0xB989 // FORMAT_RRE SUBTRACT LOGICAL WITH BORROW (64)
++ OP_SLBR uint32 = 0xB999 // FORMAT_RRE SUBTRACT LOGICAL WITH BORROW (32)
++ OP_SLDA uint32 = 0x8F00 // FORMAT_RS1 SHIFT LEFT DOUBLE
++ OP_SLDL uint32 = 0x8D00 // FORMAT_RS1 SHIFT LEFT DOUBLE LOGICAL
++ OP_SLDT uint32 = 0xED40 // FORMAT_RXF SHIFT SIGNIFICAND LEFT (long DFP)
++ OP_SLFI uint32 = 0xC205 // FORMAT_RIL1 SUBTRACT LOGICAL IMMEDIATE (32)
++ OP_SLG uint32 = 0xE30B // FORMAT_RXY1 SUBTRACT LOGICAL (64)
++ OP_SLGF uint32 = 0xE31B // FORMAT_RXY1 SUBTRACT LOGICAL (64<-32)
++ OP_SLGFI uint32 = 0xC204 // FORMAT_RIL1 SUBTRACT LOGICAL IMMEDIATE (64<-32)
++ OP_SLGFR uint32 = 0xB91B // FORMAT_RRE SUBTRACT LOGICAL (64<-32)
++ OP_SLGR uint32 = 0xB90B // FORMAT_RRE SUBTRACT LOGICAL (64)
++ OP_SLGRK uint32 = 0xB9EB // FORMAT_RRF1 SUBTRACT LOGICAL (64)
++ OP_SLHHHR uint32 = 0xB9CB // FORMAT_RRF1 SUBTRACT LOGICAL HIGH (32)
++ OP_SLHHLR uint32 = 0xB9DB // FORMAT_RRF1 SUBTRACT LOGICAL HIGH (32)
++ OP_SLL uint32 = 0x8900 // FORMAT_RS1 SHIFT LEFT SINGLE LOGICAL (32)
++ OP_SLLG uint32 = 0xEB0D // FORMAT_RSY1 SHIFT LEFT SINGLE LOGICAL (64)
++ OP_SLLK uint32 = 0xEBDF // FORMAT_RSY1 SHIFT LEFT SINGLE LOGICAL (32)
++ OP_SLR uint32 = 0x1F00 // FORMAT_RR SUBTRACT LOGICAL (32)
++ OP_SLRK uint32 = 0xB9FB // FORMAT_RRF1 SUBTRACT LOGICAL (32)
++ OP_SLXT uint32 = 0xED48 // FORMAT_RXF SHIFT SIGNIFICAND LEFT (extended DFP)
++ OP_SLY uint32 = 0xE35F // FORMAT_RXY1 SUBTRACT LOGICAL (32)
++ OP_SP uint32 = 0xFB00 // FORMAT_SS2 SUBTRACT DECIMAL
++ OP_SPKA uint32 = 0xB20A // FORMAT_S SET PSW KEY FROM ADDRESS
++ OP_SPM uint32 = 0x0400 // FORMAT_RR SET PROGRAM MASK
++ OP_SPT uint32 = 0xB208 // FORMAT_S SET CPU TIMER
++ OP_SPX uint32 = 0xB210 // FORMAT_S SET PREFIX
++ OP_SQD uint32 = 0xED35 // FORMAT_RXE SQUARE ROOT (long HFP)
++ OP_SQDB uint32 = 0xED15 // FORMAT_RXE SQUARE ROOT (long BFP)
++ OP_SQDBR uint32 = 0xB315 // FORMAT_RRE SQUARE ROOT (long BFP)
++ OP_SQDR uint32 = 0xB244 // FORMAT_RRE SQUARE ROOT (long HFP)
++ OP_SQE uint32 = 0xED34 // FORMAT_RXE SQUARE ROOT (short HFP)
++ OP_SQEB uint32 = 0xED14 // FORMAT_RXE SQUARE ROOT (short BFP)
++ OP_SQEBR uint32 = 0xB314 // FORMAT_RRE SQUARE ROOT (short BFP)
++ OP_SQER uint32 = 0xB245 // FORMAT_RRE SQUARE ROOT (short HFP)
++ OP_SQXBR uint32 = 0xB316 // FORMAT_RRE SQUARE ROOT (extended BFP)
++ OP_SQXR uint32 = 0xB336 // FORMAT_RRE SQUARE ROOT (extended HFP)
++ OP_SR uint32 = 0x1B00 // FORMAT_RR SUBTRACT (32)
++ OP_SRA uint32 = 0x8A00 // FORMAT_RS1 SHIFT RIGHT SINGLE (32)
++ OP_SRAG uint32 = 0xEB0A // FORMAT_RSY1 SHIFT RIGHT SINGLE (64)
++ OP_SRAK uint32 = 0xEBDC // FORMAT_RSY1 SHIFT RIGHT SINGLE (32)
++ OP_SRDA uint32 = 0x8E00 // FORMAT_RS1 SHIFT RIGHT DOUBLE
++ OP_SRDL uint32 = 0x8C00 // FORMAT_RS1 SHIFT RIGHT DOUBLE LOGICAL
++ OP_SRDT uint32 = 0xED41 // FORMAT_RXF SHIFT SIGNIFICAND RIGHT (long DFP)
++ OP_SRK uint32 = 0xB9F9 // FORMAT_RRF1 SUBTRACT (32)
++ OP_SRL uint32 = 0x8800 // FORMAT_RS1 SHIFT RIGHT SINGLE LOGICAL (32)
++ OP_SRLG uint32 = 0xEB0C // FORMAT_RSY1 SHIFT RIGHT SINGLE LOGICAL (64)
++ OP_SRLK uint32 = 0xEBDE // FORMAT_RSY1 SHIFT RIGHT SINGLE LOGICAL (32)
++ OP_SRNM uint32 = 0xB299 // FORMAT_S SET BFP ROUNDING MODE (2 bit)
++ OP_SRNMB uint32 = 0xB2B8 // FORMAT_S SET BFP ROUNDING MODE (3 bit)
++ OP_SRNMT uint32 = 0xB2B9 // FORMAT_S SET DFP ROUNDING MODE
++ OP_SRP uint32 = 0xF000 // FORMAT_SS3 SHIFT AND ROUND DECIMAL
++ OP_SRST uint32 = 0xB25E // FORMAT_RRE SEARCH STRING
++ OP_SRSTU uint32 = 0xB9BE // FORMAT_RRE SEARCH STRING UNICODE
++ OP_SRXT uint32 = 0xED49 // FORMAT_RXF SHIFT SIGNIFICAND RIGHT (extended DFP)
++ OP_SSAIR uint32 = 0xB99F // FORMAT_RRE SET SECONDARY ASN WITH INSTANCE
++ OP_SSAR uint32 = 0xB225 // FORMAT_RRE SET SECONDARY ASN
++ OP_SSCH uint32 = 0xB233 // FORMAT_S START SUBCHANNEL
++ OP_SSKE uint32 = 0xB22B // FORMAT_RRF3 SET STORAGE KEY EXTENDED
++ OP_SSM uint32 = 0x8000 // FORMAT_S SET SYSTEM MASK
++ OP_ST uint32 = 0x5000 // FORMAT_RX1 STORE (32)
++ OP_STAM uint32 = 0x9B00 // FORMAT_RS1 STORE ACCESS MULTIPLE
++ OP_STAMY uint32 = 0xEB9B // FORMAT_RSY1 STORE ACCESS MULTIPLE
++ OP_STAP uint32 = 0xB212 // FORMAT_S STORE CPU ADDRESS
++ OP_STC uint32 = 0x4200 // FORMAT_RX1 STORE CHARACTER
++ OP_STCH uint32 = 0xE3C3 // FORMAT_RXY1 STORE CHARACTER HIGH (8)
++ OP_STCK uint32 = 0xB205 // FORMAT_S STORE CLOCK
++ OP_STCKC uint32 = 0xB207 // FORMAT_S STORE CLOCK COMPARATOR
++ OP_STCKE uint32 = 0xB278 // FORMAT_S STORE CLOCK EXTENDED
++ OP_STCKF uint32 = 0xB27C // FORMAT_S STORE CLOCK FAST
++ OP_STCM uint32 = 0xBE00 // FORMAT_RS2 STORE CHARACTERS UNDER MASK (low)
++ OP_STCMH uint32 = 0xEB2C // FORMAT_RSY2 STORE CHARACTERS UNDER MASK (high)
++ OP_STCMY uint32 = 0xEB2D // FORMAT_RSY2 STORE CHARACTERS UNDER MASK (low)
++ OP_STCPS uint32 = 0xB23A // FORMAT_S STORE CHANNEL PATH STATUS
++ OP_STCRW uint32 = 0xB239 // FORMAT_S STORE CHANNEL REPORT WORD
++ OP_STCTG uint32 = 0xEB25 // FORMAT_RSY1 STORE CONTROL (64)
++ OP_STCTL uint32 = 0xB600 // FORMAT_RS1 STORE CONTROL (32)
++ OP_STCY uint32 = 0xE372 // FORMAT_RXY1 STORE CHARACTER
++ OP_STD uint32 = 0x6000 // FORMAT_RX1 STORE (long)
++ OP_STDY uint32 = 0xED67 // FORMAT_RXY1 STORE (long)
++ OP_STE uint32 = 0x7000 // FORMAT_RX1 STORE (short)
++ OP_STEY uint32 = 0xED66 // FORMAT_RXY1 STORE (short)
++ OP_STFH uint32 = 0xE3CB // FORMAT_RXY1 STORE HIGH (32)
++ OP_STFL uint32 = 0xB2B1 // FORMAT_S STORE FACILITY LIST
++ OP_STFLE uint32 = 0xB2B0 // FORMAT_S STORE FACILITY LIST EXTENDED
++ OP_STFPC uint32 = 0xB29C // FORMAT_S STORE FPC
++ OP_STG uint32 = 0xE324 // FORMAT_RXY1 STORE (64)
++ OP_STGRL uint32 = 0xC40B // FORMAT_RIL2 STORE RELATIVE LONG (64)
++ OP_STH uint32 = 0x4000 // FORMAT_RX1 STORE HALFWORD
++ OP_STHH uint32 = 0xE3C7 // FORMAT_RXY1 STORE HALFWORD HIGH (16)
++ OP_STHRL uint32 = 0xC407 // FORMAT_RIL2 STORE HALFWORD RELATIVE LONG
++ OP_STHY uint32 = 0xE370 // FORMAT_RXY1 STORE HALFWORD
++ OP_STIDP uint32 = 0xB202 // FORMAT_S STORE CPU ID
++ OP_STM uint32 = 0x9000 // FORMAT_RS1 STORE MULTIPLE (32)
++ OP_STMG uint32 = 0xEB24 // FORMAT_RSY1 STORE MULTIPLE (64)
++ OP_STMH uint32 = 0xEB26 // FORMAT_RSY1 STORE MULTIPLE HIGH
++ OP_STMY uint32 = 0xEB90 // FORMAT_RSY1 STORE MULTIPLE (32)
++ OP_STNSM uint32 = 0xAC00 // FORMAT_SI STORE THEN AND SYSTEM MASK
++ OP_STOC uint32 = 0xEBF3 // FORMAT_RSY2 STORE ON CONDITION (32)
++ OP_STOCG uint32 = 0xEBE3 // FORMAT_RSY2 STORE ON CONDITION (64)
++ OP_STOSM uint32 = 0xAD00 // FORMAT_SI STORE THEN OR SYSTEM MASK
++ OP_STPQ uint32 = 0xE38E // FORMAT_RXY1 STORE PAIR TO QUADWORD
++ OP_STPT uint32 = 0xB209 // FORMAT_S STORE CPU TIMER
++ OP_STPX uint32 = 0xB211 // FORMAT_S STORE PREFIX
++ OP_STRAG uint32 = 0xE502 // FORMAT_SSE STORE REAL ADDRESS
++ OP_STRL uint32 = 0xC40F // FORMAT_RIL2 STORE RELATIVE LONG (32)
++ OP_STRV uint32 = 0xE33E // FORMAT_RXY1 STORE REVERSED (32)
++ OP_STRVG uint32 = 0xE32F // FORMAT_RXY1 STORE REVERSED (64)
++ OP_STRVH uint32 = 0xE33F // FORMAT_RXY1 STORE REVERSED (16)
++ OP_STSCH uint32 = 0xB234 // FORMAT_S STORE SUBCHANNEL
++ OP_STSI uint32 = 0xB27D // FORMAT_S STORE SYSTEM INFORMATION
++ OP_STURA uint32 = 0xB246 // FORMAT_RRE STORE USING REAL ADDRESS (32)
++ OP_STURG uint32 = 0xB925 // FORMAT_RRE STORE USING REAL ADDRESS (64)
++ OP_STY uint32 = 0xE350 // FORMAT_RXY1 STORE (32)
++ OP_SU uint32 = 0x7F00 // FORMAT_RX1 SUBTRACT UNNORMALIZED (short HFP)
++ OP_SUR uint32 = 0x3F00 // FORMAT_RR SUBTRACT UNNORMALIZED (short HFP)
++ OP_SVC uint32 = 0x0A00 // FORMAT_I SUPERVISOR CALL
++ OP_SW uint32 = 0x6F00 // FORMAT_RX1 SUBTRACT UNNORMALIZED (long HFP)
++ OP_SWR uint32 = 0x2F00 // FORMAT_RR SUBTRACT UNNORMALIZED (long HFP)
++ OP_SXBR uint32 = 0xB34B // FORMAT_RRE SUBTRACT (extended BFP)
++ OP_SXR uint32 = 0x3700 // FORMAT_RR SUBTRACT NORMALIZED (extended HFP)
++ OP_SXTR uint32 = 0xB3DB // FORMAT_RRF1 SUBTRACT (extended DFP)
++ OP_SXTRA uint32 = 0xB3DB // FORMAT_RRF1 SUBTRACT (extended DFP)
++ OP_SY uint32 = 0xE35B // FORMAT_RXY1 SUBTRACT (32)
++ OP_TABORT uint32 = 0xB2FC // FORMAT_S TRANSACTION ABORT
++ OP_TAM uint32 = 0x010B // FORMAT_E TEST ADDRESSING MODE
++ OP_TAR uint32 = 0xB24C // FORMAT_RRE TEST ACCESS
++ OP_TB uint32 = 0xB22C // FORMAT_RRE TEST BLOCK
++ OP_TBDR uint32 = 0xB351 // FORMAT_RRF5 CONVERT HFP TO BFP (long)
++ OP_TBEDR uint32 = 0xB350 // FORMAT_RRF5 CONVERT HFP TO BFP (long to short)
++ OP_TBEGIN uint32 = 0xE560 // FORMAT_SIL TRANSACTION BEGIN
++ OP_TBEGINC uint32 = 0xE561 // FORMAT_SIL TRANSACTION BEGIN
++ OP_TCDB uint32 = 0xED11 // FORMAT_RXE TEST DATA CLASS (long BFP)
++ OP_TCEB uint32 = 0xED10 // FORMAT_RXE TEST DATA CLASS (short BFP)
++ OP_TCXB uint32 = 0xED12 // FORMAT_RXE TEST DATA CLASS (extended BFP)
++ OP_TDCDT uint32 = 0xED54 // FORMAT_RXE TEST DATA CLASS (long DFP)
++ OP_TDCET uint32 = 0xED50 // FORMAT_RXE TEST DATA CLASS (short DFP)
++ OP_TDCXT uint32 = 0xED58 // FORMAT_RXE TEST DATA CLASS (extended DFP)
++ OP_TDGDT uint32 = 0xED55 // FORMAT_RXE TEST DATA GROUP (long DFP)
++ OP_TDGET uint32 = 0xED51 // FORMAT_RXE TEST DATA GROUP (short DFP)
++ OP_TDGXT uint32 = 0xED59 // FORMAT_RXE TEST DATA GROUP (extended DFP)
++ OP_TEND uint32 = 0xB2F8 // FORMAT_S TRANSACTION END
++ OP_THDER uint32 = 0xB358 // FORMAT_RRE CONVERT BFP TO HFP (short to long)
++ OP_THDR uint32 = 0xB359 // FORMAT_RRE CONVERT BFP TO HFP (long)
++ OP_TM uint32 = 0x9100 // FORMAT_SI TEST UNDER MASK
++ OP_TMH uint32 = 0xA700 // FORMAT_RI1 TEST UNDER MASK HIGH
++ OP_TMHH uint32 = 0xA702 // FORMAT_RI1 TEST UNDER MASK (high high)
++ OP_TMHL uint32 = 0xA703 // FORMAT_RI1 TEST UNDER MASK (high low)
++ OP_TML uint32 = 0xA701 // FORMAT_RI1 TEST UNDER MASK LOW
++ OP_TMLH uint32 = 0xA700 // FORMAT_RI1 TEST UNDER MASK (low high)
++ OP_TMLL uint32 = 0xA701 // FORMAT_RI1 TEST UNDER MASK (low low)
++ OP_TMY uint32 = 0xEB51 // FORMAT_SIY TEST UNDER MASK
++ OP_TP uint32 = 0xEBC0 // FORMAT_RSL TEST DECIMAL
++ OP_TPI uint32 = 0xB236 // FORMAT_S TEST PENDING INTERRUPTION
++ OP_TPROT uint32 = 0xE501 // FORMAT_SSE TEST PROTECTION
++ OP_TR uint32 = 0xDC00 // FORMAT_SS1 TRANSLATE
++ OP_TRACE uint32 = 0x9900 // FORMAT_RS1 TRACE (32)
++ OP_TRACG uint32 = 0xEB0F // FORMAT_RSY1 TRACE (64)
++ OP_TRAP2 uint32 = 0x01FF // FORMAT_E TRAP
++ OP_TRAP4 uint32 = 0xB2FF // FORMAT_S TRAP
++ OP_TRE uint32 = 0xB2A5 // FORMAT_RRE TRANSLATE EXTENDED
++ OP_TROO uint32 = 0xB993 // FORMAT_RRF3 TRANSLATE ONE TO ONE
++ OP_TROT uint32 = 0xB992 // FORMAT_RRF3 TRANSLATE ONE TO TWO
++ OP_TRT uint32 = 0xDD00 // FORMAT_SS1 TRANSLATE AND TEST
++ OP_TRTE uint32 = 0xB9BF // FORMAT_RRF3 TRANSLATE AND TEST EXTENDED
++ OP_TRTO uint32 = 0xB991 // FORMAT_RRF3 TRANSLATE TWO TO ONE
++ OP_TRTR uint32 = 0xD000 // FORMAT_SS1 TRANSLATE AND TEST REVERSE
++ OP_TRTRE uint32 = 0xB9BD // FORMAT_RRF3 TRANSLATE AND TEST REVERSE EXTENDED
++ OP_TRTT uint32 = 0xB990 // FORMAT_RRF3 TRANSLATE TWO TO TWO
++ OP_TS uint32 = 0x9300 // FORMAT_S TEST AND SET
++ OP_TSCH uint32 = 0xB235 // FORMAT_S TEST SUBCHANNEL
++ OP_UNPK uint32 = 0xF300 // FORMAT_SS2 UNPACK
++ OP_UNPKA uint32 = 0xEA00 // FORMAT_SS1 UNPACK ASCII
++ OP_UNPKU uint32 = 0xE200 // FORMAT_SS1 UNPACK UNICODE
++ OP_UPT uint32 = 0x0102 // FORMAT_E UPDATE TREE
++ OP_X uint32 = 0x5700 // FORMAT_RX1 EXCLUSIVE OR (32)
++ OP_XC uint32 = 0xD700 // FORMAT_SS1 EXCLUSIVE OR (character)
++ OP_XG uint32 = 0xE382 // FORMAT_RXY1 EXCLUSIVE OR (64)
++ OP_XGR uint32 = 0xB982 // FORMAT_RRE EXCLUSIVE OR (64)
++ OP_XGRK uint32 = 0xB9E7 // FORMAT_RRF1 EXCLUSIVE OR (64)
++ OP_XI uint32 = 0x9700 // FORMAT_SI EXCLUSIVE OR (immediate)
++ OP_XIHF uint32 = 0xC006 // FORMAT_RIL1 EXCLUSIVE OR IMMEDIATE (high)
++ OP_XILF uint32 = 0xC007 // FORMAT_RIL1 EXCLUSIVE OR IMMEDIATE (low)
++ OP_XIY uint32 = 0xEB57 // FORMAT_SIY EXCLUSIVE OR (immediate)
++ OP_XR uint32 = 0x1700 // FORMAT_RR EXCLUSIVE OR (32)
++ OP_XRK uint32 = 0xB9F7 // FORMAT_RRF1 EXCLUSIVE OR (32)
++ OP_XSCH uint32 = 0xB276 // FORMAT_S CANCEL SUBCHANNEL
++ OP_XY uint32 = 0xE357 // FORMAT_RXY1 EXCLUSIVE OR (32)
++ OP_ZAP uint32 = 0xF800 // FORMAT_SS2 ZERO AND ADD
++)
++
++func oclass(a *obj.Addr) int {
++ return int(a.Class) - 1
++}
++
++// Add a relocation for the immediate in a RIL style instruction.
++// The addend will be adjusted as required.
++func addrilreloc(ctxt *obj.Link, sym *obj.LSym, add int64) *obj.Reloc {
++ offset := int64(2) // relocation offset from start of instruction
++ rel := obj.Addrel(ctxt.Cursym)
++ rel.Off = int32(ctxt.Pc + offset)
++ rel.Siz = 4
++ rel.Sym = sym
++ rel.Add = add + offset + int64(rel.Siz)
++ rel.Type = obj.R_PCRELDBL
++ return rel
++}
++
++// Add a CALL relocation for the immediate in a RIL style instruction.
++// The addend will be adjusted as required.
++func addcallreloc(ctxt *obj.Link, sym *obj.LSym, add int64) *obj.Reloc {
++ offset := int64(2) // relocation offset from start of instruction
++ rel := obj.Addrel(ctxt.Cursym)
++ rel.Off = int32(ctxt.Pc + offset)
++ rel.Siz = 4
++ rel.Sym = sym
++ rel.Add = add + offset + int64(rel.Siz)
++ rel.Type = obj.R_CALL
++ return rel
++}
++
++/*
++ * 32-bit masks
++ */
++func getmask(m []byte, v uint32) bool {
++ m[1] = 0
++ m[0] = m[1]
++ if v != ^uint32(0) && v&(1<<31) != 0 && v&1 != 0 { /* MB > ME */
++ if getmask(m, ^v) {
++ i := int(m[0])
++ m[0] = m[1] + 1
++ m[1] = byte(i - 1)
++ return true
++ }
++
++ return false
++ }
++
++ for i := 0; i < 32; i++ {
++ if v&(1<<uint(31-i)) != 0 {
++ m[0] = byte(i)
++ for {
++ m[1] = byte(i)
++ i++
++ if i >= 32 || v&(1<<uint(31-i)) == 0 {
++ break
++ }
++ }
++
++ for ; i < 32; i++ {
++ if v&(1<<uint(31-i)) != 0 {
++ return false
++ }
++ }
++ return true
++ }
++ }
++
++ return false
++}
++
++func maskgen(ctxt *obj.Link, p *obj.Prog, m []byte, v uint32) {
++ if !getmask(m, v) {
++ ctxt.Diag("cannot generate mask #%x\n%v", v, p)
++ }
++}
++
++/*
++ * 64-bit masks (rldic etc)
++ */
++func getmask64(m []byte, v uint64) bool {
++ m[1] = 0
++ m[0] = m[1]
++ for i := 0; i < 64; i++ {
++ if v&(uint64(1)<<uint(63-i)) != 0 {
++ m[0] = byte(i)
++ for {
++ m[1] = byte(i)
++ i++
++ if i >= 64 || v&(uint64(1)<<uint(63-i)) == 0 {
++ break
++ }
++ }
++
++ for ; i < 64; i++ {
++ if v&(uint64(1)<<uint(63-i)) != 0 {
++ return false
++ }
++ }
++ return true
++ }
++ }
++
++ return false
++}
++
++func maskgen64(ctxt *obj.Link, p *obj.Prog, m []byte, v uint64) {
++ if !getmask64(m, v) {
++ ctxt.Diag("cannot generate mask #%x\n%v", v, p)
++ }
++}
++
++func branchMask(ctxt *obj.Link, p *obj.Prog) uint32 {
++ switch p.As {
++ case ABEQ, ACMPBEQ, ACMPUBEQ:
++ return 0x8
++ case ABGE, ACMPBGE, ACMPUBGE:
++ return 0xA
++ case ABGT, ACMPBGT, ACMPUBGT:
++ return 0x2
++ case ABLE, ACMPBLE, ACMPUBLE:
++ return 0xC
++ case ABLT, ACMPBLT, ACMPUBLT:
++ return 0x4
++ case ABNE, ACMPBNE, ACMPUBNE:
++ return 0x7
++ case ABVC:
++ return 0x0 //needs extra instruction
++ case ABVS:
++ return 0x1
++ }
++ ctxt.Diag("unknown conditional branch %v", p.As)
++ return 0xF
++}
++
++func asmout(ctxt *obj.Link, asm *[]byte) {
++ p := ctxt.Curp
++ o := oplook(ctxt, p)
++ ctxt.Printp = p
++
++ switch o.type_ {
++ default:
++ ctxt.Diag("unknown type %d", o.type_)
++
++ case 0: /* pseudo ops */
++ break
++
++ case 1: /* mov r1,r2 ==> OR Rs,Rs,Ra */ // lgr r1,r2
++ if p.From.Type == obj.TYPE_CONST { //happens when a zero constant is used
++ v := regoff(ctxt, &p.From)
++ RI(OP_LGHI, uint32(p.To.Reg), uint32(v), asm)
++ } else {
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case 2: /* int/cr/fp op Rb,[Ra],Rd */
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ var opcode uint32
++
++ switch p.As {
++ default:
++ ctxt.Diag("invalid opcode")
++ case AADD:
++ opcode = OP_AGRK
++ case AADDC:
++ opcode = OP_ALGRK
++ case AADDE:
++ opcode = OP_ALCGR
++ case AMULLW:
++ opcode = OP_MSGFR
++ case AMULLD:
++ opcode = OP_MSGR
++ case AMULHDU:
++ opcode = OP_MLGR
++ case AMULHD:
++ ctxt.Diag("MULHD not implemented")
++ case ADIVW:
++ opcode = OP_DSGFR
++ case ADIVWU:
++ opcode = OP_DLR
++ case ADIVD:
++ opcode = OP_DSGR
++ case ADIVDU:
++ opcode = OP_DLGR
++ case AFADD:
++ opcode = OP_ADBR
++ case AFADDS:
++ opcode = OP_AEBR
++ case AFSUB:
++ opcode = OP_SDBR
++ case AFSUBS:
++ opcode = OP_SEBR
++ case AFDIV:
++ opcode = OP_DDBR
++ case AFDIVS:
++ opcode = OP_DEBR
++ }
++
++ switch p.As {
++ default:
++
++ case AADD, AADDC:
++ RRF(opcode, uint32(p.From.Reg), 0, uint32(p.To.Reg), uint32(r), asm)
++
++ case AADDE, AMULLW, AMULLD:
++ if r == int(p.To.Reg) {
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.From.Reg == p.To.Reg {
++ RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
++ } else {
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case ADIVW, ADIVWU, ADIVD, ADIVDU:
++ if p.As == ADIVWU || p.As == ADIVDU {
++ RRE(OP_LGR, uint32(REGTMP), uint32(REGZERO), asm)
++ }
++ RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
++ RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP2), asm)
++
++ case AMULHDU:
++ RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
++ RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP), asm)
++
++ case AFADD, AFADDS:
++ if r == int(p.To.Reg) {
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.From.Reg == p.To.Reg {
++ RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
++ } else {
++ RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case AFSUB, AFSUBS, AFDIV, AFDIVS:
++ if r == int(p.To.Reg) {
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.From.Reg == p.To.Reg {
++ RRE(OP_LGDR, uint32(REGTMP), uint32(r), asm)
++ RRE(opcode, uint32(r), uint32(p.From.Reg), asm)
++ RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(OP_LDGR, uint32(r), uint32(REGTMP), asm)
++ } else {
++ RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ }
++
++ case 3: // mov $soreg/addcon/ucon,r => LGFI Rd, $i or LAY Rd, $i(Rs)
++ d := vregoff(ctxt, &p.From)
++
++ v := int32(d)
++ r := int(p.From.Reg)
++
++ if r == 0 {
++ r = int(o.param)
++ }
++
++ if r == 0 {
++ switch p.As {
++ case AMOVWZ, AMOVHZ, AMOVBZ:
++ switch p.As {
++ case AMOVHZ:
++ v = int32(uint16(v))
++ case AMOVBZ:
++ v = int32(uint8(v))
++ }
++ RIL(a, OP_LLILF, uint32(p.To.Reg), uint32(v), asm)
++ default:
++ RIL(a, OP_LGFI, uint32(p.To.Reg), uint32(v), asm)
++ }
++ } else if v >= 0 && v < DISP12 {
++ RX(OP_LA, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ } else {
++ RXY(a, OP_LAY, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ }
++
++ case 4: /* add/mul $scon,[r1],r2 */ //Might have to worry about condition codes
++ v := regoff(ctxt, &p.From)
++
++ r := int(p.To.Reg)
++ r2 := int(p.Reg)
++
++ if p.Reg == 0 && p.To.Reg == 0 {
++ ctxt.Diag("literal operation on R0\n%v", p)
++ }
++ if p.As == AADD {
++ if r2 == 0 {
++ RIL(a, OP_AGFI, uint32(r), uint32(v), asm)
++ } else {
++ RIE(d, OP_AGHIK, uint32(r), uint32(r2), uint32(v), 0, 0, 0, 0, asm)
++ }
++ } else if p.As == AMULLW {
++ if r2 == 0 {
++ RIL(a, OP_MSGFI, uint32(r), uint32(v), asm)
++ } else {
++ RIL(a, OP_MSGFI, uint32(r2), uint32(v), asm)
++ RRE(OP_LGFR, uint32(r), uint32(r2), asm)
++ }
++ }
++
++ case 5: /* syscall */ // This might be right, assuming SVC is the same as Power's SC
++ I(OP_SVC, 0, asm)
++
++ case 6: /* logical op Rb,[Rs,]Ra; no literal */
++ if p.To.Reg == 0 {
++ ctxt.Diag("literal operation on R0\n%v", p)
++ }
++
++ switch p.As {
++ case AAND, AOR, AXOR:
++ var opcode1, opcode2 uint32
++ switch p.As {
++ default:
++ case AAND:
++ opcode1 = OP_NGR
++ opcode2 = OP_NGRK
++ case AOR:
++ opcode1 = OP_OGR
++ opcode2 = OP_OGRK
++ case AXOR:
++ opcode1 = OP_XGR
++ opcode2 = OP_XGRK
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ RRE(opcode1, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case AANDN, AORN:
++ var opcode1, opcode2 uint32
++ switch p.As {
++ default:
++ case AANDN:
++ opcode1 = OP_NGR
++ opcode2 = OP_NGRK
++ case AORN:
++ opcode1 = OP_OGR
++ opcode2 = OP_OGRK
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.To.Reg), asm)
++ RRE(opcode1, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ RRE(OP_LCGR, uint32(REGTMP), uint32(r), asm)
++ RRF(opcode2, uint32(REGTMP), 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case ANAND, ANOR:
++ var opcode1, opcode2 uint32
++ switch p.As {
++ default:
++ case ANAND:
++ opcode1 = OP_NGR
++ opcode2 = OP_NGRK
++ case ANOR:
++ opcode1 = OP_OGR
++ opcode2 = OP_OGRK
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ RRE(opcode1, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.To.Reg), asm)
++
++ case ASLW, ASLD, ASRAW, ASRAD, ASRW, ASRD:
++ var opcode uint32
++ switch p.As {
++ default:
++ case ASLW:
++ opcode = OP_SLLK
++ case ASLD:
++ opcode = OP_SLLG
++ case ASRAW:
++ opcode = OP_SRAK
++ case ASRAD:
++ opcode = OP_SRAG
++ case ASRW:
++ opcode = OP_SRLK
++ case ASRD:
++ opcode = OP_SRLG
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++ RSY(opcode, uint32(p.To.Reg), uint32(r), uint32(p.From.Reg), 0, asm)
++
++ default:
++
++ }
++
++ case 7: /* mov r, soreg ==> stg o(r) */
++ x := int(p.To.Reg)
++ if x == 0 {
++ x = int(o.param)
++ }
++ var b int
++ if p.To.Type == obj.TYPE_MEM && p.To.Index != 0 {
++ b = int(p.To.Index)
++ } else {
++ b = x
++ x = 0
++ }
++ v := regoff(ctxt, &p.To)
++
++ RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(x), uint32(b), uint32(v), asm)
++
++ /* AMOVD, AMOVW, AMOVWZ, AMOVBZ */
++ case 8, 9: /* mov soreg, r ==> lbz/lhz/lwz o(r) */
++ x := int(p.From.Reg)
++ if x == 0 {
++ x = int(o.param)
++ }
++ var b int
++ if p.From.Type == obj.TYPE_MEM && p.From.Index != 0 {
++ b = int(p.From.Index)
++ } else {
++ b = x
++ x = 0
++ }
++ v := regoff(ctxt, &p.From)
++
++ RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(x), uint32(b), uint32(v), asm)
++
++ case 10: /* sub Ra,[Rb],Rd => subf Rd,Ra,Rb */
++ r := int(p.Reg)
++
++ switch p.As {
++ default:
++ case ASUB:
++ if r == 0 {
++ RRE(OP_SGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ RRF(OP_SGRK, uint32(p.From.Reg), 0, uint32(p.To.Reg), uint32(r), asm)
++ }
++ case ASUBC:
++ if r == 0 {
++ RRE(OP_SLGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ RRF(OP_SLGRK, uint32(p.From.Reg), 0, uint32(p.To.Reg), uint32(r), asm)
++ }
++
++ case ASUBE:
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++ if r == int(p.To.Reg) {
++ RRE(OP_SLBGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.From.Reg == p.To.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(OP_SLBGR, uint32(p.To.Reg), uint32(REGTMP), asm)
++ } else {
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(OP_SLBGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++ }
++
++ case 11: /* br/bl lbra */
++ v := int32(0)
++
++ if p.Pcond != nil {
++ v = int32((p.Pcond.Pc - p.Pc) >> 1)
++ }
++
++ if p.As == ABR && p.To.Sym == nil && int32(int16(v)) == v {
++ RI(OP_BRC, 0xF, uint32(v), asm)
++ } else {
++ if p.As == ABL {
++ RIL(b, OP_BRASL, uint32(REG_LR), uint32(v), asm)
++ } else {
++ RIL(c, OP_BRCL, 0xF, uint32(v), asm)
++ }
++ if p.To.Sym != nil {
++ addcallreloc(ctxt, p.To.Sym, p.To.Offset)
++ }
++ }
++
++ case 12: /* movb r,r (lgbr); movw r,r (lgfr) */
++ if p.To.Reg == REGZERO && p.From.Type == obj.TYPE_CONST {
++ v := regoff(ctxt, &p.From)
++ if r0iszero != 0 /*TypeKind(100016)*/ && v != 0 {
++ ctxt.Diag("literal operation on R0\n%v", p)
++ }
++ RIL(a, OP_LGFI, uint32(REGZERO), uint32(v), asm)
++ } else if p.As == AMOVW {
++ RRE(OP_LGFR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ RRE(OP_LGBR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case 13: /* mov[bhw]z r,r (llgbr, llghr, llgfr) */
++ if p.As == AMOVBZ {
++ RRE(OP_LLGCR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.As == AMOVH {
++ RRE(OP_LGHR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.As == AMOVHZ {
++ RRE(OP_LLGHR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.As == AMOVWZ {
++ RRE(OP_LLGFR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else {
++ ctxt.Diag("internal: bad mov[bhw]z\n%v", p)
++ }
++
++ case 14: /* rldc[lr] Rb,Rs,$mask,Ra -- left, right give different masks */
++ d := vregoff(ctxt, p.From3)
++ var mask [2]uint8
++ maskgen64(ctxt, p, mask[:], uint64(d))
++ var i3, i4 int
++ switch p.As {
++ case ARLDCL:
++ i3 = int(mask[0]) // MB
++ i4 = int(63)
++ if mask[1] != 63 {
++ ctxt.Diag("invalid mask for rotate: %x (end != bit 63)\n%v", uint64(d), p)
++ }
++
++ case ARLDCR:
++ i3 = int(0)
++ i4 = int(mask[1]) // ME
++ if mask[0] != 0 {
++ ctxt.Diag("invalid mask for rotate: %x (start != 0)\n%v", uint64(d), p)
++ }
++
++ default:
++ ctxt.Diag("unexpected op in rldc case\n%v", p)
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++ RSY(OP_RLLG, uint32(REGTMP), uint32(r), uint32(p.From.Reg), 0, asm)
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
++ RIE(f, OP_RISBG, uint32(p.To.Reg), uint32(REGTMP), 0, uint32(i3), uint32(i4), 0, 0, asm)
++
++ case 15: /* br/bl (r) */
++ r := p.To.Reg
++ if p.As == ABCL || p.As == ABL {
++ RR(OP_BASR, uint32(REG_LR), uint32(r), asm)
++ } else {
++ RR(OP_BCR, 0xF, uint32(r), asm)
++ }
++
++ case 17, /* bc bo,bi,lbra (same for now) */
++ 16: /* bc bo,bi,sbra */
++ v := int32(0)
++ if p.Pcond != nil {
++ v = int32((p.Pcond.Pc - p.Pc) >> 1)
++ }
++ mask := branchMask(ctxt, p)
++ if p.To.Sym == nil && int32(int16(v)) == v {
++ RI(OP_BRC, uint32(mask), uint32(v), asm)
++ } else {
++ RIL(c, OP_BRCL, uint32(mask), uint32(v), asm)
++ }
++ if p.To.Sym != nil {
++ addrilreloc(ctxt, p.To.Sym, p.To.Offset)
++ }
++
++ case 18: // br/bl r
++ switch oclass(&p.To) {
++ case C_REG:
++ if p.As == ABL {
++ RR(OP_BASR, uint32(REG_LR), uint32(p.To.Reg), asm)
++ } else {
++ RR(OP_BCR, 0xF, uint32(p.To.Reg), asm)
++ }
++ default:
++ ctxt.Diag("bad optab entry (18): %d\n%v", p.To.Class, p)
++ }
++
++ case 19: /* mov $lcon,r ==> cau+or */
++ d := vregoff(ctxt, &p.From)
++
++ if p.From.Sym == nil {
++ RIL(a, OP_LGFI, uint32(p.To.Reg), uint32(d), asm)
++ } else if p.From.Sym.Name == "runtime.tlsg" {
++ // This is a hack to get the right offset for g from the TLS block.
++ // It would be nice to have some syntax to do this properly.
++ // This will NOT work when generating a shared object.
++ switch p.As {
++ default:
++ ctxt.Diag("can only place TLS variable offset into a 8-byte register (i.e. need MOVD)")
++ case AMOVD:
++ // The R_390_TLS_LE32 relocation isn't actually implemented for ELF64,
++ // we therefore need to use the 64-bit equivalent, which means using .rodata.
++ var sym *obj.LSym
++ sym = obj.Linklookup(ctxt, "runtime.tlsg_offset", 0)
++ sym.Type = obj.SRODATA
++ sym.Size = 8
++ obj.Symgrow(ctxt, sym, sym.Size) // needed for relocation to apply
++ sym.R = make([]obj.Reloc, 0)
++ offrel := obj.Addrel(sym)
++ offrel.Off = 0
++ offrel.Siz = 8
++ offrel.Sym = obj.Linklookup(ctxt, "runtime.tlsg", 0)
++ offrel.Add = 0
++ offrel.Type = obj.R_TLS_LE
++ rel := obj.Addrel(ctxt.Cursym)
++ rel.Off = int32(ctxt.Pc + 2)
++ rel.Siz = 4
++ rel.Sym = sym
++ rel.Add = int64(rel.Siz) + 2
++ rel.Type = obj.R_PCRELDBL
++ RIL(a, OP_LGRL, uint32(p.To.Reg), 0, asm)
++ }
++ } else {
++ RIL(b, OP_LARL, uint32(p.To.Reg), 0, asm)
++ if d&1 != 0 {
++ RX(OP_LA, uint32(p.To.Reg), uint32(p.To.Reg), 0, 1, asm)
++ d -= 1
++ }
++ addrilreloc(ctxt, p.From.Sym, d)
++ }
++
++ case 20: /* add $ucon,,r */
++ v := regoff(ctxt, &p.From)
++
++ r := int(p.Reg)
++ if p.As == AADD && p.To.Reg == 0 {
++ ctxt.Diag("literal operation on R0\n%v", p)
++ }
++ if r == 0 {
++ RIL(a, OP_AGFI, uint32(p.To.Reg), uint32(v), asm)
++ } else {
++ RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++ RRE(OP_AGR, REGTMP, uint32(r), asm)
++ RRE(OP_LGR, uint32(p.To.Reg), REGTMP, asm)
++ }
++
++ case 22: /* add $lcon,r1,r2 ==> cau+or+add */ /* could do add/sub more efficiently */
++
++ if p.From.Sym != nil {
++ ctxt.Diag("%v is not supported", p)
++ }
++
++ d := vregoff(ctxt, &p.From)
++ var opcode uint32
++ switch p.As {
++ default:
++ case AADD:
++ opcode = OP_AGFI
++ case AADDC:
++ opcode = OP_ALGFI
++ case AMULLW:
++ opcode = OP_MSGFI
++ }
++
++ r := int(p.Reg)
++ if r != 0 {
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++ }
++ RIL(a, opcode, uint32(p.To.Reg), uint32(d), asm)
++
++ case 23: /* and $lcon,r1,r2 ==> cau+or+and */ /* masks could be done using rlnm etc. */
++
++ d := regoff(ctxt, &p.From)
++ var opcode uint32
++ r := int(p.Reg)
++ if r == 0 {
++ switch p.As {
++ default:
++ ctxt.Diag("%v is not supported", p)
++ case AAND:
++ opcode = OP_NGR
++ case AOR:
++ opcode = OP_OGR
++ case AXOR:
++ opcode = OP_XGR
++ }
++ RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
++ RRE(opcode, uint32(p.To.Reg), REGTMP, asm)
++ } else {
++ switch p.As {
++ default:
++ ctxt.Diag("%v is not supported", p)
++ case AAND:
++ opcode = OP_NGRK
++ case AOR:
++ opcode = OP_OGRK
++ case AXOR:
++ opcode = OP_XGRK
++ }
++ RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
++ RRF(opcode, uint32(r), 0, uint32(p.To.Reg), REGTMP, asm)
++ }
++
++ case 25:
++ /* sld[.] $sh,rS,rA -> rldicr[.] $sh,rS,mask(0,63-sh),rA; srd[.] -> rldicl */
++ v := regoff(ctxt, &p.From)
++ if v < 0 {
++ v = 0
++ } else if v > 63 {
++ v = 63
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ switch p.As {
++ default:
++ case ASLD:
++ RSY(OP_SLLG, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ case ASRD:
++ RSY(OP_SRLG, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ }
++
++ case 26: /* mov $lsext/auto/oreg,,r2 ==> addis+addi */
++ v := regoff(ctxt, &p.From)
++ r := int(p.From.Reg)
++ if r == 0 {
++ r = int(o.param)
++ }
++
++ if v >= -DISP20/2 && v < DISP20/2 {
++ RXY(0, OP_LAY, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ } else {
++ RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++ RX(OP_LA, uint32(p.To.Reg), uint32(r), REGTMP, 0, asm)
++ }
++
++ case 27: /* subc ra,$simm,rd => subfic rd,ra,$simm */
++
++ v := regoff(ctxt, p.From3)
++ RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ RIE(d, OP_AGHIK, uint32(p.To.Reg), uint32(p.To.Reg), uint32(v), 0, 0, 0, 0, asm)
++
++ case 28: /* subc r1,$lcon,r2 ==> cau+or+subfc */
++
++ v := regoff(ctxt, p.From3)
++ RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ RIL(a, OP_AGFI, uint32(p.To.Reg), uint32(v), asm)
++
++ if p.From.Sym != nil {
++ ctxt.Diag("%v is not supported", p)
++ }
++
++ case 29: /* rldic[lr]? $sh,s,$mask,a -- left, right, plain give different masks */
++ v := regoff(ctxt, &p.From)
++ d := vregoff(ctxt, p.From3)
++
++ var mask [2]uint8
++ maskgen64(ctxt, p, mask[:], uint64(d))
++
++ var i3, i4, i5 int
++ switch p.As {
++ case ARLDC:
++ i3 = int(mask[0]) // MB
++ i4 = int(63 - v)
++ i5 = int(v)
++ if int32(mask[1]) != int32(63-v) {
++ ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
++ }
++
++ case ARLDCL:
++ i3 = int(mask[0]) // MB
++ i4 = int(63)
++ i5 = int(v)
++ if mask[1] != 63 {
++ ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
++ }
++
++ case ARLDCR:
++ i3 = int(0)
++ i4 = int(mask[1]) // ME
++ i5 = int(v)
++ if mask[0] != 0 {
++ ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
++ }
++
++ default:
++ ctxt.Diag("unexpected op in rldic case\n%v", p)
++ }
++
++ r := int(p.Reg)
++ if p.To.Reg == p.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.Reg), asm)
++ r = int(REGTMP)
++ }
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
++ RIE(f, OP_RISBG, uint32(p.To.Reg), uint32(r), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
++
++ case 30: /* rldimi $sh,s,$mask,a */
++ v := regoff(ctxt, &p.From)
++ d := vregoff(ctxt, p.From3)
++
++ var mask [2]uint8
++ maskgen64(ctxt, p, mask[:], uint64(d))
++
++ var i3, i4, i5 int
++ i3 = int(mask[0]) // MB
++ i4 = int(63 - v)
++ i5 = int(v)
++ if int32(mask[1]) != int32(63-v) {
++ ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
++ }
++
++ RIE(f, OP_RISBG, uint32(p.To.Reg), uint32(p.Reg), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
++
++ case 31: /* dword */
++ wd := uint64(vregoff(ctxt, &p.From))
++ *asm = append(*asm,
++ uint8(wd>>56),
++ uint8(wd>>48),
++ uint8(wd>>40),
++ uint8(wd>>32),
++ uint8(wd>>24),
++ uint8(wd>>16),
++ uint8(wd>>8),
++ uint8(wd))
++
++ case 32: /* fmul frc,fra,frd */
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ var opcode uint32
++
++ switch p.As {
++ default:
++ ctxt.Diag("invalid opcode")
++ case AFMUL:
++ opcode = OP_MDBR
++ case AFMULS:
++ opcode = OP_MEEBR
++ }
++
++ if r == int(p.To.Reg) {
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ } else if p.From.Reg == p.To.Reg {
++ RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
++ } else {
++ RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
++ RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++ }
++
++ case 33: /* fabs [frb,]frd; fmr. frb,frd */
++ r := int(p.From.Reg)
++
++ if oclass(&p.From) == C_NONE {
++ r = int(p.To.Reg)
++ }
++
++ switch p.As {
++ case AFMOVD, AFMOVS:
++ RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
++ default:
++ var opcode uint32
++
++ switch p.As {
++ default:
++ case AFABS:
++ opcode = OP_LPDBR
++ case AFNABS:
++ opcode = OP_LNDBR
++ case AFNEG:
++ opcode = OP_LCDFR
++ case AFRSP:
++ opcode = OP_LEDBR
++ case ALDEBR:
++ opcode = OP_LDEBR
++ case AFSQRT:
++ opcode = OP_SQDBR
++ case AFSQRTS:
++ opcode = OP_SQEBR
++ }
++
++ RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
++ }
++
++ case 34: /* FMADDx fra,frb,frc,frd (d=a*b+c); FSELx a<0? (d=b): (d=c) */
++
++ var opcode uint32
++
++ switch p.As {
++ default:
++ ctxt.Diag("invalid opcode")
++ case AFMADD:
++ opcode = OP_MADBR
++ case AFMADDS:
++ opcode = OP_MAEBR
++ case AFMSUB:
++ opcode = OP_MSDBR
++ case AFMSUBS:
++ opcode = OP_MSEBR
++ case AFNMADD:
++ opcode = OP_MADBR
++ case AFNMADDS:
++ opcode = OP_MAEBR
++ case AFNMSUB:
++ opcode = OP_MSDBR
++ case AFNMSUBS:
++ opcode = OP_MSEBR
++ }
++
++ RR(OP_LDR, uint32(p.To.Reg), uint32(p.Reg), asm)
++ RRD(opcode, uint32(p.To.Reg), uint32(p.From.Reg), uint32(p.From3.Reg), asm)
++
++ if p.As == AFNMADD || p.As == AFNMADDS || p.As == AFNMSUB || p.As == AFNMSUBS {
++ RRE(OP_LCDFR, uint32(p.To.Reg), uint32(p.To.Reg), asm)
++ }
++
++ case 35: /* mov[M][D|W|H|B][Z] r, lext/lauto/loreg ==>
++ LGFI regtmp, off; STG[F|H|C] r, 0(regaddr, regtmp) */
++ v := regoff(ctxt, &p.To)
++ r := int(p.To.Reg)
++ if r == 0 {
++ r = int(o.param)
++ }
++
++ if v >= -DISP20/2 && v < DISP20/2 {
++ RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(r), 0,
++ uint32(v), asm)
++ } else {
++ RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++ RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(r), REGTMP,
++ 0, asm)
++ }
++
++ case 36, 37: /* MOV[M][D|W|H|B][Z] lext/lauto/lreg, r ==>
++ LGFI regtmp, off; [L]LG[F|H|C] r, 0(regaddr, regtmp) */
++ v := regoff(ctxt, &p.From)
++
++ r := int(p.From.Reg)
++ if r == 0 {
++ r = int(o.param)
++ }
++
++ if v >= -DISP20/2 && v < DISP20/2 {
++ RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(r), 0,
++ uint32(v), asm)
++ } else {
++ RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++ RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(r), REGTMP,
++ 0, asm)
++ }
++
++ case 40: /* word and byte*/
++ wd := uint32(regoff(ctxt, &p.From))
++ if p.As == AWORD { //WORD
++ *asm = append(*asm, uint8(wd>>24), uint8(wd>>16), uint8(wd>>8), uint8(wd))
++ } else { //BYTE
++ *asm = append(*asm, uint8(wd))
++ }
++
++ case 44: /* indexed store */
++ RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(p.To.Index), uint32(p.To.Reg), 0, asm)
++
++ case 45: /* indexed load */
++ RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(p.From.Index), uint32(p.From.Reg), 0, asm)
++
++ case 47: /* op Ra, Rd; also op [Ra,] Rd */
++ switch p.As {
++ default:
++
++ case AADDME:
++ r := int(p.From.Reg)
++ if p.To.Reg == p.From.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
++ r = int(REGTMP)
++ }
++ RIL(a, OP_LGFI, uint32(p.To.Reg), 0xffffffff, asm) // p.To.Reg <- -1
++ RRE(OP_ALCGR, uint32(p.To.Reg), uint32(r), asm)
++
++ case AADDZE:
++ r := int(p.From.Reg)
++ if p.To.Reg == p.From.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
++ r = int(REGTMP)
++ }
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm) // p.To.Reg <- 0
++ RRE(OP_ALCGR, uint32(p.To.Reg), uint32(r), asm)
++
++ case ASUBME:
++ r := int(p.From.Reg)
++ if p.To.Reg == p.From.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
++ r = int(REGTMP)
++ }
++ RIL(a, OP_LGFI, uint32(p.To.Reg), 0xffffffff, asm) // p.To.Reg <- -1
++ RRE(OP_SLBGR, uint32(p.To.Reg), uint32(r), asm)
++
++ case ASUBZE:
++ r := int(p.From.Reg)
++ if p.To.Reg == p.From.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
++ r = int(REGTMP)
++ }
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm) // p.To.Reg <- 0
++ RRE(OP_SLBGR, uint32(p.To.Reg), uint32(r), asm)
++
++ case ANEG:
++ r := int(p.From.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++ RRE(OP_LCGR, uint32(p.To.Reg), uint32(r), asm)
++ }
++
++ case 50: /* rem[u] r1[,r2],r3 */
++ r := int(p.Reg)
++
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ var opcode uint32
++
++ switch p.As {
++ default:
++
++ case AREM:
++ opcode = OP_DSGFR
++ case AREMU:
++ opcode = OP_DLR
++ }
++
++ if p.As == AREMU {
++ RRE(OP_LGR, uint32(REGTMP), uint32(REGZERO), asm)
++ }
++ RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
++ RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP), asm)
++
++ case 51: /* remd[u] r1[,r2],r3 */
++ r := int(p.Reg)
++
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ var opcode uint32
++
++ switch p.As {
++ default:
++
++ case AREMD:
++ opcode = OP_DSGR
++ case AREMDU:
++ opcode = OP_DLGR
++ }
++
++ if p.As == AREMDU {
++ RRE(OP_LGR, uint32(REGTMP), uint32(REGZERO), asm)
++ }
++ RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
++ RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP), asm)
++
++ case 56: /* sra $sh,[s,]a; srd $sh,[s,]a */
++ v := regoff(ctxt, &p.From)
++ if v < 0 {
++ v = 0
++ } else if v > 63 {
++ v = 63
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ switch p.As {
++ default:
++ case ASRAW:
++ RSY(OP_SRAK, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ case ASRAD:
++ RSY(OP_SRAG, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ }
++
++ case 57: /* slw $sh,[s,]a -> rlwinm ... */
++ v := regoff(ctxt, &p.From)
++ if v < 0 {
++ v = 0
++ } else if v > 63 {
++ v = 63
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ r = int(p.To.Reg)
++ }
++
++ switch p.As {
++ default:
++ case ASLW:
++ RSY(OP_SLLK, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ case ASRW:
++ RSY(OP_SRLK, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
++ }
++
++ case 58: /* logical $andcon,[s],a */
++ d := regoff(ctxt, &p.From)
++
++ switch p.As {
++ case AAND, AOR, AXOR:
++ var opcode1, opcode2 uint32
++ switch p.As {
++ default:
++ ctxt.Diag("%v is not supported", p)
++ case AAND:
++ opcode1 = OP_NGR
++ opcode2 = OP_NGRK
++ case AOR:
++ opcode1 = OP_OGR
++ opcode2 = OP_OGRK
++ case AXOR:
++ opcode1 = OP_XGR
++ opcode2 = OP_XGRK
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
++ RRE(opcode1, uint32(p.To.Reg), REGTMP, asm)
++ } else {
++ RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
++ RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), REGTMP, asm)
++ }
++ }
++
++ case 59: /* or/and $ucon,,r */
++ d := regoff(ctxt, &p.From)
++
++ switch p.As {
++ case AAND, AOR, AXOR:
++ var opcode1, opcode2 uint32
++ switch p.As {
++ default:
++ ctxt.Diag("%v is not supported", p)
++ case AAND:
++ opcode1 = OP_NGR
++ opcode2 = OP_NGRK
++ case AOR:
++ opcode1 = OP_OGR
++ opcode2 = OP_OGRK
++ case AXOR:
++ opcode1 = OP_XGR
++ opcode2 = OP_XGRK
++ }
++
++ r := int(p.Reg)
++ if r == 0 {
++ RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
++ RRE(opcode1, uint32(p.To.Reg), REGTMP, asm)
++ } else {
++ RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
++ RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), REGTMP, asm)
++ }
++ }
++
++ case 62: /* rlwmi $sh,s,$mask,a */
++ v := regoff(ctxt, &p.From)
++ d := vregoff(ctxt, p.From3)
++
++ var mask [2]uint8
++ maskgen64(ctxt, p, mask[:], uint64(d))
++
++ var i3, i4, i5 int
++ i3 = int(mask[0]) // MB
++ i4 = int(mask[1]) // ME
++ i5 = int(v)
++
++ if i3 > 0x1f || i4 > 0x1f {
++ ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
++ }
++
++ switch p.As {
++ case ARLWMI:
++ RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(p.Reg), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
++
++ case ARLWNM:
++ r := int(p.Reg)
++ if p.To.Reg == p.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.Reg), asm)
++ r = int(REGTMP)
++ }
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
++ RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(r), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
++
++ default:
++
++ }
++
++ case 63: /* rlwmi b,s,$mask,a */
++ d := vregoff(ctxt, p.From3)
++ var mask [2]uint8
++ maskgen64(ctxt, p, mask[:], uint64(d))
++
++ var i3, i4 int
++ i3 = int(mask[0]) // MB
++ i4 = int(mask[1]) // ME
++
++ if i3 > 0x1f || i4 > 0x1f {
++ ctxt.Diag("invalid mask for shift: %x (shift)\n%v", uint64(d), p)
++ }
++
++ switch p.As {
++ case ARLWMI:
++ RSY(OP_RLL, uint32(REGTMP), uint32(p.Reg), uint32(p.From.Reg), 0, asm)
++ RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(REGTMP), 0, uint32(i3), uint32(i4), 0, 0, asm)
++
++ case ARLWNM:
++ if p.To.Reg == p.Reg {
++ RRE(OP_LGR, uint32(REGTMP), uint32(p.Reg), asm)
++ RSY(OP_RLL, uint32(REGTMP), uint32(REGTMP), uint32(p.From.Reg), 0, asm)
++ } else {
++ RSY(OP_RLL, uint32(REGTMP), uint32(p.Reg), uint32(p.From.Reg), 0, asm)
++ }
++ RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
++ RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(REGTMP), 0, uint32(i3), uint32(i4), 0, 0, asm)
++
++ default:
++
++ }
++
++ case 68: /* ear arS,rD */
++ RRE(OP_EAR, uint32(p.To.Reg), uint32(p.From.Reg-REG_AR0), asm)
++
++ case 69: /* sar rS,arD */
++ RRE(OP_SAR, uint32(p.To.Reg-REG_AR0), uint32(p.From.Reg), asm)
++
++ case 70: /* [f]cmp r,r,cr*/
++ if p.Reg != 0 {
++ ctxt.Diag("unsupported nozero CC in Z")
++ }
++ if p.As == ACMPW || p.As == ACMPWU {
++ RR(zoprr(ctxt, int(p.As)), uint32(p.From.Reg), uint32(p.To.Reg), asm)
++ } else {
++ RRE(zoprre(ctxt, int(p.As)), uint32(p.From.Reg), uint32(p.To.Reg), asm)
++ }
++
++ case 71: /* cmp[l] r,i,cr*/
++ if p.Reg != 0 {
++ ctxt.Diag("unsupported nozero CC in Z")
++ }
++ RIL(0, uint32(zopril(ctxt, int(p.As))), uint32(p.From.Reg), uint32(int32(regoff(ctxt, &p.To))), asm)
++
++ /* relocation operations */
++ case 74: /* AMOV[F][D|W|H|B|S][Z] Rs, addr -> ST[G|H]RL Rs, addr (with a reloaction entry ) */
++ v := regoff(ctxt, &p.To)
++
++ switch p.As {
++ case AMOVD:
++ RIL(b, OP_STGRL, uint32(p.From.Reg), uint32(v), asm)
++
++ case AMOVW, AMOVWZ: // The zero extension doesn't affect store instructions
++ RIL(b, OP_STRL, uint32(p.From.Reg), uint32(v), asm)
++
++ case AMOVH, AMOVHZ: // The zero extension doesn't affect store instructions
++ RIL(b, OP_STHRL, uint32(p.From.Reg), uint32(v), asm)
++
++ case AMOVB, AMOVBZ: // The zero extension doesn't affect store instructions
++ RIL(b, OP_LARL, REGTMP, 0, asm)
++ if v&1 != 0 {
++ RX(OP_LA, REGTMP, REGTMP, 0, 1, asm)
++ v -= 1
++ }
++ RX(OP_STC, uint32(p.From.Reg), REGTMP, 0, 0, asm)
++
++ case AFMOVD:
++ RIL(b, OP_LARL, REGTMP, uint32(v), asm)
++ RX(OP_STD, uint32(p.From.Reg), REGTMP, 0, 0, asm)
++
++ case AFMOVS:
++ RIL(b, OP_LARL, REGTMP, uint32(v), asm)
++ RX(OP_STE, uint32(p.From.Reg), REGTMP, 0, 0, asm)
++
++ }
++ addrilreloc(ctxt, p.To.Sym, int64(v))
++
++ case 75, 76: /* AMOV[F][D|W|H|B|S][Z] addr, Rd -> L[L][F|H]GRL Rd, addr (with a relocation entry) */
++ d := regoff(ctxt, &p.From)
++ if p.From.Sym == nil {
++ RIL(a, OP_LGFI, uint32(p.To.Reg), uint32(d), asm)
++ } else {
++ switch p.As {
++ case AMOVD:
++ if d&1 != 0 {
++ RIL(b, OP_LARL, REGTMP, 0, asm)
++ RX(OP_LA, REGTMP, REGTMP, 0, 1, asm)
++ RXY(0, OP_LG, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++ d -= 1
++ } else {
++ RIL(b, OP_LGRL, uint32(p.To.Reg), uint32(d), asm)
++ }
++
++ case AMOVW:
++ RIL(b, OP_LGFRL, uint32(p.To.Reg), uint32(d), asm)
++
++ case AMOVWZ:
++ RIL(b, OP_LLGFRL, uint32(p.To.Reg), uint32(d), asm)
++
++ case AMOVH:
++ RIL(b, OP_LGHRL, uint32(p.To.Reg), uint32(d), asm)
++
++ case AMOVHZ:
++ RIL(b, OP_LLGHRL, uint32(p.To.Reg), uint32(d), asm)
++
++ case AMOVB, AMOVBZ:
++ RIL(b, OP_LARL, REGTMP, 0, asm)
++ if d&1 != 0 {
++ RX(OP_LA, REGTMP, REGTMP, 0, 1, asm)
++ d -= 1
++ }
++
++ switch p.As {
++ case AMOVB:
++ RXY(0, OP_LGB, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++ case AMOVBZ:
++ RXY(0, OP_LLGC, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++ }
++
++ case AFMOVD:
++ RIL(a, OP_LARL, REGTMP, uint32(d), asm)
++ RX(OP_LD, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++
++ case AFMOVS:
++ RIL(a, OP_LARL, REGTMP, uint32(d), asm)
++ RX(OP_LE, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++ }
++
++ addrilreloc(ctxt, p.From.Sym, int64(d))
++ }
++
++ case 77: /* syscall $scon */
++ if p.From.Offset > 255 || p.From.Offset < 1 {
++ ctxt.Diag("illegal system call; system call number out of range: %v", p)
++ E(OP_TRAP2, asm) // trap always
++ } else {
++ I(OP_SVC, uint32(p.From.Offset), asm)
++ }
++
++ case 78: /* undef */
++ /* "An instruction consisting entirely of binary 0s is guaranteed
++ always to be an illegal instruction." */
++ *asm = append(*asm, 0, 0, 0, 0)
++
++ case 79: /* cs,csg r1,r3,off(r2) -> compare & swap; if (r1 ==off(r2)) then off(r2)= r3 */
++ v := regoff(ctxt, &p.To)
++ if v < 0 {
++ v = 0
++ }
++ if p.As == ACS {
++ RS(OP_CS, uint32(p.From.Reg), uint32(p.Reg), uint32(p.To.Reg), uint32(v), asm)
++ } else if p.As == ACSG {
++ RSY(OP_CSG, uint32(p.From.Reg), uint32(p.Reg), uint32(p.To.Reg), uint32(v), asm)
++ }
++
++ case 81: /* SYNC-> BCR 14,0 */
++ RR(OP_BCR, 0xE, 0, asm)
++
++ case 82: /* conversion from GPR to FPR */
++ var opcode uint32
++ switch p.As {
++ default:
++ log.Fatalf("unexpected opcode %v", p.As)
++ case ACEFBRA:
++ opcode = OP_CEFBRA
++ case ACDFBRA:
++ opcode = OP_CDFBRA
++ case ACEGBRA:
++ opcode = OP_CEGBRA
++ case ACDGBRA:
++ opcode = OP_CDGBRA
++ case ACELFBR:
++ opcode = OP_CELFBR
++ case ACDLFBR:
++ opcode = OP_CDLFBR
++ case ACELGBR:
++ opcode = OP_CELGBR
++ case ACDLGBR:
++ opcode = OP_CDLGBR
++ }
++ /* set immediate operand M3 to 0 to use the default BFP rounding mode
++ (usually round to nearest, ties to even); M4 is reserved and must be 0 */
++ RRF(opcode, 0, 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++
++ case 83: /* conversion from FPR to GPR */
++ var opcode uint32
++ switch p.As {
++ default:
++ log.Fatalf("unexpected opcode %v", p.As)
++ case ACFEBRA:
++ opcode = OP_CFEBRA
++ case ACFDBRA:
++ opcode = OP_CFDBRA
++ case ACGEBRA:
++ opcode = OP_CGEBRA
++ case ACGDBRA:
++ opcode = OP_CGDBRA
++ case ACLFEBR:
++ opcode = OP_CLFEBR
++ case ACLFDBR:
++ opcode = OP_CLFDBR
++ case ACLGEBR:
++ opcode = OP_CLGEBR
++ case ACLGDBR:
++ opcode = OP_CLGDBR
++ }
++ /* set immediate operand M3 to 5 for rounding toward zero (required by Go spec); M4 is reserved and must be 0 */
++ RRF(opcode, 5, 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
++
++ case 84: /* storage-and-storage operations (mvc, clc, xc, oc, nc) */
++ l := regoff(ctxt, p.From3)
++ d2 := regoff(ctxt, &p.From)
++ d1 := regoff(ctxt, &p.To)
++ if l < 1 || l > 256 {
++ ctxt.Diag("number of bytes (%v) not in range [1,256]", l)
++ }
++ var opcode uint32
++ switch p.As {
++ default:
++ ctxt.Diag("unexpected opcode %v", p.As)
++ case AMVC:
++ opcode = OP_MVC
++ case ACLC:
++ opcode = OP_CLC
++ case AXC:
++ opcode = OP_XC
++ case AOC:
++ opcode = OP_OC
++ case ANC:
++ opcode = OP_NC
++ }
++ SS(a, opcode, uint32(l-1), 0, uint32(p.To.Reg), uint32(d1), uint32(p.From.Reg), uint32(d2), asm)
++
++ case 85: /* larl: load address relative long */
++ // When using larl directly, don't add a nop
++ v := regoff(ctxt, &p.From)
++ if p.From.Sym == nil {
++ if (v & 1) != 0 {
++ ctxt.Diag("cannot use LARL with odd offset: %v", v)
++ }
++ } else {
++ addrilreloc(ctxt, p.From.Sym, int64(v))
++ v = 0
++ }
++ RIL(b, OP_LARL, uint32(p.To.Reg), uint32(v>>1), asm)
++
++ case 86: /* lay?: load address */
++ v := vregoff(ctxt, &p.From)
++ switch p.As {
++ case ALA:
++ RX(OP_LA, uint32(p.To.Reg), uint32(p.From.Reg), 0, uint32(v), asm)
++ case ALAY:
++ RXY(0, OP_LAY, uint32(p.To.Reg), uint32(p.From.Reg), 0, uint32(v), asm)
++ }
++
++ case 87: /* exrl: execute relative long */
++ v := vregoff(ctxt, &p.From)
++ if p.From.Sym == nil {
++ if v&1 != 0 {
++ ctxt.Diag("cannot use EXRL with odd offset: %v", v)
++ }
++ } else {
++ addrilreloc(ctxt, p.From.Sym, int64(v))
++ v = 0
++ }
++ RIL(b, OP_EXRL, uint32(p.To.Reg), uint32(v>>1), asm)
++
++ case 88: /* stck[cef]?: store clock (comparator/extended/fast) */
++ var opcode uint32
++ switch p.As {
++ case ASTCK:
++ opcode = OP_STCK
++ case ASTCKC:
++ opcode = OP_STCKC
++ case ASTCKE:
++ opcode = OP_STCKE
++ case ASTCKF:
++ opcode = OP_STCKF
++ }
++ v := vregoff(ctxt, &p.To)
++ r := int(p.To.Reg)
++ if r == 0 {
++ r = int(o.param)
++ }
++ S(opcode, uint32(r), uint32(v), asm)
++
++ case 89:
++ if p.Pcond == nil {
++ ctxt.Diag("no branch target")
++ break
++ }
++ v := int32((p.Pcond.Pc - p.Pc) >> 1)
++ var opcode, opcode2 uint32
++ switch p.As {
++ case ACMPBEQ, ACMPBGE, ACMPBGT, ACMPBLE, ACMPBLT, ACMPBNE:
++ opcode = OP_CGRJ
++ opcode2 = OP_CGR
++ case ACMPUBEQ, ACMPUBGE, ACMPUBGT, ACMPUBLE, ACMPUBLT, ACMPUBNE:
++ opcode = OP_CLGRJ
++ opcode2 = OP_CLGR
++ }
++ mask := branchMask(ctxt, p)
++ if int32(int16(v)) != v {
++ RRE(opcode2, uint32(p.From.Reg), uint32(p.Reg), asm)
++ RIL(c, OP_BRCL, uint32(mask), uint32(v-FORMAT_RRE_size/2), asm)
++ } else {
++ RIE(b, opcode, uint32(p.From.Reg), uint32(p.Reg), uint32(v), 0, 0, mask, 0, asm)
++ }
++
++ case 90:
++ if p.Pcond == nil {
++ ctxt.Diag("no branch target")
++ break
++ }
++ var opcode, opcode2 uint32
++ switch p.As {
++ case ACMPBEQ, ACMPBGE, ACMPBGT, ACMPBLE, ACMPBLT, ACMPBNE:
++ opcode = OP_CGIJ
++ opcode2 = OP_CGFI
++ case ACMPUBEQ, ACMPUBGE, ACMPUBGT, ACMPUBLE, ACMPUBLT, ACMPUBNE:
++ opcode = OP_CLGIJ
++ opcode2 = OP_CLGFI
++ }
++ v := int32((p.Pcond.Pc - p.Pc) >> 1)
++ mask := branchMask(ctxt, p)
++ if int32(int16(v)) != v {
++ RIL(0, opcode2, uint32(p.From.Reg), uint32(int32(regoff(ctxt, p.From3))), asm)
++ RIL(c, OP_BRCL, mask, uint32(v-FORMAT_RIL_size/2), asm)
++ } else {
++ RIE(c, opcode, uint32(p.From.Reg), mask, uint32(v), 0, 0, 0, uint32(int32(regoff(ctxt, p.From3))), asm)
++ }
++
++ case 92:
++ var opcode uint32
++ switch p.As {
++ case AMOVD:
++ opcode = OP_MVGHI
++ case AMOVW, AMOVWZ:
++ opcode = OP_MVHI
++ case AMOVH, AMOVHZ:
++ opcode = OP_MVHHI
++ case AMOVB, AMOVBZ:
++ opcode = OP_MVI
++ }
++ v := regoff(ctxt, &p.From)
++ d := regoff(ctxt, &p.To)
++ if opcode == OP_MVI {
++ SI(opcode, uint32(v), uint32(p.To.Reg), uint32(d), asm)
++ } else {
++ SIL(opcode, uint32(p.To.Reg), uint32(d), uint32(v), asm)
++ }
++
++ }
++}
++
++func vregoff(ctxt *obj.Link, a *obj.Addr) int64 {
++ ctxt.Instoffset = 0
++ if a != nil {
++ aclass(ctxt, a)
++ }
++ return ctxt.Instoffset
++}
++
++func regoff(ctxt *obj.Link, a *obj.Addr) int32 {
++ return int32(vregoff(ctxt, a))
++}
++
++/*
++ * load o(a), d
++ */
++func zopload(ctxt *obj.Link, a int) uint32 {
++ switch a {
++ /* fixed point load */
++ case AMOVD:
++ return uint32(OP_LG)
++ case AMOVW:
++ return uint32(OP_LGF)
++ case AMOVWZ:
++ return uint32(OP_LLGF)
++ case AMOVH:
++ return uint32(OP_LGH)
++ case AMOVHZ:
++ return uint32(OP_LLGH)
++ case AMOVB:
++ return uint32(OP_LGB)
++ case AMOVBZ:
++ return uint32(OP_LLGC)
++
++ /* floating pointer load*/
++ case AFMOVD:
++ return uint32(OP_LDY)
++ case AFMOVS:
++ return uint32(OP_LEY)
++
++ /* byte reversed load*/
++ case AMOVWBR:
++ return uint32(OP_LRV)
++ case AMOVHBR:
++ return uint32(OP_LRVH)
++ }
++
++ ctxt.Diag("unknown store opcode %v", obj.Aconv(a))
++ return 0
++}
++
++/*
++ * store s,o(d)
++ */
++func zopstore(ctxt *obj.Link, a int) uint32 {
++ switch a {
++ /* fixed point store */
++ case AMOVD:
++ return uint32(OP_STG)
++ case AMOVW, AMOVWZ:
++ return uint32(OP_STY)
++ case AMOVH, AMOVHZ:
++ return uint32(OP_STHY)
++ case AMOVB, AMOVBZ:
++ return uint32(OP_STCY)
++
++ /* floating point store */
++ case AFMOVD:
++ return uint32(OP_STDY)
++ case AFMOVS:
++ return uint32(OP_STEY)
++
++ /* byte reversed store */
++ case AMOVWBR:
++ return uint32(OP_STRV)
++ case AMOVHBR:
++ return uint32(OP_STRVH)
++ }
++
++ ctxt.Diag("unknown store opcode %v", obj.Aconv(a))
++ return 0
++}
++
++func zoprre(ctxt *obj.Link, a int) uint32 {
++ switch a {
++ case ACMP:
++ return uint32(OP_CGR)
++ case ACMPU:
++ return uint32(OP_CLGR)
++ case AFCMPO: //ordered
++ return uint32(OP_KDBR)
++ case AFCMPU: //unordered
++ return uint32(OP_CDBR)
++ case ACEBR:
++ return uint32(OP_CEBR)
++ }
++ ctxt.Diag("unknown rre opcode %v", obj.Aconv(a))
++ return 0
++}
++
++func zoprr(ctxt *obj.Link, a int) uint32 {
++ switch a {
++ case ACMPW:
++ return uint32(OP_CR)
++ case ACMPWU:
++ return uint32(OP_CLR)
++ }
++ ctxt.Diag("unknown rr opcode %v", obj.Aconv(a))
++ return 0
++}
++
++func zopril(ctxt *obj.Link, a int) uint32 {
++ switch a {
++ case ACMP:
++ return uint32(OP_CGFI)
++ case ACMPU:
++ return uint32(OP_CLGFI)
++ case ACMPW:
++ return uint32(OP_CFI)
++ case ACMPWU:
++ return uint32(OP_CLFI)
++ }
++ ctxt.Diag("unknown ril opcode %v", obj.Aconv(a))
++ return 0
++}
++
++// z instructions sizes.
++const (
++ FORMAT_E_size = 2
++ FORMAT_I_size = 2
++ FORMAT_IE_size = 4
++ FORMAT_MII_size = 6
++ FORMAT_RI_size = 4
++ FORMAT_RI1_size = 4
++ FORMAT_RI2_size = 4
++ FORMAT_RI3_size = 4
++ FORMAT_RIE_size = 6
++ FORMAT_RIE1_size = 6
++ FORMAT_RIE2_size = 6
++ FORMAT_RIE3_size = 6
++ FORMAT_RIE4_size = 6
++ FORMAT_RIE5_size = 6
++ FORMAT_RIE6_size = 6
++ FORMAT_RIL_size = 6
++ FORMAT_RIL1_size = 6
++ FORMAT_RIL2_size = 6
++ FORMAT_RIL3_size = 6
++ FORMAT_RIS_size = 6
++ FORMAT_RR_size = 2
++ FORMAT_RRD_size = 4
++ FORMAT_RRE_size = 4
++ FORMAT_RRF_size = 4
++ FORMAT_RRF1_size = 4
++ FORMAT_RRF2_size = 4
++ FORMAT_RRF3_size = 4
++ FORMAT_RRF4_size = 4
++ FORMAT_RRF5_size = 4
++ FORMAT_RRR_size = 2
++ FORMAT_RRS_size = 6
++ FORMAT_RS_size = 4
++ FORMAT_RS1_size = 4
++ FORMAT_RS2_size = 4
++ FORMAT_RSI_size = 4
++ FORMAT_RSL_size = 6
++ FORMAT_RSY_size = 6
++ FORMAT_RSY1_size = 6
++ FORMAT_RSY2_size = 6
++ FORMAT_RX_size = 4
++ FORMAT_RX1_size = 4
++ FORMAT_RX2_size = 4
++ FORMAT_RXE_size = 6
++ FORMAT_RXF_size = 6
++ FORMAT_RXY_size = 6
++ FORMAT_RXY1_size = 6
++ FORMAT_RXY2_size = 6
++ FORMAT_S_size = 4
++ FORMAT_SI_size = 4
++ FORMAT_SIL_size = 6
++ FORMAT_SIY_size = 6
++ FORMAT_SMI_size = 6
++ FORMAT_SS_size = 6
++ FORMAT_SS1_size = 6
++ FORMAT_SS2_size = 6
++ FORMAT_SS3_size = 6
++ FORMAT_SS4_size = 6
++ FORMAT_SS5_size = 6
++ FORMAT_SS6_size = 6
++ FORMAT_SSE_size = 6
++ FORMAT_SSF_size = 6
++)
++
++// instruction format variations.
++const (
++ a = iota
++ b
++ c
++ d
++ e
++ f
++ g
++)
++
++func E(op uint32, asm *[]byte) {
++ *asm = append(*asm, uint8(op>>8), uint8(op))
++}
++
++func I(op, i1 uint32, asm *[]byte) {
++ *asm = append(*asm, uint8(op>>8), uint8(i1))
++}
++
++func MII(op, m1, ri2, ri3 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(m1)<<4)|uint8((ri2>>8)&0x0F),
++ uint8(ri2),
++ uint8(ri3>>16),
++ uint8(ri3>>8),
++ uint8(ri3))
++}
++
++func RI(op, r1_m1, i2_ri2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1_m1)<<4)|(uint8(op)&0x0F),
++ uint8(i2_ri2>>8),
++ uint8(i2_ri2))
++}
++
++// Expected argument values for the instruction formats.
++//
++// Format a1 a2 a3 a4 a5 a6 a7
++// ------------------------------------
++// a r1, 0, i2, 0, 0, m3, 0
++// b r1, r2, ri4, 0, 0, m3, 0
++// c r1, m3, ri4, 0, 0, 0, i2
++// d r1, r3, i2, 0, 0, 0, 0
++// e r1, r3, ri2, 0, 0, 0, 0
++// f r1, r2, 0, i3, i4, 0, i5
++// g r1, m3, i2, 0, 0, 0, 0
++func RIE(type_, op, r1, r2_m3_r3, i2_ri4_ri2, i3, i4, m3, i2_i5 uint32, asm *[]byte) {
++ *asm = append(*asm, uint8(op>>8), uint8(r1)<<4|uint8(r2_m3_r3&0x0F))
++
++ switch type_ {
++ default:
++ *asm = append(*asm, uint8(i2_ri4_ri2>>8), uint8(i2_ri4_ri2))
++ case f:
++ *asm = append(*asm, uint8(i3), uint8(i4))
++ }
++
++ switch type_ {
++ case a, b:
++ *asm = append(*asm, uint8(m3)<<4)
++ default:
++ *asm = append(*asm, uint8(i2_i5))
++ }
++
++ *asm = append(*asm, uint8(op))
++}
++
++func RIL(type_, op, r1_m1, i2_ri2 uint32, asm *[]byte) {
++ if type_ == a || type_ == b {
++ r1_m1 = r1_m1 - obj.RBaseS390X // this is a register base
++ }
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1_m1)<<4)|(uint8(op)&0x0F),
++ uint8(i2_ri2>>24),
++ uint8(i2_ri2>>16),
++ uint8(i2_ri2>>8),
++ uint8(i2_ri2))
++}
++
++func RIS(op, r1, m3, b4, d4, i2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1)<<4)|uint8(m3&0x0F),
++ (uint8(b4)<<4)|(uint8(d4>>8)&0x0F),
++ uint8(d4),
++ uint8(i2),
++ uint8(op))
++}
++
++func RR(op, r1, r2 uint32, asm *[]byte) {
++ *asm = append(*asm, uint8(op>>8), (uint8(r1)<<4)|uint8(r2&0x0F))
++}
++
++func RRD(op, r1, r3, r2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(op),
++ uint8(r1)<<4,
++ (uint8(r3)<<4)|uint8(r2&0x0F))
++}
++
++func RRE(op, r1, r2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(op),
++ 0,
++ (uint8(r1)<<4)|uint8(r2&0x0F))
++}
++
++func RRF(op, r3_m3, m4, r1, r2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(op),
++ (uint8(r3_m3)<<4)|uint8(m4&0x0F),
++ (uint8(r1)<<4)|uint8(r2&0x0F))
++}
++
++func RRS(op, r1, r2, b4, d4, m3 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1)<<4)|uint8(r2&0x0F),
++ (uint8(b4)<<4)|uint8((d4>>8)&0x0F),
++ uint8(d4),
++ uint8(m3)<<4,
++ uint8(op))
++}
++
++func RS(op, r1, r3_m3, b2, d2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1)<<4)|uint8(r3_m3&0x0F),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2))
++}
++
++func RSI(op, r1, r3, ri2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1)<<4)|uint8(r3&0x0F),
++ uint8(ri2>>8),
++ uint8(ri2))
++}
++
++func RSL(type_, op, l1, b2, d2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(l1),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2),
++ uint8(op))
++}
++
++// (20b) d2 with (12b) dl2 and (8b) dh2.
++func RSY(op, r1, r3_m3, b2, d2 uint32, asm *[]byte) {
++ dl2 := uint16(d2) & 0x0FFF
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1)<<4)|uint8(r3_m3&0x0F),
++ (uint8(b2)<<4)|(uint8(dl2>>8)&0x0F),
++ uint8(dl2),
++ uint8(d2>>12),
++ uint8(op))
++}
++
++func RX(op, r1_m1, x2, b2, d2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1_m1)<<4)|uint8(x2&0x0F),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2))
++}
++
++func RXE(op, r1, x2, b2, d2, m3 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1)<<4)|uint8(x2&0x0F),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2),
++ uint8(m3)<<4,
++ uint8(op))
++}
++
++func RXF(op, r3, x2, b2, d2, m1 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r3)<<4)|uint8(x2&0x0F),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2),
++ uint8(m1)<<4,
++ uint8(op))
++}
++
++func RXY(type_, op, r1_m1, x2, b2, d2 uint32, asm *[]byte) {
++ dl2 := uint16(d2) & 0x0FFF
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r1_m1)<<4)|uint8(x2&0x0F),
++ (uint8(b2)<<4)|(uint8(dl2>>8)&0x0F),
++ uint8(dl2),
++ uint8(d2>>12),
++ uint8(op))
++}
++
++func S(op, b2, d2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(op),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2))
++}
++
++func SI(op, i2, b1, d1 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(i2),
++ (uint8(b1)<<4)|uint8((d1>>8)&0x0F),
++ uint8(d1))
++}
++
++func SIL(op, b1, d1, i2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(op),
++ (uint8(b1)<<4)|uint8((d1>>8)&0x0F),
++ uint8(d1),
++ uint8(i2>>8),
++ uint8(i2))
++}
++
++func SIY(op, i2, b1, d1 uint32, asm *[]byte) {
++ dl1 := uint16(d1) & 0x0FFF
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(i2),
++ (uint8(b1)<<4)|(uint8(dl1>>8)&0x0F),
++ uint8(dl1),
++ uint8(d1>>12),
++ uint8(op))
++}
++
++func SMI(op, m1, b3, d3, ri2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(m1)<<4,
++ (uint8(b3)<<4)|uint8((d3>>8)&0x0F),
++ uint8(d3),
++ uint8(ri2>>8),
++ uint8(ri2))
++}
++
++// Expected argument values for the instruction formats.
++//
++// Format a1 a2 a3 a4 a5 a6
++// -------------------------------
++// a l1, 0, b1, d1, b2, d2
++// b l1, l2, b1, d1, b2, d2
++// c l1, i3, b1, d1, b2, d2
++// d r1, r3, b1, d1, b2, d2
++// e r1, r3, b2, d2, b4, d4
++// f 0, l2, b1, d1, b2, d2
++func SS(type_, op, l1_r1, l2_i3_r3, b1_b2, d1_d2, b2_b4, d2_d4 uint32, asm *[]byte) {
++ *asm = append(*asm, uint8(op>>8))
++
++ switch type_ {
++ case a:
++ *asm = append(*asm, uint8(l1_r1))
++ case b, c, d, e:
++ *asm = append(*asm, (uint8(l1_r1)<<4)|uint8(l2_i3_r3&0x0F))
++ case f:
++ *asm = append(*asm, uint8(l2_i3_r3))
++ }
++
++ *asm = append(*asm,
++ (uint8(b1_b2)<<4)|uint8((d1_d2>>8)&0x0F),
++ uint8(d1_d2),
++ (uint8(b2_b4)<<4)|uint8((d2_d4>>8)&0x0F),
++ uint8(d2_d4))
++}
++
++func SSE(op, b1, d1, b2, d2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ uint8(op),
++ (uint8(b1)<<4)|uint8((d1>>8)&0x0F),
++ uint8(d1),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2))
++}
++
++func SSF(op, r3, b1, d1, b2, d2 uint32, asm *[]byte) {
++ *asm = append(*asm,
++ uint8(op>>8),
++ (uint8(r3)<<4)|(uint8(op)&0x0F),
++ (uint8(b1)<<4)|uint8((d1>>8)&0x0F),
++ uint8(d1),
++ (uint8(b2)<<4)|uint8((d2>>8)&0x0F),
++ uint8(d2))
++}
+diff --git a/src/cmd/internal/obj/s390x/listz.go b/src/cmd/internal/obj/s390x/listz.go
+new file mode 100644
+index 0000000..8834deb
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/listz.go
+@@ -0,0 +1,70 @@
++// Based on cmd/internal/obj/ppc64/list9.go.
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/internal/obj"
++ "fmt"
++)
++
++func init() {
++ obj.RegisterRegister(obj.RBaseS390X, REG_RESERVED+1024, Rconv)
++ obj.RegisterOpcode(obj.ABaseS390X, Anames)
++}
++
++func Rconv(r int) string {
++ if r == 0 {
++ return "NONE"
++ }
++ if r == REGG {
++ // Special case.
++ return "g"
++ }
++ if REG_R0 <= r && r <= REG_R15 {
++ return fmt.Sprintf("R%d", r-REG_R0)
++ }
++ if REG_F0 <= r && r <= REG_F15 {
++ return fmt.Sprintf("F%d", r-REG_F0)
++ }
++ if REG_AR0 <= r && r <= REG_AR15 {
++ return fmt.Sprintf("AR%d", r-REG_AR0)
++ }
++ return fmt.Sprintf("Rgok(%d)", r-obj.RBaseS390X)
++}
++
++func DRconv(a int) string {
++ s := "C_??"
++ if a >= C_NONE && a <= C_NCLASS {
++ s = cnamesz[a]
++ }
++ var fp string
++ fp += s
++ return fp
++}
+diff --git a/src/cmd/internal/obj/s390x/objz.go b/src/cmd/internal/obj/s390x/objz.go
+new file mode 100644
+index 0000000..cf72382
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/objz.go
+@@ -0,0 +1,873 @@
++// Based on cmd/internal/obj/ppc64/obj9.go.
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/internal/obj"
++ "encoding/binary"
++ "fmt"
++ "math"
++)
++
++func progedit(ctxt *obj.Link, p *obj.Prog) {
++ p.From.Class = 0
++ p.To.Class = 0
++
++ // Rewrite BR/BL to symbol as TYPE_BRANCH.
++ switch p.As {
++ case ABR,
++ ABL,
++ obj.ARET,
++ obj.ADUFFZERO,
++ obj.ADUFFCOPY:
++ if p.To.Sym != nil {
++ p.To.Type = obj.TYPE_BRANCH
++ }
++ }
++
++ // Rewrite float constants to values stored in memory.
++ switch p.As {
++ case AFMOVS:
++ if p.From.Type == obj.TYPE_FCONST {
++ f32 := float32(p.From.Val.(float64))
++ i32 := math.Float32bits(f32)
++ literal := fmt.Sprintf("$f32.%08x", i32)
++ s := obj.Linklookup(ctxt, literal, 0)
++ s.Size = 4
++ p.From.Type = obj.TYPE_MEM
++ p.From.Sym = s
++ p.From.Name = obj.NAME_EXTERN
++ p.From.Offset = 0
++ }
++
++ case AFMOVD:
++ if p.From.Type == obj.TYPE_FCONST {
++ i64 := math.Float64bits(p.From.Val.(float64))
++ literal := fmt.Sprintf("$f64.%016x", i64)
++ s := obj.Linklookup(ctxt, literal, 0)
++ s.Size = 8
++ p.From.Type = obj.TYPE_MEM
++ p.From.Sym = s
++ p.From.Name = obj.NAME_EXTERN
++ p.From.Offset = 0
++ }
++
++ // Put >32-bit constants in memory and load them
++ case AMOVD:
++ if p.From.Type == obj.TYPE_CONST && p.From.Name == obj.NAME_NONE && p.From.Reg == 0 && int64(int32(p.From.Offset)) != p.From.Offset {
++ literal := fmt.Sprintf("$i64.%016x", uint64(p.From.Offset))
++ s := obj.Linklookup(ctxt, literal, 0)
++ s.Size = 8
++ p.From.Type = obj.TYPE_MEM
++ p.From.Sym = s
++ p.From.Name = obj.NAME_EXTERN
++ p.From.Offset = 0
++ }
++ }
++
++ // Rewrite SUB constants into ADD.
++ switch p.As {
++ case ASUBC:
++ if p.From.Type == obj.TYPE_CONST {
++ p.From.Offset = -p.From.Offset
++ p.As = AADDC
++ }
++
++ case ASUB:
++ if p.From.Type == obj.TYPE_CONST {
++ p.From.Offset = -p.From.Offset
++ p.As = AADD
++ }
++ }
++}
++
++func preprocess(ctxt *obj.Link, cursym *obj.LSym) {
++ // TODO(minux): add morestack short-cuts with small fixed frame-size.
++ ctxt.Cursym = cursym
++
++ if cursym.Text == nil || cursym.Text.Link == nil {
++ return
++ }
++
++ p := cursym.Text
++ textstksiz := p.To.Offset
++
++ cursym.Args = p.To.Val.(int32)
++ cursym.Locals = int32(textstksiz)
++
++ /*
++ * find leaf subroutines
++ * strip NOPs
++ * expand RET
++ * expand BECOME pseudo
++ */
++ if ctxt.Debugvlog != 0 {
++ fmt.Fprintf(ctxt.Bso, "%5.2f noops\n", obj.Cputime())
++ }
++ ctxt.Bso.Flush()
++
++ var q *obj.Prog
++ var q1 *obj.Prog
++ for p := cursym.Text; p != nil; p = p.Link {
++ switch p.As {
++ /* too hard, just leave alone */
++ case obj.ATEXT:
++ q = p
++
++ p.Mark |= LABEL | LEAF | SYNC
++ if p.Link != nil {
++ p.Link.Mark |= LABEL
++ }
++
++ case ANOR:
++ q = p
++ if p.To.Type == obj.TYPE_REG {
++ if p.To.Reg == REGZERO {
++ p.Mark |= LABEL | SYNC
++ }
++ }
++
++ case ASYNC,
++ AWORD:
++ q = p
++ p.Mark |= LABEL | SYNC
++ continue
++
++ case AMOVW, AMOVWZ, AMOVD:
++ q = p
++ if p.From.Reg >= REG_RESERVED || p.To.Reg >= REG_RESERVED {
++ p.Mark |= LABEL | SYNC
++ }
++ continue
++
++ case AFABS,
++ AFADD,
++ AFDIV,
++ AFMADD,
++ AFMOVD,
++ /* case AFMOVDS: */
++ AFMOVS,
++
++ /* case AFMOVSD: */
++ AFMSUB,
++ AFMUL,
++ AFNABS,
++ AFNEG,
++ AFNMADD,
++ AFNMSUB,
++ AFRSP,
++ AFSUB:
++ q = p
++
++ p.Mark |= FLOAT
++ continue
++
++ case ABL,
++ ABCL,
++ obj.ADUFFZERO,
++ obj.ADUFFCOPY:
++ cursym.Text.Mark &^= LEAF
++ fallthrough
++
++ case ABC,
++ ABEQ,
++ ABGE,
++ ABGT,
++ ABLE,
++ ABLT,
++ ABNE,
++ ABR,
++ ABVC,
++ ABVS,
++ ACMPBEQ,
++ ACMPBGE,
++ ACMPBGT,
++ ACMPBLE,
++ ACMPBLT,
++ ACMPBNE,
++ ACMPUBEQ,
++ ACMPUBGE,
++ ACMPUBGT,
++ ACMPUBLE,
++ ACMPUBLT,
++ ACMPUBNE:
++ p.Mark |= BRANCH
++ q = p
++ q1 = p.Pcond
++ if q1 != nil {
++ for q1.As == obj.ANOP {
++ q1 = q1.Link
++ p.Pcond = q1
++ }
++
++ if q1.Mark&LEAF == 0 {
++ q1.Mark |= LABEL
++ }
++ } else {
++ p.Mark |= LABEL
++ }
++ q1 = p.Link
++ if q1 != nil {
++ q1.Mark |= LABEL
++ }
++ continue
++
++ case AFCMPO, AFCMPU:
++ q = p
++ p.Mark |= FCMP | FLOAT
++ continue
++
++ case obj.ARET:
++ q = p
++ if p.Link != nil {
++ p.Link.Mark |= LABEL
++ }
++ continue
++
++ case obj.ANOP:
++ q1 = p.Link
++ q.Link = q1 /* q is non-nop */
++ q1.Mark |= p.Mark
++ continue
++
++ default:
++ q = p
++ continue
++ }
++ }
++
++ autosize := int32(0)
++ var o int
++ var p1 *obj.Prog
++ var p2 *obj.Prog
++ for p := cursym.Text; p != nil; p = p.Link {
++ o = int(p.As)
++ switch o {
++ case obj.ATEXT:
++ autosize = int32(textstksiz + 8)
++ if (p.Mark&LEAF != 0) && autosize <= 8 {
++ autosize = 0
++ } else if autosize&4 != 0 {
++ autosize += 4
++ }
++ p.To.Offset = int64(autosize) - 8
++ if p.From3.Offset&obj.NOSPLIT == 0 {
++ p = stacksplit(ctxt, p, autosize) // emit split check
++ }
++
++ q = p
++
++ if autosize != 0 {
++ q = obj.Appendp(ctxt, p)
++ q.As = AADD
++ q.From.Type = obj.TYPE_CONST
++ q.From.Offset = int64(-autosize)
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REGSP
++ q.Spadj = autosize
++ } else if cursym.Text.Mark&LEAF == 0 {
++ if ctxt.Debugvlog != 0 {
++ fmt.Fprintf(ctxt.Bso, "save suppressed in: %s\n", cursym.Name)
++ ctxt.Bso.Flush()
++ }
++ cursym.Text.Mark |= LEAF
++ }
++
++ if cursym.Text.Mark&LEAF != 0 {
++ cursym.Leaf = 1
++ break
++ }
++
++ q = obj.Appendp(ctxt, q)
++ q.As = AMOVD
++ q.From.Type = obj.TYPE_REG
++ q.From.Reg = REG_LR
++ q.To.Type = obj.TYPE_MEM
++ q.To.Reg = REGSP
++ q.To.Offset = 0
++
++ if cursym.Text.From3.Offset&obj.WRAPPER != 0 {
++ // if(g->panic != nil && g->panic->argp == FP) g->panic->argp = bottom-of-frame
++ //
++ // MOVD g_panic(g), R3
++ // CMP R0, R3
++ // BEQ end
++ // MOVD panic_argp(R3), R4
++ // ADD $(autosize+8), R1, R5
++ // CMP R4, R5
++ // BNE end
++ // ADD $8, R1, R6
++ // MOVD R6, panic_argp(R3)
++ // end:
++ // NOP
++ //
++ // The NOP is needed to give the jumps somewhere to land.
++ // It is a liblink NOP, not a s390x NOP: it encodes to 0 instruction bytes.
++
++ q = obj.Appendp(ctxt, q)
++
++ q.As = AMOVD
++ q.From.Type = obj.TYPE_MEM
++ q.From.Reg = REGG
++ q.From.Offset = 4 * int64(ctxt.Arch.Ptrsize) // G.panic
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_R3
++
++ q = obj.Appendp(ctxt, q)
++ q.As = ACMP
++ q.From.Type = obj.TYPE_REG
++ q.From.Reg = REG_R0
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_R3
++
++ q = obj.Appendp(ctxt, q)
++ q.As = ABEQ
++ q.To.Type = obj.TYPE_BRANCH
++ p1 = q
++
++ q = obj.Appendp(ctxt, q)
++ q.As = AMOVD
++ q.From.Type = obj.TYPE_MEM
++ q.From.Reg = REG_R3
++ q.From.Offset = 0 // Panic.argp
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_R4
++
++ q = obj.Appendp(ctxt, q)
++ q.As = AADD
++ q.From.Type = obj.TYPE_CONST
++ q.From.Offset = int64(autosize) + 8
++ q.Reg = REGSP
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_R5
++
++ q = obj.Appendp(ctxt, q)
++ q.As = ACMP
++ q.From.Type = obj.TYPE_REG
++ q.From.Reg = REG_R4
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_R5
++
++ q = obj.Appendp(ctxt, q)
++ q.As = ABNE
++ q.To.Type = obj.TYPE_BRANCH
++ p2 = q
++
++ q = obj.Appendp(ctxt, q)
++ q.As = AADD
++ q.From.Type = obj.TYPE_CONST
++ q.From.Offset = 8
++ q.Reg = REGSP
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_R6
++
++ q = obj.Appendp(ctxt, q)
++ q.As = AMOVD
++ q.From.Type = obj.TYPE_REG
++ q.From.Reg = REG_R6
++ q.To.Type = obj.TYPE_MEM
++ q.To.Reg = REG_R3
++ q.To.Offset = 0 // Panic.argp
++
++ q = obj.Appendp(ctxt, q)
++
++ q.As = obj.ANOP
++ p1.Pcond = q
++ p2.Pcond = q
++ }
++
++ case obj.ARET:
++ if p.From.Type == obj.TYPE_CONST {
++ ctxt.Diag("using BECOME (%v) is not supported!", p)
++ break
++ }
++
++ if p.To.Sym != nil { // retjmp
++ p.As = ABR
++ p.To.Type = obj.TYPE_BRANCH
++ break
++ }
++
++ if cursym.Text.Mark&LEAF != 0 {
++ if autosize == 0 {
++ p.As = ABR
++ p.From = obj.Addr{}
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_LR
++ p.Mark |= BRANCH
++ break
++ }
++ p.As = AADD
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = int64(autosize)
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REGSP
++ p.Spadj = -autosize
++
++ q = obj.Appendp(ctxt, p)
++ q.As = ABR
++ q.From = obj.Addr{}
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_LR
++ q.Mark |= BRANCH
++ q.Spadj = autosize
++ break
++ }
++
++ p.As = AMOVD
++ p.From.Type = obj.TYPE_MEM
++ p.From.Reg = REGSP
++ p.From.Offset = 0
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_LR
++
++ q = p
++
++ if autosize != 0 {
++ q = obj.Appendp(ctxt, q)
++ q.As = AADD
++ q.From.Type = obj.TYPE_CONST
++ q.From.Offset = int64(autosize)
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REGSP
++ q.Spadj = -autosize
++ }
++
++ q = obj.Appendp(ctxt, q)
++ q.As = ABR
++ q.From = obj.Addr{}
++ q.To.Type = obj.TYPE_REG
++ q.To.Reg = REG_LR
++ q.Mark |= BRANCH
++ q.Spadj = autosize
++
++ case AADD:
++ if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.From.Type == obj.TYPE_CONST {
++ p.Spadj = int32(-p.From.Offset)
++ }
++ }
++ }
++}
++
++/*
++// instruction scheduling
++ if(debug['Q'] == 0)
++ return;
++
++ curtext = nil;
++ q = nil; // p - 1
++ q1 = firstp; // top of block
++ o = 0; // count of instructions
++ for(p = firstp; p != nil; p = p1) {
++ p1 = p->link;
++ o++;
++ if(p->mark & NOSCHED){
++ if(q1 != p){
++ sched(q1, q);
++ }
++ for(; p != nil; p = p->link){
++ if(!(p->mark & NOSCHED))
++ break;
++ q = p;
++ }
++ p1 = p;
++ q1 = p;
++ o = 0;
++ continue;
++ }
++ if(p->mark & (LABEL|SYNC)) {
++ if(q1 != p)
++ sched(q1, q);
++ q1 = p;
++ o = 1;
++ }
++ if(p->mark & (BRANCH|SYNC)) {
++ sched(q1, p);
++ q1 = p1;
++ o = 0;
++ }
++ if(o >= NSCHED) {
++ sched(q1, p);
++ q1 = p1;
++ o = 0;
++ }
++ q = p;
++ }
++*/
++func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32) *obj.Prog {
++ // MOVD g_stackguard(g), R3
++ p = obj.Appendp(ctxt, p)
++
++ p.As = AMOVD
++ p.From.Type = obj.TYPE_MEM
++ p.From.Reg = REGG
++ p.From.Offset = 2 * int64(ctxt.Arch.Ptrsize) // G.stackguard0
++ if ctxt.Cursym.Cfunc != 0 {
++ p.From.Offset = 3 * int64(ctxt.Arch.Ptrsize) // G.stackguard1
++ }
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R3
++
++ var q *obj.Prog
++ if framesize <= obj.StackSmall {
++ // small stack: SP < stackguard
++ // CMP stackguard, SP
++ p = obj.Appendp(ctxt, p)
++
++ p.As = ACMPU
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = REG_R3
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REGSP
++ } else if framesize <= obj.StackBig {
++ // large stack: SP-framesize < stackguard-StackSmall
++ // ADD $-framesize, SP, R4
++ // CMP stackguard, R4
++ p = obj.Appendp(ctxt, p)
++
++ p.As = AADD
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = int64(-framesize)
++ p.Reg = REGSP
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R4
++
++ p = obj.Appendp(ctxt, p)
++ p.As = ACMPU
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = REG_R3
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R4
++ } else {
++ // Such a large stack we need to protect against wraparound.
++ // If SP is close to zero:
++ // SP-stackguard+StackGuard <= framesize + (StackGuard-StackSmall)
++ // The +StackGuard on both sides is required to keep the left side positive:
++ // SP is allowed to be slightly below stackguard. See stack.h.
++ //
++ // Preemption sets stackguard to StackPreempt, a very large value.
++ // That breaks the math above, so we have to check for that explicitly.
++ // // stackguard is R3
++ // CMP R3, $StackPreempt
++ // BEQ label-of-call-to-morestack
++ // ADD $StackGuard, SP, R4
++ // SUB R3, R4
++ // MOVD $(framesize+(StackGuard-StackSmall)), R31
++ // CMPU R31, R4
++ p = obj.Appendp(ctxt, p)
++
++ p.As = ACMP
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = REG_R3
++ p.To.Type = obj.TYPE_CONST
++ p.To.Offset = obj.StackPreempt
++
++ p = obj.Appendp(ctxt, p)
++ q = p
++ p.As = ABEQ
++ p.To.Type = obj.TYPE_BRANCH
++
++ p = obj.Appendp(ctxt, p)
++ p.As = AADD
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = obj.StackGuard
++ p.Reg = REGSP
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R4
++
++ p = obj.Appendp(ctxt, p)
++ p.As = ASUB
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = REG_R3
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R4
++
++ p = obj.Appendp(ctxt, p)
++ p.As = AMOVD
++ p.From.Type = obj.TYPE_CONST
++ p.From.Offset = int64(framesize) + obj.StackGuard - obj.StackSmall
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REGTMP
++
++ p = obj.Appendp(ctxt, p)
++ p.As = ACMPU
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = REGTMP
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R4
++ }
++
++ // q1: BLT done
++ p = obj.Appendp(ctxt, p)
++ q1 := p
++
++ p.As = ABLT
++ p.To.Type = obj.TYPE_BRANCH
++
++ // MOVD LR, R5
++ p = obj.Appendp(ctxt, p)
++
++ p.As = AMOVD
++ p.From.Type = obj.TYPE_REG
++ p.From.Reg = REG_LR
++ p.To.Type = obj.TYPE_REG
++ p.To.Reg = REG_R5
++ if q != nil {
++ q.Pcond = p
++ }
++
++ // BL runtime.morestack(SB)
++ p = obj.Appendp(ctxt, p)
++
++ p.As = ABL
++ p.To.Type = obj.TYPE_BRANCH
++ if ctxt.Cursym.Cfunc != 0 {
++ p.To.Sym = obj.Linklookup(ctxt, "runtime.morestackc", 0)
++ } else if ctxt.Cursym.Text.From3.Offset&obj.NEEDCTXT == 0 {
++ p.To.Sym = obj.Linklookup(ctxt, "runtime.morestack_noctxt", 0)
++ } else {
++ p.To.Sym = obj.Linklookup(ctxt, "runtime.morestack", 0)
++ }
++
++ // BR start
++ p = obj.Appendp(ctxt, p)
++
++ p.As = ABR
++ p.To.Type = obj.TYPE_BRANCH
++ p.Pcond = ctxt.Cursym.Text.Link
++
++ // placeholder for q1's jump target
++ p = obj.Appendp(ctxt, p)
++
++ p.As = obj.ANOP // zero-width place holder
++ q1.Pcond = p
++
++ return p
++}
++
++var pc_cnt int64
++
++func follow(ctxt *obj.Link, s *obj.LSym) {
++ ctxt.Cursym = s
++
++ pc_cnt = 0
++ firstp := ctxt.NewProg()
++ lastp := firstp
++ xfol(ctxt, s.Text, &lastp)
++ lastp.Link = nil
++ s.Text = firstp.Link
++}
++
++func relinv(a int) int {
++ switch a {
++ case ABEQ:
++ return ABNE
++ case ABNE:
++ return ABEQ
++
++ case ABGE:
++ return ABLT
++ case ABLT:
++ return ABGE
++
++ case ABGT:
++ return ABLE
++ case ABLE:
++ return ABGT
++
++ case ABVC:
++ return ABVS
++ case ABVS:
++ return ABVC
++ }
++
++ return 0
++}
++
++func xfol(ctxt *obj.Link, p *obj.Prog, last **obj.Prog) {
++ var q *obj.Prog
++ var r *obj.Prog
++ var a int
++ var b int
++ var i int
++
++loop:
++ if p == nil {
++ return
++ }
++ a = int(p.As)
++ if a == ABR {
++ q = p.Pcond
++ if (p.Mark&NOSCHED != 0) || q != nil && (q.Mark&NOSCHED != 0) {
++ p.Mark |= FOLL
++ (*last).Link = p
++ *last = p
++ (*last).Pc = pc_cnt
++ pc_cnt += 1
++ p = p.Link
++ xfol(ctxt, p, last)
++ p = q
++ if p != nil && p.Mark&FOLL == 0 {
++ goto loop
++ }
++ return
++ }
++
++ if q != nil {
++ p.Mark |= FOLL
++ p = q
++ if p.Mark&FOLL == 0 {
++ goto loop
++ }
++ }
++ }
++
++ if p.Mark&FOLL != 0 {
++ i = 0
++ q = p
++ for ; i < 4; i, q = i+1, q.Link {
++ if q == *last || (q.Mark&NOSCHED != 0) {
++ break
++ }
++ b = 0 /* set */
++ a = int(q.As)
++ if a == obj.ANOP {
++ i--
++ continue
++ }
++
++ if a == ABR || a == obj.ARET {
++ goto copy
++ }
++ if q.Pcond == nil || (q.Pcond.Mark&FOLL != 0) {
++ continue
++ }
++ b = relinv(a)
++ if b == 0 {
++ continue
++ }
++
++ copy:
++ for {
++ r = ctxt.NewProg()
++ *r = *p
++ if r.Mark&FOLL == 0 {
++ fmt.Printf("cant happen 1\n")
++ }
++ r.Mark |= FOLL
++ if p != q {
++ p = p.Link
++ (*last).Link = r
++ *last = r
++ (*last).Pc = pc_cnt
++ pc_cnt += 1
++ continue
++ }
++
++ (*last).Link = r
++ *last = r
++ (*last).Pc = pc_cnt
++ pc_cnt += 1
++ if a == ABR || a == obj.ARET {
++ return
++ }
++ r.As = int16(b)
++ r.Pcond = p.Link
++ r.Link = p.Pcond
++ if r.Link.Mark&FOLL == 0 {
++ xfol(ctxt, r.Link, last)
++ }
++ if r.Pcond.Mark&FOLL == 0 {
++ fmt.Printf("cant happen 2\n")
++ }
++ return
++ }
++ }
++
++ a = ABR
++ q = ctxt.NewProg()
++ q.As = int16(a)
++ q.Lineno = p.Lineno
++ q.To.Type = obj.TYPE_BRANCH
++ q.To.Offset = p.Pc
++ q.Pcond = p
++ p = q
++ }
++
++ p.Mark |= FOLL
++ (*last).Link = p
++ *last = p
++ (*last).Pc = pc_cnt
++ pc_cnt += 1
++
++ if a == ABR || a == obj.ARET {
++ if p.Mark&NOSCHED != 0 {
++ p = p.Link
++ goto loop
++ }
++
++ return
++ }
++
++ if p.Pcond != nil {
++ if a != ABL && p.Link != nil {
++ xfol(ctxt, p.Link, last)
++ p = p.Pcond
++ if p == nil || (p.Mark&FOLL != 0) {
++ return
++ }
++ goto loop
++ }
++ }
++
++ p = p.Link
++ goto loop
++}
++
++var unaryDst = map[int]bool{
++ ASTCK: true,
++ ASTCKC: true,
++ ASTCKE: true,
++ ASTCKF: true,
++}
++
++var Links390x = obj.LinkArch{
++ ByteOrder: binary.BigEndian,
++ Name: "s390x",
++ Thechar: 'z',
++ Preprocess: preprocess,
++ Assemble: spanz,
++ Follow: follow,
++ Progedit: progedit,
++ UnaryDst: unaryDst,
++ Minlc: 2,
++ Ptrsize: 8,
++ Regsize: 8,
++}
+diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go
+index 1a97429..3b056ca 100644
+--- a/src/cmd/internal/obj/util.go
++++ b/src/cmd/internal/obj/util.go
+@@ -530,6 +530,7 @@ const (
+ RBasePPC64 = 4 * 1024 // range [4k, 8k)
+ RBaseARM64 = 8 * 1024 // range [8k, 13k)
+ RBaseMIPS64 = 13 * 1024 // range [13k, 16k)
++ RBaseS390X = 17 * 1024 // TODO(mundaym): 16 * 1024 doesn't work, conflict with MIPS?
+ )
+
+ // RegisterRegister binds a pretty-printer (Rconv) for register
+@@ -590,6 +591,7 @@ const (
+ ABasePPC64
+ ABaseARM64
+ ABaseMIPS64
++ ABaseS390X
+ AMask = 1<<12 - 1 // AND with this to use the opcode as an array index.
+ )
+
+diff --git a/src/cmd/internal/objfile/disasm.go b/src/cmd/internal/objfile/disasm.go
+index 6495dfb..741f4ed 100644
+--- a/src/cmd/internal/objfile/disasm.go
++++ b/src/cmd/internal/objfile/disasm.go
+@@ -245,4 +245,5 @@ var byteOrders = map[string]binary.ByteOrder{
+ "arm": binary.LittleEndian,
+ "ppc64": binary.BigEndian,
+ "ppc64le": binary.LittleEndian,
++ "s390x": binary.BigEndian,
+ }
+diff --git a/src/cmd/internal/objfile/elf.go b/src/cmd/internal/objfile/elf.go
+index 305706d..a198eb9 100644
+--- a/src/cmd/internal/objfile/elf.go
++++ b/src/cmd/internal/objfile/elf.go
+@@ -99,6 +99,8 @@ func (f *elfFile) goarch() string {
+ return "arm"
+ case elf.EM_PPC64:
+ return "ppc64"
++ case elf.EM_S390:
++ return "s390x"
+ }
+ return ""
+ }
+diff --git a/src/cmd/link/internal/ld/arch.go b/src/cmd/link/internal/ld/arch.go
+index 2fcfd63..41a6d5a 100644
+--- a/src/cmd/link/internal/ld/arch.go
++++ b/src/cmd/link/internal/ld/arch.go
+@@ -86,3 +86,12 @@ var Linkmips64le = LinkArch{
+ Ptrsize: 8,
+ Regsize: 8,
+ }
++
++var Links390x = LinkArch{
++ ByteOrder: binary.BigEndian,
++ Name: "s390x",
++ Thechar: 'z',
++ Minlc: 2,
++ Ptrsize: 8,
++ Regsize: 8,
++}
+diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go
+index ca8eabb..bf96661 100644
+--- a/src/cmd/link/internal/ld/data.go
++++ b/src/cmd/link/internal/ld/data.go
+@@ -148,6 +148,9 @@ func Addpcrelplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
+ r.Add = add
+ r.Type = obj.R_PCREL
+ r.Siz = 4
++ if Thearch.Thechar == 'z' {
++ r.Variant = RV_390_DBL
++ }
+ return i + int64(r.Siz)
+ }
+
+@@ -320,7 +323,6 @@ func relocsym(s *LSym) {
+ var rs *LSym
+ var i16 int16
+ var off int32
+- var siz int32
+ var fl int32
+ var o int64
+
+@@ -329,12 +331,10 @@ func relocsym(s *LSym) {
+ r = &s.R[ri]
+ r.Done = 1
+ off = r.Off
+- siz = int32(r.Siz)
+- if off < 0 || off+siz > int32(len(s.P)) {
+- Diag("%s: invalid relocation %d+%d not in [%d,%d)", s.Name, off, siz, 0, len(s.P))
++ if off < 0 || off+int32(r.Siz) > int32(len(s.P)) {
++ Diag("%s: invalid relocation %d+%d not in [%d,%d)", s.Name, off, int32(r.Siz), 0, len(s.P))
+ continue
+ }
+-
+ if r.Sym != nil && (r.Sym.Type&(obj.SMASK|obj.SHIDDEN) == 0 || r.Sym.Type&obj.SMASK == obj.SXREF) {
+ // When putting the runtime but not main into a shared library
+ // these symbols are undefined and that's OK.
+@@ -364,11 +364,23 @@ func relocsym(s *LSym) {
+ Diag("unreachable sym in relocation: %s %s", s.Name, r.Sym.Name)
+ }
+
++ // TODO(mundaym): Move this conversion somewhere more appropriate.
++ // Ideally the obj relocations would support variants.
++ if Thearch.Thechar == 'z' {
++ switch r.Type {
++ case obj.R_PCRELDBL:
++ r.Type = obj.R_PCREL
++ r.Variant = RV_390_DBL
++ case obj.R_CALL:
++ r.Variant = RV_390_DBL
++ }
++ }
++
+ switch r.Type {
+ default:
+- switch siz {
++ switch r.Siz {
+ default:
+- Diag("bad reloc size %#x for %s", uint32(siz), r.Sym.Name)
++ Diag("bad reloc size %#x for %s", uint32(r.Siz), r.Sym.Name)
+ case 1:
+ o = int64(s.P[off])
+ case 2:
+@@ -454,7 +466,7 @@ func relocsym(s *LSym) {
+
+ o = r.Xadd
+ if Iself {
+- if Thearch.Thechar == '6' {
++ if Thearch.Thechar == '6' || Thearch.Thechar == 'z' {
+ o = 0
+ }
+ } else if HEADTYPE == obj.Hdarwin {
+@@ -487,7 +499,7 @@ func relocsym(s *LSym) {
+ // fail at runtime. See https://golang.org/issue/7980.
+ // Instead of special casing only amd64, we treat this as an error on all
+ // 64-bit architectures so as to be future-proof.
+- if int32(o) < 0 && Thearch.Ptrsize > 4 && siz == 4 {
++ if int32(o) < 0 && Thearch.Ptrsize > 4 && r.Siz == 4 {
+ Diag("non-pc-relative relocation address is too big: %#x (%#x + %#x)", uint64(o), Symaddr(r.Sym), r.Add)
+ errorexit()
+ }
+@@ -514,7 +526,7 @@ func relocsym(s *LSym) {
+
+ o = r.Xadd
+ if Iself {
+- if Thearch.Thechar == '6' {
++ if Thearch.Thechar == '6' || Thearch.Thechar == 'z' {
+ o = 0
+ }
+ } else if HEADTYPE == obj.Hdarwin {
+@@ -568,10 +580,10 @@ func relocsym(s *LSym) {
+ }
+ fmt.Printf("relocate %s %#x (%#x+%#x, size %d) => %s %#x +%#x [type %d/%d, %x]\n", s.Name, s.Value+int64(off), s.Value, r.Off, r.Siz, nam, Symaddr(r.Sym), r.Add, r.Type, r.Variant, o)
+ }
+- switch siz {
++ switch r.Siz {
+ default:
+ Ctxt.Cursym = s
+- Diag("bad reloc size %#x for %s", uint32(siz), r.Sym.Name)
++ Diag("bad reloc size %#x for %s", uint32(r.Siz), r.Sym.Name)
+ fallthrough
+
+ // TODO(rsc): Remove.
+@@ -580,7 +592,7 @@ func relocsym(s *LSym) {
+
+ case 2:
+ if o != int64(int16(o)) {
+- Diag("relocation address is too big: %#x", o)
++ Diag("relocation address for %s (type %v) is too big: %#x", s.Name, r.Type, o)
+ }
+ i16 = int16(o)
+ Ctxt.Arch.ByteOrder.PutUint16(s.P[off:], uint16(i16))
+@@ -614,6 +626,7 @@ func reloc() {
+ for s := Ctxt.Textp; s != nil; s = s.Next {
+ relocsym(s)
+ }
++
+ for s := datap; s != nil; s = s.Next {
+ relocsym(s)
+ }
+@@ -1030,6 +1043,13 @@ func symalign(s *LSym) int32 {
+ if align < s.Align {
+ align = s.Align
+ }
++
++ // TODO(mundaym): Minalign should probably be a new attribute on 'Thearch'
++ if Thearch.Thechar == 'z' && align < 2 {
++ // Relative addressing requires a 2 byte alignment on s390x.
++ align = 2
++ }
++
+ return align
+ }
+
+@@ -1159,6 +1179,7 @@ func dodata() {
+ for s := datap; s != nil; s = s.Next {
+ if int64(len(s.P)) > s.Size {
+ Diag("%s: initialize bounds (%d < %d)", s.Name, int64(s.Size), len(s.P))
++ s.Size = int64(len(s.P)) // hack to allow linking of asm into go // TODO(WGO)
+ }
+ }
+
+diff --git a/src/cmd/link/internal/ld/dwarf.go b/src/cmd/link/internal/ld/dwarf.go
+index 563600d..d44dc81 100644
+--- a/src/cmd/link/internal/ld/dwarf.go
++++ b/src/cmd/link/internal/ld/dwarf.go
+@@ -1715,7 +1715,7 @@ func writelines() {
+ * Emit .debug_frame
+ */
+ const (
+- CIERESERVE = 16
++ CIERESERVE = 32
+ DATAALIGNMENTFACTOR = -4
+ )
+
+@@ -1754,7 +1754,6 @@ func writeframes() {
+ uleb128put(int64(Thearch.Dwarfreglr)) // return_address_register
+
+ Cput(DW_CFA_def_cfa)
+-
+ uleb128put(int64(Thearch.Dwarfregsp)) // register SP (**ABI-dependent, defined in l.h)
+ if haslinkregister() {
+ uleb128put(int64(0)) // offset
+@@ -1762,14 +1761,21 @@ func writeframes() {
+ uleb128put(int64(Thearch.Ptrsize)) // offset
+ }
+
+- Cput(DW_CFA_offset_extended)
+- uleb128put(int64(Thearch.Dwarfreglr)) // return address
+ if haslinkregister() {
+- uleb128put(int64(0) / DATAALIGNMENTFACTOR) // at cfa - 0
++ Cput(DW_CFA_same_value)
++ uleb128put(int64(Thearch.Dwarfreglr))
+ } else {
++ Cput(DW_CFA_offset_extended)
++ uleb128put(int64(Thearch.Dwarfreglr)) // return address
+ uleb128put(int64(-Thearch.Ptrsize) / DATAALIGNMENTFACTOR) // at cfa - x*4
+ }
+
++ if haslinkregister() {
++ Cput(DW_CFA_val_offset)
++ uleb128put(int64(Thearch.Dwarfregsp))
++ uleb128put(int64(0))
++ }
++
+ // 4 is to exclude the length field.
+ pad := CIERESERVE + frameo + 4 - Cpos()
+
+@@ -1788,7 +1794,7 @@ func writeframes() {
+
+ fdeo := Cpos()
+
+- // Emit a FDE, Section 6.4.1, starting wit a placeholder.
++ // Emit a FDE, Section 6.4.1, starting with a placeholder.
+ Thearch.Lput(0) // length, must be multiple of thearch.ptrsize
+ Thearch.Lput(0) // Pointer to the CIE above, at offset 0
+ addrput(0) // initial location
+@@ -1807,6 +1813,21 @@ func writeframes() {
+ }
+
+ if haslinkregister() {
++ // TODO(bryanpkc): This is imprecise. In general, the instruction
++ // that stores the return address to the stack frame is not the
++ // same one that allocates the frame.
++ if pcsp.value > 0 {
++ // The return address is preserved at (CFA-frame_size)
++ // after a stack frame has been allocated.
++ Cput(DW_CFA_offset_extended_sf)
++ uleb128put(int64(Thearch.Dwarfreglr))
++ sleb128put(-int64(pcsp.value) / DATAALIGNMENTFACTOR)
++ } else {
++ // The return address is restored into the link register
++ // when a stack frame has been de-allocated.
++ Cput(DW_CFA_same_value)
++ uleb128put(int64(Thearch.Dwarfreglr))
++ }
+ putpccfadelta(int64(nextpc)-int64(pcsp.pc), int64(pcsp.value))
+ } else {
+ putpccfadelta(int64(nextpc)-int64(pcsp.pc), int64(Thearch.Ptrsize)+int64(pcsp.value))
+@@ -2235,7 +2256,7 @@ func dwarfaddshstrings(shstrtab *LSym) {
+ elfstrdbg[ElfStrGDBScripts] = Addstring(shstrtab, ".debug_gdb_scripts")
+ if Linkmode == LinkExternal {
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ elfstrdbg[ElfStrRelDebugInfo] = Addstring(shstrtab, ".rela.debug_info")
+ elfstrdbg[ElfStrRelDebugAranges] = Addstring(shstrtab, ".rela.debug_aranges")
+ elfstrdbg[ElfStrRelDebugLine] = Addstring(shstrtab, ".rela.debug_line")
+@@ -2288,7 +2309,7 @@ func dwarfaddelfsectionsyms() {
+ func dwarfaddelfrelocheader(elfstr int, shdata *ElfShdr, off int64, size int64) {
+ sh := newElfShdr(elfstrdbg[elfstr])
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ sh.type_ = SHT_RELA
+ default:
+ sh.type_ = SHT_REL
+diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go
+index a34cf3c..6942343 100644
+--- a/src/cmd/link/internal/ld/elf.go
++++ b/src/cmd/link/internal/ld/elf.go
+@@ -284,6 +284,8 @@ const (
+ DT_VERSYM = 0x6ffffff0
+ DT_PPC64_GLINK = DT_LOPROC + 0
+ DT_PPC64_OPT = DT_LOPROC + 3
++ DT_S390X_GLINK = DT_LOPROC + 0
++ DT_S390X_OPT = DT_LOPROC + 3
+ DF_ORIGIN = 0x0001
+ DF_SYMBOLIC = 0x0002
+ DF_TEXTREL = 0x0004
+@@ -646,6 +648,68 @@ const (
+ R_SPARC_UA64 = 54
+ R_SPARC_UA16 = 55
+
++ R_390_NONE = 0
++ R_390_8 = 1
++ R_390_12 = 2
++ R_390_16 = 3
++ R_390_32 = 4
++ R_390_PC32 = 5
++ R_390_GOT12 = 6
++ R_390_GOT32 = 7
++ R_390_PLT32 = 8
++ R_390_COPY = 9
++ R_390_GLOB_DAT = 10
++ R_390_JMP_SLOT = 11
++ R_390_RELATIVE = 12
++ R_390_GOTOFF = 13
++ R_390_GOTPC = 14
++ R_390_GOT16 = 15
++ R_390_PC16 = 16
++ R_390_PC16DBL = 17
++ R_390_PLT16DBL = 18
++ R_390_PC32DBL = 19
++ R_390_PLT32DBL = 20
++ R_390_GOTPCDBL = 21
++ R_390_64 = 22
++ R_390_PC64 = 23
++ R_390_GOT64 = 24
++ R_390_PLT64 = 25
++ R_390_GOTENT = 26
++ R_390_GOTOFF16 = 27
++ R_390_GOTOFF64 = 28
++ R_390_GOTPLT12 = 29
++ R_390_GOTPLT16 = 30
++ R_390_GOTPLT32 = 31
++ R_390_GOTPLT64 = 32
++ R_390_GOTPLTENT = 33
++ R_390_GOTPLTOFF16 = 34
++ R_390_GOTPLTOFF32 = 35
++ R_390_GOTPLTOFF64 = 36
++ R_390_TLS_LOAD = 37
++ R_390_TLS_GDCALL = 38
++ R_390_TLS_LDCALL = 39
++ R_390_TLS_GD32 = 40
++ R_390_TLS_GD64 = 41
++ R_390_TLS_GOTIE12 = 42
++ R_390_TLS_GOTIE32 = 43
++ R_390_TLS_GOTIE64 = 44
++ R_390_TLS_LDM32 = 45
++ R_390_TLS_LDM64 = 46
++ R_390_TLS_IE32 = 47
++ R_390_TLS_IE64 = 48
++ R_390_TLS_IEENT = 49
++ R_390_TLS_LE32 = 50
++ R_390_TLS_LE64 = 51
++ R_390_TLS_LDO32 = 52
++ R_390_TLS_LDO64 = 53
++ R_390_TLS_DTPMOD = 54
++ R_390_TLS_DTPOFF = 55
++ R_390_TLS_TPOFF = 56
++ R_390_20 = 57
++ R_390_GOT20 = 58
++ R_390_GOTPLT20 = 59
++ R_390_TLS_GOTIE20 = 60
++
+ ARM_MAGIC_TRAMP_NUMBER = 0x5c000003
+ )
+
+@@ -803,7 +867,7 @@ func Elfinit() {
+
+ switch Thearch.Thechar {
+ // 64-bit architectures
+- case '9':
++ case '9', 'z':
+ if Ctxt.Arch.ByteOrder == binary.BigEndian {
+ ehdr.flags = 1 /* Version 1 ABI */
+ } else {
+@@ -1370,13 +1434,25 @@ func elfdynhash() {
+ buckets[b] = uint32(sy.Dynid)
+ }
+
+- Adduint32(Ctxt, s, uint32(nbucket))
+- Adduint32(Ctxt, s, uint32(nsym))
+- for i := 0; i < nbucket; i++ {
+- Adduint32(Ctxt, s, buckets[i])
+- }
+- for i := 0; i < nsym; i++ {
+- Adduint32(Ctxt, s, chain[i])
++ // s390 violates the ELF spec and defines hash table entries as 8 bytes.
++ if Thearch.Thechar == 'z' && elf64 {
++ Adduint64(Ctxt, s, uint64(nbucket))
++ Adduint64(Ctxt, s, uint64(nsym))
++ for i := 0; i < nbucket; i++ {
++ Adduint64(Ctxt, s, uint64(buckets[i]))
++ }
++ for i := 0; i < nsym; i++ {
++ Adduint64(Ctxt, s, uint64(chain[i]))
++ }
++ } else {
++ Adduint32(Ctxt, s, uint32(nbucket))
++ Adduint32(Ctxt, s, uint32(nsym))
++ for i := 0; i < nbucket; i++ {
++ Adduint32(Ctxt, s, buckets[i])
++ }
++ for i := 0; i < nsym; i++ {
++ Adduint32(Ctxt, s, chain[i])
++ }
+ }
+
+ // version symbols
+@@ -1444,7 +1520,7 @@ func elfdynhash() {
+ }
+
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ sy := Linklookup(Ctxt, ".rela.plt", 0)
+ if sy.Size > 0 {
+ Elfwritedynent(s, DT_PLTREL, DT_RELA)
+@@ -1584,7 +1660,7 @@ func elfshreloc(sect *Section) *ElfShdr {
+ var prefix string
+ var typ int
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ prefix = ".rela"
+ typ = SHT_RELA
+ default:
+@@ -1757,7 +1833,7 @@ func doelf() {
+ Debug['d'] = 1
+
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ Addstring(shstrtab, ".rela.text")
+ Addstring(shstrtab, ".rela.rodata")
+ Addstring(shstrtab, ".rela"+relro_prefix+".typelink")
+@@ -1803,7 +1879,7 @@ func doelf() {
+ if hasinitarr {
+ Addstring(shstrtab, ".init_array")
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ Addstring(shstrtab, ".rela.init_array")
+ default:
+ Addstring(shstrtab, ".rel.init_array")
+@@ -1830,7 +1906,7 @@ func doelf() {
+ Addstring(shstrtab, ".dynsym")
+ Addstring(shstrtab, ".dynstr")
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ Addstring(shstrtab, ".rela")
+ Addstring(shstrtab, ".rela.plt")
+ default:
+@@ -1848,7 +1924,7 @@ func doelf() {
+ s.Type = obj.SELFROSECT
+ s.Reachable = true
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ s.Size += ELF64SYMSIZE
+ default:
+ s.Size += ELF32SYMSIZE
+@@ -1866,7 +1942,7 @@ func doelf() {
+
+ /* relocation table */
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ s = Linklookup(Ctxt, ".rela", 0)
+ default:
+ s = Linklookup(Ctxt, ".rel", 0)
+@@ -1911,7 +1987,7 @@ func doelf() {
+ Thearch.Elfsetupplt()
+
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ s = Linklookup(Ctxt, ".rela.plt", 0)
+ default:
+ s = Linklookup(Ctxt, ".rel.plt", 0)
+@@ -1940,7 +2016,7 @@ func doelf() {
+
+ elfwritedynentsym(s, DT_SYMTAB, Linklookup(Ctxt, ".dynsym", 0))
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ Elfwritedynent(s, DT_SYMENT, ELF64SYMSIZE)
+ default:
+ Elfwritedynent(s, DT_SYMENT, ELF32SYMSIZE)
+@@ -1948,7 +2024,7 @@ func doelf() {
+ elfwritedynentsym(s, DT_STRTAB, Linklookup(Ctxt, ".dynstr", 0))
+ elfwritedynentsymsize(s, DT_STRSZ, Linklookup(Ctxt, ".dynstr", 0))
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ elfwritedynentsym(s, DT_RELA, Linklookup(Ctxt, ".rela", 0))
+ elfwritedynentsymsize(s, DT_RELASZ, Linklookup(Ctxt, ".rela", 0))
+ Elfwritedynent(s, DT_RELAENT, ELF64RELASIZE)
+@@ -1964,6 +2040,8 @@ func doelf() {
+
+ if Thearch.Thechar == '9' {
+ elfwritedynentsym(s, DT_PLTGOT, Linklookup(Ctxt, ".plt", 0))
++ } else if Thearch.Thechar == 'z' {
++ elfwritedynentsym(s, DT_PLTGOT, Linklookup(Ctxt, ".got", 0))
+ } else {
+ elfwritedynentsym(s, DT_PLTGOT, Linklookup(Ctxt, ".got.plt", 0))
+ }
+@@ -2059,6 +2137,8 @@ func Asmbelf(symo int64) {
+ eh.machine = EM_386
+ case '9':
+ eh.machine = EM_PPC64
++ case 'z':
++ eh.machine = EM_S390
+ }
+
+ elfreserve := int64(ELFRESERVE)
+@@ -2244,7 +2324,7 @@ func Asmbelf(symo int64) {
+ }
+
+ switch eh.machine {
+- case EM_X86_64, EM_PPC64, EM_AARCH64:
++ case EM_X86_64, EM_PPC64, EM_AARCH64, EM_S390:
+ sh := elfshname(".rela.plt")
+ sh.type_ = SHT_RELA
+ sh.flags = SHF_ALLOC
+@@ -2293,6 +2373,8 @@ func Asmbelf(symo int64) {
+ sh.flags = SHF_ALLOC + SHF_EXECINSTR
+ if eh.machine == EM_X86_64 {
+ sh.entsize = 16
++ } else if eh.machine == EM_S390 {
++ sh.entsize = 32
+ } else if eh.machine == EM_PPC64 {
+ // On ppc64, this is just a table of addresses
+ // filled by the dynamic linker
+diff --git a/src/cmd/link/internal/ld/ldelf.go b/src/cmd/link/internal/ld/ldelf.go
+index bea3f2d..08f754d 100644
+--- a/src/cmd/link/internal/ld/ldelf.go
++++ b/src/cmd/link/internal/ld/ldelf.go
+@@ -586,6 +586,11 @@ func ldelf(f *obj.Biobuf, pkg string, length int64, pn string) {
+ Diag("%s: elf object but not ppc64", pn)
+ return
+ }
++ case 'z':
++ if elfobj.machine != ElfMachS390 || hdr.Ident[4] != ElfClass64 {
++ Diag("%s: elf object but not Z", pn)
++ return
++ }
+ }
+
+ // load section list into memory.
+@@ -778,6 +783,9 @@ func ldelf(f *obj.Biobuf, pkg string, length int64, pn string) {
+ continue
+ }
+
++ if strings.HasPrefix(sym.name, ".LASF") { // gcc on s390x does this
++ continue
++ }
+ Diag("%s: sym#%d: ignoring %s in section %d (type %d)", pn, i, sym.name, sym.shndx, sym.type_)
+ continue
+ }
+@@ -1124,6 +1132,14 @@ func reltype(pn string, elftype int, siz *uint8) int {
+ Diag("%s: unknown relocation type %d; compiled without -fpic?", pn, elftype)
+ fallthrough
+
++ case 'z' | R_390_NONE<<24,
++ 'z' | R_390_COPY<<24,
++ 'z' | R_390_JMP_SLOT<<24:
++ *siz = 0
++
++ case 'z' | R_390_8:
++ *siz = 1
++
+ case '9' | R_PPC64_TOC16<<24,
+ '9' | R_PPC64_TOC16_LO<<24,
+ '9' | R_PPC64_TOC16_HI<<24,
+@@ -1132,7 +1148,14 @@ func reltype(pn string, elftype int, siz *uint8) int {
+ '9' | R_PPC64_TOC16_LO_DS<<24,
+ '9' | R_PPC64_REL16_LO<<24,
+ '9' | R_PPC64_REL16_HI<<24,
+- '9' | R_PPC64_REL16_HA<<24:
++ '9' | R_PPC64_REL16_HA<<24,
++ 'z' | R_390_12<<24,
++ 'z' | R_390_16<<24,
++ 'z' | R_390_GOT12<<24,
++ 'z' | R_390_GOT16<<24,
++ 'z' | R_390_PC16<<24,
++ 'z' | R_390_PC16DBL<<24,
++ 'z' | R_390_PLT16DBL<<24:
+ *siz = 2
+
+ case '5' | R_ARM_ABS32<<24,
+@@ -1160,11 +1183,27 @@ func reltype(pn string, elftype int, siz *uint8) int {
+ '8' | R_386_GOTPC<<24,
+ '8' | R_386_GOT32X<<24,
+ '9' | R_PPC64_REL24<<24,
+- '9' | R_PPC_REL32<<24:
++ '9' | R_PPC_REL32<<24,
++ 'z' | R_390_32<<24,
++ 'z' | R_390_PC32<<24,
++ 'z' | R_390_GOT32<<24,
++ 'z' | R_390_PLT32<<24,
++ 'z' | R_390_PC32DBL<<24,
++ 'z' | R_390_PLT32DBL<<24,
++ 'z' | R_390_GOTPCDBL<<24,
++ 'z' | R_390_GOTENT<<24:
+ *siz = 4
+
+ case '6' | R_X86_64_64<<24,
+- '9' | R_PPC64_ADDR64<<24:
++ '9' | R_PPC64_ADDR64<<24,
++ 'z' | R_390_GLOB_DAT<<24,
++ 'z' | R_390_RELATIVE<<24,
++ 'z' | R_390_GOTOFF<<24,
++ 'z' | R_390_GOTPC<<24,
++ 'z' | R_390_64<<24,
++ 'z' | R_390_PC64<<24,
++ 'z' | R_390_GOT64<<24,
++ 'z' | R_390_PLT64<<24:
+ *siz = 8
+ }
+
+diff --git a/src/cmd/link/internal/ld/link.go b/src/cmd/link/internal/ld/link.go
+index 73d23c6..75dc7e2 100644
+--- a/src/cmd/link/internal/ld/link.go
++++ b/src/cmd/link/internal/ld/link.go
+@@ -233,6 +233,7 @@ const (
+ RV_POWER_HI
+ RV_POWER_HA
+ RV_POWER_DS
++ RV_390_DBL
+ RV_CHECK_OVERFLOW = 1 << 8
+ RV_TYPE_MASK = RV_CHECK_OVERFLOW - 1
+ )
+diff --git a/src/cmd/link/internal/ld/symtab.go b/src/cmd/link/internal/ld/symtab.go
+index 3e6169e..10f6f3d 100644
+--- a/src/cmd/link/internal/ld/symtab.go
++++ b/src/cmd/link/internal/ld/symtab.go
+@@ -67,7 +67,7 @@ func putelfstr(s string) int {
+
+ func putelfsyment(off int, addr int64, size int64, info int, shndx int, other int) {
+ switch Thearch.Thechar {
+- case '0', '6', '7', '9':
++ case '0', '6', '7', '9', 'z':
+ Thearch.Lput(uint32(off))
+ Cput(uint8(info))
+ Cput(uint8(other))
+@@ -562,6 +562,7 @@ func symtab() {
+ adduint(Ctxt, moduledata, uint64(len(Ctxt.Shlibs)))
+ adduint(Ctxt, moduledata, uint64(len(Ctxt.Shlibs)))
+ }
++
+ // The rest of moduledata is zero initialized.
+ // When linking an object that does not contain the runtime we are
+ // creating the moduledata from scratch and it does not have a
+@@ -569,7 +570,7 @@ func symtab() {
+ moduledatatype := Linkrlookup(Ctxt, "type.runtime.moduledata", 0)
+ moduledata.Size = decodetype_size(moduledatatype)
+ Symgrow(Ctxt, moduledata, moduledata.Size)
+-
++
+ lastmoduledatap := Linklookup(Ctxt, "runtime.lastmoduledatap", 0)
+ if lastmoduledatap.Type != obj.SDYNIMPORT {
+ lastmoduledatap.Type = obj.SNOPTRDATA
+diff --git a/src/cmd/link/internal/s390x/asm.go b/src/cmd/link/internal/s390x/asm.go
+new file mode 100644
+index 0000000..dfd3ad4
+--- /dev/null
++++ b/src/cmd/link/internal/s390x/asm.go
+@@ -0,0 +1,564 @@
++// Inferno utils/5l/asm.c
++// http://code.google.com/p/inferno-os/source/browse/utils/5l/asm.c
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/internal/obj"
++ "cmd/link/internal/ld"
++ "debug/elf"
++ "fmt"
++ "log"
++)
++
++func gentext() {
++}
++
++func adddynrela(rel *ld.LSym, s *ld.LSym, r *ld.Reloc) {
++ log.Fatalf("adddynrela not implemented")
++}
++
++func adddynrel(s *ld.LSym, r *ld.Reloc) {
++ targ := r.Sym
++ ld.Ctxt.Cursym = s
++
++ switch r.Type {
++ default:
++ if r.Type >= 256 {
++ ld.Diag("unexpected relocation type %d", r.Type)
++ return
++ }
++
++ // Handle relocations found in ELF object files.
++ case 256 + ld.R_390_12,
++ 256 + ld.R_390_GOT12:
++ ld.Diag("s390x 12-bit relocations have not been implemented (relocation type %d)", r.Type-256)
++ return
++
++ case 256 + ld.R_390_8,
++ 256 + ld.R_390_16,
++ 256 + ld.R_390_32,
++ 256 + ld.R_390_64:
++ if targ.Type == obj.SDYNIMPORT {
++ ld.Diag("unexpected R_390_nn relocation for dynamic symbol %s", targ.Name)
++ }
++ r.Type = obj.R_ADDR
++ return
++
++ case 256 + ld.R_390_PC16,
++ 256 + ld.R_390_PC32,
++ 256 + ld.R_390_PC64:
++ if targ.Type == obj.SDYNIMPORT {
++ ld.Diag("unexpected R_390_PCnn relocation for dynamic symbol %s", targ.Name)
++ }
++ if targ.Type == 0 || targ.Type == obj.SXREF {
++ ld.Diag("unknown symbol %s in pcrel", targ.Name)
++ }
++ r.Type = obj.R_PCREL
++ r.Add += int64(r.Siz)
++ return
++
++ case 256 + ld.R_390_GOT16,
++ 256 + ld.R_390_GOT32,
++ 256 + ld.R_390_GOT64:
++ ld.Diag("unimplemented S390x relocation: %v", r.Type-256)
++ return
++
++ case 256 + ld.R_390_PLT16DBL,
++ 256 + ld.R_390_PLT32DBL:
++ r.Type = obj.R_PCREL
++ r.Variant = ld.RV_390_DBL
++ r.Add += int64(r.Siz)
++ if targ.Type == obj.SDYNIMPORT {
++ addpltsym(ld.Ctxt, targ)
++ r.Sym = ld.Linklookup(ld.Ctxt, ".plt", 0)
++ r.Add += int64(targ.Plt)
++ }
++ return
++
++ case 256 + ld.R_390_PLT32,
++ 256 + ld.R_390_PLT64:
++ r.Type = obj.R_PCREL
++ r.Add += int64(r.Siz)
++ if targ.Type == obj.SDYNIMPORT {
++ addpltsym(ld.Ctxt, targ)
++ r.Sym = ld.Linklookup(ld.Ctxt, ".plt", 0)
++ r.Add += int64(targ.Plt)
++ }
++ return
++
++ case 256 + ld.R_390_COPY:
++ ld.Diag("unimplemented S390x relocation: %v", r.Type-256)
++
++ case 256 + ld.R_390_GLOB_DAT:
++ ld.Diag("unimplemented S390x relocation: %v", r.Type-256)
++
++ case 256 + ld.R_390_JMP_SLOT:
++ ld.Diag("unimplemented S390x relocation: %v", r.Type-256)
++
++ case 256 + ld.R_390_RELATIVE:
++ ld.Diag("unimplemented S390x relocation: %v", r.Type-256)
++
++ case 256 + ld.R_390_GOTOFF:
++ if targ.Type == obj.SDYNIMPORT {
++ ld.Diag("unexpected R_390_GOTOFF relocation for dynamic symbol %s", targ.Name)
++ }
++ r.Type = obj.R_GOTOFF
++ return
++
++ case 256 + ld.R_390_GOTPC:
++ r.Type = obj.R_PCREL
++ r.Sym = ld.Linklookup(ld.Ctxt, ".got", 0)
++ r.Add += int64(r.Siz)
++ return
++
++ case 256 + ld.R_390_PC16DBL,
++ 256 + ld.R_390_PC32DBL:
++ r.Type = obj.R_PCREL
++ r.Variant = ld.RV_390_DBL
++ r.Add += int64(r.Siz)
++ if targ.Type == obj.SDYNIMPORT {
++ ld.Diag("unexpected R_390_PCnnDBL relocation for dynamic symbol %s", targ.Name)
++ }
++ return
++
++ case 256 + ld.R_390_GOTPCDBL:
++ r.Type = obj.R_PCREL
++ r.Variant = ld.RV_390_DBL
++ r.Sym = ld.Linklookup(ld.Ctxt, ".got", 0)
++ r.Add += int64(r.Siz)
++ return
++
++ case 256 + ld.R_390_GOTENT:
++ // if targ.Type != obj.SDYNIMPORT {
++ // ld.Diag("unexpected R_390_GOTENT relocation for non-dynamic symbol %s", targ.Name)
++ // }
++ addgotsym(targ)
++
++ r.Type = obj.R_PCREL
++ r.Variant = ld.RV_390_DBL
++ r.Sym = ld.Linklookup(ld.Ctxt, ".got", 0)
++ r.Add += int64(targ.Got)
++ r.Add += int64(r.Siz)
++ return
++
++ }
++ // Handle references to ELF symbols from our own object files.
++ if targ.Type != obj.SDYNIMPORT {
++ return
++ }
++
++ ld.Diag("unsupported relocation for dynamic symbol %s (type=%d stype=%d)", targ.Name, r.Type, targ.Type)
++}
++
++func elfreloc1(r *ld.Reloc, sectoff int64) int {
++ ld.Thearch.Vput(uint64(sectoff))
++
++ elfsym := r.Xsym.Elfsym
++ switch r.Type {
++ default:
++ return -1
++
++ case obj.R_TLS_LE:
++ switch r.Siz {
++ default:
++ return -1
++ case 4:
++ ld.Thearch.Vput(ld.R_390_TLS_LE32 | uint64(elfsym)<<32)
++ case 8:
++ ld.Thearch.Vput(ld.R_390_TLS_LE64 | uint64(elfsym)<<32)
++ }
++
++ case obj.R_ADDR:
++ switch r.Siz {
++ default:
++ return -1
++ case 4:
++ ld.Thearch.Vput(ld.R_390_32 | uint64(elfsym)<<32)
++ case 8:
++ ld.Thearch.Vput(ld.R_390_64 | uint64(elfsym)<<32)
++ }
++
++ case obj.R_PCREL, obj.R_PCRELDBL, obj.R_CALL:
++ elfrel := ld.R_390_NONE
++ isdbl := r.Variant&ld.RV_TYPE_MASK == ld.RV_390_DBL
++ // TODO(mundaym): all DBL style relocations should be signalled using the variant.
++ switch r.Type {
++ case obj.R_PCRELDBL, obj.R_CALL:
++ isdbl = true
++ }
++ if r.Xsym.Type == obj.SDYNIMPORT && r.Xsym.ElfType == elf.STT_FUNC {
++ if isdbl {
++ switch r.Siz {
++ case 2:
++ elfrel = ld.R_390_PLT16DBL
++ case 4:
++ elfrel = ld.R_390_PLT32DBL
++ }
++ } else {
++ switch r.Siz {
++ case 4:
++ elfrel = ld.R_390_PLT32
++ case 8:
++ elfrel = ld.R_390_PLT64
++ }
++ }
++ } else {
++ if isdbl {
++ switch r.Siz {
++ case 2:
++ elfrel = ld.R_390_PC16DBL
++ case 4:
++ elfrel = ld.R_390_PC32DBL
++ }
++ } else {
++ switch r.Siz {
++ case 2:
++ elfrel = ld.R_390_PC16
++ case 4:
++ elfrel = ld.R_390_PC32
++ case 8:
++ elfrel = ld.R_390_PC64
++ }
++ }
++ }
++ if elfrel == ld.R_390_NONE {
++ return -1 // unsupported size/dbl combination
++ }
++ ld.Thearch.Vput(uint64(elfrel) | uint64(elfsym)<<32)
++ }
++
++ ld.Thearch.Vput(uint64(r.Xadd))
++ return 0
++}
++
++func elfsetupplt() {
++ plt := ld.Linklookup(ld.Ctxt, ".plt", 0)
++ got := ld.Linklookup(ld.Ctxt, ".got", 0)
++ if plt.Size == 0 {
++ // stg %r1,56(%r15)
++ ld.Adduint8(ld.Ctxt, plt, 0xe3)
++ ld.Adduint8(ld.Ctxt, plt, 0x10)
++ ld.Adduint8(ld.Ctxt, plt, 0xf0)
++ ld.Adduint8(ld.Ctxt, plt, 0x38)
++ ld.Adduint8(ld.Ctxt, plt, 0x00)
++ ld.Adduint8(ld.Ctxt, plt, 0x24)
++ // larl %r1,_GLOBAL_OFFSET_TABLE_
++ ld.Adduint8(ld.Ctxt, plt, 0xc0)
++ ld.Adduint8(ld.Ctxt, plt, 0x10)
++ ld.Addpcrelplus(ld.Ctxt, plt, got, 6)
++ // mvc 48(8,%r15),8(%r1)
++ ld.Adduint8(ld.Ctxt, plt, 0xd2)
++ ld.Adduint8(ld.Ctxt, plt, 0x07)
++ ld.Adduint8(ld.Ctxt, plt, 0xf0)
++ ld.Adduint8(ld.Ctxt, plt, 0x30)
++ ld.Adduint8(ld.Ctxt, plt, 0x10)
++ ld.Adduint8(ld.Ctxt, plt, 0x08)
++ // lg %r1,16(%r1)
++ ld.Adduint8(ld.Ctxt, plt, 0xe3)
++ ld.Adduint8(ld.Ctxt, plt, 0x10)
++ ld.Adduint8(ld.Ctxt, plt, 0x10)
++ ld.Adduint8(ld.Ctxt, plt, 0x10)
++ ld.Adduint8(ld.Ctxt, plt, 0x00)
++ ld.Adduint8(ld.Ctxt, plt, 0x04)
++ // br %r1
++ ld.Adduint8(ld.Ctxt, plt, 0x07)
++ ld.Adduint8(ld.Ctxt, plt, 0xf1)
++ // nopr %r0
++ ld.Adduint8(ld.Ctxt, plt, 0x07)
++ ld.Adduint8(ld.Ctxt, plt, 0x00)
++ // nopr %r0
++ ld.Adduint8(ld.Ctxt, plt, 0x07)
++ ld.Adduint8(ld.Ctxt, plt, 0x00)
++ // nopr %r0
++ ld.Adduint8(ld.Ctxt, plt, 0x07)
++ ld.Adduint8(ld.Ctxt, plt, 0x00)
++
++ // assume got->size == 0 too
++ ld.Addaddrplus(ld.Ctxt, got, ld.Linklookup(ld.Ctxt, ".dynamic", 0), 0)
++
++ ld.Adduint64(ld.Ctxt, got, 0)
++ ld.Adduint64(ld.Ctxt, got, 0)
++ }
++}
++
++func machoreloc1(r *ld.Reloc, sectoff int64) int {
++ return -1
++}
++
++func archreloc(r *ld.Reloc, s *ld.LSym, val *int64) int {
++ if ld.Linkmode == ld.LinkExternal {
++ return -1
++ }
++
++ switch r.Type {
++ case obj.R_CONST:
++ *val = r.Add
++ return 0
++
++ case obj.R_GOTOFF:
++ *val = ld.Symaddr(r.Sym) + r.Add - ld.Symaddr(ld.Linklookup(ld.Ctxt, ".got", 0))
++ return 0
++ }
++
++ return -1
++}
++
++func archrelocvariant(r *ld.Reloc, s *ld.LSym, t int64) int64 {
++ switch r.Variant & ld.RV_TYPE_MASK {
++ default:
++ ld.Diag("unexpected relocation variant %d", r.Variant)
++ return t
++
++ case ld.RV_NONE:
++ return t
++
++ case ld.RV_390_DBL:
++ if (t & 1) != 0 {
++ ld.Diag("%s+%v is not 2-byte aligned", r.Sym.Name, r.Sym.Value)
++ }
++ return t >> 1
++ }
++}
++
++func addpltsym(ctxt *ld.Link, s *ld.LSym) {
++ if s.Plt >= 0 {
++ return
++ }
++
++ ld.Adddynsym(ctxt, s)
++
++ if ld.Iself {
++ plt := ld.Linklookup(ctxt, ".plt", 0)
++ got := ld.Linklookup(ctxt, ".got", 0)
++ rela := ld.Linklookup(ctxt, ".rela.plt", 0)
++ if plt.Size == 0 {
++ elfsetupplt()
++ }
++ // larl %r1,_GLOBAL_OFFSET_TABLE_+index
++
++ ld.Adduint8(ctxt, plt, 0xc0)
++ ld.Adduint8(ctxt, plt, 0x10)
++ ld.Addpcrelplus(ctxt, plt, got, got.Size+6) // need variant?
++
++ // add to got: pointer to current pos in plt
++ ld.Addaddrplus(ctxt, got, plt, plt.Size+8) // weird but correct
++ // lg %r1,0(%r1)
++ ld.Adduint8(ctxt, plt, 0xe3)
++ ld.Adduint8(ctxt, plt, 0x10)
++ ld.Adduint8(ctxt, plt, 0x10)
++ ld.Adduint8(ctxt, plt, 0x00)
++ ld.Adduint8(ctxt, plt, 0x00)
++ ld.Adduint8(ctxt, plt, 0x04)
++ // br %r1
++ ld.Adduint8(ctxt, plt, 0x07)
++ ld.Adduint8(ctxt, plt, 0xf1)
++ // basr %r1,%r0
++ ld.Adduint8(ctxt, plt, 0x0d)
++ ld.Adduint8(ctxt, plt, 0x10)
++ // lgf %r1,12(%r1)
++ ld.Adduint8(ctxt, plt, 0xe3)
++ ld.Adduint8(ctxt, plt, 0x10)
++ ld.Adduint8(ctxt, plt, 0x10)
++ ld.Adduint8(ctxt, plt, 0x0c)
++ ld.Adduint8(ctxt, plt, 0x00)
++ ld.Adduint8(ctxt, plt, 0x14)
++ // jg .plt
++ ld.Adduint8(ctxt, plt, 0xc0)
++ ld.Adduint8(ctxt, plt, 0xf4)
++
++ ld.Adduint32(ctxt, plt, uint32(-((plt.Size - 2) >> 1))) // roll-your-own relocation
++ //.plt index
++ ld.Adduint32(ctxt, plt, uint32(rela.Size)) // rela size before current entry
++
++ // rela
++ ld.Addaddrplus(ctxt, rela, got, got.Size-8)
++
++ ld.Adduint64(ctxt, rela, ld.ELF64_R_INFO(uint32(s.Dynid), ld.R_390_JMP_SLOT))
++ ld.Adduint64(ctxt, rela, 0)
++
++ s.Plt = int32(plt.Size - 32)
++
++ } else {
++ ld.Diag("addpltsym: unsupported binary format")
++ }
++}
++
++func addgotsym(s *ld.LSym) {
++ if s.Got >= 0 {
++ return
++ }
++
++ ld.Adddynsym(ld.Ctxt, s)
++ got := ld.Linklookup(ld.Ctxt, ".got", 0)
++ s.Got = int32(got.Size)
++ ld.Adduint64(ld.Ctxt, got, 0)
++
++ if ld.Iself {
++ rela := ld.Linklookup(ld.Ctxt, ".rela", 0)
++ ld.Addaddrplus(ld.Ctxt, rela, got, int64(s.Got))
++ ld.Adduint64(ld.Ctxt, rela, ld.ELF64_R_INFO(uint32(s.Dynid), ld.R_390_GLOB_DAT))
++ ld.Adduint64(ld.Ctxt, rela, 0)
++ } else {
++ ld.Diag("addgotsym: unsupported binary format")
++ }
++}
++
++func asmb() {
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f asmb\n", obj.Cputime())
++ }
++ ld.Bso.Flush()
++
++ if ld.Iself {
++ ld.Asmbelfsetup()
++ }
++
++ sect := ld.Segtext.Sect
++ ld.Cseek(int64(sect.Vaddr - ld.Segtext.Vaddr + ld.Segtext.Fileoff))
++ ld.Codeblk(int64(sect.Vaddr), int64(sect.Length))
++ for sect = sect.Next; sect != nil; sect = sect.Next {
++ ld.Cseek(int64(sect.Vaddr - ld.Segtext.Vaddr + ld.Segtext.Fileoff))
++ ld.Datblk(int64(sect.Vaddr), int64(sect.Length))
++ }
++
++ if ld.Segrodata.Filelen > 0 {
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f rodatblk\n", obj.Cputime())
++ }
++ ld.Bso.Flush()
++
++ ld.Cseek(int64(ld.Segrodata.Fileoff))
++ ld.Datblk(int64(ld.Segrodata.Vaddr), int64(ld.Segrodata.Filelen))
++ }
++
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f datblk\n", obj.Cputime())
++ }
++ ld.Bso.Flush()
++
++ ld.Cseek(int64(ld.Segdata.Fileoff))
++ ld.Datblk(int64(ld.Segdata.Vaddr), int64(ld.Segdata.Filelen))
++
++ /* output symbol table */
++ ld.Symsize = 0
++
++ ld.Lcsize = 0
++ symo := uint32(0)
++ if ld.Debug['s'] == 0 {
++ // TODO: rationalize
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f sym\n", obj.Cputime())
++ }
++ ld.Bso.Flush()
++ switch ld.HEADTYPE {
++ default:
++ if ld.Iself {
++ symo = uint32(ld.Segdata.Fileoff + ld.Segdata.Filelen)
++ symo = uint32(ld.Rnd(int64(symo), int64(ld.INITRND)))
++ }
++
++ case obj.Hplan9:
++ symo = uint32(ld.Segdata.Fileoff + ld.Segdata.Filelen)
++ }
++
++ ld.Cseek(int64(symo))
++ switch ld.HEADTYPE {
++ default:
++ if ld.Iself {
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f elfsym\n", obj.Cputime())
++ }
++ ld.Asmelfsym()
++ ld.Cflush()
++ ld.Cwrite(ld.Elfstrdat)
++
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f dwarf\n", obj.Cputime())
++ }
++ ld.Dwarfemitdebugsections()
++
++ if ld.Linkmode == ld.LinkExternal {
++ ld.Elfemitreloc()
++ }
++ }
++
++ case obj.Hplan9:
++ ld.Asmplan9sym()
++ ld.Cflush()
++
++ sym := ld.Linklookup(ld.Ctxt, "pclntab", 0)
++ if sym != nil {
++ ld.Lcsize = int32(len(sym.P))
++ for i := 0; int32(i) < ld.Lcsize; i++ {
++ ld.Cput(uint8(sym.P[i]))
++ }
++
++ ld.Cflush()
++ }
++ }
++ }
++
++ ld.Ctxt.Cursym = nil
++ if ld.Debug['v'] != 0 {
++ fmt.Fprintf(&ld.Bso, "%5.2f header\n", obj.Cputime())
++ }
++ ld.Bso.Flush()
++ ld.Cseek(0)
++ switch ld.HEADTYPE {
++ default:
++ case obj.Hplan9: /* plan 9 */
++ ld.Thearch.Lput(0x647) /* magic */
++ ld.Thearch.Lput(uint32(ld.Segtext.Filelen)) /* sizes */
++ ld.Thearch.Lput(uint32(ld.Segdata.Filelen))
++ ld.Thearch.Lput(uint32(ld.Segdata.Length - ld.Segdata.Filelen))
++ ld.Thearch.Lput(uint32(ld.Symsize)) /* nsyms */
++ ld.Thearch.Lput(uint32(ld.Entryvalue())) /* va of entry */
++ ld.Thearch.Lput(0)
++ ld.Thearch.Lput(uint32(ld.Lcsize))
++
++ case obj.Hlinux,
++ obj.Hfreebsd,
++ obj.Hnetbsd,
++ obj.Hopenbsd,
++ obj.Hnacl:
++ ld.Asmbelf(int64(symo))
++ }
++
++ ld.Cflush()
++ if ld.Debug['c'] != 0 {
++ fmt.Printf("textsize=%d\n", ld.Segtext.Filelen)
++ fmt.Printf("datsize=%d\n", ld.Segdata.Filelen)
++ fmt.Printf("bsssize=%d\n", ld.Segdata.Length-ld.Segdata.Filelen)
++ fmt.Printf("symsize=%d\n", ld.Symsize)
++ fmt.Printf("lcsize=%d\n", ld.Lcsize)
++ fmt.Printf("total=%d\n", ld.Segtext.Filelen+ld.Segdata.Length+uint64(ld.Symsize)+uint64(ld.Lcsize))
++ }
++}
+diff --git a/src/cmd/link/internal/s390x/l.go b/src/cmd/link/internal/s390x/l.go
+new file mode 100644
+index 0000000..7384942
+--- /dev/null
++++ b/src/cmd/link/internal/s390x/l.go
+@@ -0,0 +1,78 @@
++// Inferno utils/5l/asm.c
++// http://code.google.com/p/inferno-os/source/browse/utils/5l/asm.c
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++// Writing object files.
++
++// cmd/9l/l.h from Vita Nuova.
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++const (
++ thechar = 'z'
++ PtrSize = 8
++ IntSize = 8
++ RegSize = 8
++ MaxAlign = 32 // max data alignment
++ FuncAlign = 8
++ MINLC = 2
++)
++
++/* Used by ../internal/ld/dwarf.go */
++const (
++ DWARFREGSP = 15
++ DWARFREGLR = 14
++)
+diff --git a/src/cmd/link/internal/s390x/obj.go b/src/cmd/link/internal/s390x/obj.go
+new file mode 100644
+index 0000000..414c3a6
+--- /dev/null
++++ b/src/cmd/link/internal/s390x/obj.go
+@@ -0,0 +1,111 @@
++// Inferno utils/5l/obj.c
++// http://code.google.com/p/inferno-os/source/browse/utils/5l/obj.c
++//
++// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
++// Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
++// Portions Copyright © 1997-1999 Vita Nuova Limited
++// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
++// Portions Copyright © 2004,2006 Bruce Ellis
++// Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
++// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
++// Portions Copyright © 2009 The Go Authors. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++package s390x
++
++import (
++ "cmd/internal/obj"
++ "cmd/link/internal/ld"
++ "fmt"
++)
++
++// Reading object files.
++
++func Main() {
++ linkarchinit()
++ ld.Ldmain()
++}
++
++func linkarchinit() {
++ ld.Thestring = obj.Getgoarch()
++ ld.Thelinkarch = &ld.Links390x
++
++ ld.Thearch.Thechar = thechar
++ ld.Thearch.Ptrsize = ld.Thelinkarch.Ptrsize
++ ld.Thearch.Intsize = ld.Thelinkarch.Ptrsize
++ ld.Thearch.Regsize = ld.Thelinkarch.Regsize
++ ld.Thearch.Funcalign = FuncAlign
++ ld.Thearch.Maxalign = MaxAlign
++ ld.Thearch.Minlc = MINLC
++ ld.Thearch.Dwarfregsp = DWARFREGSP
++ ld.Thearch.Dwarfreglr = DWARFREGLR
++
++ ld.Thearch.Adddynrel = adddynrel
++ ld.Thearch.Archinit = archinit
++ ld.Thearch.Archreloc = archreloc
++ ld.Thearch.Archrelocvariant = archrelocvariant
++ ld.Thearch.Asmb = asmb // in asm.go
++ ld.Thearch.Elfreloc1 = elfreloc1
++ ld.Thearch.Elfsetupplt = elfsetupplt
++ ld.Thearch.Gentext = gentext
++ ld.Thearch.Machoreloc1 = machoreloc1
++ ld.Thearch.Lput = ld.Lputb
++ ld.Thearch.Wput = ld.Wputb
++ ld.Thearch.Vput = ld.Vputb
++
++ ld.Thearch.Linuxdynld = "/lib64/ld64.so.1"
++
++ // not relevant for s390x
++ ld.Thearch.Freebsddynld = "XXX"
++ ld.Thearch.Openbsddynld = "XXX"
++ ld.Thearch.Netbsddynld = "XXX"
++ ld.Thearch.Dragonflydynld = "XXX"
++ ld.Thearch.Solarisdynld = "XXX"
++}
++
++func archinit() {
++ // getgoextlinkenabled is based on GO_EXTLINK_ENABLED when
++ // Go was built; see ../../make.bash.
++ if ld.Linkmode == ld.LinkAuto && obj.Getgoextlinkenabled() == "0" {
++ ld.Linkmode = ld.LinkInternal
++ }
++
++ switch ld.HEADTYPE {
++ default:
++ ld.Exitf("unknown -H option: %v", ld.HEADTYPE)
++
++ case obj.Hlinux: /* s390x elf */
++ ld.Elfinit()
++ ld.HEADR = ld.ELFRESERVE
++ if ld.INITTEXT == -1 {
++ ld.INITTEXT = 0x10000 + int64(ld.HEADR)
++ }
++ if ld.INITDAT == -1 {
++ ld.INITDAT = 0
++ }
++ if ld.INITRND == -1 {
++ ld.INITRND = 0x10000
++ }
++ }
++
++ if ld.INITDAT != 0 && ld.INITRND != 0 {
++ fmt.Printf("warning: -D0x%x is ignored because of -R0x%x\n", uint64(ld.INITDAT), uint32(ld.INITRND))
++ }
++}
+diff --git a/src/cmd/link/main.go b/src/cmd/link/main.go
+index 63df8de..fd47d1b 100644
+--- a/src/cmd/link/main.go
++++ b/src/cmd/link/main.go
+@@ -12,6 +12,7 @@ import (
+ "cmd/link/internal/mips64"
+ "cmd/link/internal/ppc64"
+ "cmd/link/internal/x86"
++ "cmd/link/internal/s390x"
+ "fmt"
+ "os"
+ )
+@@ -33,5 +34,7 @@ func main() {
+ mips64.Main()
+ case "ppc64", "ppc64le":
+ ppc64.Main()
++ case "s390x":
++ s390x.Main()
+ }
+ }
+diff --git a/src/cmd/objdump/objdump_test.go b/src/cmd/objdump/objdump_test.go
+index 8ceaba0..cd55e16 100644
+--- a/src/cmd/objdump/objdump_test.go
++++ b/src/cmd/objdump/objdump_test.go
+@@ -107,6 +107,8 @@ func TestDisasm(t *testing.T) {
+ t.Skipf("skipping on %s, issue 10106", runtime.GOARCH)
+ case "mips64", "mips64le":
+ t.Skipf("skipping on %s, issue 12559", runtime.GOARCH)
++ case "s390x":
++ t.Skipf("skipping on %s", runtime.GOARCH)
+ }
+ testDisasm(t)
+ }
+@@ -123,6 +125,8 @@ func TestDisasmExtld(t *testing.T) {
+ t.Skipf("skipping on %s, issue 10106", runtime.GOARCH)
+ case "mips64", "mips64le":
+ t.Skipf("skipping on %s, issue 12559 and 12560", runtime.GOARCH)
++ case "s390x":
++ t.Skipf("skipping on %s", runtime.GOARCH)
+ }
+ // TODO(jsing): Reenable once openbsd/arm has external linking support.
+ if runtime.GOOS == "openbsd" && runtime.GOARCH == "arm" {
+diff --git a/src/cmd/vet/asmdecl.go b/src/cmd/vet/asmdecl.go
+index e4a9871..2524cb4 100644
+--- a/src/cmd/vet/asmdecl.go
++++ b/src/cmd/vet/asmdecl.go
+@@ -65,6 +65,7 @@ var (
+ asmArchAmd64p32 = asmArch{"amd64p32", 4, 4, 8, false, "SP", false}
+ asmArchPpc64 = asmArch{"ppc64", 8, 8, 8, true, "R1", true}
+ asmArchPpc64LE = asmArch{"ppc64le", 8, 8, 8, false, "R1", true}
++ asmArchs390x = asmArch{"s390x", 8, 8, 8, true, "R15", true}
+
+ arches = []*asmArch{
+ &asmArch386,
+@@ -74,6 +75,7 @@ var (
+ &asmArchAmd64p32,
+ &asmArchPpc64,
+ &asmArchPpc64LE,
++ &asmArchs390x,
+ }
+ )
+
+diff --git a/src/crypto/aes/asm_s390x.s b/src/crypto/aes/asm_s390x.s
+new file mode 100644
+index 0000000..c9cf166
+--- /dev/null
++++ b/src/crypto/aes/asm_s390x.s
+@@ -0,0 +1,97 @@
++// Copyright 2016 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.
++
++#include "textflag.h"
++
++// func hasAsm() bool
++// returns whether the AES-128, AES-192 and AES-256
++// cipher message functions are supported.
++TEXT ·hasAsm(SB),NOSPLIT,$16-1
++ XOR R0, R0 // set function code to 0 (query)
++ LA 8(R15), R1
++ WORD $0xB92E0024 // KM-Query
++
++ // check if bits 18-20 are set
++ MOVD 8(R15), R2
++ SRD $40, R2
++ AND $0x38, R2 // mask bits 18-20 (00111000)
++ CMPBNE R2, $0x38, notfound
++ MOVBZ $1, R1
++ MOVB R1, ret+0(FP)
++ RET
++notfound:
++ MOVBZ R0, ret+0(FP)
++ MOVD $0, 0(R0)
++ RET
++
++// func encryptBlockAsm(nr int, xk *uint32, dst, src *byte)
++TEXT ·encryptBlockAsm(SB),NOSPLIT,$0-32
++ MOVD nr+0(FP), R7
++ MOVD xk+8(FP), R1
++ MOVD dst+16(FP), R2
++ MOVD src+24(FP), R4
++ MOVD $16, R5
++ CMPBEQ R7, $14, aes256
++ CMPBEQ R7, $12, aes192
++aes128:
++ MOVBZ $18, R0
++ BR enc
++aes192:
++ MOVBZ $19, R0
++ BR enc
++aes256:
++ MOVBZ $20, R0
++enc:
++ WORD $0xB92E0024 // KM-AES
++ BVS enc
++ XOR R0, R0
++ RET
++
++// func decryptBlockAsm(nr int, xk *uint32, dst, src *byte)
++TEXT ·decryptBlockAsm(SB),NOSPLIT,$0-32
++ MOVD nr+0(FP), R7
++ MOVD xk+8(FP), R1
++ MOVD dst+16(FP), R2
++ MOVD src+24(FP), R4
++ MOVD $16, R5
++ CMPBEQ R7, $14, aes256
++ CMPBEQ R7, $12, aes192
++aes128:
++ MOVBZ $(128+18), R0
++ BR dec
++aes192:
++ MOVBZ $(128+19), R0
++ BR dec
++aes256:
++ MOVBZ $(128+20), R0
++dec:
++ WORD $0xB92E0024 // KM-AES
++ BVS dec
++ XOR R0, R0
++ RET
++
++// func expandKeyAsm(nr int, key *byte, enc, dec *uint32)
++// We do NOT expand the keys here as the KM command just
++// expects the cryptographic key.
++// Instead just copy the needed bytes from the key into
++// the encryption/decryption expanded keys.
++TEXT ·expandKeyAsm(SB),NOSPLIT,$0-32
++ MOVD nr+0(FP), R1
++ MOVD key+8(FP), R2
++ MOVD enc+16(FP), R3
++ MOVD dec+24(FP), R4
++ CMPBEQ R1, $14, aes256
++ CMPBEQ R1, $12, aes192
++aes128:
++ MVC $(128/8), 0(R2), 0(R3)
++ MVC $(128/8), 0(R2), 0(R4)
++ RET
++aes192:
++ MVC $(192/8), 0(R2), 0(R3)
++ MVC $(192/8), 0(R2), 0(R4)
++ RET
++aes256:
++ MVC $(256/8), 0(R2), 0(R3)
++ MVC $(256/8), 0(R2), 0(R4)
++ RET
+diff --git a/src/crypto/aes/cipher_asm.go b/src/crypto/aes/cipher_asm.go
+index 964eaaa..04d0d2f 100644
+--- a/src/crypto/aes/cipher_asm.go
++++ b/src/crypto/aes/cipher_asm.go
+@@ -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 amd64
++// +build amd64 s390x
+
+ package aes
+
+diff --git a/src/crypto/aes/cipher_generic.go b/src/crypto/aes/cipher_generic.go
+index 32b2b3c..077eac8 100644
+--- a/src/crypto/aes/cipher_generic.go
++++ b/src/crypto/aes/cipher_generic.go
+@@ -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 !amd64
++// +build !amd64,!s390x
+
+ package aes
+
+@@ -17,11 +17,3 @@ func decryptBlock(xk []uint32, dst, src []byte) {
+ func expandKey(key []byte, enc, dec []uint32) {
+ expandKeyGo(key, enc, dec)
+ }
+-
+-func hasGCMAsm() bool {
+- return false
+-}
+-
+-type aesCipherGCM struct {
+- aesCipher
+-}
+diff --git a/src/crypto/aes/gcm_generic.go b/src/crypto/aes/gcm_generic.go
+new file mode 100644
+index 0000000..8c8c066
+--- /dev/null
++++ b/src/crypto/aes/gcm_generic.go
+@@ -0,0 +1,15 @@
++// Copyright 2016 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.
++
++// +build !amd64
++
++package aes
++
++func hasGCMAsm() bool {
++ return false
++}
++
++type aesCipherGCM struct {
++ aesCipher
++}
+diff --git a/src/crypto/sha1/sha1block_decl.go b/src/crypto/sha1/sha1block_decl.go
+index 24e521a..bddb747 100644
+--- a/src/crypto/sha1/sha1block_decl.go
++++ b/src/crypto/sha1/sha1block_decl.go
+@@ -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 amd64 amd64p32 arm 386
++// +build amd64 amd64p32 arm 386 s390x
+
+ package sha1
+
+diff --git a/src/crypto/sha1/sha1block_generic.go b/src/crypto/sha1/sha1block_generic.go
+index 696e26b..f019462 100644
+--- a/src/crypto/sha1/sha1block_generic.go
++++ b/src/crypto/sha1/sha1block_generic.go
+@@ -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 !amd64,!amd64p32,!386,!arm
++// +build !amd64,!amd64p32,!386,!arm,!s390x
+
+ package sha1
+
+diff --git a/src/crypto/sha1/sha1block_s390x.s b/src/crypto/sha1/sha1block_s390x.s
+new file mode 100644
+index 0000000..ec07034
+--- /dev/null
++++ b/src/crypto/sha1/sha1block_s390x.s
+@@ -0,0 +1,37 @@
++// Copyright 2016 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.
++
++#include "textflag.h"
++
++// func block(dig *digest, p []byte)
++TEXT ·block(SB),NOSPLIT,$0-32
++start:
++ // Check that we have the SHA-1 function
++ MOVD ·kimdQueryResult(SB), R4
++ SRD $56, R4 // Get the first byte
++ AND $0x40, R4, R5 // Bit 1 for SHA-1
++ BNE hardware
++ AND $0x80, R4, R5 // Bit 0 for Query
++ BNE generic
++ MOVD $·kimdQueryResult(SB), R1
++ XOR R0, R0 // Query function code
++ WORD $0xB93E0006 // KIMD Query (R6 is ignored)
++ BR start
++
++hardware:
++ MOVD dig+0(FP), R1
++ MOVD p_base+8(FP), R2
++ MOVD p_len+16(FP), R3
++ MOVBZ $1, R0 // SHA-1 function code
++kimd:
++ WORD $0xB93E0002 // KIMD R2
++ BVS kimd // interrupted -- continue
++done:
++ XOR R0, R0 // Restore R0
++ RET
++
++generic:
++ BR ·blockGeneric(SB)
++
++GLOBL ·kimdQueryResult(SB), NOPTR, $16
+diff --git a/src/crypto/sha256/sha256block.go b/src/crypto/sha256/sha256block.go
+index ca5efd1..b380a56 100644
+--- a/src/crypto/sha256/sha256block.go
++++ b/src/crypto/sha256/sha256block.go
+@@ -77,7 +77,7 @@ var _K = []uint32{
+ 0xc67178f2,
+ }
+
+-func block(dig *digest, p []byte) {
++func blockGeneric(dig *digest, p []byte) {
+ var w [64]uint32
+ h0, h1, h2, h3, h4, h5, h6, h7 := dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7]
+ for len(p) >= chunk {
+diff --git a/src/crypto/sha256/sha256block_decl.go b/src/crypto/sha256/sha256block_decl.go
+index a50c978..dd1b0bb 100644
+--- a/src/crypto/sha256/sha256block_decl.go
++++ b/src/crypto/sha256/sha256block_decl.go
+@@ -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
++// +build 386 amd64 s390x
+
+ package sha256
+
+diff --git a/src/crypto/sha256/sha256block_generic.go b/src/crypto/sha256/sha256block_generic.go
+new file mode 100644
+index 0000000..1a01969
+--- /dev/null
++++ b/src/crypto/sha256/sha256block_generic.go
+@@ -0,0 +1,9 @@
++// Copyright 2016 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.
++
++// +build !amd64,!386,!s390x
++
++package sha256
++
++var block = blockGeneric
+diff --git a/src/crypto/sha256/sha256block_s390x.s b/src/crypto/sha256/sha256block_s390x.s
+new file mode 100644
+index 0000000..a8eb8ea
+--- /dev/null
++++ b/src/crypto/sha256/sha256block_s390x.s
+@@ -0,0 +1,37 @@
++// Copyright 2016 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.
++
++#include "textflag.h"
++
++// func block(dig *digest, p []byte)
++TEXT ·block(SB),NOSPLIT,$0-32
++start:
++ // Check that we have the SHA-256 function
++ MOVD ·kimdQueryResult(SB), R4
++ SRD $56, R4 // Get the first byte
++ AND $0x20, R4, R5 // Bit 2 for SHA-256
++ BNE hardware
++ AND $0x80, R4, R5 // Bit 0 for Query
++ BNE generic
++ MOVD $·kimdQueryResult(SB), R1
++ XOR R0, R0 // Query function code
++ WORD $0xB93E0006 // KIMD Query (R6 is ignored)
++ BR start
++
++hardware:
++ MOVD dig+0(FP), R1
++ MOVD p_base+8(FP), R2
++ MOVD p_len+16(FP), R3
++ MOVBZ $2, R0 // SHA-256 function code
++kimd:
++ WORD $0xB93E0002 // KIMD R2
++ BVS kimd // interrupted -- continue
++done:
++ XOR R0, R0 // Restore R0
++ RET
++
++generic:
++ BR ·blockGeneric(SB)
++
++GLOBL ·kimdQueryResult(SB), NOPTR, $16
+diff --git a/src/crypto/sha512/sha512block.go b/src/crypto/sha512/sha512block.go
+index 648ae8f..5d8efb1 100644
+--- a/src/crypto/sha512/sha512block.go
++++ b/src/crypto/sha512/sha512block.go
+@@ -93,7 +93,7 @@ var _K = []uint64{
+ 0x6c44198c4a475817,
+ }
+
+-func block(dig *digest, p []byte) {
++func blockGeneric(dig *digest, p []byte) {
+ var w [80]uint64
+ h0, h1, h2, h3, h4, h5, h6, h7 := dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4], dig.h[5], dig.h[6], dig.h[7]
+ for len(p) >= chunk {
+diff --git a/src/crypto/sha512/sha512block_decl.go b/src/crypto/sha512/sha512block_decl.go
+index bef99de..0eaba66 100644
+--- a/src/crypto/sha512/sha512block_decl.go
++++ b/src/crypto/sha512/sha512block_decl.go
+@@ -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 amd64
++// +build amd64 s390x
+
+ package sha512
+
+diff --git a/src/crypto/sha512/sha512block_generic.go b/src/crypto/sha512/sha512block_generic.go
+new file mode 100644
+index 0000000..2c691ba
+--- /dev/null
++++ b/src/crypto/sha512/sha512block_generic.go
+@@ -0,0 +1,9 @@
++// Copyright 2016 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.
++
++// +build !amd64,!s390x
++
++package sha512
++
++var block = blockGeneric
+diff --git a/src/crypto/sha512/sha512block_s390x.s b/src/crypto/sha512/sha512block_s390x.s
+new file mode 100644
+index 0000000..c875288
+--- /dev/null
++++ b/src/crypto/sha512/sha512block_s390x.s
+@@ -0,0 +1,37 @@
++// Copyright 2016 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.
++
++#include "textflag.h"
++
++// func block(dig *digest, p []byte)
++TEXT ·block(SB),NOSPLIT,$0-32
++start:
++ // Check that we have the SHA-256 function
++ MOVD ·kimdQueryResult(SB), R4
++ SRD $56, R4 // Get the first byte
++ AND $0x10, R4, R5 // Bit 3 for SHA-512
++ BNE hardware
++ AND $0x80, R4, R5 // Bit 0 for Query
++ BNE generic
++ MOVD $·kimdQueryResult(SB), R1
++ XOR R0, R0 // Query function code
++ WORD $0xB93E0006 // KIMD Query (R6 is ignored)
++ BR start
++
++hardware:
++ MOVD dig+0(FP), R1
++ MOVD p_base+8(FP), R2
++ MOVD p_len+16(FP), R3
++ MOVBZ $3, R0 // SHA-512 function code
++kimd:
++ WORD $0xB93E0002 // KIMD R2
++ BVS kimd // interrupted -- continue
++done:
++ XOR R0, R0 // Restore R0
++ RET
++
++generic:
++ BR ·blockGeneric(SB)
++
++GLOBL ·kimdQueryResult(SB), NOPTR, $16
+diff --git a/src/debug/elf/elf.go b/src/debug/elf/elf.go
+index f53ba00..57d04df 100644
+--- a/src/debug/elf/elf.go
++++ b/src/debug/elf/elf.go
+@@ -1725,6 +1725,72 @@ var rppc64Strings = []intName{
+ func (i R_PPC64) String() string { return stringName(uint32(i), rppc64Strings, false) }
+ func (i R_PPC64) GoString() string { return stringName(uint32(i), rppc64Strings, true) }
+
++// Relocation types for s390x processors.
++type R_S390X int
++
++const (
++ R_390_NONE R_S390X = 0
++ R_390_8 R_S390X = 1
++ R_390_12 R_S390X = 2
++ R_390_16 R_S390X = 3
++ R_390_32 R_S390X = 4
++ R_390_PC32 R_S390X = 5
++ R_390_GOT12 R_S390X = 6
++ R_390_GOT32 R_S390X = 7
++ R_390_PLT32 R_S390X = 8
++ R_390_COPY R_S390X = 9
++ R_390_GLOB_DAT R_S390X = 10
++ R_390_JMP_SLOT R_S390X = 11
++ R_390_RELATIVE R_S390X = 12
++ R_390_GOTOFF R_S390X = 13
++ R_390_GOTPC R_S390X = 14
++ R_390_GOT16 R_S390X = 15
++ R_390_PC16 R_S390X = 16
++ R_390_PC16DBL R_S390X = 17
++ R_390_PLT16DBL R_S390X = 18
++ R_390_PC32DBL R_S390X = 19
++ R_390_PLT32DBL R_S390X = 20
++ R_390_GOTPCDBL R_S390X = 21
++ R_390_64 R_S390X = 22
++ R_390_PC64 R_S390X = 23
++ R_390_GOT64 R_S390X = 24
++ R_390_PLT64 R_S390X = 25
++ R_390_GOTENT R_S390X = 26
++)
++
++var rs390xStrings = []intName{
++ {0 , "R_390_NONE"},
++ {1 , "R_390_8"},
++ {2 , "R_390_12"},
++ {3 , "R_390_16"},
++ {4 , "R_390_32"},
++ {5 , "R_390_PC32"},
++ {6 , "R_390_GOT12"},
++ {7 , "R_390_GOT32"},
++ {8 , "R_390_PLT32"},
++ {9 , "R_390_COPY"},
++ {10, "R_390_GLOB_DAT"},
++ {11, "R_390_JMP_SLOT"},
++ {12, "R_390_RELATIVE"},
++ {13, "R_390_GOTOFF"},
++ {14, "R_390_GOTPC"},
++ {15, "R_390_GOT16"},
++ {16, "R_390_PC16"},
++ {17, "R_390_PC16DBL"},
++ {18, "R_390_PLT16DBL"},
++ {19, "R_390_PC32DBL"},
++ {20, "R_390_PLT32DBL"},
++ {21, "R_390_GOTPCDBL"},
++ {22, "R_390_64"},
++ {23, "R_390_PC64"},
++ {24, "R_390_GOT64"},
++ {25, "R_390_PLT64"},
++ {26, "R_390_GOTENT"},
++}
++
++func (i R_S390X) String() string { return stringName(uint32(i), rs390xStrings, false) }
++func (i R_S390X) GoString() string { return stringName(uint32(i), rs390xStrings, true) }
++
+ // Relocation types for SPARC.
+ type R_SPARC int
+
+diff --git a/src/debug/elf/file.go b/src/debug/elf/file.go
+index 199aa4e..43a1ce3 100644
+--- a/src/debug/elf/file.go
++++ b/src/debug/elf/file.go
+@@ -596,6 +596,8 @@ func (f *File) applyRelocations(dst []byte, rels []byte) error {
+ return f.applyRelocationsPPC64(dst, rels)
+ case f.Class == ELFCLASS64 && f.Machine == EM_MIPS:
+ return f.applyRelocationsMIPS64(dst, rels)
++ case f.Class == ELFCLASS64 && f.Machine == EM_S390:
++ return f.applyRelocationss390x(dst, rels)
+ default:
+ return errors.New("applyRelocations: not implemented")
+ }
+@@ -911,6 +913,55 @@ func (f *File) applyRelocationsMIPS64(dst []byte, rels []byte) error {
+ return nil
+ }
+
++func (f *File) applyRelocationss390x(dst []byte, rels []byte) error {
++ // 24 is the size of Rela64.
++ if len(rels)%24 != 0 {
++ return errors.New("length of relocation section is not a multiple of 24")
++ }
++
++ symbols, _, err := f.getSymbols(SHT_SYMTAB)
++ if err != nil {
++ return err
++ }
++
++ b := bytes.NewReader(rels)
++ var rela Rela64
++
++ for b.Len() > 0 {
++ binary.Read(b, f.ByteOrder, &rela)
++ symNo := rela.Info >> 32
++ t := R_S390X(rela.Info & 0xffff)
++
++ if symNo == 0 || symNo > uint64(len(symbols)) {
++ continue
++ }
++ sym := &symbols[symNo-1]
++ switch SymType(sym.Info&0xf) {
++ case STT_SECTION, STT_NOTYPE:
++ break
++ default:
++ continue
++ }
++
++ switch t {
++ case R_390_64:
++ if rela.Off+8 >= uint64(len(dst)) || rela.Addend < 0 {
++ continue
++ }
++ val := sym.Value + uint64(rela.Addend)
++ f.ByteOrder.PutUint64(dst[rela.Off:rela.Off+8], val)
++ case R_390_32:
++ if rela.Off+4 >= uint64(len(dst)) || rela.Addend < 0 {
++ continue
++ }
++ val := uint32(sym.Value) + uint32(rela.Addend)
++ f.ByteOrder.PutUint32(dst[rela.Off:rela.Off+4], val)
++ }
++ }
++
++ return nil
++}
++
+ func (f *File) DWARF() (*dwarf.Data, error) {
+ // sectionData gets the data for s, checks its size, and
+ // applies any applicable relations.
+diff --git a/src/debug/gosym/pclntab.go b/src/debug/gosym/pclntab.go
+index 6620aef..1fcc8a8 100644
+--- a/src/debug/gosym/pclntab.go
++++ b/src/debug/gosym/pclntab.go
+@@ -167,7 +167,7 @@ func (t *LineTable) go12Init() {
+ // Check header: 4-byte magic, two zeros, pc quantum, pointer size.
+ t.go12 = -1 // not Go 1.2 until proven otherwise
+ if len(t.Data) < 16 || t.Data[4] != 0 || t.Data[5] != 0 ||
+- (t.Data[6] != 1 && t.Data[6] != 4) || // pc quantum
++ (t.Data[6] != 1 && t.Data[6] != 2 && t.Data[6] != 4) || // pc quantum
+ (t.Data[7] != 4 && t.Data[7] != 8) { // pointer size
+ return
+ }
+diff --git a/src/go/build/build.go b/src/go/build/build.go
+index 9539413..9b0834d 100644
+--- a/src/go/build/build.go
++++ b/src/go/build/build.go
+@@ -282,6 +282,7 @@ var cgoEnabled = map[string]bool{
+ "solaris/amd64": true,
+ "windows/386": true,
+ "windows/amd64": true,
++ "linux/s390x": true,
+ }
+
+ func defaultContext() Context {
+diff --git a/src/hash/crc32/crc32_generic.go b/src/hash/crc32/crc32_generic.go
+index 8fc11a7..25f2d55 100644
+--- a/src/hash/crc32/crc32_generic.go
++++ b/src/hash/crc32/crc32_generic.go
+@@ -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 arm64 mips64 mips64le ppc64 ppc64le
++// +build 386 arm arm64 mips64 mips64le ppc64 ppc64le s390x
+
+ package crc32
+
+diff --git a/src/internal/syscall/unix/getrandom_linux_s390x.go b/src/internal/syscall/unix/getrandom_linux_s390x.go
+new file mode 100644
+index 0000000..467dea1
+--- /dev/null
++++ b/src/internal/syscall/unix/getrandom_linux_s390x.go
+@@ -0,0 +1,9 @@
++// Copyright 2015 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.
++
++// +build s390x
++
++package unix
++
++const randomTrap uintptr = 349
+diff --git a/src/math/big/arith_s390x.s b/src/math/big/arith_s390x.s
+new file mode 100644
+index 0000000..fe03e51
+--- /dev/null
++++ b/src/math/big/arith_s390x.s
+@@ -0,0 +1,340 @@
++// Copyright 2013 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.
++
++// +build !math_big_pure_go,s390x
++
++#include "textflag.h"
++
++// This file provides fast assembly versions for the elementary
++// arithmetic operations on vectors implemented in arith.go.
++
++TEXT ·mulWW(SB),NOSPLIT,$0
++ MOVD x+0(FP), R3
++ MOVD y+8(FP), R4
++ MULHDU R3, R4
++ MOVD R10, z1+16(FP)
++ MOVD R11, z0+24(FP)
++ RET
++
++TEXT ·divWW(SB),NOSPLIT,$0
++ BR ·divWW_g(SB)
++
++TEXT ·addVV(SB),NOSPLIT,$0
++ BR ·addVV_g(SB)
++
++TEXT ·subVV(SB),NOSPLIT,$0
++ BR ·subVV_g(SB)
++
++// func addVW(z, x []Word, y Word) (c Word)
++TEXT ·addVW(SB),NOSPLIT,$0
++//DI = R3, CX = R4, SI = r10, r8 = r8, r10 = r2 , r11 = r5, r12 = r6, r13 = r7, r14 = r1 (R0 set to 0)
++
++// (same as addVW except for SUBQ/SBBQ instead of ADDQ/ADCQ and label names)
++ MOVD z_len+8(FP), R3
++ MOVD x+24(FP), R8
++ MOVD y+48(FP), R4 // c = y
++ MOVD z+0(FP), R2
++ MOVD $0, R0 // make sure it's 0
++ MOVD $0, R10 // i = 0
++
++ // s/JL/JMP/ below to disable the unrolled loop
++ SUB $4, R3 // n -= 4
++ BLT V4 // if n < 4 goto V4
++
++U4: // n >= 0
++ // regular loop body unrolled 4x
++ MOVD 0(R8)(R10*1), R5
++ MOVD 8(R8)(R10*1), R6
++ MOVD 16(R8)(R10*1), R7
++ MOVD 24(R8)(R10*1), R1
++ ADDC R4, R5 //SLGR -> SUBC
++ ADDE R0, R6 //SLBGR -> SUBE
++ ADDE R0, R7
++ ADDE R0, R1
++ ADDE R0, R0
++ MOVD R0, R4 // save CF
++ SUB R0, R0
++ MOVD R5, 0(R2)(R10*1)
++ MOVD R6, 8(R2)(R10*1)
++ MOVD R7, 16(R2)(R10*1)
++ MOVD R1, 24(R2)(R10*1)
++
++ ADD $32, R10 // i += 4 -> i +=32
++ SUB $4, R3 // n -= 4
++ BGE U4 // if n >= 0 goto U4
++
++V4: ADD $4, R3 // n += 4
++ BLE E4 // if n <= 0 goto E4
++
++L4: // n > 0
++ MOVD 0(R8)(R10*1), R5
++ ADDC R4, R5
++ ADDE R0, R0
++ MOVD R0, R4 // save CF
++ SUB R0, R0
++ MOVD R5, 0(R2)(R10*1)
++
++ ADD $8, R10 // i++
++ SUB $1, R3 // n--
++ BGT L4 // if n > 0 goto L4
++
++E4: MOVD R4, c+56(FP) // return c
++
++ RET
++
++//DI = R3, CX = R4, SI = r10, r8 = r8, r10 = r2 , r11 = r5, r12 = r6, r13 = r7, r14 = r1 (R0 set to 0)
++// func subVW(z, x []Word, y Word) (c Word)
++// (same as addVW except for SUBQ/SBBQ instead of ADDQ/ADCQ and label names)
++TEXT ·subVW(SB),NOSPLIT,$0
++ MOVD z_len+8(FP), R3
++ MOVD x+24(FP), R8
++ MOVD y+48(FP), R4 // c = y
++ MOVD z+0(FP), R2
++ MOVD $0, R0 // make sure it's 0
++ MOVD $0, R10 // i = 0
++
++ // s/JL/JMP/ below to disable the unrolled loop
++ SUB $4, R3 // n -= 4
++ BLT V4 // if n < 4 goto V4
++
++U4: // n >= 0
++ // regular loop body unrolled 4x
++ MOVD 0(R8)(R10*1), R5
++ MOVD 8(R8)(R10*1), R6
++ MOVD 16(R8)(R10*1), R7
++ MOVD 24(R8)(R10*1), R1
++ SUBC R4, R5 //SLGR -> SUBC
++ SUBE R0, R6 //SLBGR -> SUBE
++ SUBE R0, R7
++ SUBE R0, R1
++ SUBE R4, R4 // save CF
++ NEG R4, R4
++ MOVD R5, 0(R2)(R10*1)
++ MOVD R6, 8(R2)(R10*1)
++ MOVD R7, 16(R2)(R10*1)
++ MOVD R1, 24(R2)(R10*1)
++
++ ADD $32, R10 // i += 4 -> i +=32
++ SUB $4, R3 // n -= 4
++ BGE U4 // if n >= 0 goto U4
++
++V4: ADD $4, R3 // n += 4
++ BLE E4 // if n <= 0 goto E4
++
++L4: // n > 0
++ MOVD 0(R8)(R10*1), R5
++ SUBC R4, R5
++ SUBE R4, R4 // save CF
++ NEG R4, R4
++ MOVD R5, 0(R2)(R10*1)
++
++ ADD $8, R10 // i++
++ SUB $1, R3 // n--
++ BGT L4 // if n > 0 goto L4
++
++E4: MOVD R4, c+56(FP) // return c
++
++ RET
++
++// func shlVU(z, x []Word, s uint) (c Word)
++TEXT ·shlVU(SB),NOSPLIT,$0
++ MOVD z_len+8(FP), R5
++ SUB $1, R5 // n--
++ BLT X8b // n < 0 (n <= 0)
++
++ // n > 0
++ MOVD s+48(FP), R4
++ CMPBEQ R0, R4, Z80 //handle 0 case beq
++ MOVD $64, R6
++ CMP R6, R4
++ BEQ Z864 //handle 64 case beq
++ MOVD z+0(FP), R2
++ MOVD x+24(FP), R8
++ SLD $3, R5 // n = n*8
++ SUB R4, R6, R7
++ MOVD (R8)(R5*1), R10 // w1 = x[i-1]
++ SRD R7, R10, R3
++ MOVD R3, c+56(FP)
++
++ MOVD $0, R1 // i = 0
++ BR E8
++
++ // i < n-1
++L8: MOVD R10, R3 // w = w1
++ MOVD -8(R8)(R5*1), R10 // w1 = x[i+1]
++
++ SLD R4, R3 // w<<s | w1>>ŝ
++ SRD R7, R10, R6
++ OR R6, R3
++ MOVD R3, (R2)(R5*1) // z[i] = w<<s | w1>>ŝ
++ SUB $8, R5 // i--
++
++E8: CMP R5, R0
++ BGT L8 // i < n-1
++
++ // i >= n-1
++X8a: SLD R4, R10 // w1<<s
++ MOVD R10, (R2) // z[0] = w1<<s
++ RET
++
++X8b: MOVD R0, c+56(FP)
++ RET
++
++Z80: MOVD z+0(FP), R2
++ MOVD x+24(FP), R8
++ SLD $3, R5 // n = n*8
++
++ MOVD (R8), R10
++ MOVD $0, R3
++ MOVD R3, c+56(FP)
++
++ MOVD $0, R1 // i = 0
++ BR E8Z
++
++ // i < n-1
++L8Z: MOVD R10, R3
++ MOVD 8(R8)(R1*1), R10
++
++ MOVD R3, (R2)(R1*1)
++ ADD $8, R1
++
++E8Z: CMP R1, R5
++ BLT L8Z
++
++ // i >= n-1
++ MOVD R10, (R2)(R5*1)
++ RET
++
++Z864: MOVD z+0(FP), R2
++ MOVD x+24(FP), R8
++ SLD $3, R5 // n = n*8
++ MOVD (R8)(R5*1), R3 // w1 = x[n-1]
++ MOVD R3, c+56(FP) // z[i] = x[n-1]
++
++ BR E864
++
++ // i < n-1
++L864: MOVD -8(R8)(R5*1), R3
++
++ MOVD R3, (R2)(R5*1) // z[i] = x[n-1]
++ SUB $8, R5 // i--
++
++E864: CMP R5, R0
++ BGT L864 // i < n-1
++
++ MOVD R0, (R2) // z[n-1] = 0
++
++ RET
++
++
++// CX = R4, r8 = r8, r10 = r2 , r11 = r5, DX = r3, AX = r10 , BX = R1 , 64-count = r7 (R0 set to 0) temp = R6
++// func shrVU(z, x []Word, s uint) (c Word)
++TEXT ·shrVU(SB),NOSPLIT,$0
++ MOVD z_len+8(FP), R5
++ SUB $1, R5 // n--
++ BLT X9b // n < 0 (n <= 0)
++
++ // n > 0
++ MOVD s+48(FP), R4
++ CMPBEQ R0, R4, ZB0 //handle 0 case beq
++ MOVD $64, R6
++ CMP R6, R4
++ BEQ ZB64 //handle 64 case beq
++ MOVD z+0(FP), R2
++ MOVD x+24(FP), R8
++ SLD $3, R5 // n = n*8
++ SUB R4, R6, R7
++ MOVD (R8), R10 // w1 = x[0]
++ SLD R7, R10, R3
++ MOVD R3, c+56(FP)
++
++ MOVD $0, R1 // i = 0
++ BR E9
++
++ // i < n-1
++L9: MOVD R10, R3 // w = w1
++ MOVD 8(R8)(R1*1), R10 // w1 = x[i+1]
++
++ SRD R4, R3 // w>>s | w1<<s
++ SLD R7, R10, R6
++ OR R6, R3
++ MOVD R3, (R2)(R1*1) // z[i] = w>>s | w1<<s
++ ADD $8, R1 // i++
++
++E9: CMP R1, R5
++ BLT L9 // i < n-1
++
++ // i >= n-1
++X9a: SRD R4, R10 // w1>>s
++ MOVD R10, (R2)(R5*1) // z[n-1] = w1>>s
++ RET
++
++X9b: MOVD R0, c+56(FP)
++ RET
++
++ZB0: MOVD z+0(FP), R2
++ MOVD x+24(FP), R8
++ SLD $3, R5 // n = n*8
++
++ MOVD (R8), R10 // w1 = x[0]
++ MOVD $0, R3 // R10 << 64
++ MOVD R3, c+56(FP)
++
++ MOVD $0, R1 // i = 0
++ BR E9Z
++
++ // i < n-1
++L9Z: MOVD R10, R3 // w = w1
++ MOVD 8(R8)(R1*1), R10 // w1 = x[i+1]
++
++ MOVD R3, (R2)(R1*1) // z[i] = w>>s | w1<<s
++ ADD $8, R1 // i++
++
++E9Z: CMP R1, R5
++ BLT L9Z // i < n-1
++
++ // i >= n-1
++ MOVD R10, (R2)(R5*1) // z[n-1] = w1>>s
++ RET
++
++ZB64: MOVD z+0(FP), R2
++ MOVD x+24(FP), R8
++ SLD $3, R5 // n = n*8
++ MOVD (R8), R3 // w1 = x[0]
++ MOVD R3, c+56(FP)
++
++ MOVD $0, R1 // i = 0
++ BR E964
++
++ // i < n-1
++L964: MOVD 8(R8)(R1*1), R3 // w1 = x[i+1]
++
++ MOVD R3, (R2)(R1*1) // z[i] = w>>s | w1<<s
++ ADD $8, R1 // i++
++
++E964: CMP R1, R5
++ BLT L964 // i < n-1
++
++ // i >= n-1
++ MOVD $0, R10 // w1>>s
++ MOVD R10, (R2)(R5*1) // z[n-1] = w1>>s
++ RET
++
++TEXT ·mulAddVWW(SB),NOSPLIT,$0
++ BR ·mulAddVWW_g(SB)
++
++TEXT ·addMulVVW(SB),NOSPLIT,$0
++ BR ·addMulVVW_g(SB)
++
++TEXT ·divWVW(SB),NOSPLIT,$0
++ BR ·divWVW_g(SB)
++
++// func bitLen(x Word) (n int)
++TEXT ·bitLen(SB),NOSPLIT,$0
++ MOVD x+0(FP), R2
++ WORD $0xb9830022 // FLOGR R2,R2
++ MOVD $64, R3
++ SUB R2, R3
++ MOVD R3, n+8(FP)
++ RET
+diff --git a/src/math/dim_s390x.s b/src/math/dim_s390x.s
+new file mode 100644
+index 0000000..55c8ac1
+--- /dev/null
++++ b/src/math/dim_s390x.s
+@@ -0,0 +1,132 @@
++// Copyright 2015 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.
++
++// Based on dim_amd64.s
++
++#include "textflag.h"
++
++#define PosInf 0x7FF0000000000000
++#define NaN 0x7FF8000000000001
++#define NegInf 0xFFF0000000000000
++
++// func Dim(x, y float64) float64
++TEXT ·Dim(SB),NOSPLIT,$0
++ // (+Inf, +Inf) special case
++ MOVD x+0(FP), R2
++ MOVD y+8(FP), R3
++ MOVD $PosInf, R4
++ CMPUBNE R4, R2, dim2
++ CMPUBEQ R4, R3, bothInf
++dim2: // (-Inf, -Inf) special case
++ MOVD $NegInf, R4
++ CMPUBNE R4, R2, dim3
++ CMPUBEQ R4, R3, bothInf
++dim3: // (NaN, x) or (x, NaN)
++ MOVD $~(1<<63), R5
++ MOVD $PosInf, R4
++ AND R5, R2 // x = |x|
++ CMPUBLT R4, R2, isDimNaN
++ AND R5, R3 // y = |y|
++ CMPUBLT R4, R3, isDimNaN
++
++ FMOVD x+0(FP), F1
++ FMOVD y+8(FP), F2
++ FSUB F2, F1
++ FMOVD $(0.0), F2
++ FCMPU F2, F1
++ BGE +3(PC)
++ FMOVD F1, ret+16(FP)
++ RET
++ FMOVD F2, ret+16(FP)
++ RET
++bothInf: // Dim(-Inf, -Inf) or Dim(+Inf, +Inf)
++isDimNaN:
++ MOVD $NaN, R4
++ MOVD R4, ret+16(FP)
++ RET
++
++// func ·Max(x, y float64) float64
++TEXT ·Max(SB),NOSPLIT,$0
++ // +Inf special cases
++ MOVD $PosInf, R4
++ MOVD x+0(FP), R8
++ CMPUBEQ R4, R8, isPosInf
++ MOVD y+8(FP), R9
++ CMPUBEQ R4, R9, isPosInf
++ // NaN special cases
++ MOVD $~(1<<63), R5 // bit mask
++ MOVD $PosInf, R4
++ MOVD R8, R2
++ AND R5, R2 // x = |x|
++ CMPUBLT R4, R2, isMaxNaN
++ MOVD R9, R3
++ AND R5, R3 // y = |y|
++ CMPUBLT R4, R3, isMaxNaN
++ // ±0 special cases
++ OR R3, R2
++ BEQ isMaxZero
++
++ FMOVD x+0(FP), F1
++ FMOVD y+8(FP), F2
++ FCMPU F2, F1
++ BGT +3(PC)
++ FMOVD F1, ret+16(FP)
++ RET
++ FMOVD F2, ret+16(FP)
++ RET
++isMaxNaN: // return NaN
++ MOVD $NaN, R4
++isPosInf: // return +Inf
++ MOVD R4, ret+16(FP)
++ RET
++isMaxZero:
++ MOVD $(1<<63), R4 // -0.0
++ CMPUBEQ R4, R8, +3(PC)
++ MOVD R8, ret+16(FP) // return 0
++ RET
++ MOVD R9, ret+16(FP) // return other 0
++ RET
++
++// func Min(x, y float64) float64
++TEXT ·Min(SB),NOSPLIT,$0
++ // -Inf special cases
++ MOVD $NegInf, R4
++ MOVD x+0(FP), R8
++ CMPUBEQ R4, R8, isNegInf
++ MOVD y+8(FP), R9
++ CMPUBEQ R4, R9, isNegInf
++ // NaN special cases
++ MOVD $~(1<<63), R5
++ MOVD $PosInf, R4
++ MOVD R8, R2
++ AND R5, R2 // x = |x|
++ CMPUBLT R4, R2, isMinNaN
++ MOVD R9, R3
++ AND R5, R3 // y = |y|
++ CMPUBLT R4, R3, isMinNaN
++ // ±0 special cases
++ OR R3, R2
++ BEQ isMinZero
++
++ FMOVD x+0(FP), F1
++ FMOVD y+8(FP), F2
++ FCMPU F2, F1
++ BLT +3(PC)
++ FMOVD F1, ret+16(FP)
++ RET
++ FMOVD F2, ret+16(FP)
++ RET
++isMinNaN: // return NaN
++ MOVD $NaN, R4
++isNegInf: // return -Inf
++ MOVD R4, ret+16(FP)
++ RET
++isMinZero:
++ MOVD $(1<<63), R4 // -0.0
++ CMPUBEQ R4, R8, +3(PC)
++ MOVD R9, ret+16(FP) // return other 0
++ RET
++ MOVD R8, ret+16(FP) // return -0
++ RET
++
+diff --git a/src/math/sqrt_s390x.s b/src/math/sqrt_s390x.s
+new file mode 100644
+index 0000000..3989b89
+--- /dev/null
++++ b/src/math/sqrt_s390x.s
+@@ -0,0 +1,12 @@
++// Copyright 2015 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.
++
++#include "textflag.h"
++
++// func Sqrt(x float64) float64
++TEXT ·Sqrt(SB),NOSPLIT,$0
++ FMOVD x+0(FP), F1
++ FSQRT F1, F1
++ FMOVD F1, ret+8(FP)
++ RET
+diff --git a/src/math/stubs_s390x.s b/src/math/stubs_s390x.s
+new file mode 100644
+index 0000000..55d51ae
+--- /dev/null
++++ b/src/math/stubs_s390x.s
+@@ -0,0 +1,79 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "../runtime/textflag.h"
++
++TEXT ·Asin(SB),NOSPLIT,$0
++ BR ·asin(SB)
++
++TEXT ·Acos(SB),NOSPLIT,$0
++ BR ·acos(SB)
++
++TEXT ·Atan2(SB),NOSPLIT,$0
++ BR ·atan2(SB)
++
++TEXT ·Atan(SB),NOSPLIT,$0
++ BR ·atan(SB)
++
++TEXT ·Exp2(SB),NOSPLIT,$0
++ BR ·exp2(SB)
++
++TEXT ·Expm1(SB),NOSPLIT,$0
++ BR ·expm1(SB)
++
++TEXT ·Exp(SB),NOSPLIT,$0
++ BR ·exp(SB)
++
++TEXT ·Floor(SB),NOSPLIT,$0
++ BR ·floor(SB)
++
++TEXT ·Ceil(SB),NOSPLIT,$0
++ BR ·ceil(SB)
++
++TEXT ·Trunc(SB),NOSPLIT,$0
++ BR ·trunc(SB)
++
++TEXT ·Frexp(SB),NOSPLIT,$0
++ BR ·frexp(SB)
++
++TEXT ·Hypot(SB),NOSPLIT,$0
++ BR ·hypot(SB)
++
++TEXT ·Ldexp(SB),NOSPLIT,$0
++ BR ·ldexp(SB)
++
++TEXT ·Log10(SB),NOSPLIT,$0
++ BR ·log10(SB)
++
++TEXT ·Log2(SB),NOSPLIT,$0
++ BR ·log2(SB)
++
++TEXT ·Log1p(SB),NOSPLIT,$0
++ BR ·log1p(SB)
++
++TEXT ·Log(SB),NOSPLIT,$0
++ BR ·log(SB)
++
++TEXT ·Modf(SB),NOSPLIT,$0
++ BR ·modf(SB)
++
++TEXT ·Mod(SB),NOSPLIT,$0
++ BR ·mod(SB)
++
++TEXT ·Remainder(SB),NOSPLIT,$0
++ BR ·remainder(SB)
++
++TEXT ·Sincos(SB),NOSPLIT,$0
++ BR ·sincos(SB)
++
++TEXT ·Sin(SB),NOSPLIT,$0
++ BR ·sin(SB)
++
++TEXT ·Cos(SB),NOSPLIT,$0
++ BR ·cos(SB)
++
++TEXT ·Tan(SB),NOSPLIT,$0
++ BR ·tan(SB)
+diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go
+index 5ef02a1..35f5847 100644
+--- a/src/net/dnsclient_unix_test.go
++++ b/src/net/dnsclient_unix_test.go
+@@ -80,7 +80,7 @@ func TestSpecialDomainName(t *testing.T) {
+
+ server := "8.8.8.8:53"
+ for _, tt := range specialDomainNameTests {
+- msg, err := exchange(server, tt.name, tt.qtype, 0)
++ msg, err := exchange(server, tt.name, tt.qtype, 5 * time.Second)
+ if err != nil {
+ t.Error(err)
+ continue
+diff --git a/src/net/lookup_test.go b/src/net/lookup_test.go
+index 677a5f5..facaff4 100644
+--- a/src/net/lookup_test.go
++++ b/src/net/lookup_test.go
+@@ -615,6 +615,11 @@ func TestLookupPort(t *testing.T) {
+ t.Skipf("not supported on %s", runtime.GOOS)
+ }
+
++ switch runtime.GOARCH {
++ case "s390x":
++ t.Skipf("services not all known on %s", runtime.GOARCH)
++ }
++
+ for _, tt := range lookupPortTests {
+ if port, err := LookupPort(tt.network, tt.name); port != tt.port || (err == nil) != tt.ok {
+ t.Errorf("LookupPort(%q, %q) = %d, %v; want %d", tt.network, tt.name, port, err, tt.port)
+diff --git a/src/reflect/asm_s390x.s b/src/reflect/asm_s390x.s
+new file mode 100644
+index 0000000..7c0e9b8
+--- /dev/null
++++ b/src/reflect/asm_s390x.s
+@@ -0,0 +1,32 @@
++// Copyright 2012 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.
++
++// +build s390x
++
++#include "textflag.h"
++#include "funcdata.h"
++
++// makeFuncStub is the code half of the function returned by MakeFunc.
++// See the comment on the declaration of makeFuncStub in makefunc.go
++// for more details.
++// No arg size here, runtime pulls arg map out of the func value.
++TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$16
++ NO_LOCAL_POINTERS
++ MOVD R12, 8(R15)
++ MOVD $argframe+0(FP), R3
++ MOVD R3, 16(R15)
++ BL ·callReflect(SB)
++ RET
++
++// methodValueCall is the code half of the function returned by makeMethodValue.
++// See the comment on the declaration of methodValueCall in makefunc.go
++// for more details.
++// No arg size here; runtime pulls arg map out of the func value.
++TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$16
++ NO_LOCAL_POINTERS
++ MOVD R12, 8(R15)
++ MOVD $argframe+0(FP), R3
++ MOVD R3, 16(R15)
++ BL ·callMethod(SB)
++ RET
+diff --git a/src/runtime/asm_s390x.s b/src/runtime/asm_s390x.s
+new file mode 100644
+index 0000000..a53975b
+--- /dev/null
++++ b/src/runtime/asm_s390x.s
+@@ -0,0 +1,1165 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "go_asm.h"
++#include "go_tls.h"
++#include "funcdata.h"
++#include "textflag.h"
++
++TEXT runtime·rt0_go(SB),NOSPLIT,$0
++ // R2 = argc; R3 = argv; R11 = temp; R13 = g; R15 = stack pointer
++ // C TLS base pointer in AR0:AR1
++
++ // initialize essential registers
++ BL runtime·reginit(SB)
++
++ SUB $24, R15
++ MOVW R2, 8(R15) // argc
++ MOVD R3, 16(R15) // argv
++
++ // create istack out of the given (operating system) stack.
++ // _cgo_init may update stackguard.
++ MOVD $runtime·g0(SB), g
++ MOVD R15, R11
++ SUB $(64*1024), R11
++ MOVD R11, g_stackguard0(g)
++ MOVD R11, g_stackguard1(g)
++ MOVD R11, (g_stack+stack_lo)(g)
++ MOVD R15, (g_stack+stack_hi)(g)
++
++ // if there is a _cgo_init, call it using the gcc ABI.
++ MOVD _cgo_init(SB), R11
++ CMPBEQ R11, $0, nocgo
++ MOVW AR0, R4 // (AR0 << 32 | AR1) is the TLS base pointer; MOVD is translated to EAR
++ SLD $32, R4, R4
++ MOVW AR1, R4 // arg 2: TLS base pointer
++ MOVD $setg_gcc<>(SB), R3 // arg 1: setg
++ MOVD g, R2 // arg 0: G
++ // C functions expect 160 bytes of space on caller stack frame
++ // and an 8-byte aligned stack pointer
++ MOVD R15, R9 // save current stack (R9 is preserved in the Linux ABI)
++ SUB $160, R15 // reserve 160 bytes
++ MOVD $~7, R6
++ AND R6, R15 // 8-byte align
++ BL R11 // this call clobbers volatile registers according to Linux ABI (R0-R5, R14)
++ MOVD R9, R15 // restore stack
++ XOR R0, R0 // zero R0
++
++nocgo:
++ // update stackguard after _cgo_init
++ MOVD (g_stack+stack_lo)(g), R2
++ ADD $const__StackGuard, R2
++ MOVD R2, g_stackguard0(g)
++ MOVD R2, g_stackguard1(g)
++
++ // set the per-goroutine and per-mach "registers"
++ MOVD $runtime·m0(SB), R2
++
++ // save m->g0 = g0
++ MOVD g, m_g0(R2)
++ // save m0 to g0->m
++ MOVD R2, g_m(g)
++
++ BL runtime·check(SB)
++
++ // argc/argv are already prepared on stack
++ BL runtime·args(SB)
++ BL runtime·osinit(SB)
++ BL runtime·schedinit(SB)
++
++ // create a new goroutine to start program
++ MOVD $runtime·mainPC(SB), R2 // entry
++ SUB $24, R15
++ MOVD R2, 16(R15)
++ MOVD R0, 8(R15)
++ MOVD R0, 0(R15)
++ BL runtime·newproc(SB)
++ ADD $24, R15
++
++ // start this M
++ BL runtime·mstart(SB)
++
++ MOVD R0, 1(R0)
++ RET
++
++DATA runtime·mainPC+0(SB)/8,$runtime·main(SB)
++GLOBL runtime·mainPC(SB),RODATA,$8
++
++TEXT runtime·breakpoint(SB),NOSPLIT,$-8-0
++ MOVD R0, 2(R0) // TODO: TD
++ RET
++
++TEXT runtime·asminit(SB),NOSPLIT,$-8-0
++ RET
++
++TEXT _cgo_load_g(SB),NOSPLIT,$-8-0
++ // crosscall_ppc64 and crosscall2 need to reginit, but can't
++ // get at the 'runtime.load_g' symbol.
++ BR runtime·load_g(SB)
++
++TEXT _cgo_reginit(SB),NOSPLIT,$-8-0
++ // crosscall_ppc64 and crosscall2 need to reginit, but can't
++ // get at the 'runtime.reginit' symbol.
++ BR runtime·reginit(SB)
++
++TEXT runtime·reginit(SB),NOSPLIT,$-8-0
++ // set R0 to zero, it's expected by the toolchain
++ XOR R0, R0
++ // initialize essential FP registers
++ FMOVD $4503601774854144.0, F11
++ FMOVD $1.0, F13
++ FSUB F13, F13, F12
++ FADD F13, F13, F14
++ RET
++
++/*
++ * go-routine
++ */
++
++// void gosave(Gobuf*)
++// save state in Gobuf; setjmp
++TEXT runtime·gosave(SB), NOSPLIT, $-8-8
++ MOVD buf+0(FP), R3
++ MOVD R15, gobuf_sp(R3)
++ MOVD LR, R10
++ MOVD R10, gobuf_pc(R3)
++ MOVD g, gobuf_g(R3)
++ MOVD R0, gobuf_lr(R3)
++ MOVD R0, gobuf_ret(R3)
++ MOVD R0, gobuf_ctxt(R3)
++ RET
++
++// void gogo(Gobuf*)
++// restore state from Gobuf; longjmp
++TEXT runtime·gogo(SB), NOSPLIT, $-8-8
++ MOVD buf+0(FP), R5
++ MOVD gobuf_g(R5), g // make sure g is not nil
++ BL runtime·save_g(SB)
++
++ MOVD 0(g), R4
++ MOVD gobuf_sp(R5), R15
++ MOVD gobuf_lr(R5), R10
++ MOVD R10, LR
++ MOVD gobuf_ret(R5), R3
++ MOVD gobuf_ctxt(R5), R12
++ MOVD R0, gobuf_sp(R5)
++ MOVD R0, gobuf_ret(R5)
++ MOVD R0, gobuf_lr(R5)
++ MOVD R0, gobuf_ctxt(R5)
++ CMP R0, R0 // set condition codes for == test, needed by stack split
++ MOVD gobuf_pc(R5), R10
++ BR (R10)
++
++// void mcall(fn func(*g))
++// Switch to m->g0's stack, call fn(g).
++// Fn must never return. It should gogo(&g->sched)
++// to keep running g.
++TEXT runtime·mcall(SB), NOSPLIT, $-8-8
++ // Save caller state in g->sched
++ MOVD R15, (g_sched+gobuf_sp)(g)
++ MOVD LR, R10
++ MOVD R10, (g_sched+gobuf_pc)(g)
++ MOVD R0, (g_sched+gobuf_lr)(g)
++ MOVD g, (g_sched+gobuf_g)(g)
++
++ // Switch to m->g0 & its stack, call fn.
++ MOVD g, R3
++ MOVD g_m(g), R8
++ MOVD m_g0(R8), g
++ BL runtime·save_g(SB)
++ CMP g, R3
++ BNE 2(PC)
++ BR runtime·badmcall(SB)
++ MOVD fn+0(FP), R12 // context
++ MOVD 0(R12), R4 // code pointer
++ MOVD R4, R10
++ MOVD (g_sched+gobuf_sp)(g), R15 // sp = m->g0->sched.sp
++ SUB $16, R15
++ MOVD R3, 8(R15)
++ MOVD R0, 0(R15)
++ BL (R10)
++ BR runtime·badmcall2(SB)
++
++// systemstack_switch is a dummy routine that systemstack leaves at the bottom
++// of the G stack. We need to distinguish the routine that
++// lives at the bottom of the G stack from the one that lives
++// at the top of the system stack because the one at the top of
++// the system stack terminates the stack walk (see topofstack()).
++TEXT runtime·systemstack_switch(SB), NOSPLIT, $0-0
++ UNDEF
++ BL (LR) // make sure this function is not leaf
++ RET
++
++// func systemstack(fn func())
++TEXT runtime·systemstack(SB), NOSPLIT, $0-8
++ MOVD fn+0(FP), R3 // R3 = fn
++ MOVD R3, R12 // context
++ MOVD g_m(g), R4 // R4 = m
++
++ MOVD m_gsignal(R4), R5 // R5 = gsignal
++ CMPBEQ g, R5, noswitch
++
++ MOVD m_g0(R4), R5 // R5 = g0
++ CMPBEQ g, R5, noswitch
++
++ MOVD m_curg(R4), R6
++ CMPBEQ g, R6, switch
++
++ // Bad: g is not gsignal, not g0, not curg. What is it?
++ // Hide call from linker nosplit analysis.
++ MOVD $runtime·badsystemstack(SB), R3
++ MOVD R3, R10
++ BL (R10)
++
++switch:
++ // save our state in g->sched. Pretend to
++ // be systemstack_switch if the G stack is scanned.
++ MOVD $runtime·systemstack_switch(SB), R6
++ ADD $16, R6 // get past prologue
++ MOVD R6, (g_sched+gobuf_pc)(g)
++ MOVD R15, (g_sched+gobuf_sp)(g)
++ MOVD R0, (g_sched+gobuf_lr)(g)
++ MOVD g, (g_sched+gobuf_g)(g)
++
++ // switch to g0
++ MOVD R5, g
++ BL runtime·save_g(SB)
++ MOVD (g_sched+gobuf_sp)(g), R3
++ // make it look like mstart called systemstack on g0, to stop traceback
++ SUB $8, R3
++ MOVD $runtime·mstart(SB), R4
++ MOVD R4, 0(R3)
++ MOVD R3, R15
++
++ // call target function
++ MOVD 0(R12), R3 // code pointer
++ MOVD R3, R10
++ BL (R10)
++
++ // switch back to g
++ MOVD g_m(g), R3
++ MOVD m_curg(R3), g
++ BL runtime·save_g(SB)
++ MOVD (g_sched+gobuf_sp)(g), R15
++ MOVD R0, (g_sched+gobuf_sp)(g)
++ RET
++
++noswitch:
++ // already on m stack, just call directly
++ MOVD 0(R12), R3 // code pointer
++ MOVD R3, R10
++ BL (R10)
++ RET
++
++/*
++ * support for morestack
++ */
++
++// Called during function prolog when more stack is needed.
++// Caller has already loaded:
++// R3: framesize, R4: argsize, R5: LR
++//
++// The traceback routines see morestack on a g0 as being
++// the top of a stack (for example, morestack calling newstack
++// calling the scheduler calling newm calling gc), so we must
++// record an argument size. For that purpose, it has no arguments.
++TEXT runtime·morestack(SB),NOSPLIT,$-8-0
++ // Cannot grow scheduler stack (m->g0).
++ MOVD g_m(g), R7
++ MOVD m_g0(R7), R8
++ CMPBNE g, R8, 2(PC)
++ BL runtime·abort(SB)
++
++ // Cannot grow signal stack (m->gsignal).
++ MOVD m_gsignal(R7), R8
++ CMP g, R8
++ BNE 2(PC)
++ BL runtime·abort(SB)
++
++ // Called from f.
++ // Set g->sched to context in f.
++ MOVD R12, (g_sched+gobuf_ctxt)(g)
++ MOVD R15, (g_sched+gobuf_sp)(g)
++ MOVD LR, R8
++ MOVD R8, (g_sched+gobuf_pc)(g)
++ MOVD R5, (g_sched+gobuf_lr)(g)
++
++ // Called from f.
++ // Set m->morebuf to f's caller.
++ MOVD R5, (m_morebuf+gobuf_pc)(R7) // f's caller's PC
++ MOVD R15, (m_morebuf+gobuf_sp)(R7) // f's caller's SP
++ MOVD g, (m_morebuf+gobuf_g)(R7)
++
++ // Call newstack on m->g0's stack.
++ MOVD m_g0(R7), g
++ BL runtime·save_g(SB)
++ MOVD (g_sched+gobuf_sp)(g), R15
++ BL runtime·newstack(SB)
++
++ // Not reached, but make sure the return PC from the call to newstack
++ // is still in this function, and not the beginning of the next.
++ UNDEF
++
++TEXT runtime·morestack_noctxt(SB),NOSPLIT,$-8-0
++ MOVD $0, R12
++ BR runtime·morestack(SB)
++
++TEXT runtime·stackBarrier(SB),NOSPLIT,$0
++ // We came here via a RET to an overwritten LR.
++ // R3 may be live. Other registers are available.
++
++ // Get the original return PC, g.stkbar[g.stkbarPos].savedLRVal.
++ MOVD (g_stkbar+slice_array)(g), R4
++ MOVD g_stkbarPos(g), R5
++ MOVD $stkbar__size, R6
++ MULLD R5, R6
++ ADD R4, R6
++ MOVD stkbar_savedLRVal(R6), R6
++ // Record that this stack barrier was hit.
++ ADD $1, R5
++ MOVD R5, g_stkbarPos(g)
++ // Jump to the original return PC.
++ MOVD R6, R10
++ BR (R10)
++
++// reflectcall: call a function with the given argument list
++// func call(argtype *_type, f *FuncVal, arg *byte, argsize, retoffset uint32).
++// we don't have variable-sized frames, so we use a small number
++// of constant-sized-frame functions to encode a few bits of size in the pc.
++// Caution: ugly multiline assembly macros in your future!
++
++#define DISPATCH(NAME,MAXSIZE) \
++ MOVD $MAXSIZE, R10; \
++ CMP R3, R10; \
++ BGT 3(PC); \
++ MOVD $NAME(SB), R10; \
++ BR (R10)
++// Note: can't just "BR NAME(SB)" - bad inlining results.
++
++TEXT reflect·call(SB), NOSPLIT, $0-0
++ BR ·reflectcall(SB)
++
++TEXT ·reflectcall(SB), NOSPLIT, $-8-32
++ MOVWZ argsize+24(FP), R3
++ // NOTE(rsc): No call16, because CALLFN needs four words
++ // of argument space to invoke callwritebarrier.
++ DISPATCH(runtime·call32, 32)
++ DISPATCH(runtime·call64, 64)
++ DISPATCH(runtime·call128, 128)
++ DISPATCH(runtime·call256, 256)
++ DISPATCH(runtime·call512, 512)
++ DISPATCH(runtime·call1024, 1024)
++ DISPATCH(runtime·call2048, 2048)
++ DISPATCH(runtime·call4096, 4096)
++ DISPATCH(runtime·call8192, 8192)
++ DISPATCH(runtime·call16384, 16384)
++ DISPATCH(runtime·call32768, 32768)
++ DISPATCH(runtime·call65536, 65536)
++ DISPATCH(runtime·call131072, 131072)
++ DISPATCH(runtime·call262144, 262144)
++ DISPATCH(runtime·call524288, 524288)
++ DISPATCH(runtime·call1048576, 1048576)
++ DISPATCH(runtime·call2097152, 2097152)
++ DISPATCH(runtime·call4194304, 4194304)
++ DISPATCH(runtime·call8388608, 8388608)
++ DISPATCH(runtime·call16777216, 16777216)
++ DISPATCH(runtime·call33554432, 33554432)
++ DISPATCH(runtime·call67108864, 67108864)
++ DISPATCH(runtime·call134217728, 134217728)
++ DISPATCH(runtime·call268435456, 268435456)
++ DISPATCH(runtime·call536870912, 536870912)
++ DISPATCH(runtime·call1073741824, 1073741824)
++ MOVD $runtime·badreflectcall(SB), R10
++ BR (R10)
++
++#define CALLFN(NAME,MAXSIZE) \
++TEXT NAME(SB), WRAPPER, $MAXSIZE-24; \
++ NO_LOCAL_POINTERS; \
++ /* copy arguments to stack */ \
++ MOVD arg+16(FP), R3; \
++ MOVWZ argsize+24(FP), R4; \
++ MOVD R15, R5; \
++ ADD $(8-1), R5; \
++ SUB $1, R3; \
++ ADD R5, R4; \
++ CMP R5, R4; \
++ BEQ 6(PC); \
++ ADD $1, R3; \
++ ADD $1, R5; \
++ MOVBZ 0(R3), R6; \
++ MOVBZ R6, 0(R5); \
++ BR -6(PC); \
++ /* call function */ \
++ MOVD f+8(FP), R12; \
++ MOVD (R12), R10; \
++ PCDATA $PCDATA_StackMapIndex, $0; \
++ BL (R10); \
++ /* copy return values back */ \
++ MOVD arg+16(FP), R3; \
++ MOVWZ n+24(FP), R4; \
++ MOVWZ retoffset+28(FP), R6; \
++ MOVD R15, R5; \
++ ADD R6, R5; \
++ ADD R6, R3; \
++ SUB R6, R4; \
++ ADD $(8-1), R5; \
++ SUB $1, R3; \
++ ADD R5, R4; \
++loop: \
++ CMP R5, R4; \
++ BEQ end; \
++ ADD $1, R5; \
++ ADD $1, R3; \
++ MOVBZ 0(R5), R6; \
++ MOVBZ R6, 0(R3); \
++ BR loop; \
++end: \
++ /* execute write barrier updates */ \
++ MOVD argtype+0(FP), R7; \
++ MOVD arg+16(FP), R3; \
++ MOVWZ n+24(FP), R4; \
++ MOVWZ retoffset+28(FP), R6; \
++ MOVD R7, 8(R15); \
++ MOVD R3, 16(R15); \
++ MOVD R4, 24(R15); \
++ MOVD R6, 32(R15); \
++ BL runtime·callwritebarrier(SB); \
++ RET
++
++CALLFN(·call16, 16)
++CALLFN(·call32, 32)
++CALLFN(·call64, 64)
++CALLFN(·call128, 128)
++CALLFN(·call256, 256)
++CALLFN(·call512, 512)
++CALLFN(·call1024, 1024)
++CALLFN(·call2048, 2048)
++CALLFN(·call4096, 4096)
++CALLFN(·call8192, 8192)
++CALLFN(·call16384, 16384)
++CALLFN(·call32768, 32768)
++CALLFN(·call65536, 65536)
++CALLFN(·call131072, 131072)
++CALLFN(·call262144, 262144)
++CALLFN(·call524288, 524288)
++CALLFN(·call1048576, 1048576)
++CALLFN(·call2097152, 2097152)
++CALLFN(·call4194304, 4194304)
++CALLFN(·call8388608, 8388608)
++CALLFN(·call16777216, 16777216)
++CALLFN(·call33554432, 33554432)
++CALLFN(·call67108864, 67108864)
++CALLFN(·call134217728, 134217728)
++CALLFN(·call268435456, 268435456)
++CALLFN(·call536870912, 536870912)
++CALLFN(·call1073741824, 1073741824)
++
++TEXT runtime·procyield(SB),NOSPLIT,$0-0
++ RET
++
++// void jmpdefer(fv, sp);
++// called from deferreturn.
++// 1. grab stored LR for caller
++// 2. sub 6 bytes to get back to BL deferreturn (size of BRASL instruction)
++// 3. BR to fn
++TEXT runtime·jmpdefer(SB), NOSPLIT, $-8-16
++ MOVD 0(R15), R10
++ SUB $6, R10
++ MOVD R10, LR
++
++ MOVD fv+0(FP), R12
++ MOVD argp+8(FP), R15
++ SUB $8, R15
++ MOVD 0(R12), R3
++ MOVD R3, R10
++ BR (R10)
++
++// Save state of caller into g->sched. Smashes R31.
++TEXT gosave<>(SB),NOSPLIT,$-8
++ MOVD LR, R10
++ MOVD R10, (g_sched+gobuf_pc)(g)
++ MOVD R15, (g_sched+gobuf_sp)(g)
++ MOVD R0, (g_sched+gobuf_lr)(g)
++ MOVD R0, (g_sched+gobuf_ret)(g)
++ MOVD R0, (g_sched+gobuf_ctxt)(g)
++ RET
++
++// func asmcgocall(fn, arg unsafe.Pointer) int32
++// Call fn(arg) on the scheduler stack,
++// aligned appropriately for the gcc ABI.
++// See cgocall.go for more details.
++TEXT ·asmcgocall(SB),NOSPLIT,$0-20
++ // R2 = argc; R3 = argv; R11 = temp; R13 = g; R15 = stack pointer
++ // C TLS base pointer in AR0:AR1
++ MOVD fn+0(FP), R3
++ MOVD arg+8(FP), R4
++
++ MOVD R15, R2 // save original stack pointer
++ MOVD g, R5
++
++ // Figure out if we need to switch to m->g0 stack.
++ // We get called to create new OS threads too, and those
++ // come in on the m->g0 stack already.
++ MOVD g_m(g), R6
++ MOVD m_g0(R6), R6
++ CMPBEQ R6, g, g0
++ BL gosave<>(SB)
++ MOVD R6, g
++ BL runtime·save_g(SB)
++ MOVD (g_sched+gobuf_sp)(g), R15
++
++ // Now on a scheduling stack (a pthread-created stack).
++g0:
++ // Save room for two of our pointers, plus 160 bytes of callee
++ // save area that lives on the caller stack.
++ SUB $176, R15
++ MOVD $~7, R6
++ AND R6, R15 // 8-byte alignment for gcc ABI
++ MOVD R5, 168(R15) // save old g on stack
++ MOVD (g_stack+stack_hi)(R5), R5
++ SUB R2, R5
++ MOVD R5, 160(R15) // save depth in old g stack (can't just save SP, as stack might be copied during a callback)
++ MOVD R0, 0(R15) // clear back chain pointer (TODO can we give it real back trace information?)
++ MOVD R3, R10
++ MOVD R4, R2 // arg in R2
++ BL R10 // can clobber: R0-R5, R14, F0-F3, F5, F7-F15
++
++ XOR R0, R0 // set R0 back to 0.
++ // Restore g, stack pointer.
++ MOVD 168(R15), g
++ BL runtime·save_g(SB)
++ MOVD (g_stack+stack_hi)(g), R5
++ MOVD 160(R15), R6
++ SUB R6, R5
++ MOVD R5, R15
++
++ MOVW R2, ret+16(FP)
++ RET
++
++// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
++// Turn the fn into a Go func (by taking its address) and call
++// cgocallback_gofunc.
++TEXT runtime·cgocallback(SB),NOSPLIT,$24-24
++ MOVD $fn+0(FP), R3
++ MOVD R3, 8(R15)
++ MOVD frame+8(FP), R3
++ MOVD R3, 16(R15)
++ MOVD framesize+16(FP), R3
++ MOVD R3, 24(R15)
++ MOVD $runtime·cgocallback_gofunc(SB), R3
++ MOVD R3, R10
++ BL (R10)
++ RET
++
++// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
++// See cgocall.go for more details.
++TEXT ·cgocallback_gofunc(SB),NOSPLIT,$16-24
++ NO_LOCAL_POINTERS
++
++ // Load m and g from thread-local storage.
++ MOVB runtime·iscgo(SB), R3
++ CMPBEQ R3, $0, nocgo
++ BL runtime·load_g(SB)
++nocgo:
++
++ // If g is nil, Go did not create the current thread.
++ // Call needm to obtain one for temporary use.
++ // In this case, we're running on the thread stack, so there's
++ // lots of space, but the linker doesn't know. Hide the call from
++ // the linker analysis by using an indirect call.
++ CMPBEQ g, $0, needm
++
++ MOVD g_m(g), R8
++ MOVD R8, savedm-8(SP)
++ BR havem
++
++needm:
++ MOVD g, savedm-8(SP) // g is zero, so is m.
++ MOVD $runtime·needm(SB), R3
++ MOVD R3, R10
++ BL (R10)
++
++ // Set m->sched.sp = SP, so that if a panic happens
++ // during the function we are about to execute, it will
++ // have a valid SP to run on the g0 stack.
++ // The next few lines (after the havem label)
++ // will save this SP onto the stack and then write
++ // the same SP back to m->sched.sp. That seems redundant,
++ // but if an unrecovered panic happens, unwindm will
++ // restore the g->sched.sp from the stack location
++ // and then systemstack will try to use it. If we don't set it here,
++ // that restored SP will be uninitialized (typically 0) and
++ // will not be usable.
++ MOVD g_m(g), R8
++ MOVD m_g0(R8), R3
++ MOVD R15, (g_sched+gobuf_sp)(R3)
++
++havem:
++ // Now there's a valid m, and we're running on its m->g0.
++ // Save current m->g0->sched.sp on stack and then set it to SP.
++ // Save current sp in m->g0->sched.sp in preparation for
++ // switch back to m->curg stack.
++ // NOTE: unwindm knows that the saved g->sched.sp is at 8(R1) aka savedsp-16(SP).
++ MOVD m_g0(R8), R3
++ MOVD (g_sched+gobuf_sp)(R3), R4
++ MOVD R4, savedsp-16(SP)
++ MOVD R15, (g_sched+gobuf_sp)(R3)
++
++ // Switch to m->curg stack and call runtime.cgocallbackg.
++ // Because we are taking over the execution of m->curg
++ // but *not* resuming what had been running, we need to
++ // save that information (m->curg->sched) so we can restore it.
++ // We can restore m->curg->sched.sp easily, because calling
++ // runtime.cgocallbackg leaves SP unchanged upon return.
++ // To save m->curg->sched.pc, we push it onto the stack.
++ // This has the added benefit that it looks to the traceback
++ // routine like cgocallbackg is going to return to that
++ // PC (because the frame we allocate below has the same
++ // size as cgocallback_gofunc's frame declared above)
++ // so that the traceback will seamlessly trace back into
++ // the earlier calls.
++ //
++ // In the new goroutine, -16(SP) and -8(SP) are unused.
++ MOVD m_curg(R8), g
++ BL runtime·save_g(SB)
++ MOVD (g_sched+gobuf_sp)(g), R4 // prepare stack as R4
++ MOVD (g_sched+gobuf_pc)(g), R5
++ MOVD R5, -24(R4)
++ MOVD $-24(R4), R15
++ BL runtime·cgocallbackg(SB)
++
++ // Restore g->sched (== m->curg->sched) from saved values.
++ MOVD 0(R15), R5
++ MOVD R5, (g_sched+gobuf_pc)(g)
++ MOVD $24(R15), R4
++ MOVD R4, (g_sched+gobuf_sp)(g)
++
++ // Switch back to m->g0's stack and restore m->g0->sched.sp.
++ // (Unlike m->curg, the g0 goroutine never uses sched.pc,
++ // so we do not have to restore it.)
++ MOVD g_m(g), R8
++ MOVD m_g0(R8), g
++ BL runtime·save_g(SB)
++ MOVD (g_sched+gobuf_sp)(g), R15
++ MOVD savedsp-16(SP), R4
++ MOVD R4, (g_sched+gobuf_sp)(g)
++
++ // If the m on entry was nil, we called needm above to borrow an m
++ // for the duration of the call. Since the call is over, return it with dropm.
++ MOVD savedm-8(SP), R6
++ CMPBNE R6, $0, droppedm
++ MOVD $runtime·dropm(SB), R3
++ MOVD R3, R10
++ BL (R10)
++droppedm:
++
++ // Done!
++ RET
++
++// void setg(G*); set g. for use by needm.
++TEXT runtime·setg(SB), NOSPLIT, $0-8
++ MOVD gg+0(FP), g
++ // This only happens if iscgo, so jump straight to save_g
++ BL runtime·save_g(SB)
++ RET
++
++// void setg_gcc(G*); set g in C TLS.
++// Must obey the gcc calling convention.
++TEXT setg_gcc<>(SB),NOSPLIT,$-8-0
++ // The standard prologue clobbers LR (R14), which is callee-save in
++ // the C ABI, so we have to use $-8-0 and save LR ourselves.
++ MOVD LR, R1
++ // Also save g, R10, and R11 since they're callee-save in C ABI
++ MOVD R10, R3
++ MOVD g, R4
++ MOVD R11, R5
++
++ MOVD R2, g
++ BL runtime·save_g(SB)
++
++ MOVD R5, R11
++ MOVD R4, g
++ MOVD R3, R10
++ MOVD R1, LR
++ RET
++
++TEXT runtime·getcallerpc(SB),NOSPLIT,$8-16
++ MOVD 16(R15), R3 // LR saved by caller
++ MOVD runtime·stackBarrierPC(SB), R4
++ CMPBNE R3, R4, nobar
++ // Get original return PC.
++ BL runtime·nextBarrierPC(SB)
++ MOVD 8(R15), R3
++nobar:
++ MOVD R3, ret+8(FP)
++ RET
++
++TEXT runtime·setcallerpc(SB),NOSPLIT,$8-16
++ MOVD pc+8(FP), R3
++ MOVD 16(R15), R4
++ MOVD runtime·stackBarrierPC(SB), R5
++ CMPBEQ R4, R5, setbar
++ MOVD R3, 16(R15) // set LR in caller
++ RET
++setbar:
++ // Set the stack barrier return PC.
++ MOVD R3, 8(R15)
++ BL runtime·setNextBarrierPC(SB)
++ RET
++
++TEXT runtime·getcallersp(SB),NOSPLIT,$0-16
++ MOVD argp+0(FP), R3
++ SUB $8, R3
++ MOVD R3, ret+8(FP)
++ RET
++
++TEXT runtime·abort(SB),NOSPLIT,$-8-0
++ MOVW (R0), R0
++ UNDEF
++
++#define TBRL 268
++#define TBRU 269 /* Time base Upper/Lower */
++
++// int64 runtime·cputicks(void)
++TEXT runtime·cputicks(SB),NOSPLIT,$0-8
++ // The TOD clock on s390 counts from the year 1900 in ~250ps intervals.
++ // This means that since about 1972 the msb has been set, making the
++ // result of a call to STORE CLOCK (stck) a negative number.
++ // We clear the msb to make it positive.
++ STCK ret+0(FP) // serialises before and after call
++ MOVD ret+0(FP), R3 // R3 will wrap to 0 in the year 2043
++ SLD $1, R3
++ SRD $1, R3
++ MOVD R3, ret+0(FP)
++ RET
++
++// memhash_varlen(p unsafe.Pointer, h seed) uintptr
++// redirects to memhash(p, h, size) using the size
++// stored in the closure.
++TEXT runtime·memhash_varlen(SB),NOSPLIT,$40-24
++ GO_ARGS
++ NO_LOCAL_POINTERS
++ MOVD p+0(FP), R3
++ MOVD h+8(FP), R4
++ MOVD 8(R12), R5
++ MOVD R3, 8(R15)
++ MOVD R4, 16(R15)
++ MOVD R5, 24(R15)
++ BL runtime·memhash(SB)
++ MOVD 32(R15), R3
++ MOVD R3, ret+16(FP)
++ RET
++
++// AES hashing not implemented for ppc64
++TEXT runtime·aeshash(SB),NOSPLIT,$-8-0
++ MOVW (R0), R15
++TEXT runtime·aeshash32(SB),NOSPLIT,$-8-0
++ MOVW (R0), R15
++TEXT runtime·aeshash64(SB),NOSPLIT,$-8-0
++ MOVW (R0), R15
++TEXT runtime·aeshashstr(SB),NOSPLIT,$-8-0
++ MOVW (R0), R15
++
++TEXT runtime·clc(SB),NOSPLIT,$0-0
++ CLC $1, 0(R3), 0(R4)
++ RET
++
++TEXT runtime·memeq(SB),NOSPLIT,$-8-25
++ MOVD a+0(FP), R3
++ MOVD b+8(FP), R4
++ CMPBNE R3, R4, 4(PC)
++ MOVD $1, R5
++ MOVB R5, ret+24(FP)
++ RET
++ MOVD size+16(FP), R5
++loop:
++ CMPBEQ R5, $0, equal
++ CMP R5, $256
++ BLT tail
++ CLC $256, 0(R3), 0(R4)
++ BNE notequal
++ SUB $256, R5
++ ADD $256, R3
++ ADD $256, R4
++ BR loop
++tail:
++ SUB $1, R5
++ EXRL $runtime·clc(SB), R5
++ BEQ equal
++ MOVB R0, ret+24(FP)
++ RET
++equal:
++ MOVD $1, R5
++ MOVB R5, ret+24(FP)
++ RET
++notequal:
++ MOVB R0, ret+24(FP)
++ RET
++
++// memequal_varlen(a, b unsafe.Pointer) bool
++TEXT runtime·memequal_varlen(SB),NOSPLIT,$40-17
++ MOVD a+0(FP), R3
++ MOVD b+8(FP), R4
++ CMPBEQ R3, R4, eq
++ MOVD 8(R12), R5 // compiler stores size at offset 8 in the closure
++ MOVD R3, 8(R15)
++ MOVD R4, 16(R15)
++ MOVD R5, 24(R15)
++ BL runtime·memeq(SB)
++ MOVBZ 32(R15), R3
++ MOVB R3, ret+16(FP)
++ RET
++eq:
++ MOVD $1, R3
++ MOVB R3, ret+16(FP)
++ RET
++
++// eqstring tests whether two strings are equal.
++// The compiler guarantees that strings passed
++// to eqstring have equal length.
++// See runtime_test.go:eqstring_generic for
++// equivalent Go code.
++TEXT runtime·eqstring(SB),NOSPLIT,$0-33
++ MOVD s1str+0(FP), R3
++ MOVD s2str+16(FP), R4
++ CMPBNE R3, R4, 4(PC)
++ MOVD $1, R5
++ MOVB R5, ret+32(FP)
++ RET
++ MOVD s1len+8(FP), R5
++loop:
++ CMPBEQ R5, $0, equal
++ CMP R5, $256
++ BLT tail
++ CLC $256, 0(R3), 0(R4)
++ BNE notequal
++ SUB $256, R5
++ ADD $256, R3
++ ADD $256, R4
++ BR loop
++tail:
++ SUB $1, R5
++ EXRL $runtime·clc(SB), R5
++ BEQ equal
++ MOVB R0, ret+32(FP)
++ RET
++equal:
++ MOVD $1, R5
++ MOVB R5, ret+32(FP)
++ RET
++notequal:
++ MOVB R0, ret+32(FP)
++ RET
++
++// TODO: share code with memeq?
++TEXT bytes·Equal(SB),NOSPLIT,$0-49
++ MOVD a_len+8(FP), R5
++ MOVD b_len+32(FP), R6
++ CMPBNE R5, R6, notequal
++ MOVD a+0(FP), R3
++ MOVD b+24(FP), R4
++ CMPBLE R5, $32, tiny
++ CMP R5, $256
++ BGT loop
++tail:
++ SUB $1, R5
++ EXRL $runtime·clc(SB), R5
++ BEQ equal
++ MOVB R0, ret+48(FP)
++ RET
++loop:
++ CLC $256, 0(R3), 0(R4)
++ BNE notequal
++ SUB $256, R5
++ ADD $256, R3
++ ADD $256, R4
++ CMP R5, $256
++ BGE loop
++ CMPBNE R5, $0, tail
++equal:
++ MOVD $1, R5
++ MOVB R5, ret+48(FP)
++ RET
++notequal:
++ MOVB R0, ret+48(FP)
++ RET
++tiny:
++ CMPBLT R5, $16, lt16
++ MOVD 0(R3), R6
++ MOVD 0(R4), R7
++ CMPBNE R6, R7, notequal
++ MOVD 8(R3), R6
++ MOVD 8(R4), R7
++ CMPBNE R6, R7, notequal
++ ADD $16, R3
++ ADD $16, R4
++ SUB $16, R5
++lt16:
++ CMPBLT R5, $8, lt8
++ MOVD 0(R3), R6
++ MOVD 0(R4), R7
++ CMPBNE R6, R7, notequal
++ ADD $8, R3
++ ADD $8, R4
++ SUB $8, R5
++lt8:
++ CMPBLT R5, $4, lt4
++ MOVWZ 0(R3), R6
++ MOVWZ 0(R4), R7
++ CMPBNE R6, R7, notequal
++ ADD $4, R3
++ ADD $4, R4
++ SUB $4, R5
++lt4:
++#define CHECK(n) \
++ CMPBEQ R5, $n, equal \
++ MOVB n(R3), R6 \
++ MOVB n(R4), R7 \
++ CMP R6, R7 \
++ BNE notequal
++ CHECK(0)
++ CHECK(1)
++ CHECK(2)
++ CHECK(3)
++ BR equal
++
++TEXT bytes·IndexByte(SB),NOSPLIT,$0-40
++ MOVD s+0(FP), R3
++ MOVD s_len+8(FP), R4
++ MOVBZ c+24(FP), R5 // byte to find
++ CMP R4, $0
++ BEQ notfound
++ MOVD R3, R6 // store base for later
++ ADD R3, R4 // calculate end marker
++ MOVBZ R5, R0 // c needs to be in R0, leave until last minute as currently R0 is expected to be 0
++loop:
++ WORD $0xB25E0043 // srst %r4, %r3 (search the range [R3, R4))
++ BVS loop // interrupted - continue
++ BGT notfound
++found:
++ XOR R0, R0 // reset R0
++ SUB R6, R4 // remove base
++ MOVD R4, ret+32(FP)
++ RET
++notfound:
++ XOR R0, R0 // reset R0
++ MOVD $-1, R1
++ MOVD R1, ret+32(FP)
++ RET
++
++TEXT strings·IndexByte(SB),NOSPLIT,$0-32
++ MOVD p+0(FP), R3
++ MOVD b_len+8(FP), R4
++ MOVBZ c+16(FP), R5 // byte to find
++ CMP R4, $0
++ BEQ notfound
++ MOVD R3, R6 // store base for later
++ ADD R3, R4 // calculate end marker
++ MOVBZ R5, R0 // c needs to be in R0, leave until last minute as currently R0 is expected to be 0
++loop:
++ WORD $0xB25E0043 // srst %r4, %r3 (search the range [R3, R4))
++ BVS loop // interrupted - continue
++ BGT notfound
++found:
++ XOR R0, R0 // reset R0
++ SUB R6, R4 // remove base
++ MOVD R4, ret+24(FP)
++ RET
++notfound:
++ XOR R0, R0 // reset R0
++ MOVD $-1, R1
++ MOVD R1, ret+24(FP)
++ RET
++
++TEXT runtime·fastrand1(SB), NOSPLIT, $0-4
++ MOVD g_m(g), R4
++ MOVWZ m_fastrand(R4), R3
++ ADD R3, R3
++ CMPW R3, $0
++ BGE 2(PC)
++ XOR $0x88888eef, R3
++ MOVW R3, m_fastrand(R4)
++ MOVW R3, ret+0(FP)
++ RET
++
++TEXT runtime·return0(SB), NOSPLIT, $0
++ MOVW $0, R3
++ RET
++
++// Called from cgo wrappers, this function returns g->m->curg.stack.hi.
++// Must obey the gcc calling convention.
++TEXT _cgo_topofstack(SB),NOSPLIT,$-8
++ // g (R13), R10, R11 and LR (R14) are callee-save in the C ABI, so save them
++ MOVD g, R1
++ MOVD R10, R3
++ MOVD LR, R4
++ MOVD R11, R5
++
++ BL runtime·load_g(SB) // clobbers g (R13), R10, R11
++ MOVD g_m(g), R2
++ MOVD m_curg(R2), R2
++ MOVD (g_stack+stack_hi)(R2), R2
++
++ MOVD R1, g
++ MOVD R3, R10
++ MOVD R4, LR
++ MOVD R5, R11
++ RET
++
++// The top-most function running on a goroutine
++// returns to goexit+PCQuantum.
++TEXT runtime·goexit(SB),NOSPLIT,$-8-0
++ BYTE $0x07; BYTE $0x00; // 2-byte nop
++ BL runtime·goexit1(SB) // does not return
++ // traceback from goexit1 must hit code range of goexit
++ BYTE $0x07; BYTE $0x00; // 2-byte nop
++
++TEXT runtime·prefetcht0(SB),NOSPLIT,$0-8
++ RET
++
++TEXT runtime·prefetcht1(SB),NOSPLIT,$0-8
++ RET
++
++TEXT runtime·prefetcht2(SB),NOSPLIT,$0-8
++ RET
++
++TEXT runtime·prefetchnta(SB),NOSPLIT,$0-8
++ RET
++
++TEXT ·publicationBarrier(SB),NOSPLIT,$0-8
++ SYNC
++ RET
++
++TEXT runtime·cmpstring(SB),NOSPLIT,$0-40
++ MOVD s1_base+0(FP), R3
++ MOVD s1_len+8(FP), R4
++ MOVD s2_base+16(FP), R5
++ MOVD s2_len+24(FP), R6
++ MOVD R4, R8
++ CMPBLE R4, R6, s1min
++ MOVD R6, R8
++s1min:
++ CMPBEQ R8, $0, cmplengths
++ CMP R8, $256
++ BLE tail
++loop:
++ CLC $256, 0(R5), 0(R3)
++ BGT gt
++ BLT lt
++ SUB $256, R8
++ CMP R8, $256
++ BGT loop
++tail:
++ SUB $1, R8
++ EXRL $runtime·cmpbody_clc(SB), R8
++ BGT gt
++ BLT lt
++cmplengths:
++ CMP R4, R6
++ BEQ eq
++ BLT lt
++ BGT gt
++gt:
++ MOVD $1, R7
++ BR quit
++lt:
++ MOVD $-1, R7
++ BR quit
++eq:
++ MOVD $0, R7
++quit:
++ MOVD R7, ret+32(FP)
++ RET
++
++TEXT bytes·Compare(SB),NOSPLIT,$0-56
++ MOVD s1+0(FP), R3
++ MOVD s1+8(FP), R4
++ MOVD s2+24(FP), R5
++ MOVD s2+32(FP), R6
++ MOVD R4, R8
++ CMPBLE R4, R6, s1min
++ MOVD R6, R8
++s1min:
++ CMPBEQ R8, $0, cmplengths
++ CMP R8, $256
++ BLE tail
++loop:
++ CLC $256, 0(R5), 0(R3)
++ BGT gt
++ BLT lt
++ SUB $256, R8
++ CMP R8, $256
++ BGT loop
++tail:
++ SUB $1, R8
++ EXRL $runtime·cmpbody_clc(SB), R8
++ BGT gt
++ BLT lt
++cmplengths:
++ CMP R4, R6
++ BEQ eq
++ BLT lt
++ BGT gt
++gt:
++ MOVD $1, R7
++ BR quit
++lt:
++ MOVD $-1, R7
++ BR quit
++eq:
++ MOVD $0, R7
++quit:
++ MOVD R7, res+48(FP)
++ RET
++
++TEXT runtime·cmpbody_clc(SB),NOSPLIT,$0-0
++ CLC $1, 0(R5), 0(R3)
++ RET
++
++// input:
++// R3 = a
++// R5 = b
++// R4 = alen
++// R6 = blen
++// R7 = address of output word (stores -1/0/1 here)
++TEXT runtime·cmpbody(SB),NOSPLIT,$-8-0
++ MOVD R4, R8
++ CMPBGE R4, R6, 2(PC)
++ MOVD R6, R8
++ CMP R8, $256
++ BLE tail
++loop:
++ CLC $256, 0(R5), 0(R3)
++ BGT gt
++ BLT lt
++ SUB $256, R8
++ CMP R8, $256
++ BGT loop
++tail:
++ SUB $1, R8
++ EXRL $runtime·cmpbody_clc(SB), R8
++ BGT gt
++ BLT lt
++
++ CMP R4, R6
++ BEQ eq
++ BLT lt
++ BGT gt
++gt:
++ MOVD $-1, R7
++ RET
++lt:
++ MOVD $1, R7
++ RET
++eq:
++ MOVD $0, R7
++ RET
++
++TEXT ·checkASM(SB),NOSPLIT,$0-1
++ MOVW $1, R3
++ MOVB R3, ret+0(FP)
++ RET
++
+diff --git a/src/runtime/cgo/asm_s390x.s b/src/runtime/cgo/asm_s390x.s
+new file mode 100644
+index 0000000..0818be7
+--- /dev/null
++++ b/src/runtime/cgo/asm_s390x.s
+@@ -0,0 +1,58 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "textflag.h"
++
++/*
++ * void crosscall2(void (*fn)(void*, int32), void*, int32)
++ * Save registers and call fn with two arguments.
++ * crosscall2 obeys the C ABI; fn obeys the Go ABI.
++ */
++TEXT crosscall2(SB),NOSPLIT,$-8
++ // Start with standard C stack frame layout and linkage
++
++ // Save R6-R15, F0, F2, F4 and F6 in the
++ // register save area of the calling function
++ // stmg %r6, %r15, 48(%r15)
++ BYTE $0xeb;
++ BYTE $0x6f;
++ BYTE $0xf0;
++ BYTE $0x30;
++ BYTE $0x00;
++ BYTE $0x24;
++ FMOVD F0, 128(R15)
++ FMOVD F2, 136(R15)
++ FMOVD F4, 144(R15)
++ FMOVD F6, 152(R15)
++
++ // Initialize Go ABI environment
++ BL runtime·reginit(SB)
++ BL runtime·load_g(SB)
++
++ // Allocate 24 bytes on the stack
++ SUB $24, R15
++
++ MOVD R3, 8(R15) // arg1
++ MOVW R4, 16(R15) // arg2
++ BL (R2) // fn(arg1, arg2)
++
++ ADD $24, R15
++
++ // Restore R6-R15, F0, F2, F4 and F6
++ // lmg %r6, %r15, 48(%r15)
++ BYTE $0xeb;
++ BYTE $0x6f;
++ BYTE $0xf0;
++ BYTE $0x30;
++ BYTE $0x00;
++ BYTE $0x04;
++ FMOVD F0, 128(R15)
++ FMOVD F2, 136(R15)
++ FMOVD F4, 144(R15)
++ FMOVD F6, 152(R15)
++
++ RET
++
+diff --git a/src/runtime/cgo/callbacks_s390x.go b/src/runtime/cgo/callbacks_s390x.go
+new file mode 100644
+index 0000000..6859fe4
+--- /dev/null
++++ b/src/runtime/cgo/callbacks_s390x.go
+@@ -0,0 +1,12 @@
++// Copyright 2015 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.
++
++// +build s390x
++
++package cgo
++
++//go:cgo_export_static _cgo_reginit
++//go:cgo_export_dynamic _cgo_reginit
++//go:cgo_export_static _cgo_load_g
++//go:cgo_export_dynamic _cgo_load_g
+diff --git a/src/runtime/cgo/gcc_linux_s390x.c b/src/runtime/cgo/gcc_linux_s390x.c
+new file mode 100644
+index 0000000..d990f2f
+--- /dev/null
++++ b/src/runtime/cgo/gcc_linux_s390x.c
+@@ -0,0 +1,70 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include <pthread.h>
++#include <string.h>
++#include <signal.h>
++#include "libcgo.h"
++
++static void *threadentry(void*);
++
++void (*x_cgo_inittls)(void **tlsg, void **tlsbase);
++static void (*setg_gcc)(void*);
++
++void
++x_cgo_init(G *g, void (*setg)(void*), void **tlsbase)
++{
++ pthread_attr_t attr;
++ size_t size;
++
++ setg_gcc = setg;
++ pthread_attr_init(&attr);
++ pthread_attr_getstacksize(&attr, &size);
++ g->stacklo = (uintptr)&attr - size + 4096;
++ pthread_attr_destroy(&attr);
++}
++
++void
++_cgo_sys_thread_start(ThreadStart *ts)
++{
++ pthread_attr_t attr;
++ sigset_t ign, oset;
++ pthread_t p;
++ size_t size;
++ int err;
++
++ sigfillset(&ign);
++ pthread_sigmask(SIG_SETMASK, &ign, &oset);
++
++ pthread_attr_init(&attr);
++ pthread_attr_getstacksize(&attr, &size);
++ // Leave stacklo=0 and set stackhi=size; mstack will do the rest.
++ ts->g->stackhi = size;
++ err = pthread_create(&p, &attr, threadentry, ts);
++
++ pthread_sigmask(SIG_SETMASK, &oset, nil);
++
++ if (err != 0) {
++ fatalf("pthread_create failed: %s", strerror(err));
++ }
++}
++
++extern void crosscall_s390x(void (*fn)(void), void *g);
++
++static void*
++threadentry(void *v)
++{
++ ThreadStart ts;
++
++ ts = *(ThreadStart*)v;
++ free(v);
++
++ // Save g for this thread in C TLS
++ setg_gcc((void*)ts.g);
++
++ crosscall_s390x(ts.fn, (void*)ts.g);
++ return nil;
++}
+diff --git a/src/runtime/cgo/gcc_s390x.S b/src/runtime/cgo/gcc_s390x.S
+new file mode 100644
+index 0000000..4469dad
+--- /dev/null
++++ b/src/runtime/cgo/gcc_s390x.S
+@@ -0,0 +1,46 @@
++/*
++ * void crosscall_s390x(void (*fn)(void), void *g)
++ *
++ * Calling into the go tool chain, where all registers are caller save.
++ * Called from standard s390x C ABI, where r6-r13, r15, and f0, f2, f4 and f6 are
++ * callee-save, so they must be saved explicitly.
++ */
++.globl crosscall_s390x
++crosscall_s390x:
++ /*
++ * save r6-r15, f0, f2, f4 and f6 in the
++ * register save area of the calling function
++ */
++ stmg %r6, %r15, 48(%r15)
++ stdy %f0, 128(%r15)
++ stdy %f2, 136(%r15)
++ stdy %f4, 144(%r15)
++ stdy %f6, 152(%r15)
++
++ /* assume these calls do not clobber r2 or r15 */
++ brasl %r14, _cgo_reginit
++ brasl %r14, _cgo_load_g
++
++ /* grow stack 8 bytes and call fn */
++ agfi %r15, -8
++ basr %r14, %r2
++ agfi %r15, 8
++
++ /* restore registers */
++ lmg %r6, %r15, 48(%r15)
++ ldy %f0, 128(%r15)
++ ldy %f2, 136(%r15)
++ ldy %f4, 144(%r15)
++ ldy %f6, 152(%r15)
++
++ br %r14 /* restored by lmg */
++
++.globl __stack_chk_fail_local
++__stack_chk_fail_local:
++1:
++ larl %r10,1b
++ br %r10
++
++#ifdef __ELF__
++.section .note.GNU-stack,"",%progbits
++#endif
+diff --git a/src/runtime/cgocall.go b/src/runtime/cgocall.go
+index 210d186..9576904 100644
+--- a/src/runtime/cgocall.go
++++ b/src/runtime/cgocall.go
+@@ -239,8 +239,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:
+ // +--------------------+------------------------------+
+ // | | ... |
+@@ -293,7 +293,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))
+diff --git a/src/runtime/defs_linux_s390x.go b/src/runtime/defs_linux_s390x.go
+new file mode 100644
+index 0000000..fbdc008
+--- /dev/null
++++ b/src/runtime/defs_linux_s390x.go
+@@ -0,0 +1,176 @@
++// created by cgo -cdefs and then converted to Go
++// cgo -cdefs defs_linux.go defs3_linux.go
++
++// TODO: bryanpkc: hardcode this for now, re-generate with cgo -cdefs later
++package runtime
++
++const (
++ _EINTR = 0x4
++ _EAGAIN = 0xb
++ _ENOMEM = 0xc
++
++ _PROT_NONE = 0x0
++ _PROT_READ = 0x1
++ _PROT_WRITE = 0x2
++ _PROT_EXEC = 0x4
++
++ _MAP_ANON = 0x20
++ _MAP_PRIVATE = 0x2
++ _MAP_FIXED = 0x10
++
++ _MADV_DONTNEED = 0x4
++ _MADV_HUGEPAGE = 0xe
++ _MADV_NOHUGEPAGE = 0xf
++
++ _SA_RESTART = 0x10000000
++ _SA_ONSTACK = 0x8000000
++ _SA_SIGINFO = 0x4
++
++ _SIGHUP = 0x1
++ _SIGINT = 0x2
++ _SIGQUIT = 0x3
++ _SIGILL = 0x4
++ _SIGTRAP = 0x5
++ _SIGABRT = 0x6
++ _SIGBUS = 0x7
++ _SIGFPE = 0x8
++ _SIGKILL = 0x9
++ _SIGUSR1 = 0xa
++ _SIGSEGV = 0xb
++ _SIGUSR2 = 0xc
++ _SIGPIPE = 0xd
++ _SIGALRM = 0xe
++ _SIGSTKFLT = 0x10
++ _SIGCHLD = 0x11
++ _SIGCONT = 0x12
++ _SIGSTOP = 0x13
++ _SIGTSTP = 0x14
++ _SIGTTIN = 0x15
++ _SIGTTOU = 0x16
++ _SIGURG = 0x17
++ _SIGXCPU = 0x18
++ _SIGXFSZ = 0x19
++ _SIGVTALRM = 0x1a
++ _SIGPROF = 0x1b
++ _SIGWINCH = 0x1c
++ _SIGIO = 0x1d
++ _SIGPWR = 0x1e
++ _SIGSYS = 0x1f
++
++ _FPE_INTDIV = 0x1
++ _FPE_INTOVF = 0x2
++ _FPE_FLTDIV = 0x3
++ _FPE_FLTOVF = 0x4
++ _FPE_FLTUND = 0x5
++ _FPE_FLTRES = 0x6
++ _FPE_FLTINV = 0x7
++ _FPE_FLTSUB = 0x8
++
++ _BUS_ADRALN = 0x1
++ _BUS_ADRERR = 0x2
++ _BUS_OBJERR = 0x3
++
++ _SEGV_MAPERR = 0x1
++ _SEGV_ACCERR = 0x2
++
++ _ITIMER_REAL = 0x0
++ _ITIMER_VIRTUAL = 0x1
++ _ITIMER_PROF = 0x2
++
++ _EPOLLIN = 0x1
++ _EPOLLOUT = 0x4
++ _EPOLLERR = 0x8
++ _EPOLLHUP = 0x10
++ _EPOLLRDHUP = 0x2000
++ _EPOLLET = 0x80000000
++ _EPOLL_CLOEXEC = 0x80000
++ _EPOLL_CTL_ADD = 0x1
++ _EPOLL_CTL_DEL = 0x2
++ _EPOLL_CTL_MOD = 0x3
++)
++
++//struct Sigset {
++// uint64 sig[1];
++//};
++//typedef uint64 Sigset;
++
++type timespec struct {
++ tv_sec int64
++ tv_nsec int64
++}
++
++func (ts *timespec) set_sec(x int64) {
++ ts.tv_sec = x
++}
++
++func (ts *timespec) set_nsec(x int32) {
++ ts.tv_nsec = int64(x)
++}
++
++type timeval struct {
++ tv_sec int64
++ tv_usec int64
++}
++
++func (tv *timeval) set_usec(x int32) {
++ tv.tv_usec = int64(x)
++}
++
++type sigactiont struct {
++ sa_handler uintptr
++ sa_flags uint64
++ sa_restorer uintptr
++ sa_mask uint64
++}
++
++type siginfo struct {
++ si_signo int32
++ si_errno int32
++ si_code int32
++ // below here is a union; si_addr is the only field we use
++ si_addr uint64
++}
++
++type itimerval struct {
++ it_interval timeval
++ it_value timeval
++}
++
++type epollevent struct {
++ events uint32
++ pad_cgo_0 [4]byte
++ data [8]byte // unaligned uintptr
++}
++
++// created by cgo -cdefs and then converted to Go
++// cgo -cdefs defs_linux.go defs3_linux.go
++
++const (
++ _O_RDONLY = 0x0
++ _O_CLOEXEC = 0x80000
++ _SA_RESTORER = 0
++)
++
++type sigaltstackt struct {
++ ss_sp *byte
++ ss_flags int32
++ //pad_cgo_0 [4]byte
++ ss_size uintptr
++}
++
++type sigcontext struct {
++ psw_mask uint64
++ psw_addr uint64
++ gregs [16]uint64
++ aregs [16]uint32
++ fpc uint32
++ fpregs [16]uint64
++}
++
++type ucontext struct {
++ uc_flags uint64
++ uc_link *ucontext
++ uc_stack sigaltstackt
++ uc_mcontext sigcontext
++ uc_sigmask uint64
++}
+diff --git a/src/runtime/extern.go b/src/runtime/extern.go
+index 2c98482..c3574a5 100644
+--- a/src/runtime/extern.go
++++ b/src/runtime/extern.go
+@@ -230,5 +230,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
+diff --git a/src/runtime/gcinfo_test.go b/src/runtime/gcinfo_test.go
+index edb6361..c1c2354 100644
+--- a/src/runtime/gcinfo_test.go
++++ b/src/runtime/gcinfo_test.go
+@@ -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
+diff --git a/src/runtime/hash64.go b/src/runtime/hash64.go
+index fb3dba4..d61f114 100644
+--- a/src/runtime/hash64.go
++++ b/src/runtime/hash64.go
+@@ -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
+
+diff --git a/src/runtime/internal/atomic/asm_s390x.s b/src/runtime/internal/atomic/asm_s390x.s
+new file mode 100644
+index 0000000..3dcfd2d
+--- /dev/null
++++ b/src/runtime/internal/atomic/asm_s390x.s
+@@ -0,0 +1,160 @@
++// Copyright 20145 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.
++
++// +build s390x
++
++#include "textflag.h"
++
++// bool runtime/internal/atomic·Cas(uint32 *ptr, uint32 old, uint32 new)
++// Atomically:
++// if(*val == old){
++// *val = new;
++// return 1;
++// } else
++// return 0;
++TEXT runtime∕internal∕atomic·Cas(SB), NOSPLIT, $0-17
++ MOVD ptr+0(FP), R3
++ MOVWZ old+8(FP), R4
++ MOVWZ new+12(FP), R5
++ CS R4, R5, 0(R3) // if (R4 == 0(R3)) then 0(R3)= R5
++ BNE cas_fail
++ MOVD $1, R3
++ MOVB R3, ret+16(FP)
++ RET
++cas_fail:
++ MOVD $0, R3
++ MOVB R3, ret+16(FP)
++ RET
++
++// bool runtime∕internal∕atomic·Cas64(uint64 *ptr, uint64 old, uint64 new)
++// Atomically:
++// if(*val == *old){
++// *val = new;
++// return 1;
++// } else {
++// return 0;
++// }
++TEXT runtime∕internal∕atomic·Cas64(SB), NOSPLIT, $0-25
++ MOVD ptr+0(FP), R3
++ MOVD old+8(FP), R4
++ MOVD new+16(FP), R5
++ CSG R4, R5, 0(R3) // if (R4 == 0(R3)) then 0(R3)= R5
++ BNE cas64_fail
++ MOVD $1, R3
++ MOVB R3, ret+24(FP)
++ RET
++cas64_fail:
++ MOVD $0, R3
++ MOVB R3, ret+24(FP)
++ RET
++
++TEXT runtime∕internal∕atomic·Casuintptr(SB), NOSPLIT, $0-25
++ BR runtime∕internal∕atomic·Cas64(SB)
++
++TEXT runtime∕internal∕atomic·Loaduintptr(SB), NOSPLIT, $0-16
++ BR runtime∕internal∕atomic·Load64(SB)
++
++TEXT runtime∕internal∕atomic·Loaduint(SB), NOSPLIT, $0-16
++ BR runtime∕internal∕atomic·Load64(SB)
++
++TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-16
++ BR runtime∕internal∕atomic·Store64(SB)
++
++TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16
++ BR runtime∕internal∕atomic·Load64(SB)
++
++TEXT runtime∕internal∕atomic·Xadduintptr(SB), NOSPLIT, $0-24
++ BR runtime∕internal∕atomic·Xadd64(SB)
++
++TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-16
++ BR runtime∕internal∕atomic·Xadd64(SB)
++
++// bool runtime∕internal∕atomic·Casp1(void **val, void *old, void *new)
++// Atomically:
++// if(*val == old){
++// *val = new;
++// return 1;
++// } else
++// return 0;
++TEXT runtime∕internal∕atomic·Casp1(SB), NOSPLIT, $0-25
++ BR runtime∕internal∕atomic·Cas64(SB)
++
++// bool casp(void **val, void *old, void *new)
++// Atomically:
++// if(*val == old){
++// *val = new;
++// return 1;
++// } else
++// return 0;
++TEXT runtime·casp1(SB), NOSPLIT, $-8-25
++ BR runtime·cas64(SB)
++
++// uint32 runtime∕internal∕atomic·Xadd(uint32 volatile *ptr, int32 delta)
++// Atomically:
++// *val += delta;
++// return *val;
++TEXT runtime∕internal∕atomic·Xadd(SB), NOSPLIT, $0-20
++ MOVD ptr+0(FP), R4
++ MOVW delta+8(FP), R5
++repeat:
++ MOVW (R4), R3
++ MOVD R3, R6
++ ADD R5, R3
++ CS R6, R3, (R4) // if (R6==(R4)) then (R4)=R3
++ BNE repeat
++ MOVW R3, ret+16(FP)
++ RET
++
++TEXT runtime∕internal∕atomic·Xadd64(SB), NOSPLIT, $0-24
++ MOVD ptr+0(FP), R4
++ MOVD delta+8(FP), R5
++repeat:
++ MOVD (R4), R3
++ MOVD R3, R6
++ ADD R5, R3
++ CSG R6, R3, (R4) // if (R6==(R4)) then (R4)=R3
++ BNE repeat
++ MOVD R3, ret+16(FP)
++ RET
++
++TEXT runtime∕internal∕atomic·Xchg(SB), NOSPLIT, $0-20
++ MOVD ptr+0(FP), R4
++ MOVW new+8(FP), R3
++repeat:
++ MOVW (R4), R6
++ CS R6, R3, (R4) // if (R6==(R4)) then (R4)=R3
++ BNE repeat
++ MOVW R6, ret+16(FP)
++ RET
++
++TEXT runtime∕internal∕atomic·Xchg64(SB), NOSPLIT, $0-24
++ MOVD ptr+0(FP), R4
++ MOVD new+8(FP), R3
++repeat:
++ MOVD (R4), R6
++ CSG R6, R3, (R4) // if (R6==(R4)) then (R4)=R3
++ BNE repeat
++ MOVD R6, ret+16(FP)
++ RET
++
++TEXT runtime∕internal∕atomic·Xchguintptr(SB), NOSPLIT, $0-24
++ BR runtime∕internal∕atomic·Xchg64(SB)
++
++TEXT runtime∕internal∕atomic·Storep1(SB), NOSPLIT, $0-16
++ BR runtime∕internal∕atomic·Store64(SB)
++
++// on Z, load & store both are atomic operations
++TEXT runtime∕internal∕atomic·Store(SB), NOSPLIT, $0-12
++ MOVD ptr+0(FP), R3
++ MOVW val+8(FP), R4
++ SYNC
++ MOVW R4, 0(R3)
++ RET
++
++TEXT runtime∕internal∕atomic·Store64(SB), NOSPLIT, $0-16
++ MOVD ptr+0(FP), R3
++ MOVD val+8(FP), R4
++ SYNC
++ MOVD R4, 0(R3)
++ RET
+diff --git a/src/runtime/internal/atomic/atomic_s390x.go b/src/runtime/internal/atomic/atomic_s390x.go
+new file mode 100644
+index 0000000..b63d1d4
+--- /dev/null
++++ b/src/runtime/internal/atomic/atomic_s390x.go
+@@ -0,0 +1,96 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++package atomic
++
++import "unsafe"
++
++// The calls to nop are to keep these functions from being inlined.
++// If they are inlined we have no guarantee that later rewrites of the
++// code by optimizers will preserve the relative order of memory accesses.
++
++//go:nosplit
++//go:noinline
++func Load(ptr *uint32) uint32 {
++ return *ptr
++}
++
++//go:nosplit
++//go:noinline
++func Loadp(ptr unsafe.Pointer) unsafe.Pointer {
++ return *(*unsafe.Pointer)(ptr)
++}
++
++//go:nosplit
++//go:noinline
++func Load64(ptr *uint64) uint64 {
++ return *ptr
++}
++
++//go:nosplit
++func And8(addr *uint8, v uint8) {
++ // TODO(mundaym) implement this in asm.
++ // Align down to 4 bytes and use 32-bit CAS.
++ uaddr := uintptr(unsafe.Pointer(addr))
++ addr32 := (*uint32)(unsafe.Pointer(uaddr &^ 3))
++ shift_bits := ((uaddr & 3) ^ 3 ) * 8 // big endian
++ word := uint32(v) << (shift_bits) // big endian
++ mask := uint32(0xFF) << (shift_bits) // big endian
++ word |= ^mask
++ for {
++ old := *addr32
++ if Cas(addr32, old, old&word) {
++ return
++ }
++ }
++}
++
++//go:nosplit
++func Or8(addr *uint8, v uint8) {
++ // TODO(mundaym) implement this in asm.
++ // Align down to 4 bytes and use 32-bit CAS.
++ uaddr := uintptr(unsafe.Pointer(addr))
++ addr32 := (*uint32)(unsafe.Pointer(uaddr &^ 3))
++ word := uint32(v) << (((uaddr & 3) ^ 3) * 8) // big endian
++ for {
++ old := *addr32
++ if Cas(addr32, old, old|word) {
++ return
++ }
++ }
++}
++
++// NOTE: Do not add atomicxor8 (XOR is not idempotent).
++
++//go:noescape
++func Xadd(ptr *uint32, delta int32) uint32
++
++//go:noescape
++func Xadd64(ptr *uint64, delta int64) uint64
++
++//go:noescape
++func Xadduintptr(ptr *uintptr, delta uintptr) uintptr
++
++//go:noescape
++func Xchg(ptr *uint32, new uint32) uint32
++
++//go:noescape
++func Xchg64(ptr *uint64, new uint64) uint64
++
++//go:noescape
++func Xchguintptr(ptr *uintptr, new uintptr) uintptr
++
++//go:noescape
++func Cas64(ptr *uint64, old, new uint64) bool
++
++//go:noescape
++func Store(ptr *uint32, val uint32)
++
++//go:noescape
++func Store64(ptr *uint64, val uint64)
++
++// NO go:noescape annotation; see atomic_pointer.go.
++func Storep1(ptr unsafe.Pointer, val unsafe.Pointer)
+diff --git a/src/runtime/internal/sys/arch_s390x.go b/src/runtime/internal/sys/arch_s390x.go
+new file mode 100644
+index 0000000..d3aa6b3
+--- /dev/null
++++ b/src/runtime/internal/sys/arch_s390x.go
+@@ -0,0 +1,18 @@
++// Copyright 2014 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.
++
++package sys
++
++const (
++ TheChar = 'z'
++ BigEndian = 1
++ CacheLineSize = 256
++ PhysPageSize = 4096
++ PCQuantum = 2
++ Int64Align = 8
++ HugePageSize = 0
++ MinFrameSize = 8 // TODO(mundaym): Not sure if this is correct.
++)
++
++type Uintreg uint64
+diff --git a/src/runtime/internal/sys/zgoarch_s390x.go b/src/runtime/internal/sys/zgoarch_s390x.go
+new file mode 100644
+index 0000000..ce85f20
+--- /dev/null
++++ b/src/runtime/internal/sys/zgoarch_s390x.go
+@@ -0,0 +1,26 @@
++// generated by gengoos.go using 'go generate'
++
++package sys
++
++const TheGoarch = `s390x`
++
++const Goarch386 = 0
++const GoarchAmd64 = 0
++const GoarchAmd64p32 = 0
++const GoarchArm = 0
++const GoarchArmbe = 0
++const GoarchArm64 = 0
++const GoarchArm64be = 0
++const GoarchPpc64 = 0
++const GoarchPpc64le = 0
++const GoarchMips = 0
++const GoarchMipsle = 0
++const GoarchMips64 = 0
++const GoarchMips64le = 0
++const GoarchMips64p32 = 0
++const GoarchMips64p32le = 0
++const GoarchPpc = 0
++const GoarchS390 = 0
++const GoarchS390x = 1
++const GoarchSparc = 0
++const GoarchSparc64 = 0
+diff --git a/src/runtime/lfstack_linux_s390x.go b/src/runtime/lfstack_linux_s390x.go
+new file mode 100644
+index 0000000..444c8fe
+--- /dev/null
++++ b/src/runtime/lfstack_linux_s390x.go
+@@ -0,0 +1,32 @@
++// Copyright 2014 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.
++
++// +build s390x
++// +build linux
++
++package runtime
++
++import "unsafe"
++
++// On ppc64, Linux limits the user address space to 46 bits (see
++// TASK_SIZE_USER64 in the Linux kernel). This has grown over time,
++// so here we allow 48 bit addresses.
++//
++// In addition to the 16 bits taken from the top, we can take 3 from the
++// bottom, because node must be pointer-aligned, giving a total of 19 bits
++// of count.
++const (
++ addrBits = 48
++ cntBits = 64 - addrBits + 3
++)
++
++func lfstackPack(node *lfnode, cnt uintptr) uint64 {
++ return uint64(uintptr(unsafe.Pointer(node)))<<(64-addrBits) | uint64(cnt&(1<<cntBits-1))
++}
++
++func lfstackUnpack(val uint64) (node *lfnode, cnt uintptr) {
++ node = (*lfnode)(unsafe.Pointer(uintptr(val >> cntBits << 3)))
++ cnt = uintptr(val & (1<<cntBits - 1))
++ return
++}
+diff --git a/src/runtime/memclr_s390x.s b/src/runtime/memclr_s390x.s
+new file mode 100644
+index 0000000..d121468
+--- /dev/null
++++ b/src/runtime/memclr_s390x.s
+@@ -0,0 +1,124 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "textflag.h"
++
++// void runtime·memclr(void*, uintptr)
++TEXT runtime·memclr(SB),NOSPLIT,$0-16
++ MOVD ptr+0(FP), R4
++ MOVD n+8(FP), R5
++
++start:
++ CMPBLE R5, $3, clear0to3
++ CMPBLE R5, $7, clear4to7
++ CMPBLE R5, $11, clear8to11
++ CMPBLE R5, $15, clear12to15
++ CMP R5, $32
++ BGE clearmt32
++ MOVD R0, 0(R4)
++ MOVD R0, 8(R4)
++ ADD $16, R4
++ SUB $16, R5
++ BR start
++
++clear0to3:
++ CMPBEQ R5, $0, done
++ CMPBNE R5, $1, clear2
++ MOVB R0, 0(R4)
++ RET
++clear2:
++ CMPBNE R5, $2, clear3
++ MOVH R0, 0(R4)
++ RET
++clear3:
++ MOVH R0, 0(R4)
++ MOVB R0, 2(R4)
++ RET
++
++clear4to7:
++ CMPBNE R5, $4, clear5
++ MOVW R0, 0(R4)
++ RET
++clear5:
++ CMPBNE R5, $5, clear6
++ MOVW R0, 0(R4)
++ MOVB R0, 4(R4)
++ RET
++clear6:
++ CMPBNE R5, $6, clear7
++ MOVW R0, 0(R4)
++ MOVH R0, 4(R4)
++ RET
++clear7:
++ MOVW R0, 0(R4)
++ MOVH R0, 4(R4)
++ MOVB R0, 6(R4)
++ RET
++
++clear8to11:
++ CMPBNE R5, $8, clear9
++ MOVD R0, 0(R4)
++ RET
++clear9:
++ CMPBNE R5, $9, clear10
++ MOVD R0, 0(R4)
++ MOVB R0, 8(R4)
++ RET
++clear10:
++ CMPBNE R5, $10, clear11
++ MOVD R0, 0(R4)
++ MOVH R0, 8(R4)
++ RET
++clear11:
++ MOVD R0, 0(R4)
++ MOVH R0, 8(R4)
++ MOVB R0, 10(R4)
++ RET
++
++clear12to15:
++ CMPBNE R5, $12, clear13
++ MOVD R0, 0(R4)
++ MOVW R0, 8(R4)
++ RET
++clear13:
++ CMPBNE R5, $13, clear14
++ MOVD R0, 0(R4)
++ MOVW R0, 8(R4)
++ MOVB R0, 12(R4)
++ RET
++clear14:
++ CMPBNE R5, $14, clear15
++ MOVD R0, 0(R4)
++ MOVW R0, 8(R4)
++ MOVH R0, 12(R4)
++ RET
++clear15:
++ MOVD R0, 0(R4)
++ MOVW R0, 8(R4)
++ MOVH R0, 12(R4)
++ MOVB R0, 14(R4)
++ RET
++
++clearmt32:
++ CMP R5, $256
++ BLT clearlt256
++ XC $256, 0(R4), 0(R4)
++ ADD $256, R4
++ ADD $-256, R5
++ BR clearmt32
++clearlt256:
++ CMPBEQ R5, $0, done
++ ADD $-1, R5
++ EXRL $runtime·memclr_s390x_exrl_xc(SB), R5
++done:
++ RET
++
++// DO NOT CALL - target for exrl (execute relative long) instruction.
++TEXT runtime·memclr_s390x_exrl_xc(SB),NOSPLIT, $0-0
++ XC $1, 0(R4), 0(R4)
++ MOVD R0, 0(R0)
++ RET
++
+diff --git a/src/runtime/memmove_s390x.s b/src/runtime/memmove_s390x.s
+new file mode 100644
+index 0000000..da591be
+--- /dev/null
++++ b/src/runtime/memmove_s390x.s
+@@ -0,0 +1,191 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "textflag.h"
++
++// void runtime·memmove(void*, void*, uintptr)
++TEXT runtime·memmove(SB), NOSPLIT, $-8-24
++ MOVD to+0(FP), R6
++ MOVD from+8(FP), R4
++ MOVD n+16(FP), R5
++
++ CMPBEQ R6, R4, done
++
++start:
++ CMPBLE R5, $3, move0to3
++ CMPBLE R5, $7, move4to7
++ CMPBLE R5, $11, move8to11
++ CMPBLE R5, $15, move12to15
++ CMPBNE R5, $16, movemt16
++ MOVD 0(R4), R7
++ MOVD 8(R4), R8
++ MOVD R7, 0(R6)
++ MOVD R8, 8(R6)
++ RET
++
++movemt16:
++ CMPBGT R4, R6, forwards
++ ADD R5, R4, R7
++ CMPBLE R7, R6, forwards
++ ADD R5, R6, R8
++backwards:
++ MOVD -8(R7), R3
++ MOVD R3, -8(R8)
++ MOVD -16(R7), R3
++ MOVD R3, -16(R8)
++ ADD $-16, R5
++ ADD $-16, R7
++ ADD $-16, R8
++ CMP R5, $16
++ BGE backwards
++ BR start
++
++forwards:
++ CMPBGT R5, $64, forwards_fast
++ MOVD 0(R4), R3
++ MOVD R3, 0(R6)
++ MOVD 8(R4), R3
++ MOVD R3, 8(R6)
++ ADD $16, R4
++ ADD $16, R6
++ ADD $-16, R5
++ CMP R5, $16
++ BGE forwards
++ BR start
++
++forwards_fast:
++ CMP R5, $256
++ BLE forwards_small
++ MVC $256, 0(R4), 0(R6)
++ ADD $256, R4
++ ADD $256, R6
++ ADD $-256, R5
++ BR forwards_fast
++
++forwards_small:
++ CMPBEQ R5, $0, done
++ ADD $-1, R5
++ EXRL $runtime·memmove_s390x_exrl_mvc(SB), R5
++ RET
++
++move0to3:
++ CMPBEQ R5, $0, done
++move1:
++ CMPBNE R5, $1, move2
++ MOVB 0(R4), R3
++ MOVB R3, 0(R6)
++ RET
++move2:
++ CMPBNE R5, $2, move3
++ MOVH 0(R4), R3
++ MOVH R3, 0(R6)
++ RET
++move3:
++ MOVH 0(R4), R3
++ MOVB 2(R4), R7
++ MOVH R3, 0(R6)
++ MOVB R7, 2(R6)
++ RET
++
++move4to7:
++ CMPBNE R5, $4, move5
++ MOVW 0(R4), R3
++ MOVW R3, 0(R6)
++ RET
++move5:
++ CMPBNE R5, $5, move6
++ MOVW 0(R4), R3
++ MOVB 4(R4), R7
++ MOVW R3, 0(R6)
++ MOVB R7, 4(R6)
++ RET
++move6:
++ CMPBNE R5, $6, move7
++ MOVW 0(R4), R3
++ MOVH 4(R4), R7
++ MOVW R3, 0(R6)
++ MOVH R7, 4(R6)
++ RET
++move7:
++ MOVW 0(R4), R3
++ MOVH 4(R4), R7
++ MOVB 6(R4), R8
++ MOVW R3, 0(R6)
++ MOVH R7, 4(R6)
++ MOVB R8, 6(R6)
++ RET
++
++move8to11:
++ CMPBNE R5, $8, move9
++ MOVD 0(R4), R3
++ MOVD R3, 0(R6)
++ RET
++move9:
++ CMPBNE R5, $9, move10
++ MOVD 0(R4), R3
++ MOVB 8(R4), R7
++ MOVD R3, 0(R6)
++ MOVB R7, 8(R6)
++ RET
++move10:
++ CMPBNE R5, $10, move11
++ MOVD 0(R4), R3
++ MOVH 8(R4), R7
++ MOVD R3, 0(R6)
++ MOVH R7, 8(R6)
++ RET
++move11:
++ MOVD 0(R4), R3
++ MOVH 8(R4), R7
++ MOVB 10(R4), R8
++ MOVD R3, 0(R6)
++ MOVH R7, 8(R6)
++ MOVB R8, 10(R6)
++ RET
++
++move12to15:
++ CMPBNE R5, $12, move13
++ MOVD 0(R4), R3
++ MOVW 8(R4), R7
++ MOVD R3, 0(R6)
++ MOVW R7, 8(R6)
++ RET
++move13:
++ CMPBNE R5, $13, move14
++ MOVD 0(R4), R3
++ MOVW 8(R4), R7
++ MOVB 12(R4), R8
++ MOVD R3, 0(R6)
++ MOVW R7, 8(R6)
++ MOVB R8, 12(R6)
++ RET
++move14:
++ CMPBNE R5, $14, move15
++ MOVD 0(R4), R3
++ MOVW 8(R4), R7
++ MOVH 12(R4), R8
++ MOVD R3, 0(R6)
++ MOVW R7, 8(R6)
++ MOVH R8, 12(R6)
++ RET
++move15:
++ MOVD 0(R4), R3
++ MOVW 8(R4), R7
++ MOVH 12(R4), R8
++ MOVB 14(R4), R10
++ MOVD R3, 0(R6)
++ MOVW R7, 8(R6)
++ MOVH R8, 12(R6)
++ MOVB R10, 14(R6)
++done:
++ RET
++
++// DO NOT CALL - target for exrl (execute relative long) instruction.
++TEXT runtime·memmove_s390x_exrl_mvc(SB),NOSPLIT, $0-0
++ MVC $1, 0(R4), 0(R6)
++ MOVD R0, 0(R0)
++ RET
++
+diff --git a/src/runtime/noasm.go b/src/runtime/noasm.go
+index 351e325..0a8f9e6 100644
+--- a/src/runtime/noasm.go
++++ b/src/runtime/noasm.go
+@@ -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
+
+diff --git a/src/runtime/os1_linux_generic.go b/src/runtime/os1_linux_generic.go
+index 2c8b743..50d6d6a 100644
+--- a/src/runtime/os1_linux_generic.go
++++ b/src/runtime/os1_linux_generic.go
+@@ -4,6 +4,7 @@
+
+ // +build !mips64
+ // +build !mips64le
++// +build !s390x
+ // +build linux
+
+ package runtime
+diff --git a/src/runtime/os1_linux_s390x.go b/src/runtime/os1_linux_s390x.go
+new file mode 100644
+index 0000000..6f2c6bd
+--- /dev/null
++++ b/src/runtime/os1_linux_s390x.go
+@@ -0,0 +1,32 @@
++// Copyright 2015 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.
++
++// +build s390x
++// +build linux
++
++package runtime
++
++var sigset_all = sigset(^uint64(0))
++
++func sigaddset(mask *sigset, i int) {
++ if i > 64 {
++ throw("unexpected signal greater than 64")
++ }
++ *mask |= 1 << (uint(i) - 1)
++}
++
++func sigdelset(mask *sigset, i int) {
++ if i > 64 {
++ throw("unexpected signal greater than 64")
++ }
++ *mask &^= 1 << (uint(i) - 1)
++}
++
++func sigfillset(mask *uint64) {
++ *mask = ^uint64(0)
++}
++
++func sigcopyset(mask *sigset, m sigmask) {
++ *mask = sigset(uint64(m[0]) | uint64(m[1])<<32)
++}
+diff --git a/src/runtime/os2_linux_generic.go b/src/runtime/os2_linux_generic.go
+index 01e6c8a..f1a2dd5 100644
+--- a/src/runtime/os2_linux_generic.go
++++ b/src/runtime/os2_linux_generic.go
+@@ -4,6 +4,7 @@
+
+ // +build !mips64
+ // +build !mips64le
++// +build !s390x
+ // +build linux
+
+ package runtime
+diff --git a/src/runtime/os2_linux_s390x.go b/src/runtime/os2_linux_s390x.go
+new file mode 100644
+index 0000000..3a04015
+--- /dev/null
++++ b/src/runtime/os2_linux_s390x.go
+@@ -0,0 +1,25 @@
++// Copyright 2015 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.
++
++// +build linux
++// +build s390x
++
++package runtime
++
++const (
++ _SS_DISABLE = 2
++ _NSIG = 65
++ _SI_USER = 0
++ _SIG_BLOCK = 0
++ _SIG_UNBLOCK = 1
++ _SIG_SETMASK = 2
++ _RLIMIT_AS = 9
++)
++
++type sigset uint64
++
++type rlimit struct {
++ rlim_cur uintptr
++ rlim_max uintptr
++}
+diff --git a/src/runtime/rt0_linux_s390x.s b/src/runtime/rt0_linux_s390x.s
+new file mode 100644
+index 0000000..0be121e
+--- /dev/null
++++ b/src/runtime/rt0_linux_s390x.s
+@@ -0,0 +1,16 @@
++#include "textflag.h"
++
++TEXT _rt0_s390x_linux(SB),NOSPLIT,$-8
++ // In a statically linked binary, the stack contains argc,
++ // argv as argc string pointers followed by a NULL, envv as a
++ // sequence of string pointers followed by a NULL, and auxv.
++ // There is no TLS base pointer.
++ //
++ // TODO: Support dynamic linking entry point
++ MOVD 0(R15), R2 // argc
++ ADD $8, R15, R3 // argv
++ BR main(SB)
++
++TEXT main(SB),NOSPLIT,$-8
++ MOVD $runtime·rt0_go(SB), R11
++ BR R11
+diff --git a/src/runtime/runtime-gdb_test.go b/src/runtime/runtime-gdb_test.go
+index 6ebc69a..34e6b21 100644
+--- a/src/runtime/runtime-gdb_test.go
++++ b/src/runtime/runtime-gdb_test.go
+@@ -107,7 +107,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",
+diff --git a/src/runtime/signal_linux_s390x.go b/src/runtime/signal_linux_s390x.go
+new file mode 100644
+index 0000000..8fd7b2a
+--- /dev/null
++++ b/src/runtime/signal_linux_s390x.go
+@@ -0,0 +1,53 @@
++// Copyright 2014 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.
++
++// +build linux
++// +build s390x
++
++package runtime
++
++import (
++ "runtime/internal/sys"
++ "unsafe"
++)
++
++type sigctxt struct {
++ info *siginfo
++ ctxt unsafe.Pointer
++}
++
++func (c *sigctxt) regs() *sigcontext {
++ return (*sigcontext)(unsafe.Pointer(&(*ucontext)(c.ctxt).uc_mcontext))
++}
++func (c *sigctxt) r0() uint64 { return c.regs().gregs[0] }
++func (c *sigctxt) r1() uint64 { return c.regs().gregs[1] }
++func (c *sigctxt) r2() uint64 { return c.regs().gregs[2] }
++func (c *sigctxt) r3() uint64 { return c.regs().gregs[3] }
++func (c *sigctxt) r4() uint64 { return c.regs().gregs[4] }
++func (c *sigctxt) r5() uint64 { return c.regs().gregs[5] }
++func (c *sigctxt) r6() uint64 { return c.regs().gregs[6] }
++func (c *sigctxt) r7() uint64 { return c.regs().gregs[7] }
++func (c *sigctxt) r8() uint64 { return c.regs().gregs[8] }
++func (c *sigctxt) r9() uint64 { return c.regs().gregs[9] }
++func (c *sigctxt) r10() uint64 { return c.regs().gregs[10] }
++func (c *sigctxt) r11() uint64 { return c.regs().gregs[11] }
++func (c *sigctxt) r12() uint64 { return c.regs().gregs[12] }
++func (c *sigctxt) r13() uint64 { return c.regs().gregs[13] }
++func (c *sigctxt) r14() uint64 { return c.regs().gregs[14] }
++func (c *sigctxt) r15() uint64 { return c.regs().gregs[15] }
++func (c *sigctxt) link() uint64 { return c.regs().gregs[14] }
++func (c *sigctxt) sp() uint64 { return c.regs().gregs[15] }
++func (c *sigctxt) pc() uint64 { return c.regs().psw_addr }
++func (c *sigctxt) sigcode() uint32 { return uint32(c.info.si_code) }
++func (c *sigctxt) sigaddr() uint64 { return c.info.si_addr }
++
++func (c *sigctxt) set_r0(x uint64) { c.regs().gregs[0] = x }
++func (c *sigctxt) set_r13(x uint64) { c.regs().gregs[13] = x }
++func (c *sigctxt) set_link(x uint64) { c.regs().gregs[14] = x }
++func (c *sigctxt) set_sp(x uint64) { c.regs().gregs[15] = x }
++func (c *sigctxt) set_pc(x uint64) { c.regs().psw_addr = x }
++func (c *sigctxt) set_sigcode(x uint32) { c.info.si_code = int32(x) }
++func (c *sigctxt) set_sigaddr(x uint64) {
++ *(*uintptr)(add(unsafe.Pointer(c.info), 2*sys.PtrSize)) = uintptr(x)
++}
+diff --git a/src/runtime/signal_s390x.go b/src/runtime/signal_s390x.go
+new file mode 100644
+index 0000000..24a5901
+--- /dev/null
++++ b/src/runtime/signal_s390x.go
+@@ -0,0 +1,171 @@
++// Copyright 2014 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.
++
++// +build linux
++// +build s390x
++
++package runtime
++
++import (
++ "runtime/internal/sys"
++ "unsafe"
++)
++
++func dumpregs(c *sigctxt) {
++ print("r0 ", hex(c.r0()), "\t")
++ print("r1 ", hex(c.r1()), "\n")
++ print("r2 ", hex(c.r2()), "\t")
++ print("r3 ", hex(c.r3()), "\n")
++ print("r4 ", hex(c.r4()), "\t")
++ print("r5 ", hex(c.r5()), "\n")
++ print("r6 ", hex(c.r6()), "\t")
++ print("r7 ", hex(c.r7()), "\n")
++ print("r8 ", hex(c.r8()), "\t")
++ print("r9 ", hex(c.r9()), "\n")
++ print("r10 ", hex(c.r10()), "\t")
++ print("r11 ", hex(c.r11()), "\n")
++ print("r12 ", hex(c.r12()), "\t")
++ print("r13 ", hex(c.r13()), "\n")
++ print("r14 ", hex(c.r14()), "\t")
++ print("r15 ", hex(c.r15()), "\n")
++ print("pc ", hex(c.pc()), "\t")
++ print("link ", hex(c.link()), "\n")
++}
++
++var crashing int32
++
++// May run during STW, so write barriers are not allowed.
++//
++//go:nowritebarrierrec
++func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) {
++ _g_ := getg()
++ c := &sigctxt{info, ctxt}
++
++ if sig == _SIGPROF {
++ sigprof(uintptr(c.pc()), uintptr(c.sp()), uintptr(c.link()), gp, _g_.m)
++ return
++ }
++ flags := int32(_SigThrow)
++ if sig < uint32(len(sigtable)) {
++ flags = sigtable[sig].flags
++ }
++ if c.sigcode() != _SI_USER && flags&_SigPanic != 0 {
++ // Make it look like a call to the signal func.
++ // Have to pass arguments out of band since
++ // augmenting the stack frame would break
++ // the unwinding code.
++ gp.sig = sig
++ gp.sigcode0 = uintptr(c.sigcode())
++ gp.sigcode1 = uintptr(c.sigaddr())
++ gp.sigpc = uintptr(c.pc())
++
++ // We arrange link, and pc to pretend the panicking
++ // function calls sigpanic directly.
++ // Always save LINK to stack so that panics in leaf
++ // functions are correctly handled. This smashes
++ // the stack frame but we're not going back there
++ // anyway.
++ sp := c.sp() - sys.MinFrameSize
++ c.set_sp(sp)
++ *(*uint64)(unsafe.Pointer(uintptr(sp))) = c.link()
++
++ pc := uintptr(gp.sigpc)
++
++ // If we don't recognize the PC as code
++ // but we do recognize the link register as code,
++ // then assume this was a call to non-code and treat like
++ // pc == 0, to make unwinding show the context.
++ if pc != 0 && findfunc(pc) == nil && findfunc(uintptr(c.link())) != nil {
++ pc = 0
++ }
++
++ // Don't bother saving PC if it's zero, which is
++ // probably a call to a nil func: the old link register
++ // is more useful in the stack trace.
++ if pc != 0 {
++ c.set_link(uint64(pc))
++ }
++
++ // In case we are panicking from external C code
++ c.set_r0(0)
++ c.set_r13(uint64(uintptr(unsafe.Pointer(gp))))
++ c.set_pc(uint64(funcPC(sigpanic)))
++ return
++ }
++
++ if c.sigcode() == _SI_USER || flags&_SigNotify != 0 {
++ if sigsend(sig) {
++ return
++ }
++ }
++
++ if c.sigcode() == _SI_USER && signal_ignored(sig) {
++ return
++ }
++
++ if flags&_SigKill != 0 {
++ dieFromSignal(int32(sig))
++ }
++
++ if flags&_SigThrow == 0 {
++ return
++ }
++
++ _g_.m.throwing = 1
++ _g_.m.caughtsig.set(gp)
++
++ if crashing == 0 {
++ startpanic()
++ }
++
++ if sig < uint32(len(sigtable)) {
++ print(sigtable[sig].name, "\n")
++ } else {
++ print("Signal ", sig, "\n")
++ }
++
++ print("PC=", hex(c.pc()), " m=", _g_.m.id, "\n")
++ if _g_.m.lockedg != nil && _g_.m.ncgo > 0 && gp == _g_.m.g0 {
++ print("signal arrived during cgo execution\n")
++ gp = _g_.m.lockedg
++ }
++ print("\n")
++
++ level, _, docrash := gotraceback()
++ if level > 0 {
++ goroutineheader(gp)
++ tracebacktrap(uintptr(c.pc()), uintptr(c.sp()), uintptr(c.link()), gp)
++ if crashing > 0 && gp != _g_.m.curg && _g_.m.curg != nil && readgstatus(_g_.m.curg)&^_Gscan == _Grunning {
++ // tracebackothers on original m skipped this one; trace it now.
++ goroutineheader(_g_.m.curg)
++ traceback(^uintptr(0), ^uintptr(0), 0, gp)
++ } else if crashing == 0 {
++ tracebackothers(gp)
++ print("\n")
++ }
++ dumpregs(c)
++ }
++
++ if docrash {
++ crashing++
++ if crashing < sched.mcount {
++ // There are other m's that need to dump their stacks.
++ // Relay SIGQUIT to the next m by sending it to the current process.
++ // All m's that have already received SIGQUIT have signal masks blocking
++ // receipt of any signals, so the SIGQUIT will go to an m that hasn't seen it yet.
++ // When the last m receives the SIGQUIT, it will fall through to the call to
++ // crash below. Just in case the relaying gets botched, each m involved in
++ // the relay sleeps for 5 seconds and then does the crash/exit itself.
++ // In expected operation, the last m has received the SIGQUIT and run
++ // crash/exit and the process is gone, all long before any of the
++ // 5-second sleeps have finished.
++ print("\n-----\n\n")
++ raiseproc(_SIGQUIT)
++ usleep(5 * 1000 * 1000)
++ }
++ crash()
++ }
++
++ exit(2)
++}
+diff --git a/src/runtime/sys_linux_s390x.s b/src/runtime/sys_linux_s390x.s
+new file mode 100644
+index 0000000..0dbfd1f
+--- /dev/null
++++ b/src/runtime/sys_linux_s390x.s
+@@ -0,0 +1,440 @@
++// Copyright 2014 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.
++
++// +build linux
++// +build s390x
++
++// System calls and other system stuff for Linux s390x; see
++// /usr/include/asm-s390/unistd.h for the syscall number definitions.
++
++#include "go_asm.h"
++#include "go_tls.h"
++#include "textflag.h"
++
++#define SYS_exit 1
++#define SYS_read 3
++#define SYS_write 4
++#define SYS_open 5
++#define SYS_close 6
++#define SYS_getpid 20
++#define SYS_kill 37
++#define SYS_fcntl 55
++#define SYS_gettimeofday 78
++#define SYS_select 142 // always return -ENOSYS // *****
++#define SYS_mmap 90
++#define SYS_munmap 91
++#define SYS_setitimer 104
++#define SYS_clone 120
++#define SYS_newselect 142 // ******
++#define SYS_sched_yield 158
++#define SYS_rt_sigreturn 173 // changed
++#define SYS_rt_sigaction 174 //
++#define SYS_rt_sigprocmask 175 //
++#define SYS_sigaltstack 186 //
++#define SYS_ugetrlimit 191 //
++#define SYS_madvise 219 //
++#define SYS_mincore 218 //
++#define SYS_gettid 236 //
++#define SYS_tkill 237 //
++#define SYS_futex 238 //
++#define SYS_sched_getaffinity 240 //
++#define SYS_exit_group 248 //
++#define SYS_epoll_create 249 //
++#define SYS_epoll_ctl 250 //
++#define SYS_epoll_wait 251 //
++#define SYS_clock_gettime 260 //
++#define SYS_epoll_create1 327 //
++
++TEXT runtime·exit(SB),NOSPLIT,$-8-4
++ MOVW code+0(FP), R2
++ MOVW $SYS_exit_group, R1
++ SYSCALL
++ RET
++
++TEXT runtime·exit1(SB),NOSPLIT,$-8-4
++ MOVW code+0(FP), R2
++ MOVW $SYS_exit, R1
++ SYSCALL
++ RET
++
++TEXT runtime·open(SB),NOSPLIT,$-8-20
++ MOVD name+0(FP), R2
++ MOVW mode+8(FP), R3
++ MOVW perm+12(FP), R4
++ MOVW $SYS_open, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVW $-1, R2
++ MOVW R2, ret+16(FP)
++ RET
++
++TEXT runtime·closefd(SB),NOSPLIT,$-8-12
++ MOVW fd+0(FP), R2
++ MOVW $SYS_close, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVW $-1, R2
++ MOVW R2, ret+8(FP)
++ RET
++
++TEXT runtime·write(SB),NOSPLIT,$-8-28
++ MOVD fd+0(FP), R2
++ MOVD p+8(FP), R3
++ MOVW n+16(FP), R4
++ MOVW $SYS_write, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVW $-1, R2
++ MOVW R2, ret+24(FP)
++ RET
++
++TEXT runtime·read(SB),NOSPLIT,$-8-28
++ MOVW fd+0(FP), R2
++ MOVD p+8(FP), R3
++ MOVW n+16(FP), R4
++ MOVW $SYS_read, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVW $-1, R2
++ MOVW R2, ret+24(FP)
++ RET
++
++TEXT runtime·getrlimit(SB),NOSPLIT,$-8-20
++ MOVW kind+0(FP), R2
++ MOVD limit+8(FP), R3
++ MOVW $SYS_ugetrlimit, R1
++ SYSCALL
++ MOVW R2, ret+16(FP)
++ RET
++
++TEXT runtime·usleep(SB),NOSPLIT,$16-4
++ MOVW usec+0(FP), R2
++ MOVD R2, R4
++ MOVW $1000000, R3
++ DIVD R3, R2
++ MOVD R2, 8(R15)
++ MULLD R2, R3
++ SUB R3, R4
++ MOVD R4, 16(R15)
++
++ // select(0, 0, 0, 0, &tv)
++ MOVW $0, R2
++ MOVW $0, R3
++ MOVW $0, R4
++ MOVW $0, R5
++ ADD $8, R15, R6
++ MOVW $SYS_newselect, R1
++ SYSCALL
++ RET
++
++TEXT runtime·gettid(SB),NOSPLIT,$0-4
++ MOVW $SYS_gettid, R1
++ SYSCALL
++ MOVW R2, ret+0(FP)
++ RET
++
++TEXT runtime·raise(SB),NOSPLIT,$-8
++ MOVW $SYS_gettid, R1
++ SYSCALL
++ MOVW R2, R2 // arg 1 tid
++ MOVW sig+0(FP), R3 // arg 2
++ MOVW $SYS_tkill, R1
++ SYSCALL
++ RET
++
++TEXT runtime·raiseproc(SB),NOSPLIT,$-8
++ MOVW $SYS_getpid, R1
++ SYSCALL
++ MOVW R2, R2 // arg 1 pid
++ MOVW sig+0(FP), R3 // arg 2
++ MOVW $SYS_kill, R1
++ SYSCALL
++ RET
++
++TEXT runtime·setitimer(SB),NOSPLIT,$-8-24
++ MOVW mode+0(FP), R2
++ MOVD new+8(FP), R3
++ MOVD old+16(FP), R4
++ MOVW $SYS_setitimer, R1
++ SYSCALL
++ RET
++
++TEXT runtime·mincore(SB),NOSPLIT,$-8-28
++ MOVD addr+0(FP), R2
++ MOVD n+8(FP), R3
++ MOVD dst+16(FP), R4
++ MOVW $SYS_mincore, R1
++ SYSCALL
++ MOVW R2, ret+24(FP)
++ RET
++
++// func now() (sec int64, nsec int32)
++TEXT time·now(SB),NOSPLIT,$16
++ MOVD $0(R15), R2
++ MOVD $0, R3
++ MOVW $SYS_gettimeofday, R1
++ SYSCALL
++ MOVD 0(R15), R2 // sec
++ MOVD 8(R15), R4 // usec
++ MOVD $1000, R3
++ MULLD R3, R4
++ MOVD R2, sec+0(FP)
++ MOVW R4, nsec+8(FP)
++ RET
++
++TEXT runtime·nanotime(SB),NOSPLIT,$16
++ MOVW $1, R2 // CLOCK_MONOTONIC
++ MOVD $0(R15), R3
++ MOVW $SYS_clock_gettime, R1
++ SYSCALL
++ MOVD 0(R15), R2 // sec
++ MOVD 8(R15), R4 // nsec
++ // sec is in R2, nsec in R4
++ // return nsec in R2
++ MOVD $1000000000, R3
++ MULLD R3, R2
++ ADD R4, R2
++ MOVD R2, ret+0(FP)
++ RET
++
++TEXT runtime·rtsigprocmask(SB),NOSPLIT,$-8-28
++ MOVW sig+0(FP), R2
++ MOVD new+8(FP), R3
++ MOVD old+16(FP), R4
++ MOVW size+24(FP), R5
++ MOVW $SYS_rt_sigprocmask, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVD R0, 0(R0) // crash
++ RET
++
++TEXT runtime·rt_sigaction(SB),NOSPLIT,$-8-36
++ MOVD sig+0(FP), R2
++ MOVD new+8(FP), R3
++ MOVD old+16(FP), R4
++ MOVD size+24(FP), R5
++ MOVW $SYS_rt_sigaction, R1
++ SYSCALL
++ MOVW R2, ret+32(FP)
++ RET
++
++TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
++ MOVW sig+8(FP), R2
++ MOVD info+16(FP), R3
++ MOVD ctx+24(FP), R4
++ MOVD fn+0(FP), R11
++ BL R11
++ RET
++
++TEXT runtime·sigtramp(SB),NOSPLIT,$64
++ // initialize essential registers (just in case)
++ BL runtime·reginit(SB)
++
++ // this might be called in external code context,
++ // where g is not set.
++ MOVB runtime·iscgo(SB), R6
++ CMPBEQ R6, $0, 2(PC)
++ BL runtime·load_g(SB)
++
++ MOVW R2, 8(R15)
++ MOVD R3, 16(R15)
++ MOVD R4, 24(R15)
++ MOVD $runtime·sigtrampgo(SB), R11
++ BL R11
++ RET
++
++TEXT runtime·mmap(SB),NOSPLIT,$48-40
++ MOVD addr+0(FP), R2
++ MOVD n+8(FP), R3
++ MOVW prot+16(FP), R4
++ MOVW flags+20(FP), R5
++ MOVW fd+24(FP), R6
++ MOVW off+28(FP), R7
++
++ // s390x uses old_mmap, so the arguments need to be placed into
++ // a struct and a pointer to the struct passed to mmap.
++ // TODO Offset should NOT be sign extended (it is a uint32).
++ MOVD R2, addr-48(SP)
++ MOVD R3, n-40(SP)
++ MOVD R4, prot-32(SP)
++ MOVD R5, flags-24(SP)
++ MOVD R6, fd-16(SP)
++ MOVD R7, off-8(SP)
++
++ MOVD $addr-48(SP), R2
++ MOVW $SYS_mmap, R1
++ SYSCALL
++ MOVD R2, ret+32(FP)
++ RET
++
++TEXT runtime·munmap(SB),NOSPLIT,$-8
++ MOVD addr+0(FP), R2
++ MOVD n+8(FP), R3
++ MOVW $SYS_munmap, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVD R0, 0(R0) // crash
++ RET
++
++TEXT runtime·madvise(SB),NOSPLIT,$-8
++ MOVD addr+0(FP), R2
++ MOVD n+8(FP), R3
++ MOVW flags+16(FP), R4
++ MOVW $SYS_madvise, R1
++ SYSCALL
++ // ignore failure - maybe pages are locked
++ RET
++
++// int64 futex(int32 *uaddr, int32 op, int32 val,
++// struct timespec *timeout, int32 *uaddr2, int32 val2);
++TEXT runtime·futex(SB),NOSPLIT,$-8
++ MOVD addr+0(FP), R2
++ MOVW op+8(FP), R3
++ MOVW val+12(FP), R4
++ MOVD ts+16(FP), R5
++ MOVD addr2+24(FP), R6
++ MOVW val3+32(FP), R7
++ MOVW $SYS_futex, R1
++ SYSCALL
++ MOVW R2, ret+40(FP)
++ RET
++
++// int32 clone(int32 flags, void *stk, M *mp, G *gp, void (*fn)(void));
++TEXT runtime·clone(SB),NOSPLIT,$-8
++ MOVW flags+0(FP), R3
++ MOVD stk+8(FP), R2
++
++ // Copy mp, gp, fn off parent stack for use by child.
++ // Careful: Linux system call clobbers ???.
++ MOVD mm+16(FP), R7
++ MOVD gg+24(FP), R8
++ MOVD fn+32(FP), R9
++
++ MOVD R7, -8(R2)
++ MOVD R8, -16(R2)
++ MOVD R9, -24(R2)
++ MOVD $1234, R7
++ MOVD R7, -32(R2)
++
++ SYSCALL $SYS_clone
++
++ // In parent, return.
++ CMPBEQ R2, $0, 3(PC)
++ MOVW R2, ret+40(FP)
++ RET
++
++ // In child, on new stack.
++ // initialize essential registers
++ BL runtime·reginit(SB)
++ MOVD -32(R15), R7
++ CMP R7, $1234
++ BEQ 2(PC)
++ MOVD R0, 0(R0)
++
++ // Initialize m->procid to Linux tid
++ SYSCALL $SYS_gettid
++
++ MOVD -24(R15), R9 // fn
++ MOVD -16(R15), R8 // g
++ MOVD -8(R15), R7 // m
++
++ CMPBEQ R7, $0, nog
++ CMP R8, $0
++ BEQ nog
++
++ MOVD R2, m_procid(R7)
++
++ // TODO: setup TLS.
++
++ // In child, set up new stack
++ MOVD R7, g_m(R8)
++ MOVD R8, g
++ //CALL runtime·stackcheck(SB)
++
++nog:
++ // Call fn
++ BL R9
++
++ // It shouldn't return. If it does, exit that thread.
++ MOVW $111, R2
++ MOVW $SYS_exit, R1
++ SYSCALL
++ BR -2(PC) // keep exiting
++
++TEXT runtime·sigaltstack(SB),NOSPLIT,$-8
++ MOVD new+0(FP), R2
++ MOVD old+8(FP), R3
++ MOVW $SYS_sigaltstack, R1
++ SYSCALL
++ MOVD $-4095, R3
++ CMPUBLT R2, R3, 2(PC)
++ MOVD R0, 0(R0) // crash
++ RET
++
++TEXT runtime·osyield(SB),NOSPLIT,$-8
++ MOVW $SYS_sched_yield, R1
++ SYSCALL
++ RET
++
++TEXT runtime·sched_getaffinity(SB),NOSPLIT,$-8
++ MOVD pid+0(FP), R2
++ MOVD len+8(FP), R3
++ MOVD buf+16(FP), R4
++ MOVW $SYS_sched_getaffinity, R1
++ SYSCALL
++ MOVW R2, ret+24(FP)
++ RET
++
++// int32 runtime·epollcreate(int32 size);
++TEXT runtime·epollcreate(SB),NOSPLIT,$-8
++ MOVW size+0(FP), R2
++ MOVW $SYS_epoll_create, R1
++ SYSCALL
++ MOVW R2, ret+8(FP)
++ RET
++
++// int32 runtime·epollcreate1(int32 flags);
++TEXT runtime·epollcreate1(SB),NOSPLIT,$-8
++ MOVW flags+0(FP), R2
++ MOVW $SYS_epoll_create1, R1
++ SYSCALL
++ MOVW R2, ret+8(FP)
++ RET
++
++// func epollctl(epfd, op, fd int32, ev *epollEvent) int
++TEXT runtime·epollctl(SB),NOSPLIT,$-8
++ MOVW epfd+0(FP), R2
++ MOVW op+4(FP), R3
++ MOVW fd+8(FP), R4
++ MOVD ev+16(FP), R5
++ MOVW $SYS_epoll_ctl, R1
++ SYSCALL
++ MOVW R2, ret+24(FP)
++ RET
++
++// int32 runtime·epollwait(int32 epfd, EpollEvent *ev, int32 nev, int32 timeout);
++TEXT runtime·epollwait(SB),NOSPLIT,$-8
++ MOVW epfd+0(FP), R2
++ MOVD ev+8(FP), R3
++ MOVW nev+16(FP), R4
++ MOVW timeout+20(FP), R5
++ MOVW $SYS_epoll_wait, R1
++ SYSCALL
++ MOVW R2, ret+24(FP)
++ RET
++
++// void runtime·closeonexec(int32 fd);
++TEXT runtime·closeonexec(SB),NOSPLIT,$-8
++ MOVW fd+0(FP), R2 // fd
++ MOVD $2, R3 // F_SETFD
++ MOVD $1, R4 // FD_CLOEXEC
++ MOVW $SYS_fcntl, R1
++ SYSCALL
++ RET
+diff --git a/src/runtime/sys_s390x.go b/src/runtime/sys_s390x.go
+new file mode 100644
+index 0000000..82418d3
+--- /dev/null
++++ b/src/runtime/sys_s390x.go
+@@ -0,0 +1,50 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++package runtime
++
++import "unsafe"
++
++// adjust Gobuf as if it executed a call to fn with context ctxt
++// and then did an immediate Gosave.
++func gostartcall(buf *gobuf, fn, ctxt unsafe.Pointer) {
++ if buf.lr != 0 {
++ throw("invalid use of gostartcall")
++ }
++ buf.lr = buf.pc
++ buf.pc = uintptr(fn)
++ buf.ctxt = ctxt
++}
++
++// Called to rewind context saved during morestack back to beginning of function.
++// To help us, the linker emits a jmp back to the beginning right after the
++// call to morestack. We just have to decode and apply that jump.
++func rewindmorestack(buf *gobuf) {
++ var inst uint64
++ if buf.pc&1 == 0 && buf.pc != 0 {
++ inst = *(*uint64)(unsafe.Pointer(buf.pc))
++ //print("runtime: rewind pc=", hex(buf.pc), " to pc=", hex(inst), "\n");
++ if inst>>48 == 0xa7f4 {
++ inst >>= 32
++ inst &= 0xFFFF
++ offset := int64(int16(inst))
++ offset <<= 1
++ buf.pc += uintptr(offset)
++ return
++ } else if inst>>48 == 0xc0f4 {
++ inst >>= 16
++ inst = inst & 0xFFFFFFFF
++ //print("runtime: rewind inst1 = ",hex(inst),"\n")
++ inst = (inst << 1) & 0xFFFFFFFF
++ //print("runtime: rewind inst2 = ",hex(inst),"\n")
++ buf.pc += uintptr(int32(inst))
++ //print("runtime: rewind pc = ",hex(buf.pc),"\n")
++ return
++ }
++ }
++ print("runtime: pc=", hex(buf.pc), " ", hex(inst), "\n")
++ throw("runtime: misuse of rewindmorestack")
++}
+diff --git a/src/runtime/tls_s390x.s b/src/runtime/tls_s390x.s
+new file mode 100644
+index 0000000..403e53b
+--- /dev/null
++++ b/src/runtime/tls_s390x.s
+@@ -0,0 +1,69 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "go_asm.h"
++#include "go_tls.h"
++#include "funcdata.h"
++#include "textflag.h"
++
++// We have to resort to TLS variable to save g (R13).
++// One reason is that external code might trigger
++// SIGSEGV, and our runtime.sigtramp don't even know we
++// are in external code, and will continue to use R13,
++// this might well result in another SIGSEGV.
++
++// save_g saves the g register into pthread-provided
++// thread-local memory, so that we can call externally compiled
++// s390x code that will overwrite this register.
++//
++// If !iscgo, this is a no-op.
++//
++// NOTE: setg_gcc<> assume this clobbers only R10 and R11.
++TEXT runtime·save_g(SB),NOSPLIT,$-8-0
++ MOVB runtime·iscgo(SB), R10
++ CMPBEQ R10, $0, nocgo
++
++ // Rematerialize the C TLS base pointer from AR0:AR1;
++ // "MOVW ARx, Rx" is translated to EAR.
++ MOVW AR0, R11
++ SLD $32, R11
++ MOVW AR1, R11
++
++ // $runtime.tlsg(SB) is a special linker symbol.
++ // It is the offset from the start of TLS to our
++ // thread-local storage for g.
++ // Note: on s390x the offset should be less than 0
++ MOVD $runtime·tlsg(SB), R10
++ ADD R11, R10
++
++ // Store g in TLS
++ MOVD g, 0(R10)
++
++nocgo:
++ RET
++
++// load_g loads the g register from pthread-provided
++// thread-local memory, for use after calling externally compiled
++// s390x code that overwrote those registers.
++//
++// This is never called directly from C code (it doesn't have to
++// follow the C ABI), but it may be called from a C context, where the
++// usual Go registers aren't set up.
++//
++// NOTE: _cgo_topofstack assumes this only clobbers g (R13), R10 and R11.
++TEXT runtime·load_g(SB),NOSPLIT,$-8-0
++ MOVW AR0, R11
++ SLD $32, R11
++ MOVW AR1, R11
++
++ MOVD $runtime·tlsg(SB), R10
++ ADD R11, R10
++
++ // Load g from TLS
++ MOVD 0(R10), g
++ RET
++
++GLOBL runtime·tlsg_offset+0(SB), RODATA, $8
+diff --git a/src/runtime/unaligned1.go b/src/runtime/unaligned1.go
+index d3d6c70..602fd67 100644
+--- a/src/runtime/unaligned1.go
++++ b/src/runtime/unaligned1.go
+@@ -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
++// +build 386 amd64 amd64p32 arm64 s390x
+
+ package runtime
+
+diff --git a/src/sync/atomic/asm_s390x.s b/src/sync/atomic/asm_s390x.s
+new file mode 100644
+index 0000000..cdc18ac
+--- /dev/null
++++ b/src/sync/atomic/asm_s390x.s
+@@ -0,0 +1,151 @@
++// Copyright 2014 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.
++
++// +build s390x
++
++#include "textflag.h"
++
++TEXT ·SwapInt32(SB),NOSPLIT,$0-20
++ BR ·SwapUint32(SB)
++
++TEXT ·SwapUint32(SB),NOSPLIT,$0-20
++ MOVD addr+0(FP), R3
++ MOVW new+8(FP), R4
++repeat: MOVW (R3), R5
++ CS R5, R4, (R3) // if (R3) == R5, then (R3) = R4
++ BNE repeat
++ MOVW R5, old+16(FP)
++ RET
++
++TEXT ·SwapInt64(SB),NOSPLIT,$0-24
++ BR ·SwapUint64(SB)
++
++TEXT ·SwapUint64(SB),NOSPLIT,$0-24
++ MOVD addr+0(FP), R3
++ MOVD new+8(FP), R4
++repeat: MOVD (R3), R5
++ CSG R5, R4, (R3) // if (R3) == R5, then (R3) = R4
++ BNE repeat
++ MOVD R5, old+16(FP)
++ RET
++
++TEXT ·SwapUintptr(SB),NOSPLIT,$0-24
++ BR ·SwapUint64(SB)
++
++TEXT ·CompareAndSwapInt32(SB),NOSPLIT,$0-17
++ BR ·CompareAndSwapUint32(SB)
++
++TEXT ·CompareAndSwapUint32(SB),NOSPLIT,$0-17
++ MOVD ptr+0(FP), R3
++ MOVWZ old+8(FP), R4
++ MOVWZ new+12(FP), R5
++ CS R4, R5, 0(R3) // if (R4 == 0(R3)) then 0(R3)= R5
++ BNE cas_fail
++ MOVD $1, R3
++ MOVB R3, ret+16(FP)
++ RET
++cas_fail:
++ MOVD $0, R3
++ MOVB R3, ret+16(FP)
++ RET
++
++TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-25
++ BR ·CompareAndSwapUint64(SB)
++
++TEXT ·CompareAndSwapInt64(SB),NOSPLIT,$0-25
++ BR ·CompareAndSwapUint64(SB)
++
++TEXT ·CompareAndSwapUint64(SB),NOSPLIT,$0-25
++ MOVD ptr+0(FP), R3
++ MOVD old+8(FP), R4
++ MOVD new+16(FP), R5
++ CSG R4, R5, 0(R3) // if (R4 == 0(R3)) then 0(R3)= R5
++ BNE cas64_fail
++ MOVD $1, R3
++ MOVB R3, ret+24(FP)
++ RET
++cas64_fail:
++ MOVD $0, R3
++ MOVB R3, ret+24(FP)
++ RET
++
++TEXT ·AddInt32(SB),NOSPLIT,$0-20
++ BR ·AddUint32(SB)
++
++TEXT ·AddUint32(SB),NOSPLIT,$0-20
++ MOVD ptr+0(FP), R4
++ MOVW delta+8(FP), R5
++repeat:
++ MOVW (R4), R3
++ MOVD R3, R6
++ ADD R5, R3
++ CS R6, R3, (R4) // if (R6==(R4)) then (R4)=R3
++ BNE repeat
++ MOVW R3, ret+16(FP)
++ RET
++
++TEXT ·AddUintptr(SB),NOSPLIT,$0-24
++ BR ·AddUint64(SB)
++
++TEXT ·AddInt64(SB),NOSPLIT,$0-24
++ BR ·AddUint64(SB)
++
++TEXT ·AddUint64(SB),NOSPLIT,$0-24
++ MOVD ptr+0(FP), R4
++ MOVD delta+8(FP), R5
++repeat:
++ MOVD (R4), R3
++ MOVD R3, R6
++ ADD R5, R3
++ CSG R6, R3, (R4) // if (R6==(R4)) then (R4)=R3
++ BNE repeat
++ MOVD R3, ret+16(FP)
++ RET
++
++TEXT ·LoadInt32(SB),NOSPLIT,$0-12
++ BR ·LoadUint32(SB)
++
++TEXT ·LoadUint32(SB),NOSPLIT,$0-12
++ MOVD addr+0(FP), R3
++ MOVW 0(R3), R3
++ MOVW R3, val+8(FP)
++ RET
++
++TEXT ·LoadInt64(SB),NOSPLIT,$0-16
++ BR ·LoadUint64(SB)
++
++TEXT ·LoadUint64(SB),NOSPLIT,$0-16
++ MOVD addr+0(FP), R3
++ MOVD 0(R3), R3
++ MOVD R3, val+8(FP)
++ RET
++
++TEXT ·LoadUintptr(SB),NOSPLIT,$0-16
++ BR ·LoadPointer(SB)
++
++TEXT ·LoadPointer(SB),NOSPLIT,$0-16
++ BR ·LoadUint64(SB)
++
++TEXT ·StoreInt32(SB),NOSPLIT,$0-12
++ BR ·StoreUint32(SB)
++
++TEXT ·StoreUint32(SB),NOSPLIT,$0-12
++ MOVD ptr+0(FP), R3
++ MOVW val+8(FP), R4
++ SYNC
++ MOVW R4, 0(R3)
++ RET
++
++TEXT ·StoreInt64(SB),NOSPLIT,$0-16
++ BR ·StoreUint64(SB)
++
++TEXT ·StoreUint64(SB),NOSPLIT,$0-16
++ MOVD addr+0(FP), R3
++ MOVD val+8(FP), R4
++ SYNC
++ MOVD R4, 0(R3)
++ RET
++
++TEXT ·StoreUintptr(SB),NOSPLIT,$0-16
++ BR ·StoreUint64(SB)
+diff --git a/src/syscall/asm_linux_s390x.s b/src/syscall/asm_linux_s390x.s
+new file mode 100644
+index 0000000..d694225
+--- /dev/null
++++ b/src/syscall/asm_linux_s390x.s
+@@ -0,0 +1,176 @@
++// Copyright 2014 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.
++
++// +build linux
++// +build s390x
++
++#include "textflag.h"
++
++//
++// System calls for s390x, Linux
++//
++
++// func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64);
++
++TEXT ·Syscall(SB),NOSPLIT,$0-56
++ BL runtime·entersyscall(SB)
++ MOVD a1+8(FP), R2
++ MOVD a2+16(FP), R3
++ MOVD a3+24(FP), R4
++ MOVD $0, R5
++ MOVD $0, R6
++ MOVD $0, R7
++ MOVD trap+0(FP), R1 // syscall entry
++ SYSCALL
++ MOVD $0xfffffffffffff001, R10
++ CMPUBLT R2, R10, ok
++ MOVD $-1, R10
++ MOVD R10, r1+32(FP) // r1
++ MOVD $0, R10
++ MOVD R10, r2+40(FP) // r2
++ NEG R2, R2
++ MOVD R2, err+48(FP) // errno
++ BL runtime·exitsyscall(SB)
++ RET
++ok:
++ MOVD R2, r1+32(FP) // r1
++ MOVD R3, r2+40(FP) // r2
++ MOVD $0, R10
++ MOVD R10, err+48(FP) // errno
++ BL runtime·exitsyscall(SB)
++ RET
++
++// func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
++TEXT ·Syscall6(SB),NOSPLIT,$0-80
++ BL runtime·entersyscall(SB)
++ MOVD a1+8(FP), R2
++ MOVD a2+16(FP), R3
++ MOVD a3+24(FP), R4
++ MOVD a4+32(FP), R5
++ MOVD a5+40(FP), R6
++ MOVD a6+48(FP), R7
++ MOVD trap+0(FP), R1 // syscall entry
++ SYSCALL
++ MOVD $0xfffffffffffff001, R10
++ CMPUBLT R2, R10, ok6
++ MOVD $-1, R10
++ MOVD R10, r1+56(FP) // r1
++ MOVD $0, R10
++ MOVD R10, r2+64(FP) // r2
++ NEG R2, R2
++ MOVD R2, err+72(FP) // errno
++ BL runtime·exitsyscall(SB)
++ RET
++ok6:
++ MOVD R2, r1+56(FP) // r1
++ MOVD R3, r2+64(FP) // r2
++ MOVD $0, R10
++ MOVD R10, err+72(FP) // errno
++ BL runtime·exitsyscall(SB)
++ RET
++
++// func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
++ MOVD a1+8(FP), R2
++ MOVD a2+16(FP), R3
++ MOVD a3+24(FP), R4
++ MOVD $0, R5
++ MOVD $0, R6
++ MOVD $0, R7
++ MOVD trap+0(FP), R1 // syscall entry
++ SYSCALL
++ MOVD $0xfffffffffffff001, R10
++ CMPUBLT R2, R10, ok1
++ MOVD $-1, R10
++ MOVD R10, r1+32(FP) // r1
++ MOVD $0, R10
++ MOVD R10, r2+40(FP) // r2
++ NEG R2, R2
++ MOVD R2, err+48(FP) // errno
++ RET
++ok1:
++ MOVD R2, r1+32(FP) // r1
++ MOVD R3, r2+40(FP) // r2
++ MOVD $0, R10
++ MOVD R10, err+48(FP) // errno
++ RET
++
++// func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
++ MOVD a1+8(FP), R2
++ MOVD a2+16(FP), R3
++ MOVD a3+24(FP), R4
++ MOVD a4+32(FP), R5
++ MOVD a5+40(FP), R6
++ MOVD a6+48(FP), R7
++ MOVD trap+0(FP), R1 // syscall entry
++ SYSCALL
++ MOVD $0xfffffffffffff001, R10
++ CMPUBLT R2, R10, ok2
++ MOVD $-1, R10
++ MOVD R10, r1+56(FP) // r1
++ MOVD $0, R10
++ MOVD R10, r2+64(FP) // r2
++ NEG R2, R2
++ MOVD R2, err+72(FP) // errno
++ RET
++ok2:
++ MOVD R2, r1+56(FP) // r1
++ MOVD R3, r2+64(FP) // r2
++ MOVD $0, R10
++ MOVD R10, err+72(FP) // errno
++ RET
++
++#define SYS_SOCKETCALL 102 /* from zsysnum_linux_s390x.go */
++
++// func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err int)
++// Kernel interface gets call sub-number and pointer to a0.
++TEXT ·socketcall(SB),NOSPLIT,$0-72
++ BL runtime·entersyscall(SB)
++ MOVD $SYS_SOCKETCALL, R1 // syscall entry
++ MOVD call+0(FP), R2 // socket call number
++ MOVD $a0+8(FP), R3 // pointer to call arguments
++ MOVD $0, R4
++ MOVD $0, R5
++ MOVD $0, R6
++ MOVD $0, R7
++ SYSCALL
++ MOVD $0xfffffffffffff001, R10
++ CMPUBLT R2, R10, oksock
++ MOVD $-1, R10
++ MOVD R10, n+56(FP)
++ NEG R2, R2
++ MOVD R2, err+64(FP)
++ BL runtime·exitsyscall(SB)
++ RET
++oksock:
++ MOVD R2, n+56(FP)
++ MOVD $0, R10
++ MOVD R10, err+64(FP)
++ CALL runtime·exitsyscall(SB)
++ RET
++
++// func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err int)
++// Kernel interface gets call sub-number and pointer to a0.
++TEXT ·rawsocketcall(SB),NOSPLIT,$0-72
++ MOVD $SYS_SOCKETCALL, R1 // syscall entry
++ MOVD call+0(FP), R2 // socket call number
++ MOVD $a0+8(FP), R3 // pointer to call arguments
++ MOVD $0, R4
++ MOVD $0, R5
++ MOVD $0, R6
++ MOVD $0, R7
++ SYSCALL
++ MOVD $0xfffffffffffff001, R10
++ CMPUBLT R2, R10, oksock1
++ MOVD $-1, R10
++ MOVD R10, n+56(FP)
++ NEG R2, R2
++ MOVD R2, err+64(FP)
++ RET
++oksock1:
++ MOVD R2, n+56(FP)
++ MOVD $0, R10
++ MOVD R10, err+64(FP)
++ RET
+diff --git a/src/syscall/exec_linux.go b/src/syscall/exec_linux.go
+index 3e08d43..0fd73bd 100644
+--- a/src/syscall/exec_linux.go
++++ b/src/syscall/exec_linux.go
+@@ -7,6 +7,7 @@
+ package syscall
+
+ import (
++ "runtime"
+ "unsafe"
+ )
+
+@@ -93,7 +94,11 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
+ // About to call fork.
+ // No more allocation or calls of non-assembly functions.
+ runtime_BeforeFork()
+- r1, _, err1 = RawSyscall6(SYS_CLONE, uintptr(SIGCHLD)|sys.Cloneflags, 0, 0, 0, 0, 0)
++ if runtime.GOARCH == "s390x" {
++ r1, _, err1 = RawSyscall6(SYS_CLONE, 0, uintptr(SIGCHLD)|sys.Cloneflags, 0, 0, 0, 0)
++ } else {
++ r1, _, err1 = RawSyscall6(SYS_CLONE, uintptr(SIGCHLD)|sys.Cloneflags, 0, 0, 0, 0, 0)
++ }
+ if err1 != 0 {
+ runtime_AfterFork()
+ return 0, err1
+diff --git a/src/syscall/mkall.sh b/src/syscall/mkall.sh
+index 85fab4f..1d40092 100755
+--- a/src/syscall/mkall.sh
++++ b/src/syscall/mkall.sh
+@@ -207,6 +207,13 @@ linux_ppc64le)
+ mksysnum="./mksysnum_linux.pl $unistd_h"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
++linux_s390x)
++ GOOSARCH_in=syscall_linux_s390x.go
++ unistd_h=/usr/include/asm/unistd.h
++ mkerrors="$mkerrors -m64"
++ mksysnum="./mksysnum_linux.pl $unistd_h"
++ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
++ ;;
+ nacl_386)
+ mkerrors=""
+ mksyscall="./mksyscall.pl -l32 -nacl"
+diff --git a/src/syscall/syscall_linux_s390x.go b/src/syscall/syscall_linux_s390x.go
+new file mode 100644
+index 0000000..d21dd04
+--- /dev/null
++++ b/src/syscall/syscall_linux_s390x.go
+@@ -0,0 +1,299 @@
++// 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.
++
++// +build linux
++// +build s390x
++
++package syscall
++
++import "unsafe"
++
++const _SYS_dup = SYS_DUP2
++
++//sys Dup2(oldfd int, newfd int) (err error)
++//sys Fchown(fd int, uid int, gid int) (err error)
++//sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatfs(fd int, buf *Statfs_t) (err error)
++//sys Ftruncate(fd int, length int64) (err error)
++//sysnb Getegid() (egid int)
++//sysnb Geteuid() (euid int)
++//sysnb Getgid() (gid int)
++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT
++//sysnb Getuid() (uid int)
++//sysnb InotifyInit() (fd int, err error)
++//sys Lchown(path string, uid int, gid int) (err error)
++//sys Lstat(path string, stat *Stat_t) (err error)
++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
++//sys Setfsgid(gid int) (err error)
++//sys Setfsuid(uid int) (err error)
++//sysnb Setregid(rgid int, egid int) (err error)
++//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
++//sysnb Setresuid(ruid int, euid int, suid int) (err error)
++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
++//sysnb Setreuid(ruid int, euid int) (err error)
++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
++//sys Stat(path string, stat *Stat_t) (err error)
++//sys Statfs(path string, buf *Statfs_t) (err error)
++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE
++//sys Truncate(path string, length int64) (err error)
++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
++//sysnb setgroups(n int, list *_Gid_t) (err error)
++
++func Getpagesize() int { return 4096 }
++
++//sysnb Gettimeofday(tv *Timeval) (err error)
++
++func Time(t *Time_t) (tt Time_t, err error) {
++ var tv Timeval
++ err = Gettimeofday(&tv)
++ if err != nil {
++ return 0, err
++ }
++ if t != nil {
++ *t = Time_t(tv.Sec)
++ }
++ return Time_t(tv.Sec), nil
++}
++
++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++
++func NsecToTimespec(nsec int64) (ts Timespec) {
++ ts.Sec = nsec / 1e9
++ ts.Nsec = nsec % 1e9
++ return
++}
++
++func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
++
++func NsecToTimeval(nsec int64) (tv Timeval) {
++ nsec += 999 // round up to microsecond
++ tv.Sec = nsec / 1e9
++ tv.Usec = nsec % 1e9 / 1e3
++ return
++}
++
++func Pipe(p []int) (err error) {
++ if len(p) != 2 {
++ return EINVAL
++ }
++ var pp [2]_C_int
++ err = pipe2(&pp, 0)
++ p[0] = int(pp[0])
++ p[1] = int(pp[1])
++ return
++}
++
++//sysnb pipe2(p *[2]_C_int, flags int) (err error)
++
++func Pipe2(p []int, flags int) (err error) {
++ if len(p) != 2 {
++ return EINVAL
++ }
++ var pp [2]_C_int
++ err = pipe2(&pp, flags)
++ p[0] = int(pp[0])
++ p[1] = int(pp[1])
++ return
++}
++
++// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.
++// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.
++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
++ mmap_args := [6]uintptr{ addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset) }
++ r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)
++ use(unsafe.Pointer(&mmap_args[0]))
++ xaddr = uintptr(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// On s390x Linux, all the socket calls go through an extra indirection.
++// The arguments to the underlying system call are the number below
++// and a pointer to an array of uintptr. We hide the pointer in the
++// socketcall assembly to avoid allocation on every system call.
++
++const (
++ // see linux/net.h
++ _SOCKET = 1
++ _BIND = 2
++ _CONNECT = 3
++ _LISTEN = 4
++ _ACCEPT = 5
++ _GETSOCKNAME = 6
++ _GETPEERNAME = 7
++ _SOCKETPAIR = 8
++ _SEND = 9
++ _RECV = 10
++ _SENDTO = 11
++ _RECVFROM = 12
++ _SHUTDOWN = 13
++ _SETSOCKOPT = 14
++ _GETSOCKOPT = 15
++ _SENDMSG = 16
++ _RECVMSG = 17
++ _ACCEPT4 = 18
++ _RECVMMSG = 19
++ _SENDMMSG = 20
++)
++
++func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err Errno)
++func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err Errno)
++
++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
++ fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
++ fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
++ _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func socket(domain int, typ int, proto int) (fd int, err error) {
++ fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
++ _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
++ _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
++ var base uintptr
++ if len(p) > 0 {
++ base = uintptr(unsafe.Pointer(&p[0]))
++ }
++ n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
++ var base uintptr
++ if len(p) > 0 {
++ base = uintptr(unsafe.Pointer(&p[0]))
++ }
++ _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func Listen(s int, n int) (err error) {
++ _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func Shutdown(s, how int) (err error) {
++ _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)
++ if e != 0 {
++ err = e
++ }
++ return
++}
++
++func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }
++
++func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }
++
++func (iov *Iovec) SetLen(length int) {
++ iov.Len = uint64(length)
++}
++
++func (msghdr *Msghdr) SetControllen(length int) {
++ msghdr.Controllen = uint64(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint64(length)
++}
+diff --git a/src/syscall/types_linux.go b/src/syscall/types_linux.go
+index cff4069..6d197d8 100644
+--- a/src/syscall/types_linux.go
++++ b/src/syscall/types_linux.go
+@@ -93,10 +93,22 @@ typedef struct user_pt_regs PtraceRegs;
+ typedef struct pt_regs PtraceRegs;
+ #elif defined(__mips__)
+ typedef struct user PtraceRegs;
++#elif defined(__s390x__)
++typedef struct _user_regs_struct PtraceRegs;
+ #else
+ typedef struct user_regs_struct PtraceRegs;
+ #endif
+
++#if defined(__s390x__)
++typedef struct _user_psw_struct PtraceRegsPsw;
++typedef struct _user_fpregs_struct PtraceRegsFp;
++typedef struct _user_per_struct PtraceRegsPer;
++#else
++typedef struct {} PtraceRegsPsw;
++typedef struct {} PtraceRegsFp;
++typedef struct {} PtraceRegsPer;
++#endif
++
+ // The real epoll_event is a union, and godefs doesn't handle it well.
+ struct my_epoll_event {
+ uint32_t events;
+@@ -365,6 +377,12 @@ const SizeofInotifyEvent = C.sizeof_struct_inotify_event
+ // Ptrace
+
+ // Register structures
++type PtraceRegsPsw C.PtraceRegsPsw
++
++type PtraceRegsFp C.PtraceRegsFp
++
++type PtraceRegsPer C.PtraceRegsPer
++
+ type PtraceRegs C.PtraceRegs
+
+ // Misc
+diff --git a/src/syscall/zerrors_linux_s390x.go b/src/syscall/zerrors_linux_s390x.go
+new file mode 100644
+index 0000000..4e25255
+--- /dev/null
++++ b/src/syscall/zerrors_linux_s390x.go
+@@ -0,0 +1,1869 @@
++// mkerrors.sh -m64
++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++
++// Created by cgo -godefs - DO NOT EDIT
++// cgo -godefs -- -m64 _const.go
++
++// +build s390x,linux
++
++package syscall
++
++const (
++ AF_ALG = 0x26
++ AF_APPLETALK = 0x5
++ AF_ASH = 0x12
++ AF_ATMPVC = 0x8
++ AF_ATMSVC = 0x14
++ AF_AX25 = 0x3
++ AF_BLUETOOTH = 0x1f
++ AF_BRIDGE = 0x7
++ AF_CAIF = 0x25
++ AF_CAN = 0x1d
++ AF_DECnet = 0xc
++ AF_ECONET = 0x13
++ AF_FILE = 0x1
++ AF_IEEE802154 = 0x24
++ AF_INET = 0x2
++ AF_INET6 = 0xa
++ AF_IPX = 0x4
++ AF_IRDA = 0x17
++ AF_ISDN = 0x22
++ AF_IUCV = 0x20
++ AF_KEY = 0xf
++ AF_LLC = 0x1a
++ AF_LOCAL = 0x1
++ AF_MAX = 0x28
++ AF_NETBEUI = 0xd
++ AF_NETLINK = 0x10
++ AF_NETROM = 0x6
++ AF_NFC = 0x27
++ AF_PACKET = 0x11
++ AF_PHONET = 0x23
++ AF_PPPOX = 0x18
++ AF_RDS = 0x15
++ AF_ROSE = 0xb
++ AF_ROUTE = 0x10
++ AF_RXRPC = 0x21
++ AF_SECURITY = 0xe
++ AF_SNA = 0x16
++ AF_TIPC = 0x1e
++ AF_UNIX = 0x1
++ AF_UNSPEC = 0x0
++ AF_WANPIPE = 0x19
++ AF_X25 = 0x9
++ ARPHRD_ADAPT = 0x108
++ ARPHRD_APPLETLK = 0x8
++ ARPHRD_ARCNET = 0x7
++ ARPHRD_ASH = 0x30d
++ ARPHRD_ATM = 0x13
++ ARPHRD_AX25 = 0x3
++ ARPHRD_BIF = 0x307
++ ARPHRD_CAIF = 0x336
++ ARPHRD_CAN = 0x118
++ ARPHRD_CHAOS = 0x5
++ ARPHRD_CISCO = 0x201
++ ARPHRD_CSLIP = 0x101
++ ARPHRD_CSLIP6 = 0x103
++ ARPHRD_DDCMP = 0x205
++ ARPHRD_DLCI = 0xf
++ ARPHRD_ECONET = 0x30e
++ ARPHRD_EETHER = 0x2
++ ARPHRD_ETHER = 0x1
++ ARPHRD_EUI64 = 0x1b
++ ARPHRD_FCAL = 0x311
++ ARPHRD_FCFABRIC = 0x313
++ ARPHRD_FCPL = 0x312
++ ARPHRD_FCPP = 0x310
++ ARPHRD_FDDI = 0x306
++ ARPHRD_FRAD = 0x302
++ ARPHRD_HDLC = 0x201
++ ARPHRD_HIPPI = 0x30c
++ ARPHRD_HWX25 = 0x110
++ ARPHRD_IEEE1394 = 0x18
++ ARPHRD_IEEE802 = 0x6
++ ARPHRD_IEEE80211 = 0x321
++ ARPHRD_IEEE80211_PRISM = 0x322
++ ARPHRD_IEEE80211_RADIOTAP = 0x323
++ ARPHRD_IEEE802154 = 0x324
++ ARPHRD_IEEE802154_MONITOR = 0x325
++ ARPHRD_IEEE802_TR = 0x320
++ ARPHRD_INFINIBAND = 0x20
++ ARPHRD_IP6GRE = 0x337
++ ARPHRD_IPDDP = 0x309
++ ARPHRD_IPGRE = 0x30a
++ ARPHRD_IRDA = 0x30f
++ ARPHRD_LAPB = 0x204
++ ARPHRD_LOCALTLK = 0x305
++ ARPHRD_LOOPBACK = 0x304
++ ARPHRD_METRICOM = 0x17
++ ARPHRD_NETLINK = 0x338
++ ARPHRD_NETROM = 0x0
++ ARPHRD_NONE = 0xfffe
++ ARPHRD_PHONET = 0x334
++ ARPHRD_PHONET_PIPE = 0x335
++ ARPHRD_PIMREG = 0x30b
++ ARPHRD_PPP = 0x200
++ ARPHRD_PRONET = 0x4
++ ARPHRD_RAWHDLC = 0x206
++ ARPHRD_ROSE = 0x10e
++ ARPHRD_RSRVD = 0x104
++ ARPHRD_SIT = 0x308
++ ARPHRD_SKIP = 0x303
++ ARPHRD_SLIP = 0x100
++ ARPHRD_SLIP6 = 0x102
++ ARPHRD_TUNNEL = 0x300
++ ARPHRD_TUNNEL6 = 0x301
++ ARPHRD_VOID = 0xffff
++ ARPHRD_X25 = 0x10f
++ B0 = 0x0
++ B1000000 = 0x1008
++ B110 = 0x3
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1200 = 0x9
++ B134 = 0x4
++ B150 = 0x5
++ B1500000 = 0x100a
++ B1800 = 0xa
++ B19200 = 0xe
++ B200 = 0x6
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2400 = 0xb
++ B2500000 = 0x100c
++ B300 = 0x7
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B38400 = 0xf
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B4800 = 0xc
++ B50 = 0x1
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B600 = 0x8
++ B75 = 0x2
++ B921600 = 0x1007
++ B9600 = 0xd
++ BPF_A = 0x10
++ BPF_ABS = 0x20
++ BPF_ADD = 0x0
++ BPF_ALU = 0x4
++ BPF_AND = 0x50
++ BPF_B = 0x10
++ BPF_DIV = 0x30
++ BPF_H = 0x8
++ BPF_IMM = 0x0
++ BPF_IND = 0x40
++ BPF_JA = 0x0
++ BPF_JEQ = 0x10
++ BPF_JGE = 0x30
++ BPF_JGT = 0x20
++ BPF_JMP = 0x5
++ BPF_JSET = 0x40
++ BPF_K = 0x0
++ BPF_LD = 0x0
++ BPF_LDX = 0x1
++ BPF_LEN = 0x80
++ BPF_LSH = 0x60
++ BPF_MAJOR_VERSION = 0x1
++ BPF_MAXINSNS = 0x1000
++ BPF_MEM = 0x60
++ BPF_MEMWORDS = 0x10
++ BPF_MINOR_VERSION = 0x1
++ BPF_MISC = 0x7
++ BPF_MOD = 0x90
++ BPF_MSH = 0xa0
++ BPF_MUL = 0x20
++ BPF_NEG = 0x80
++ BPF_OR = 0x40
++ BPF_RET = 0x6
++ BPF_RSH = 0x70
++ BPF_ST = 0x2
++ BPF_STX = 0x3
++ BPF_SUB = 0x10
++ BPF_TAX = 0x0
++ BPF_TXA = 0x80
++ BPF_W = 0x0
++ BPF_X = 0x8
++ BPF_XOR = 0xa0
++ BRKINT = 0x2
++ CFLUSH = 0xf
++ CLOCAL = 0x800
++ CLONE_CHILD_CLEARTID = 0x200000
++ CLONE_CHILD_SETTID = 0x1000000
++ CLONE_DETACHED = 0x400000
++ CLONE_FILES = 0x400
++ CLONE_FS = 0x200
++ CLONE_IO = 0x80000000
++ CLONE_NEWIPC = 0x8000000
++ CLONE_NEWNET = 0x40000000
++ CLONE_NEWNS = 0x20000
++ CLONE_NEWPID = 0x20000000
++ CLONE_NEWUSER = 0x10000000
++ CLONE_NEWUTS = 0x4000000
++ CLONE_PARENT = 0x8000
++ CLONE_PARENT_SETTID = 0x100000
++ CLONE_PTRACE = 0x2000
++ CLONE_SETTLS = 0x80000
++ CLONE_SIGHAND = 0x800
++ CLONE_SYSVSEM = 0x40000
++ CLONE_THREAD = 0x10000
++ CLONE_UNTRACED = 0x800000
++ CLONE_VFORK = 0x4000
++ CLONE_VM = 0x100
++ CREAD = 0x80
++ CS5 = 0x0
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIGNAL = 0xff
++ CSIZE = 0x30
++ CSTART = 0x11
++ CSTATUS = 0x0
++ CSTOP = 0x13
++ CSTOPB = 0x40
++ CSUSP = 0x1a
++ DT_BLK = 0x6
++ DT_CHR = 0x2
++ DT_DIR = 0x4
++ DT_FIFO = 0x1
++ DT_LNK = 0xa
++ DT_REG = 0x8
++ DT_SOCK = 0xc
++ DT_UNKNOWN = 0x0
++ DT_WHT = 0xe
++ ECHO = 0x8
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ ENCODING_DEFAULT = 0x0
++ ENCODING_FM_MARK = 0x3
++ ENCODING_FM_SPACE = 0x4
++ ENCODING_MANCHESTER = 0x5
++ ENCODING_NRZ = 0x1
++ ENCODING_NRZI = 0x2
++ EPOLLERR = 0x8
++ EPOLLET = 0x80000000
++ EPOLLHUP = 0x10
++ EPOLLIN = 0x1
++ EPOLLMSG = 0x400
++ EPOLLONESHOT = 0x40000000
++ EPOLLOUT = 0x4
++ EPOLLPRI = 0x2
++ EPOLLRDBAND = 0x80
++ EPOLLRDHUP = 0x2000
++ EPOLLRDNORM = 0x40
++ EPOLLWAKEUP = 0x20000000
++ EPOLLWRBAND = 0x200
++ EPOLLWRNORM = 0x100
++ EPOLL_CLOEXEC = 0x80000
++ EPOLL_CTL_ADD = 0x1
++ EPOLL_CTL_DEL = 0x2
++ EPOLL_CTL_MOD = 0x3
++ EPOLL_NONBLOCK = 0x800
++ ETH_P_1588 = 0x88f7
++ ETH_P_8021AD = 0x88a8
++ ETH_P_8021AH = 0x88e7
++ ETH_P_8021Q = 0x8100
++ ETH_P_80221 = 0x8917
++ ETH_P_802_2 = 0x4
++ ETH_P_802_3 = 0x1
++ ETH_P_802_3_MIN = 0x600
++ ETH_P_802_EX1 = 0x88b5
++ ETH_P_AARP = 0x80f3
++ ETH_P_AF_IUCV = 0xfbfb
++ ETH_P_ALL = 0x3
++ ETH_P_AOE = 0x88a2
++ ETH_P_ARCNET = 0x1a
++ ETH_P_ARP = 0x806
++ ETH_P_ATALK = 0x809b
++ ETH_P_ATMFATE = 0x8884
++ ETH_P_ATMMPOA = 0x884c
++ ETH_P_AX25 = 0x2
++ ETH_P_BATMAN = 0x4305
++ ETH_P_BPQ = 0x8ff
++ ETH_P_CAIF = 0xf7
++ ETH_P_CAN = 0xc
++ ETH_P_CANFD = 0xd
++ ETH_P_CONTROL = 0x16
++ ETH_P_CUST = 0x6006
++ ETH_P_DDCMP = 0x6
++ ETH_P_DEC = 0x6000
++ ETH_P_DIAG = 0x6005
++ ETH_P_DNA_DL = 0x6001
++ ETH_P_DNA_RC = 0x6002
++ ETH_P_DNA_RT = 0x6003
++ ETH_P_DSA = 0x1b
++ ETH_P_ECONET = 0x18
++ ETH_P_EDSA = 0xdada
++ ETH_P_FCOE = 0x8906
++ ETH_P_FIP = 0x8914
++ ETH_P_HDLC = 0x19
++ ETH_P_IEEE802154 = 0xf6
++ ETH_P_IEEEPUP = 0xa00
++ ETH_P_IEEEPUPAT = 0xa01
++ ETH_P_IP = 0x800
++ ETH_P_IPV6 = 0x86dd
++ ETH_P_IPX = 0x8137
++ ETH_P_IRDA = 0x17
++ ETH_P_LAT = 0x6004
++ ETH_P_LINK_CTL = 0x886c
++ ETH_P_LOCALTALK = 0x9
++ ETH_P_LOOP = 0x60
++ ETH_P_MOBITEX = 0x15
++ ETH_P_MPLS_MC = 0x8848
++ ETH_P_MPLS_UC = 0x8847
++ ETH_P_MVRP = 0x88f5
++ ETH_P_PAE = 0x888e
++ ETH_P_PAUSE = 0x8808
++ ETH_P_PHONET = 0xf5
++ ETH_P_PPPTALK = 0x10
++ ETH_P_PPP_DISC = 0x8863
++ ETH_P_PPP_MP = 0x8
++ ETH_P_PPP_SES = 0x8864
++ ETH_P_PUP = 0x200
++ ETH_P_PUPAT = 0x201
++ ETH_P_QINQ1 = 0x9100
++ ETH_P_QINQ2 = 0x9200
++ ETH_P_QINQ3 = 0x9300
++ ETH_P_RARP = 0x8035
++ ETH_P_SCA = 0x6007
++ ETH_P_SLOW = 0x8809
++ ETH_P_SNAP = 0x5
++ ETH_P_TDLS = 0x890d
++ ETH_P_TEB = 0x6558
++ ETH_P_TIPC = 0x88ca
++ ETH_P_TRAILER = 0x1c
++ ETH_P_TR_802_2 = 0x11
++ ETH_P_WAN_PPP = 0x7
++ ETH_P_WCCP = 0x883e
++ ETH_P_X25 = 0x805
++ EXTA = 0xe
++ EXTB = 0xf
++ EXTPROC = 0x10000
++ FD_CLOEXEC = 0x1
++ FD_SETSIZE = 0x400
++ FLUSHO = 0x1000
++ F_DUPFD = 0x0
++ F_DUPFD_CLOEXEC = 0x406
++ F_EXLCK = 0x4
++ F_GETFD = 0x1
++ F_GETFL = 0x3
++ F_GETLEASE = 0x401
++ F_GETLK = 0x5
++ F_GETLK64 = 0x5
++ F_GETOWN = 0x9
++ F_GETOWN_EX = 0x10
++ F_GETPIPE_SZ = 0x408
++ F_GETSIG = 0xb
++ F_LOCK = 0x1
++ F_NOTIFY = 0x402
++ F_OK = 0x0
++ F_RDLCK = 0x0
++ F_SETFD = 0x2
++ F_SETFL = 0x4
++ F_SETLEASE = 0x400
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x8
++ F_SETOWN_EX = 0xf
++ F_SETPIPE_SZ = 0x407
++ F_SETSIG = 0xa
++ F_SHLCK = 0x8
++ F_TEST = 0x3
++ F_TLOCK = 0x2
++ F_ULOCK = 0x0
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ ICMPV6_FILTER = 0x1
++ ICRNL = 0x100
++ IEXTEN = 0x8000
++ IFA_F_DADFAILED = 0x8
++ IFA_F_DEPRECATED = 0x20
++ IFA_F_HOMEADDRESS = 0x10
++ IFA_F_MANAGETEMPADDR = 0x100
++ IFA_F_NODAD = 0x2
++ IFA_F_NOPREFIXROUTE = 0x200
++ IFA_F_OPTIMISTIC = 0x4
++ IFA_F_PERMANENT = 0x80
++ IFA_F_SECONDARY = 0x1
++ IFA_F_TEMPORARY = 0x1
++ IFA_F_TENTATIVE = 0x40
++ IFA_MAX = 0x8
++ IFF_802_1Q_VLAN = 0x1
++ IFF_ALLMULTI = 0x200
++ IFF_ATTACH_QUEUE = 0x200
++ IFF_AUTOMEDIA = 0x4000
++ IFF_BONDING = 0x20
++ IFF_BRIDGE_PORT = 0x4000
++ IFF_BROADCAST = 0x2
++ IFF_DEBUG = 0x4
++ IFF_DETACH_QUEUE = 0x400
++ IFF_DISABLE_NETPOLL = 0x1000
++ IFF_DONT_BRIDGE = 0x800
++ IFF_DORMANT = 0x20000
++ IFF_DYNAMIC = 0x8000
++ IFF_EBRIDGE = 0x2
++ IFF_ECHO = 0x40000
++ IFF_ISATAP = 0x80
++ IFF_LIVE_ADDR_CHANGE = 0x100000
++ IFF_LOOPBACK = 0x8
++ IFF_LOWER_UP = 0x10000
++ IFF_MACVLAN_PORT = 0x2000
++ IFF_MASTER = 0x400
++ IFF_MASTER_8023AD = 0x8
++ IFF_MASTER_ALB = 0x10
++ IFF_MASTER_ARPMON = 0x100
++ IFF_MULTICAST = 0x1000
++ IFF_MULTI_QUEUE = 0x100
++ IFF_NOARP = 0x80
++ IFF_NOTRAILERS = 0x20
++ IFF_NO_PI = 0x1000
++ IFF_ONE_QUEUE = 0x2000
++ IFF_OVS_DATAPATH = 0x8000
++ IFF_POINTOPOINT = 0x10
++ IFF_PORTSEL = 0x2000
++ IFF_PROMISC = 0x100
++ IFF_RUNNING = 0x40
++ IFF_SLAVE = 0x800
++ IFF_SLAVE_INACTIVE = 0x4
++ IFF_SLAVE_NEEDARP = 0x40
++ IFF_SUPP_NOFCS = 0x80000
++ IFF_TAP = 0x2
++ IFF_TEAM_PORT = 0x40000
++ IFF_TUN = 0x1
++ IFF_TUN_EXCL = 0x8000
++ IFF_TX_SKB_SHARING = 0x10000
++ IFF_UNICAST_FLT = 0x20000
++ IFF_UP = 0x1
++ IFF_VNET_HDR = 0x4000
++ IFF_VOLATILE = 0x70c5a
++ IFF_WAN_HDLC = 0x200
++ IFF_XMIT_DST_RELEASE = 0x400
++ IFNAMSIZ = 0x10
++ IGNBRK = 0x1
++ IGNCR = 0x80
++ IGNPAR = 0x4
++ IMAXBEL = 0x2000
++ INLCR = 0x40
++ INPCK = 0x10
++ IN_ACCESS = 0x1
++ IN_ALL_EVENTS = 0xfff
++ IN_ATTRIB = 0x4
++ IN_CLASSA_HOST = 0xffffff
++ IN_CLASSA_MAX = 0x80
++ IN_CLASSA_NET = 0xff000000
++ IN_CLASSA_NSHIFT = 0x18
++ IN_CLASSB_HOST = 0xffff
++ IN_CLASSB_MAX = 0x10000
++ IN_CLASSB_NET = 0xffff0000
++ IN_CLASSB_NSHIFT = 0x10
++ IN_CLASSC_HOST = 0xff
++ IN_CLASSC_NET = 0xffffff00
++ IN_CLASSC_NSHIFT = 0x8
++ IN_CLOEXEC = 0x80000
++ IN_CLOSE = 0x18
++ IN_CLOSE_NOWRITE = 0x10
++ IN_CLOSE_WRITE = 0x8
++ IN_CREATE = 0x100
++ IN_DELETE = 0x200
++ IN_DELETE_SELF = 0x400
++ IN_DONT_FOLLOW = 0x2000000
++ IN_EXCL_UNLINK = 0x4000000
++ IN_IGNORED = 0x8000
++ IN_ISDIR = 0x40000000
++ IN_LOOPBACKNET = 0x7f
++ IN_MASK_ADD = 0x20000000
++ IN_MODIFY = 0x2
++ IN_MOVE = 0xc0
++ IN_MOVED_FROM = 0x40
++ IN_MOVED_TO = 0x80
++ IN_MOVE_SELF = 0x800
++ IN_NONBLOCK = 0x800
++ IN_ONESHOT = 0x80000000
++ IN_ONLYDIR = 0x1000000
++ IN_OPEN = 0x20
++ IN_Q_OVERFLOW = 0x4000
++ IN_UNMOUNT = 0x2000
++ IPPROTO_AH = 0x33
++ IPPROTO_COMP = 0x6c
++ IPPROTO_DCCP = 0x21
++ IPPROTO_DSTOPTS = 0x3c
++ IPPROTO_EGP = 0x8
++ IPPROTO_ENCAP = 0x62
++ IPPROTO_ESP = 0x32
++ IPPROTO_FRAGMENT = 0x2c
++ IPPROTO_GRE = 0x2f
++ IPPROTO_HOPOPTS = 0x0
++ IPPROTO_ICMP = 0x1
++ IPPROTO_ICMPV6 = 0x3a
++ IPPROTO_IDP = 0x16
++ IPPROTO_IGMP = 0x2
++ IPPROTO_IP = 0x0
++ IPPROTO_IPIP = 0x4
++ IPPROTO_IPV6 = 0x29
++ IPPROTO_MTP = 0x5c
++ IPPROTO_NONE = 0x3b
++ IPPROTO_PIM = 0x67
++ IPPROTO_PUP = 0xc
++ IPPROTO_RAW = 0xff
++ IPPROTO_ROUTING = 0x2b
++ IPPROTO_RSVP = 0x2e
++ IPPROTO_SCTP = 0x84
++ IPPROTO_TCP = 0x6
++ IPPROTO_TP = 0x1d
++ IPPROTO_UDP = 0x11
++ IPPROTO_UDPLITE = 0x88
++ IPV6_2292DSTOPTS = 0x4
++ IPV6_2292HOPLIMIT = 0x8
++ IPV6_2292HOPOPTS = 0x3
++ IPV6_2292PKTINFO = 0x2
++ IPV6_2292PKTOPTIONS = 0x6
++ IPV6_2292RTHDR = 0x5
++ IPV6_ADDRFORM = 0x1
++ IPV6_ADD_MEMBERSHIP = 0x14
++ IPV6_AUTHHDR = 0xa
++ IPV6_CHECKSUM = 0x7
++ IPV6_DROP_MEMBERSHIP = 0x15
++ IPV6_DSTOPTS = 0x3b
++ IPV6_HOPLIMIT = 0x34
++ IPV6_HOPOPTS = 0x36
++ IPV6_IPSEC_POLICY = 0x22
++ IPV6_JOIN_ANYCAST = 0x1b
++ IPV6_JOIN_GROUP = 0x14
++ IPV6_LEAVE_ANYCAST = 0x1c
++ IPV6_LEAVE_GROUP = 0x15
++ IPV6_MTU = 0x18
++ IPV6_MTU_DISCOVER = 0x17
++ IPV6_MULTICAST_HOPS = 0x12
++ IPV6_MULTICAST_IF = 0x11
++ IPV6_MULTICAST_LOOP = 0x13
++ IPV6_NEXTHOP = 0x9
++ IPV6_PKTINFO = 0x32
++ IPV6_PMTUDISC_DO = 0x2
++ IPV6_PMTUDISC_DONT = 0x0
++ IPV6_PMTUDISC_PROBE = 0x3
++ IPV6_PMTUDISC_WANT = 0x1
++ IPV6_RECVDSTOPTS = 0x3a
++ IPV6_RECVERR = 0x19
++ IPV6_RECVHOPLIMIT = 0x33
++ IPV6_RECVHOPOPTS = 0x35
++ IPV6_RECVPKTINFO = 0x31
++ IPV6_RECVRTHDR = 0x38
++ IPV6_RECVTCLASS = 0x42
++ IPV6_ROUTER_ALERT = 0x16
++ IPV6_RTHDR = 0x39
++ IPV6_RTHDRDSTOPTS = 0x37
++ IPV6_RTHDR_LOOSE = 0x0
++ IPV6_RTHDR_STRICT = 0x1
++ IPV6_RTHDR_TYPE_0 = 0x0
++ IPV6_RXDSTOPTS = 0x3b
++ IPV6_RXHOPOPTS = 0x36
++ IPV6_TCLASS = 0x43
++ IPV6_UNICAST_HOPS = 0x10
++ IPV6_V6ONLY = 0x1a
++ IPV6_XFRM_POLICY = 0x23
++ IP_ADD_MEMBERSHIP = 0x23
++ IP_ADD_SOURCE_MEMBERSHIP = 0x27
++ IP_BLOCK_SOURCE = 0x26
++ IP_DEFAULT_MULTICAST_LOOP = 0x1
++ IP_DEFAULT_MULTICAST_TTL = 0x1
++ IP_DF = 0x4000
++ IP_DROP_MEMBERSHIP = 0x24
++ IP_DROP_SOURCE_MEMBERSHIP = 0x28
++ IP_FREEBIND = 0xf
++ IP_HDRINCL = 0x3
++ IP_IPSEC_POLICY = 0x10
++ IP_MAXPACKET = 0xffff
++ IP_MAX_MEMBERSHIPS = 0x14
++ IP_MF = 0x2000
++ IP_MINTTL = 0x15
++ IP_MSFILTER = 0x29
++ IP_MSS = 0x240
++ IP_MTU = 0xe
++ IP_MTU_DISCOVER = 0xa
++ IP_MULTICAST_ALL = 0x31
++ IP_MULTICAST_IF = 0x20
++ IP_MULTICAST_LOOP = 0x22
++ IP_MULTICAST_TTL = 0x21
++ IP_OFFMASK = 0x1fff
++ IP_OPTIONS = 0x4
++ IP_ORIGDSTADDR = 0x14
++ IP_PASSSEC = 0x12
++ IP_PKTINFO = 0x8
++ IP_PKTOPTIONS = 0x9
++ IP_PMTUDISC = 0xa
++ IP_PMTUDISC_DO = 0x2
++ IP_PMTUDISC_DONT = 0x0
++ IP_PMTUDISC_PROBE = 0x3
++ IP_PMTUDISC_WANT = 0x1
++ IP_RECVERR = 0xb
++ IP_RECVOPTS = 0x6
++ IP_RECVORIGDSTADDR = 0x14
++ IP_RECVRETOPTS = 0x7
++ IP_RECVTOS = 0xd
++ IP_RECVTTL = 0xc
++ IP_RETOPTS = 0x7
++ IP_RF = 0x8000
++ IP_ROUTER_ALERT = 0x5
++ IP_TOS = 0x1
++ IP_TRANSPARENT = 0x13
++ IP_TTL = 0x2
++ IP_UNBLOCK_SOURCE = 0x25
++ IP_UNICAST_IF = 0x32
++ IP_XFRM_POLICY = 0x11
++ ISIG = 0x1
++ ISTRIP = 0x20
++ IUTF8 = 0x4000
++ IXANY = 0x800
++ IXOFF = 0x1000
++ IXON = 0x400
++ LINUX_REBOOT_CMD_CAD_OFF = 0x0
++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
++ LINUX_REBOOT_CMD_HALT = 0xcdef0123
++ LINUX_REBOOT_CMD_KEXEC = 0x45584543
++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
++ LINUX_REBOOT_CMD_RESTART = 0x1234567
++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
++ LINUX_REBOOT_MAGIC1 = 0xfee1dead
++ LINUX_REBOOT_MAGIC2 = 0x28121969
++ LOCK_EX = 0x2
++ LOCK_NB = 0x4
++ LOCK_SH = 0x1
++ LOCK_UN = 0x8
++ MADV_DODUMP = 0x11
++ MADV_DOFORK = 0xb
++ MADV_DONTDUMP = 0x10
++ MADV_DONTFORK = 0xa
++ MADV_DONTNEED = 0x4
++ MADV_HUGEPAGE = 0xe
++ MADV_HWPOISON = 0x64
++ MADV_MERGEABLE = 0xc
++ MADV_NOHUGEPAGE = 0xf
++ MADV_NORMAL = 0x0
++ MADV_RANDOM = 0x1
++ MADV_REMOVE = 0x9
++ MADV_SEQUENTIAL = 0x2
++ MADV_UNMERGEABLE = 0xd
++ MADV_WILLNEED = 0x3
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_FILE = 0x0
++ MAP_FIXED = 0x10
++ MAP_GROWSDOWN = 0x100
++ MAP_GROWSUP = 0x200
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_PRIVATE = 0x2
++ MAP_SHARED = 0x1
++ MAP_STACK = 0x20000
++ MAP_TYPE = 0xf
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MNT_DETACH = 0x2
++ MNT_EXPIRE = 0x4
++ MNT_FORCE = 0x1
++ MSG_CMSG_CLOEXEC = 0x40000000
++ MSG_CONFIRM = 0x800
++ MSG_CTRUNC = 0x8
++ MSG_DONTROUTE = 0x4
++ MSG_DONTWAIT = 0x40
++ MSG_EOR = 0x80
++ MSG_ERRQUEUE = 0x2000
++ MSG_FASTOPEN = 0x20000000
++ MSG_FIN = 0x200
++ MSG_MORE = 0x8000
++ MSG_NOSIGNAL = 0x4000
++ MSG_OOB = 0x1
++ MSG_PEEK = 0x2
++ MSG_PROXY = 0x10
++ MSG_RST = 0x1000
++ MSG_SYN = 0x400
++ MSG_TRUNC = 0x20
++ MSG_TRYHARD = 0x4
++ MSG_WAITALL = 0x100
++ MSG_WAITFORONE = 0x10000
++ MS_ACTIVE = 0x40000000
++ MS_ASYNC = 0x1
++ MS_BIND = 0x1000
++ MS_DIRSYNC = 0x80
++ MS_INVALIDATE = 0x2
++ MS_I_VERSION = 0x800000
++ MS_KERNMOUNT = 0x400000
++ MS_MANDLOCK = 0x40
++ MS_MGC_MSK = 0xffff0000
++ MS_MGC_VAL = 0xc0ed0000
++ MS_MOVE = 0x2000
++ MS_NOATIME = 0x400
++ MS_NODEV = 0x4
++ MS_NODIRATIME = 0x800
++ MS_NOEXEC = 0x8
++ MS_NOSUID = 0x2
++ MS_NOUSER = -0x80000000
++ MS_POSIXACL = 0x10000
++ MS_PRIVATE = 0x40000
++ MS_RDONLY = 0x1
++ MS_REC = 0x4000
++ MS_RELATIME = 0x200000
++ MS_REMOUNT = 0x20
++ MS_RMT_MASK = 0x800051
++ MS_SHARED = 0x100000
++ MS_SILENT = 0x8000
++ MS_SLAVE = 0x80000
++ MS_STRICTATIME = 0x1000000
++ MS_SYNC = 0x4
++ MS_SYNCHRONOUS = 0x10
++ MS_UNBINDABLE = 0x20000
++ NAME_MAX = 0xff
++ NETLINK_ADD_MEMBERSHIP = 0x1
++ NETLINK_AUDIT = 0x9
++ NETLINK_BROADCAST_ERROR = 0x4
++ NETLINK_CONNECTOR = 0xb
++ NETLINK_CRYPTO = 0x15
++ NETLINK_DNRTMSG = 0xe
++ NETLINK_DROP_MEMBERSHIP = 0x2
++ NETLINK_ECRYPTFS = 0x13
++ NETLINK_FIB_LOOKUP = 0xa
++ NETLINK_FIREWALL = 0x3
++ NETLINK_GENERIC = 0x10
++ NETLINK_INET_DIAG = 0x4
++ NETLINK_IP6_FW = 0xd
++ NETLINK_ISCSI = 0x8
++ NETLINK_KOBJECT_UEVENT = 0xf
++ NETLINK_NETFILTER = 0xc
++ NETLINK_NFLOG = 0x5
++ NETLINK_NO_ENOBUFS = 0x5
++ NETLINK_PKTINFO = 0x3
++ NETLINK_RDMA = 0x14
++ NETLINK_ROUTE = 0x0
++ NETLINK_RX_RING = 0x6
++ NETLINK_SCSITRANSPORT = 0x12
++ NETLINK_SELINUX = 0x7
++ NETLINK_SOCK_DIAG = 0x4
++ NETLINK_TX_RING = 0x7
++ NETLINK_UNUSED = 0x1
++ NETLINK_USERSOCK = 0x2
++ NETLINK_XFRM = 0x6
++ NLA_ALIGNTO = 0x4
++ NLA_F_NESTED = 0x8000
++ NLA_F_NET_BYTEORDER = 0x4000
++ NLA_HDRLEN = 0x4
++ NLMSG_ALIGNTO = 0x4
++ NLMSG_DONE = 0x3
++ NLMSG_ERROR = 0x2
++ NLMSG_HDRLEN = 0x10
++ NLMSG_MIN_TYPE = 0x10
++ NLMSG_NOOP = 0x1
++ NLMSG_OVERRUN = 0x4
++ NLM_F_ACK = 0x4
++ NLM_F_APPEND = 0x800
++ NLM_F_ATOMIC = 0x400
++ NLM_F_CREATE = 0x400
++ NLM_F_DUMP = 0x300
++ NLM_F_DUMP_INTR = 0x10
++ NLM_F_ECHO = 0x8
++ NLM_F_EXCL = 0x200
++ NLM_F_MATCH = 0x200
++ NLM_F_MULTI = 0x2
++ NLM_F_REPLACE = 0x100
++ NLM_F_REQUEST = 0x1
++ NLM_F_ROOT = 0x100
++ NOFLSH = 0x80
++ OCRNL = 0x8
++ OFDEL = 0x80
++ OFILL = 0x40
++ ONLCR = 0x4
++ ONLRET = 0x20
++ ONOCR = 0x10
++ OPOST = 0x1
++ O_ACCMODE = 0x3
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x4000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RDONLY = 0x0
++ O_RDWR = 0x2
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TRUNC = 0x200
++ O_WRONLY = 0x1
++ PACKET_ADD_MEMBERSHIP = 0x1
++ PACKET_AUXDATA = 0x8
++ PACKET_BROADCAST = 0x1
++ PACKET_COPY_THRESH = 0x7
++ PACKET_DROP_MEMBERSHIP = 0x2
++ PACKET_FANOUT = 0x12
++ PACKET_FANOUT_CPU = 0x2
++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000
++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
++ PACKET_FANOUT_HASH = 0x0
++ PACKET_FANOUT_LB = 0x1
++ PACKET_FANOUT_RND = 0x4
++ PACKET_FANOUT_ROLLOVER = 0x3
++ PACKET_FASTROUTE = 0x6
++ PACKET_HDRLEN = 0xb
++ PACKET_HOST = 0x0
++ PACKET_LOOPBACK = 0x5
++ PACKET_LOSS = 0xe
++ PACKET_MR_ALLMULTI = 0x2
++ PACKET_MR_MULTICAST = 0x0
++ PACKET_MR_PROMISC = 0x1
++ PACKET_MR_UNICAST = 0x3
++ PACKET_MULTICAST = 0x2
++ PACKET_ORIGDEV = 0x9
++ PACKET_OTHERHOST = 0x3
++ PACKET_OUTGOING = 0x4
++ PACKET_RECV_OUTPUT = 0x3
++ PACKET_RESERVE = 0xc
++ PACKET_RX_RING = 0x5
++ PACKET_STATISTICS = 0x6
++ PACKET_TIMESTAMP = 0x11
++ PACKET_TX_HAS_OFF = 0x13
++ PACKET_TX_RING = 0xd
++ PACKET_TX_TIMESTAMP = 0x10
++ PACKET_VERSION = 0xa
++ PACKET_VNET_HDR = 0xf
++ PARENB = 0x100
++ PARITY_CRC16_PR0 = 0x2
++ PARITY_CRC16_PR0_CCITT = 0x4
++ PARITY_CRC16_PR1 = 0x3
++ PARITY_CRC16_PR1_CCITT = 0x5
++ PARITY_CRC32_PR0_CCITT = 0x6
++ PARITY_CRC32_PR1_CCITT = 0x7
++ PARITY_DEFAULT = 0x0
++ PARITY_NONE = 0x1
++ PARMRK = 0x8
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PRIO_PGRP = 0x1
++ PRIO_PROCESS = 0x0
++ PRIO_USER = 0x2
++ PROT_EXEC = 0x4
++ PROT_GROWSDOWN = 0x1000000
++ PROT_GROWSUP = 0x2000000
++ PROT_NONE = 0x0
++ PROT_READ = 0x1
++ PROT_WRITE = 0x2
++ PR_CAPBSET_DROP = 0x18
++ PR_CAPBSET_READ = 0x17
++ PR_ENDIAN_BIG = 0x0
++ PR_ENDIAN_LITTLE = 0x1
++ PR_ENDIAN_PPC_LITTLE = 0x2
++ PR_FPEMU_NOPRINT = 0x1
++ PR_FPEMU_SIGFPE = 0x2
++ PR_FP_EXC_ASYNC = 0x2
++ PR_FP_EXC_DISABLED = 0x0
++ PR_FP_EXC_DIV = 0x10000
++ PR_FP_EXC_INV = 0x100000
++ PR_FP_EXC_NONRECOV = 0x1
++ PR_FP_EXC_OVF = 0x20000
++ PR_FP_EXC_PRECISE = 0x3
++ PR_FP_EXC_RES = 0x80000
++ PR_FP_EXC_SW_ENABLE = 0x80
++ PR_FP_EXC_UND = 0x40000
++ PR_GET_CHILD_SUBREAPER = 0x25
++ PR_GET_DUMPABLE = 0x3
++ PR_GET_ENDIAN = 0x13
++ PR_GET_FPEMU = 0x9
++ PR_GET_FPEXC = 0xb
++ PR_GET_KEEPCAPS = 0x7
++ PR_GET_NAME = 0x10
++ PR_GET_NO_NEW_PRIVS = 0x27
++ PR_GET_PDEATHSIG = 0x2
++ PR_GET_SECCOMP = 0x15
++ PR_GET_SECUREBITS = 0x1b
++ PR_GET_THP_DISABLE = 0x2a
++ PR_GET_TID_ADDRESS = 0x28
++ PR_GET_TIMERSLACK = 0x1e
++ PR_GET_TIMING = 0xd
++ PR_GET_TSC = 0x19
++ PR_GET_UNALIGN = 0x5
++ PR_MCE_KILL = 0x21
++ PR_MCE_KILL_CLEAR = 0x0
++ PR_MCE_KILL_DEFAULT = 0x2
++ PR_MCE_KILL_EARLY = 0x1
++ PR_MCE_KILL_GET = 0x22
++ PR_MCE_KILL_LATE = 0x0
++ PR_MCE_KILL_SET = 0x1
++ PR_SET_CHILD_SUBREAPER = 0x24
++ PR_SET_DUMPABLE = 0x4
++ PR_SET_ENDIAN = 0x14
++ PR_SET_FPEMU = 0xa
++ PR_SET_FPEXC = 0xc
++ PR_SET_KEEPCAPS = 0x8
++ PR_SET_MM = 0x23
++ PR_SET_MM_ARG_END = 0x9
++ PR_SET_MM_ARG_START = 0x8
++ PR_SET_MM_AUXV = 0xc
++ PR_SET_MM_BRK = 0x7
++ PR_SET_MM_END_CODE = 0x2
++ PR_SET_MM_END_DATA = 0x4
++ PR_SET_MM_ENV_END = 0xb
++ PR_SET_MM_ENV_START = 0xa
++ PR_SET_MM_EXE_FILE = 0xd
++ PR_SET_MM_START_BRK = 0x6
++ PR_SET_MM_START_CODE = 0x1
++ PR_SET_MM_START_DATA = 0x3
++ PR_SET_MM_START_STACK = 0x5
++ PR_SET_NAME = 0xf
++ PR_SET_NO_NEW_PRIVS = 0x26
++ PR_SET_PDEATHSIG = 0x1
++ PR_SET_PTRACER = 0x59616d61
++ PR_SET_PTRACER_ANY = -0x1
++ PR_SET_SECCOMP = 0x16
++ PR_SET_SECUREBITS = 0x1c
++ PR_SET_THP_DISABLE = 0x29
++ PR_SET_TIMERSLACK = 0x1d
++ PR_SET_TIMING = 0xe
++ PR_SET_TSC = 0x1a
++ PR_SET_UNALIGN = 0x6
++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f
++ PR_TASK_PERF_EVENTS_ENABLE = 0x20
++ PR_TIMING_STATISTICAL = 0x0
++ PR_TIMING_TIMESTAMP = 0x1
++ PR_TSC_ENABLE = 0x1
++ PR_TSC_SIGSEGV = 0x2
++ PR_UNALIGN_NOPRINT = 0x1
++ PR_UNALIGN_SIGBUS = 0x2
++ PTRACE_ATTACH = 0x10
++ PTRACE_CONT = 0x7
++ PTRACE_DETACH = 0x11
++ PTRACE_DISABLE_TE = 0x5010
++ PTRACE_ENABLE_TE = 0x5009
++ PTRACE_EVENT_CLONE = 0x3
++ PTRACE_EVENT_EXEC = 0x4
++ PTRACE_EVENT_EXIT = 0x6
++ PTRACE_EVENT_FORK = 0x1
++ PTRACE_EVENT_SECCOMP = 0x7
++ PTRACE_EVENT_STOP = 0x80
++ PTRACE_EVENT_VFORK = 0x2
++ PTRACE_EVENT_VFORK_DONE = 0x5
++ PTRACE_GETEVENTMSG = 0x4201
++ PTRACE_GETREGS = 0xc
++ PTRACE_GETREGSET = 0x4204
++ PTRACE_GETSIGINFO = 0x4202
++ PTRACE_GET_LAST_BREAK = 0x5006
++ PTRACE_INTERRUPT = 0x4207
++ PTRACE_KILL = 0x8
++ PTRACE_LISTEN = 0x4208
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_O_EXITKILL = 0x100000
++ PTRACE_O_MASK = 0x1000ff
++ PTRACE_O_TRACECLONE = 0x8
++ PTRACE_O_TRACEEXEC = 0x10
++ PTRACE_O_TRACEEXIT = 0x40
++ PTRACE_O_TRACEFORK = 0x2
++ PTRACE_O_TRACESECCOMP = 0x80
++ PTRACE_O_TRACESYSGOOD = 0x1
++ PTRACE_O_TRACEVFORK = 0x4
++ PTRACE_O_TRACEVFORKDONE = 0x20
++ PTRACE_PEEKDATA = 0x2
++ PTRACE_PEEKDATA_AREA = 0x5003
++ PTRACE_PEEKSIGINFO = 0x4209
++ PTRACE_PEEKSIGINFO_SHARED = 0x1
++ PTRACE_PEEKTEXT = 0x1
++ PTRACE_PEEKTEXT_AREA = 0x5002
++ PTRACE_PEEKUSR = 0x3
++ PTRACE_PEEKUSR_AREA = 0x5000
++ PTRACE_PEEK_SYSTEM_CALL = 0x5007
++ PTRACE_POKEDATA = 0x5
++ PTRACE_POKEDATA_AREA = 0x5005
++ PTRACE_POKETEXT = 0x4
++ PTRACE_POKETEXT_AREA = 0x5004
++ PTRACE_POKEUSR = 0x6
++ PTRACE_POKEUSR_AREA = 0x5001
++ PTRACE_POKE_SYSTEM_CALL = 0x5008
++ PTRACE_PROT = 0x15
++ PTRACE_SEIZE = 0x4206
++ PTRACE_SETOPTIONS = 0x4200
++ PTRACE_SETREGS = 0xd
++ PTRACE_SETREGSET = 0x4205
++ PTRACE_SETSIGINFO = 0x4203
++ PTRACE_SINGLESTEP = 0x9
++ PTRACE_SYSCALL = 0x18
++ PTRACE_TRACEME = 0x0
++ PT_ACR0 = 0x90
++ PT_ACR1 = 0x94
++ PT_ACR10 = 0xb8
++ PT_ACR11 = 0xbc
++ PT_ACR12 = 0xc0
++ PT_ACR13 = 0xc4
++ PT_ACR14 = 0xc8
++ PT_ACR15 = 0xcc
++ PT_ACR2 = 0x98
++ PT_ACR3 = 0x9c
++ PT_ACR4 = 0xa0
++ PT_ACR5 = 0xa4
++ PT_ACR6 = 0xa8
++ PT_ACR7 = 0xac
++ PT_ACR8 = 0xb0
++ PT_ACR9 = 0xb4
++ PT_CR_10 = 0x168
++ PT_CR_11 = 0x170
++ PT_CR_9 = 0x160
++ PT_ENDREGS = 0x1af
++ PT_FPC = 0xd8
++ PT_FPR0 = 0xe0
++ PT_FPR1 = 0xe8
++ PT_FPR10 = 0x130
++ PT_FPR11 = 0x138
++ PT_FPR12 = 0x140
++ PT_FPR13 = 0x148
++ PT_FPR14 = 0x150
++ PT_FPR15 = 0x158
++ PT_FPR2 = 0xf0
++ PT_FPR3 = 0xf8
++ PT_FPR4 = 0x100
++ PT_FPR5 = 0x108
++ PT_FPR6 = 0x110
++ PT_FPR7 = 0x118
++ PT_FPR8 = 0x120
++ PT_FPR9 = 0x128
++ PT_GPR0 = 0x10
++ PT_GPR1 = 0x18
++ PT_GPR10 = 0x60
++ PT_GPR11 = 0x68
++ PT_GPR12 = 0x70
++ PT_GPR13 = 0x78
++ PT_GPR14 = 0x80
++ PT_GPR15 = 0x88
++ PT_GPR2 = 0x20
++ PT_GPR3 = 0x28
++ PT_GPR4 = 0x30
++ PT_GPR5 = 0x38
++ PT_GPR6 = 0x40
++ PT_GPR7 = 0x48
++ PT_GPR8 = 0x50
++ PT_GPR9 = 0x58
++ PT_IEEE_IP = 0x1a8
++ PT_LASTOFF = 0x1a8
++ PT_ORIGGPR2 = 0xd0
++ PT_PSWADDR = 0x8
++ PT_PSWMASK = 0x0
++ RLIMIT_AS = 0x9
++ RLIMIT_CORE = 0x4
++ RLIMIT_CPU = 0x0
++ RLIMIT_DATA = 0x2
++ RLIMIT_FSIZE = 0x1
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_STACK = 0x3
++ RLIM_INFINITY = -0x1
++ RTAX_ADVMSS = 0x8
++ RTAX_CWND = 0x7
++ RTAX_FEATURES = 0xc
++ RTAX_FEATURE_ALLFRAG = 0x8
++ RTAX_FEATURE_ECN = 0x1
++ RTAX_FEATURE_SACK = 0x2
++ RTAX_FEATURE_TIMESTAMP = 0x4
++ RTAX_HOPLIMIT = 0xa
++ RTAX_INITCWND = 0xb
++ RTAX_INITRWND = 0xe
++ RTAX_LOCK = 0x1
++ RTAX_MAX = 0x17
++ RTAX_MTU = 0x2
++ RTAX_QUICKACK = 0xf
++ RTAX_REORDERING = 0x9
++ RTAX_RTO_MIN = 0xd
++ RTAX_RTT = 0x4
++ RTAX_RTTVAR = 0x5
++ RTAX_SSTHRESH = 0x6
++ RTAX_UNSPEC = 0x0
++ RTAX_WINDOW = 0x3
++ RTA_ALIGNTO = 0x4
++ RTA_MAX = 0x11
++ RTCF_DIRECTSRC = 0x4000000
++ RTCF_DOREDIRECT = 0x1000000
++ RTCF_LOG = 0x2000000
++ RTCF_MASQ = 0x400000
++ RTCF_NAT = 0x800000
++ RTCF_VALVE = 0x200000
++ RTF_ADDRCLASSMASK = 0xf8000000
++ RTF_ADDRCONF = 0x40000
++ RTF_ALLONLINK = 0x20000
++ RTF_BROADCAST = 0x10000000
++ RTF_CACHE = 0x1000000
++ RTF_DEFAULT = 0x10000
++ RTF_DYNAMIC = 0x10
++ RTF_FLOW = 0x2000000
++ RTF_GATEWAY = 0x2
++ RTF_HOST = 0x4
++ RTF_INTERFACE = 0x40000000
++ RTF_IRTT = 0x100
++ RTF_LINKRT = 0x100000
++ RTF_LOCAL = 0x80000000
++ RTF_MODIFIED = 0x20
++ RTF_MSS = 0x40
++ RTF_MTU = 0x40
++ RTF_MULTICAST = 0x20000000
++ RTF_NAT = 0x8000000
++ RTF_NOFORWARD = 0x1000
++ RTF_NONEXTHOP = 0x200000
++ RTF_NOPMTUDISC = 0x4000
++ RTF_POLICY = 0x4000000
++ RTF_REINSTATE = 0x8
++ RTF_REJECT = 0x200
++ RTF_STATIC = 0x400
++ RTF_THROW = 0x2000
++ RTF_UP = 0x1
++ RTF_WINDOW = 0x80
++ RTF_XRESOLVE = 0x800
++ RTM_BASE = 0x10
++ RTM_DELACTION = 0x31
++ RTM_DELADDR = 0x15
++ RTM_DELADDRLABEL = 0x49
++ RTM_DELLINK = 0x11
++ RTM_DELMDB = 0x55
++ RTM_DELNEIGH = 0x1d
++ RTM_DELQDISC = 0x25
++ RTM_DELROUTE = 0x19
++ RTM_DELRULE = 0x21
++ RTM_DELTCLASS = 0x29
++ RTM_DELTFILTER = 0x2d
++ RTM_F_CLONED = 0x200
++ RTM_F_EQUALIZE = 0x400
++ RTM_F_NOTIFY = 0x100
++ RTM_F_PREFIX = 0x800
++ RTM_GETACTION = 0x32
++ RTM_GETADDR = 0x16
++ RTM_GETADDRLABEL = 0x4a
++ RTM_GETANYCAST = 0x3e
++ RTM_GETDCB = 0x4e
++ RTM_GETLINK = 0x12
++ RTM_GETMDB = 0x56
++ RTM_GETMULTICAST = 0x3a
++ RTM_GETNEIGH = 0x1e
++ RTM_GETNEIGHTBL = 0x42
++ RTM_GETNETCONF = 0x52
++ RTM_GETQDISC = 0x26
++ RTM_GETROUTE = 0x1a
++ RTM_GETRULE = 0x22
++ RTM_GETTCLASS = 0x2a
++ RTM_GETTFILTER = 0x2e
++ RTM_MAX = 0x57
++ RTM_NEWACTION = 0x30
++ RTM_NEWADDR = 0x14
++ RTM_NEWADDRLABEL = 0x48
++ RTM_NEWLINK = 0x10
++ RTM_NEWMDB = 0x54
++ RTM_NEWNDUSEROPT = 0x44
++ RTM_NEWNEIGH = 0x1c
++ RTM_NEWNEIGHTBL = 0x40
++ RTM_NEWNETCONF = 0x50
++ RTM_NEWPREFIX = 0x34
++ RTM_NEWQDISC = 0x24
++ RTM_NEWROUTE = 0x18
++ RTM_NEWRULE = 0x20
++ RTM_NEWTCLASS = 0x28
++ RTM_NEWTFILTER = 0x2c
++ RTM_NR_FAMILIES = 0x12
++ RTM_NR_MSGTYPES = 0x48
++ RTM_SETDCB = 0x4f
++ RTM_SETLINK = 0x13
++ RTM_SETNEIGHTBL = 0x43
++ RTNH_ALIGNTO = 0x4
++ RTNH_F_DEAD = 0x1
++ RTNH_F_ONLINK = 0x4
++ RTNH_F_PERVASIVE = 0x2
++ RTN_MAX = 0xb
++ RTPROT_BIRD = 0xc
++ RTPROT_BOOT = 0x3
++ RTPROT_DHCP = 0x10
++ RTPROT_DNROUTED = 0xd
++ RTPROT_GATED = 0x8
++ RTPROT_KERNEL = 0x2
++ RTPROT_MROUTED = 0x11
++ RTPROT_MRT = 0xa
++ RTPROT_NTK = 0xf
++ RTPROT_RA = 0x9
++ RTPROT_REDIRECT = 0x1
++ RTPROT_STATIC = 0x4
++ RTPROT_UNSPEC = 0x0
++ RTPROT_XORP = 0xe
++ RTPROT_ZEBRA = 0xb
++ RT_CLASS_DEFAULT = 0xfd
++ RT_CLASS_LOCAL = 0xff
++ RT_CLASS_MAIN = 0xfe
++ RT_CLASS_MAX = 0xff
++ RT_CLASS_UNSPEC = 0x0
++ RUSAGE_CHILDREN = -0x1
++ RUSAGE_SELF = 0x0
++ RUSAGE_THREAD = 0x1
++ SCM_CREDENTIALS = 0x2
++ SCM_RIGHTS = 0x1
++ SCM_TIMESTAMP = 0x1d
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPNS = 0x23
++ SCM_WIFI_STATUS = 0x29
++ SHUT_RD = 0x0
++ SHUT_RDWR = 0x2
++ SHUT_WR = 0x1
++ SIOCADDDLCI = 0x8980
++ SIOCADDMULTI = 0x8931
++ SIOCADDRT = 0x890b
++ SIOCATMARK = 0x8905
++ SIOCDARP = 0x8953
++ SIOCDELDLCI = 0x8981
++ SIOCDELMULTI = 0x8932
++ SIOCDELRT = 0x890c
++ SIOCDEVPRIVATE = 0x89f0
++ SIOCDIFADDR = 0x8936
++ SIOCDRARP = 0x8960
++ SIOCGARP = 0x8954
++ SIOCGIFADDR = 0x8915
++ SIOCGIFBR = 0x8940
++ SIOCGIFBRDADDR = 0x8919
++ SIOCGIFCONF = 0x8912
++ SIOCGIFCOUNT = 0x8938
++ SIOCGIFDSTADDR = 0x8917
++ SIOCGIFENCAP = 0x8925
++ SIOCGIFFLAGS = 0x8913
++ SIOCGIFHWADDR = 0x8927
++ SIOCGIFINDEX = 0x8933
++ SIOCGIFMAP = 0x8970
++ SIOCGIFMEM = 0x891f
++ SIOCGIFMETRIC = 0x891d
++ SIOCGIFMTU = 0x8921
++ SIOCGIFNAME = 0x8910
++ SIOCGIFNETMASK = 0x891b
++ SIOCGIFPFLAGS = 0x8935
++ SIOCGIFSLAVE = 0x8929
++ SIOCGIFTXQLEN = 0x8942
++ SIOCGPGRP = 0x8904
++ SIOCGRARP = 0x8961
++ SIOCGSTAMP = 0x8906
++ SIOCGSTAMPNS = 0x8907
++ SIOCPROTOPRIVATE = 0x89e0
++ SIOCRTMSG = 0x890d
++ SIOCSARP = 0x8955
++ SIOCSIFADDR = 0x8916
++ SIOCSIFBR = 0x8941
++ SIOCSIFBRDADDR = 0x891a
++ SIOCSIFDSTADDR = 0x8918
++ SIOCSIFENCAP = 0x8926
++ SIOCSIFFLAGS = 0x8914
++ SIOCSIFHWADDR = 0x8924
++ SIOCSIFHWBROADCAST = 0x8937
++ SIOCSIFLINK = 0x8911
++ SIOCSIFMAP = 0x8971
++ SIOCSIFMEM = 0x8920
++ SIOCSIFMETRIC = 0x891e
++ SIOCSIFMTU = 0x8922
++ SIOCSIFNAME = 0x8923
++ SIOCSIFNETMASK = 0x891c
++ SIOCSIFPFLAGS = 0x8934
++ SIOCSIFSLAVE = 0x8930
++ SIOCSIFTXQLEN = 0x8943
++ SIOCSPGRP = 0x8902
++ SIOCSRARP = 0x8962
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DCCP = 0x6
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_PACKET = 0xa
++ SOCK_RAW = 0x3
++ SOCK_RDM = 0x4
++ SOCK_SEQPACKET = 0x5
++ SOCK_STREAM = 0x1
++ SOL_AAL = 0x109
++ SOL_ATM = 0x108
++ SOL_DECNET = 0x105
++ SOL_ICMPV6 = 0x3a
++ SOL_IP = 0x0
++ SOL_IPV6 = 0x29
++ SOL_IRDA = 0x10a
++ SOL_PACKET = 0x107
++ SOL_RAW = 0xff
++ SOL_SOCKET = 0x1
++ SOL_TCP = 0x6
++ SOL_X25 = 0x106
++ SOMAXCONN = 0x80
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_FILTER = 0x1a
++ SO_BINDTODEVICE = 0x19
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_DEBUG = 0x1
++ SO_DETACH_FILTER = 0x1b
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_GET_FILTER = 0x1a
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_NOFCS = 0x2b
++ SO_NO_CHECK = 0xb
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERNAME = 0x1c
++ SO_PEERSEC = 0x1f
++ SO_PRIORITY = 0xc
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_TIMESTAMP = 0x1d
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
++ TCFLSH = 0x540b
++ TCIFLUSH = 0x0
++ TCIOFLUSH = 0x2
++ TCOFLUSH = 0x1
++ TCP_CONGESTION = 0xd
++ TCP_CORK = 0x3
++ TCP_DEFER_ACCEPT = 0x9
++ TCP_INFO = 0xb
++ TCP_KEEPCNT = 0x6
++ TCP_KEEPIDLE = 0x4
++ TCP_KEEPINTVL = 0x5
++ TCP_LINGER2 = 0x8
++ TCP_MAXSEG = 0x2
++ TCP_MAXWIN = 0xffff
++ TCP_MAX_WINSHIFT = 0xe
++ TCP_MD5SIG = 0xe
++ TCP_MD5SIG_MAXKEYLEN = 0x50
++ TCP_MSS = 0x200
++ TCP_NODELAY = 0x1
++ TCP_QUICKACK = 0xc
++ TCP_SYNCNT = 0x7
++ TCP_WINDOW_CLAMP = 0xa
++ TCSAFLUSH = 0x2
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_DTR = 0x2
++ TIOCM_LE = 0x1
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_RTS = 0x4
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCPKT_DATA = 0x0
++ TIOCPKT_DOSTOP = 0x20
++ TIOCPKT_FLUSHREAD = 0x1
++ TIOCPKT_FLUSHWRITE = 0x2
++ TIOCPKT_IOCTL = 0x40
++ TIOCPKT_NOSTOP = 0x10
++ TIOCPKT_START = 0x8
++ TIOCPKT_STOP = 0x4
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x401054d5
++ TUNDETACHFILTER = 0x401054d6
++ TUNGETFEATURES = 0x800454cf
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNSETDEBUG = 0x400454c9
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETHDRSZ = 0x400454d8
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VERASE = 0x2
++ VINTR = 0x0
++ VKILL = 0x3
++ VLNEXT = 0xf
++ VMIN = 0x6
++ VQUIT = 0x1
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT0 = 0x0
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WALL = 0x40000000
++ WCLONE = 0x80000000
++ WCONTINUED = 0x8
++ WEXITED = 0x4
++ WNOHANG = 0x1
++ WNOTHREAD = 0x20000000
++ WNOWAIT = 0x1000000
++ WORDSIZE = 0x40
++ WSTOPPED = 0x2
++ WUNTRACED = 0x2
++)
++
++// Errors
++const (
++ E2BIG = Errno(0x7)
++ EACCES = Errno(0xd)
++ EADDRINUSE = Errno(0x62)
++ EADDRNOTAVAIL = Errno(0x63)
++ EADV = Errno(0x44)
++ EAFNOSUPPORT = Errno(0x61)
++ EAGAIN = Errno(0xb)
++ EALREADY = Errno(0x72)
++ EBADE = Errno(0x34)
++ EBADF = Errno(0x9)
++ EBADFD = Errno(0x4d)
++ EBADMSG = Errno(0x4a)
++ EBADR = Errno(0x35)
++ EBADRQC = Errno(0x38)
++ EBADSLT = Errno(0x39)
++ EBFONT = Errno(0x3b)
++ EBUSY = Errno(0x10)
++ ECANCELED = Errno(0x7d)
++ ECHILD = Errno(0xa)
++ ECHRNG = Errno(0x2c)
++ ECOMM = Errno(0x46)
++ ECONNABORTED = Errno(0x67)
++ ECONNREFUSED = Errno(0x6f)
++ ECONNRESET = Errno(0x68)
++ EDEADLK = Errno(0x23)
++ EDEADLOCK = Errno(0x23)
++ EDESTADDRREQ = Errno(0x59)
++ EDOM = Errno(0x21)
++ EDOTDOT = Errno(0x49)
++ EDQUOT = Errno(0x7a)
++ EEXIST = Errno(0x11)
++ EFAULT = Errno(0xe)
++ EFBIG = Errno(0x1b)
++ EHOSTDOWN = Errno(0x70)
++ EHOSTUNREACH = Errno(0x71)
++ EHWPOISON = Errno(0x85)
++ EIDRM = Errno(0x2b)
++ EILSEQ = Errno(0x54)
++ EINPROGRESS = Errno(0x73)
++ EINTR = Errno(0x4)
++ EINVAL = Errno(0x16)
++ EIO = Errno(0x5)
++ EISCONN = Errno(0x6a)
++ EISDIR = Errno(0x15)
++ EISNAM = Errno(0x78)
++ EKEYEXPIRED = Errno(0x7f)
++ EKEYREJECTED = Errno(0x81)
++ EKEYREVOKED = Errno(0x80)
++ EL2HLT = Errno(0x33)
++ EL2NSYNC = Errno(0x2d)
++ EL3HLT = Errno(0x2e)
++ EL3RST = Errno(0x2f)
++ ELIBACC = Errno(0x4f)
++ ELIBBAD = Errno(0x50)
++ ELIBEXEC = Errno(0x53)
++ ELIBMAX = Errno(0x52)
++ ELIBSCN = Errno(0x51)
++ ELNRNG = Errno(0x30)
++ ELOOP = Errno(0x28)
++ EMEDIUMTYPE = Errno(0x7c)
++ EMFILE = Errno(0x18)
++ EMLINK = Errno(0x1f)
++ EMSGSIZE = Errno(0x5a)
++ EMULTIHOP = Errno(0x48)
++ ENAMETOOLONG = Errno(0x24)
++ ENAVAIL = Errno(0x77)
++ ENETDOWN = Errno(0x64)
++ ENETRESET = Errno(0x66)
++ ENETUNREACH = Errno(0x65)
++ ENFILE = Errno(0x17)
++ ENOANO = Errno(0x37)
++ ENOBUFS = Errno(0x69)
++ ENOCSI = Errno(0x32)
++ ENODATA = Errno(0x3d)
++ ENODEV = Errno(0x13)
++ ENOENT = Errno(0x2)
++ ENOEXEC = Errno(0x8)
++ ENOKEY = Errno(0x7e)
++ ENOLCK = Errno(0x25)
++ ENOLINK = Errno(0x43)
++ ENOMEDIUM = Errno(0x7b)
++ ENOMEM = Errno(0xc)
++ ENOMSG = Errno(0x2a)
++ ENONET = Errno(0x40)
++ ENOPKG = Errno(0x41)
++ ENOPROTOOPT = Errno(0x5c)
++ ENOSPC = Errno(0x1c)
++ ENOSR = Errno(0x3f)
++ ENOSTR = Errno(0x3c)
++ ENOSYS = Errno(0x26)
++ ENOTBLK = Errno(0xf)
++ ENOTCONN = Errno(0x6b)
++ ENOTDIR = Errno(0x14)
++ ENOTEMPTY = Errno(0x27)
++ ENOTNAM = Errno(0x76)
++ ENOTRECOVERABLE = Errno(0x83)
++ ENOTSOCK = Errno(0x58)
++ ENOTSUP = Errno(0x5f)
++ ENOTTY = Errno(0x19)
++ ENOTUNIQ = Errno(0x4c)
++ ENXIO = Errno(0x6)
++ EOPNOTSUPP = Errno(0x5f)
++ EOVERFLOW = Errno(0x4b)
++ EOWNERDEAD = Errno(0x82)
++ EPERM = Errno(0x1)
++ EPFNOSUPPORT = Errno(0x60)
++ EPIPE = Errno(0x20)
++ EPROTO = Errno(0x47)
++ EPROTONOSUPPORT = Errno(0x5d)
++ EPROTOTYPE = Errno(0x5b)
++ ERANGE = Errno(0x22)
++ EREMCHG = Errno(0x4e)
++ EREMOTE = Errno(0x42)
++ EREMOTEIO = Errno(0x79)
++ ERESTART = Errno(0x55)
++ ERFKILL = Errno(0x84)
++ EROFS = Errno(0x1e)
++ ESHUTDOWN = Errno(0x6c)
++ ESOCKTNOSUPPORT = Errno(0x5e)
++ ESPIPE = Errno(0x1d)
++ ESRCH = Errno(0x3)
++ ESRMNT = Errno(0x45)
++ ESTALE = Errno(0x74)
++ ESTRPIPE = Errno(0x56)
++ ETIME = Errno(0x3e)
++ ETIMEDOUT = Errno(0x6e)
++ ETOOMANYREFS = Errno(0x6d)
++ ETXTBSY = Errno(0x1a)
++ EUCLEAN = Errno(0x75)
++ EUNATCH = Errno(0x31)
++ EUSERS = Errno(0x57)
++ EWOULDBLOCK = Errno(0xb)
++ EXDEV = Errno(0x12)
++ EXFULL = Errno(0x36)
++)
++
++// Signals
++const (
++ SIGABRT = Signal(0x6)
++ SIGALRM = Signal(0xe)
++ SIGBUS = Signal(0x7)
++ SIGCHLD = Signal(0x11)
++ SIGCLD = Signal(0x11)
++ SIGCONT = Signal(0x12)
++ SIGFPE = Signal(0x8)
++ SIGHUP = Signal(0x1)
++ SIGILL = Signal(0x4)
++ SIGINT = Signal(0x2)
++ SIGIO = Signal(0x1d)
++ SIGIOT = Signal(0x6)
++ SIGKILL = Signal(0x9)
++ SIGPIPE = Signal(0xd)
++ SIGPOLL = Signal(0x1d)
++ SIGPROF = Signal(0x1b)
++ SIGPWR = Signal(0x1e)
++ SIGQUIT = Signal(0x3)
++ SIGSEGV = Signal(0xb)
++ SIGSTKFLT = Signal(0x10)
++ SIGSTOP = Signal(0x13)
++ SIGSYS = Signal(0x1f)
++ SIGTERM = Signal(0xf)
++ SIGTRAP = Signal(0x5)
++ SIGTSTP = Signal(0x14)
++ SIGTTIN = Signal(0x15)
++ SIGTTOU = Signal(0x16)
++ SIGUNUSED = Signal(0x1f)
++ SIGURG = Signal(0x17)
++ SIGUSR1 = Signal(0xa)
++ SIGUSR2 = Signal(0xc)
++ SIGVTALRM = Signal(0x1a)
++ SIGWINCH = Signal(0x1c)
++ SIGXCPU = Signal(0x18)
++ SIGXFSZ = Signal(0x19)
++)
++
++// Error table
++var errors = [...]string{
++ 1: "operation not permitted",
++ 2: "no such file or directory",
++ 3: "no such process",
++ 4: "interrupted system call",
++ 5: "input/output error",
++ 6: "no such device or address",
++ 7: "argument list too long",
++ 8: "exec format error",
++ 9: "bad file descriptor",
++ 10: "no child processes",
++ 11: "resource temporarily unavailable",
++ 12: "cannot allocate memory",
++ 13: "permission denied",
++ 14: "bad address",
++ 15: "block device required",
++ 16: "device or resource busy",
++ 17: "file exists",
++ 18: "invalid cross-device link",
++ 19: "no such device",
++ 20: "not a directory",
++ 21: "is a directory",
++ 22: "invalid argument",
++ 23: "too many open files in system",
++ 24: "too many open files",
++ 25: "inappropriate ioctl for device",
++ 26: "text file busy",
++ 27: "file too large",
++ 28: "no space left on device",
++ 29: "illegal seek",
++ 30: "read-only file system",
++ 31: "too many links",
++ 32: "broken pipe",
++ 33: "numerical argument out of domain",
++ 34: "numerical result out of range",
++ 35: "resource deadlock avoided",
++ 36: "file name too long",
++ 37: "no locks available",
++ 38: "function not implemented",
++ 39: "directory not empty",
++ 40: "too many levels of symbolic links",
++ 42: "no message of desired type",
++ 43: "identifier removed",
++ 44: "channel number out of range",
++ 45: "level 2 not synchronized",
++ 46: "level 3 halted",
++ 47: "level 3 reset",
++ 48: "link number out of range",
++ 49: "protocol driver not attached",
++ 50: "no CSI structure available",
++ 51: "level 2 halted",
++ 52: "invalid exchange",
++ 53: "invalid request descriptor",
++ 54: "exchange full",
++ 55: "no anode",
++ 56: "invalid request code",
++ 57: "invalid slot",
++ 59: "bad font file format",
++ 60: "device not a stream",
++ 61: "no data available",
++ 62: "timer expired",
++ 63: "out of streams resources",
++ 64: "machine is not on the network",
++ 65: "package not installed",
++ 66: "object is remote",
++ 67: "link has been severed",
++ 68: "advertise error",
++ 69: "srmount error",
++ 70: "communication error on send",
++ 71: "protocol error",
++ 72: "multihop attempted",
++ 73: "RFS specific error",
++ 74: "bad message",
++ 75: "value too large for defined data type",
++ 76: "name not unique on network",
++ 77: "file descriptor in bad state",
++ 78: "remote address changed",
++ 79: "can not access a needed shared library",
++ 80: "accessing a corrupted shared library",
++ 81: ".lib section in a.out corrupted",
++ 82: "attempting to link in too many shared libraries",
++ 83: "cannot exec a shared library directly",
++ 84: "invalid or incomplete multibyte or wide character",
++ 85: "interrupted system call should be restarted",
++ 86: "streams pipe error",
++ 87: "too many users",
++ 88: "socket operation on non-socket",
++ 89: "destination address required",
++ 90: "message too long",
++ 91: "protocol wrong type for socket",
++ 92: "protocol not available",
++ 93: "protocol not supported",
++ 94: "socket type not supported",
++ 95: "operation not supported",
++ 96: "protocol family not supported",
++ 97: "address family not supported by protocol",
++ 98: "address already in use",
++ 99: "cannot assign requested address",
++ 100: "network is down",
++ 101: "network is unreachable",
++ 102: "network dropped connection on reset",
++ 103: "software caused connection abort",
++ 104: "connection reset by peer",
++ 105: "no buffer space available",
++ 106: "transport endpoint is already connected",
++ 107: "transport endpoint is not connected",
++ 108: "cannot send after transport endpoint shutdown",
++ 109: "too many references: cannot splice",
++ 110: "connection timed out",
++ 111: "connection refused",
++ 112: "host is down",
++ 113: "no route to host",
++ 114: "operation already in progress",
++ 115: "operation now in progress",
++ 116: "stale file handle",
++ 117: "structure needs cleaning",
++ 118: "not a XENIX named type file",
++ 119: "no XENIX semaphores available",
++ 120: "is a named type file",
++ 121: "remote I/O error",
++ 122: "disk quota exceeded",
++ 123: "no medium found",
++ 124: "wrong medium type",
++ 125: "operation canceled",
++ 126: "required key not available",
++ 127: "key has expired",
++ 128: "key has been revoked",
++ 129: "key was rejected by service",
++ 130: "owner died",
++ 131: "state not recoverable",
++ 132: "operation not possible due to RF-kill",
++ 133: "memory page has hardware error",
++}
++
++// Signal table
++var signals = [...]string{
++ 1: "hangup",
++ 2: "interrupt",
++ 3: "quit",
++ 4: "illegal instruction",
++ 5: "trace/breakpoint trap",
++ 6: "aborted",
++ 7: "bus error",
++ 8: "floating point exception",
++ 9: "killed",
++ 10: "user defined signal 1",
++ 11: "segmentation fault",
++ 12: "user defined signal 2",
++ 13: "broken pipe",
++ 14: "alarm clock",
++ 15: "terminated",
++ 16: "stack fault",
++ 17: "child exited",
++ 18: "continued",
++ 19: "stopped (signal)",
++ 20: "stopped",
++ 21: "stopped (tty input)",
++ 22: "stopped (tty output)",
++ 23: "urgent I/O condition",
++ 24: "CPU time limit exceeded",
++ 25: "file size limit exceeded",
++ 26: "virtual timer expired",
++ 27: "profiling timer expired",
++ 28: "window changed",
++ 29: "I/O possible",
++ 30: "power failure",
++ 31: "bad system call",
++}
+diff --git a/src/syscall/zsyscall_linux_s390x.go b/src/syscall/zsyscall_linux_s390x.go
+new file mode 100644
+index 0000000..d103c57
+--- /dev/null
++++ b/src/syscall/zsyscall_linux_s390x.go
+@@ -0,0 +1,1578 @@
++// mksyscall.pl syscall_linux.go syscall_linux_s390x.go
++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++
++// +build s390x,linux
++
++package syscall
++
++import "unsafe"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
++ use(unsafe.Pointer(_p0))
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimensat(dirfd int, path string, times *[2]Timespec) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
++ wpid = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(arg)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(source)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(target)
++ if err != nil {
++ return
++ }
++ var _p2 *byte
++ _p2, err = BytePtrFromString(fstype)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ use(unsafe.Pointer(_p2))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Acct(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Adjtimex(buf *Timex) (state int, err error) {
++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
++ state = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Chdir(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Chroot(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Close(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup(oldfd int) (fd int, err error) {
++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup3(oldfd int, newfd int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func EpollCreate1(flag int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Exit(code int) {
++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchdir(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchmod(fd int, mode uint32) (err error) {
++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fdatasync(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Flock(fd int, how int) (err error) {
++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fsync(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getdents(fd int, buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpgid(pid int) (pgid int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
++ pgid = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpid() (pid int) {
++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++ pid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getppid() (ppid int) {
++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++ ppid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpriority(which int, who int) (prio int, err error) {
++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
++ prio = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrusage(who int, rusage *Rusage) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Gettid() (tid int) {
++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
++ tid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ var _p2 unsafe.Pointer
++ if len(dest) > 0 {
++ _p2 = unsafe.Pointer(&dest[0])
++ } else {
++ _p2 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(pathname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
++ use(unsafe.Pointer(_p0))
++ watchdesc = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func InotifyInit1(flags int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
++ success = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Kill(pid int, sig Signal) (err error) {
++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Klogctl(typ int, buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Listxattr(path string, dest []byte) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(dest) > 0 {
++ _p1 = unsafe.Pointer(&dest[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
++ use(unsafe.Pointer(_p0))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pause() (err error) {
++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func PivotRoot(newroot string, putold string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(newroot)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(putold)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) {
++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func read(fd int, p []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Removexattr(path string, attr string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setdomainname(p []byte) (err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sethostname(p []byte) (err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setpgid(pid int, pgid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setsid() (pid int, err error) {
++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
++ pid = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Settimeofday(tv *Timeval) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setpriority(which int, who int, prio int) (err error) {
++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setxattr(path string, attr string, data []byte, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ var _p2 unsafe.Pointer
++ if len(data) > 0 {
++ _p2 = unsafe.Pointer(&data[0])
++ } else {
++ _p2 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
++ use(unsafe.Pointer(_p0))
++ use(unsafe.Pointer(_p1))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sync() {
++ Syscall(SYS_SYNC, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sysinfo(info *Sysinfo_t) (err error) {
++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Tgkill(tgid int, tid int, sig Signal) (err error) {
++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Times(tms *Tms) (ticks uintptr, err error) {
++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
++ ticks = uintptr(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Umask(mask int) (oldmask int) {
++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
++ oldmask = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Uname(buf *Utsname) (err error) {
++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Unmount(target string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(target)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Unshare(flags int) (err error) {
++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Utime(path string, buf *Utimbuf) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func write(fd int, p []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func exitThread(code int) (err error) {
++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readlen(fd int, p *byte, np int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func writelen(fd int, p *byte, np int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func munmap(addr uintptr, length uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Madvise(b []byte, advice int) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mprotect(b []byte, prot int) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mlock(b []byte) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Munlock(b []byte) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mlockall(flags int) (err error) {
++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Munlockall() (err error) {
++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, buf *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ftruncate(fd int, length int64) (err error) {
++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getegid() (egid int) {
++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ egid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Geteuid() (euid int) {
++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ euid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getgid() (gid int) {
++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ gid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrlimit(resource int, rlim *Rlimit) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getuid() (uid int) {
++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ uid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func InotifyInit() (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lchown(path string, uid int, gid int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pread(fd int, p []byte, offset int64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ off = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
++ written = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setfsgid(gid int) (err error) {
++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setfsuid(uid int) (err error) {
++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setregid(rgid int, egid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setresgid(rgid int, egid int, sgid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setresuid(ruid int, euid int, suid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setrlimit(resource int, rlim *Rlimit) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setreuid(ruid int, euid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
++ n = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, buf *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Truncate(path string, length int64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++ use(unsafe.Pointer(_p0))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getgroups(n int, list *_Gid_t) (nn int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
++ nn = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setgroups(n int, list *_Gid_t) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Gettimeofday(tv *Timeval) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/src/syscall/zsysnum_linux_s390x.go b/src/syscall/zsysnum_linux_s390x.go
+new file mode 100644
+index 0000000..90e6b2f
+--- /dev/null
++++ b/src/syscall/zsysnum_linux_s390x.go
+@@ -0,0 +1,293 @@
++// mksysnum_linux.pl /usr/include/asm/unistd.h
++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++
++// +build s390x,linux
++
++package syscall
++
++const (
++ SYS_EXIT = 1
++ SYS_FORK = 2
++ SYS_READ = 3
++ SYS_WRITE = 4
++ SYS_OPEN = 5
++ SYS_CLOSE = 6
++ SYS_RESTART_SYSCALL = 7
++ SYS_CREAT = 8
++ SYS_LINK = 9
++ SYS_UNLINK = 10
++ SYS_EXECVE = 11
++ SYS_CHDIR = 12
++ SYS_MKNOD = 14
++ SYS_CHMOD = 15
++ SYS_LSEEK = 19
++ SYS_GETPID = 20
++ SYS_MOUNT = 21
++ SYS_UMOUNT = 22
++ SYS_PTRACE = 26
++ SYS_ALARM = 27
++ SYS_PAUSE = 29
++ SYS_UTIME = 30
++ SYS_ACCESS = 33
++ SYS_NICE = 34
++ SYS_SYNC = 36
++ SYS_KILL = 37
++ SYS_RENAME = 38
++ SYS_MKDIR = 39
++ SYS_RMDIR = 40
++ SYS_DUP = 41
++ SYS_PIPE = 42
++ SYS_TIMES = 43
++ SYS_BRK = 45
++ SYS_SIGNAL = 48
++ SYS_ACCT = 51
++ SYS_UMOUNT2 = 52
++ SYS_IOCTL = 54
++ SYS_FCNTL = 55
++ SYS_SETPGID = 57
++ SYS_UMASK = 60
++ SYS_CHROOT = 61
++ SYS_USTAT = 62
++ SYS_DUP2 = 63
++ SYS_GETPPID = 64
++ SYS_GETPGRP = 65
++ SYS_SETSID = 66
++ SYS_SIGACTION = 67
++ SYS_SIGSUSPEND = 72
++ SYS_SIGPENDING = 73
++ SYS_SETHOSTNAME = 74
++ SYS_SETRLIMIT = 75
++ SYS_GETRUSAGE = 77
++ SYS_GETTIMEOFDAY = 78
++ SYS_SETTIMEOFDAY = 79
++ SYS_SYMLINK = 83
++ SYS_READLINK = 85
++ SYS_USELIB = 86
++ SYS_SWAPON = 87
++ SYS_REBOOT = 88
++ SYS_READDIR = 89
++ SYS_MMAP = 90
++ SYS_MUNMAP = 91
++ SYS_TRUNCATE = 92
++ SYS_FTRUNCATE = 93
++ SYS_FCHMOD = 94
++ SYS_GETPRIORITY = 96
++ SYS_SETPRIORITY = 97
++ SYS_STATFS = 99
++ SYS_FSTATFS = 100
++ SYS_SOCKETCALL = 102
++ SYS_SYSLOG = 103
++ SYS_SETITIMER = 104
++ SYS_GETITIMER = 105
++ SYS_STAT = 106
++ SYS_LSTAT = 107
++ SYS_FSTAT = 108
++ SYS_LOOKUP_DCOOKIE = 110
++ SYS_VHANGUP = 111
++ SYS_IDLE = 112
++ SYS_WAIT4 = 114
++ SYS_SWAPOFF = 115
++ SYS_SYSINFO = 116
++ SYS_IPC = 117
++ SYS_FSYNC = 118
++ SYS_SIGRETURN = 119
++ SYS_CLONE = 120
++ SYS_SETDOMAINNAME = 121
++ SYS_UNAME = 122
++ SYS_ADJTIMEX = 124
++ SYS_MPROTECT = 125
++ SYS_SIGPROCMASK = 126
++ SYS_CREATE_MODULE = 127
++ SYS_INIT_MODULE = 128
++ SYS_DELETE_MODULE = 129
++ SYS_GET_KERNEL_SYMS = 130
++ SYS_QUOTACTL = 131
++ SYS_GETPGID = 132
++ SYS_FCHDIR = 133
++ SYS_BDFLUSH = 134
++ SYS_SYSFS = 135
++ SYS_PERSONALITY = 136
++ SYS_AFS_SYSCALL = 137
++ SYS_GETDENTS = 141
++ SYS_FLOCK = 143
++ SYS_MSYNC = 144
++ SYS_READV = 145
++ SYS_WRITEV = 146
++ SYS_GETSID = 147
++ SYS_FDATASYNC = 148
++ SYS__SYSCTL = 149
++ SYS_MLOCK = 150
++ SYS_MUNLOCK = 151
++ SYS_MLOCKALL = 152
++ SYS_MUNLOCKALL = 153
++ SYS_SCHED_SETPARAM = 154
++ SYS_SCHED_GETPARAM = 155
++ SYS_SCHED_SETSCHEDULER = 156
++ SYS_SCHED_GETSCHEDULER = 157
++ SYS_SCHED_YIELD = 158
++ SYS_SCHED_GET_PRIORITY_MAX = 159
++ SYS_SCHED_GET_PRIORITY_MIN = 160
++ SYS_SCHED_RR_GET_INTERVAL = 161
++ SYS_NANOSLEEP = 162
++ SYS_MREMAP = 163
++ SYS_QUERY_MODULE = 167
++ SYS_POLL = 168
++ SYS_NFSSERVCTL = 169
++ SYS_PRCTL = 172
++ SYS_RT_SIGRETURN = 173
++ SYS_RT_SIGACTION = 174
++ SYS_RT_SIGPROCMASK = 175
++ SYS_RT_SIGPENDING = 176
++ SYS_RT_SIGTIMEDWAIT = 177
++ SYS_RT_SIGQUEUEINFO = 178
++ SYS_RT_SIGSUSPEND = 179
++ SYS_PREAD64 = 180
++ SYS_PWRITE64 = 181
++ SYS_GETCWD = 183
++ SYS_CAPGET = 184
++ SYS_CAPSET = 185
++ SYS_SIGALTSTACK = 186
++ SYS_SENDFILE = 187
++ SYS_GETPMSG = 188
++ SYS_PUTPMSG = 189
++ SYS_VFORK = 190
++ SYS_PIVOT_ROOT = 217
++ SYS_MINCORE = 218
++ SYS_MADVISE = 219
++ SYS_GETDENTS64 = 220
++ SYS_READAHEAD = 222
++ SYS_SETXATTR = 224
++ SYS_LSETXATTR = 225
++ SYS_FSETXATTR = 226
++ SYS_GETXATTR = 227
++ SYS_LGETXATTR = 228
++ SYS_FGETXATTR = 229
++ SYS_LISTXATTR = 230
++ SYS_LLISTXATTR = 231
++ SYS_FLISTXATTR = 232
++ SYS_REMOVEXATTR = 233
++ SYS_LREMOVEXATTR = 234
++ SYS_FREMOVEXATTR = 235
++ SYS_GETTID = 236
++ SYS_TKILL = 237
++ SYS_FUTEX = 238
++ SYS_SCHED_SETAFFINITY = 239
++ SYS_SCHED_GETAFFINITY = 240
++ SYS_TGKILL = 241
++ SYS_IO_SETUP = 243
++ SYS_IO_DESTROY = 244
++ SYS_IO_GETEVENTS = 245
++ SYS_IO_SUBMIT = 246
++ SYS_IO_CANCEL = 247
++ SYS_EXIT_GROUP = 248
++ SYS_EPOLL_CREATE = 249
++ SYS_EPOLL_CTL = 250
++ SYS_EPOLL_WAIT = 251
++ SYS_SET_TID_ADDRESS = 252
++ SYS_FADVISE64 = 253
++ SYS_TIMER_CREATE = 254
++ SYS_TIMER_SETTIME = 255
++ SYS_TIMER_GETTIME = 256
++ SYS_TIMER_GETOVERRUN = 257
++ SYS_TIMER_DELETE = 258
++ SYS_CLOCK_SETTIME = 259
++ SYS_CLOCK_GETTIME = 260
++ SYS_CLOCK_GETRES = 261
++ SYS_CLOCK_NANOSLEEP = 262
++ SYS_STATFS64 = 265
++ SYS_FSTATFS64 = 266
++ SYS_REMAP_FILE_PAGES = 267
++ SYS_MQ_OPEN = 271
++ SYS_MQ_UNLINK = 272
++ SYS_MQ_TIMEDSEND = 273
++ SYS_MQ_TIMEDRECEIVE = 274
++ SYS_MQ_NOTIFY = 275
++ SYS_MQ_GETSETATTR = 276
++ SYS_KEXEC_LOAD = 277
++ SYS_ADD_KEY = 278
++ SYS_REQUEST_KEY = 279
++ SYS_KEYCTL = 280
++ SYS_WAITID = 281
++ SYS_IOPRIO_SET = 282
++ SYS_IOPRIO_GET = 283
++ SYS_INOTIFY_INIT = 284
++ SYS_INOTIFY_ADD_WATCH = 285
++ SYS_INOTIFY_RM_WATCH = 286
++ SYS_OPENAT = 288
++ SYS_MKDIRAT = 289
++ SYS_MKNODAT = 290
++ SYS_FCHOWNAT = 291
++ SYS_FUTIMESAT = 292
++ SYS_UNLINKAT = 294
++ SYS_RENAMEAT = 295
++ SYS_LINKAT = 296
++ SYS_SYMLINKAT = 297
++ SYS_READLINKAT = 298
++ SYS_FCHMODAT = 299
++ SYS_FACCESSAT = 300
++ SYS_PSELECT6 = 301
++ SYS_PPOLL = 302
++ SYS_UNSHARE = 303
++ SYS_SET_ROBUST_LIST = 304
++ SYS_GET_ROBUST_LIST = 305
++ SYS_SPLICE = 306
++ SYS_SYNC_FILE_RANGE = 307
++ SYS_TEE = 308
++ SYS_VMSPLICE = 309
++ SYS_GETCPU = 311
++ SYS_EPOLL_PWAIT = 312
++ SYS_UTIMES = 313
++ SYS_FALLOCATE = 314
++ SYS_UTIMENSAT = 315
++ SYS_SIGNALFD = 316
++ SYS_TIMERFD = 317
++ SYS_EVENTFD = 318
++ SYS_TIMERFD_CREATE = 319
++ SYS_TIMERFD_SETTIME = 320
++ SYS_TIMERFD_GETTIME = 321
++ SYS_SIGNALFD4 = 322
++ SYS_EVENTFD2 = 323
++ SYS_INOTIFY_INIT1 = 324
++ SYS_PIPE2 = 325
++ SYS_DUP3 = 326
++ SYS_EPOLL_CREATE1 = 327
++ SYS_PREADV = 328
++ SYS_PWRITEV = 329
++ SYS_RT_TGSIGQUEUEINFO = 330
++ SYS_PERF_EVENT_OPEN = 331
++ SYS_FANOTIFY_INIT = 332
++ SYS_FANOTIFY_MARK = 333
++ SYS_PRLIMIT64 = 334
++ SYS_NAME_TO_HANDLE_AT = 335
++ SYS_OPEN_BY_HANDLE_AT = 336
++ SYS_CLOCK_ADJTIME = 337
++ SYS_SYNCFS = 338
++ SYS_SETNS = 339
++ SYS_PROCESS_VM_READV = 340
++ SYS_PROCESS_VM_WRITEV = 341
++ SYS_S390_RUNTIME_INSTR = 342
++ SYS_KCMP = 343
++ SYS_FINIT_MODULE = 344
++ SYS_SELECT = 142
++ SYS_GETRLIMIT = 191
++ SYS_LCHOWN = 198
++ SYS_GETUID = 199
++ SYS_GETGID = 200
++ SYS_GETEUID = 201
++ SYS_GETEGID = 202
++ SYS_SETREUID = 203
++ SYS_SETREGID = 204
++ SYS_GETGROUPS = 205
++ SYS_SETGROUPS = 206
++ SYS_FCHOWN = 207
++ SYS_SETRESUID = 208
++ SYS_GETRESUID = 209
++ SYS_SETRESGID = 210
++ SYS_GETRESGID = 211
++ SYS_CHOWN = 212
++ SYS_SETUID = 213
++ SYS_SETGID = 214
++ SYS_SETFSUID = 215
++ SYS_SETFSGID = 216
++ SYS_NEWFSTATAT = 293
++)
+diff --git a/src/syscall/ztypes_linux_s390x.go b/src/syscall/ztypes_linux_s390x.go
+new file mode 100644
+index 0000000..87b86e2
+--- /dev/null
++++ b/src/syscall/ztypes_linux_s390x.go
+@@ -0,0 +1,623 @@
++// Created by cgo -godefs - DO NOT EDIT
++// cgo -godefs types_linux.go
++
++// +build s390x,linux
++
++package syscall
++
++const (
++ sizeofPtr = 0x8
++ sizeofShort = 0x2
++ sizeofInt = 0x4
++ sizeofLong = 0x8
++ sizeofLongLong = 0x8
++ PathMax = 0x1000
++)
++
++type (
++ _C_short int16
++ _C_int int32
++ _C_long int64
++ _C_long_long int64
++)
++
++type Timespec struct {
++ Sec int64
++ Nsec int64
++}
++
++type Timeval struct {
++ Sec int64
++ Usec int64
++}
++
++type Timex struct {
++ Modes uint32
++ Pad_cgo_0 [4]byte
++ Offset int64
++ Freq int64
++ Maxerror int64
++ Esterror int64
++ Status int32
++ Pad_cgo_1 [4]byte
++ Constant int64
++ Precision int64
++ Tolerance int64
++ Time Timeval
++ Tick int64
++ Ppsfreq int64
++ Jitter int64
++ Shift int32
++ Pad_cgo_2 [4]byte
++ Stabil int64
++ Jitcnt int64
++ Calcnt int64
++ Errcnt int64
++ Stbcnt int64
++ Tai int32
++ Pad_cgo_3 [44]byte
++}
++
++type Time_t int64
++
++type Tms struct {
++ Utime int64
++ Stime int64
++ Cutime int64
++ Cstime int64
++}
++
++type Utimbuf struct {
++ Actime int64
++ Modtime int64
++}
++
++type Rusage struct {
++ Utime Timeval
++ Stime Timeval
++ Maxrss int64
++ Ixrss int64
++ Idrss int64
++ Isrss int64
++ Minflt int64
++ Majflt int64
++ Nswap int64
++ Inblock int64
++ Oublock int64
++ Msgsnd int64
++ Msgrcv int64
++ Nsignals int64
++ Nvcsw int64
++ Nivcsw int64
++}
++
++type Rlimit struct {
++ Cur uint64
++ Max uint64
++}
++
++type _Gid_t uint32
++
++type Stat_t struct {
++ Dev uint64
++ Ino uint64
++ Nlink uint64
++ Mode uint32
++ Uid uint32
++ Gid uint32
++ Pad0 int32
++ Rdev uint64
++ Size int64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Blksize int64
++ Blocks int64
++ X__unused [3]int64
++}
++
++type Statfs_t struct {
++ Type uint32
++ Bsize uint32
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen uint32
++ Frsize uint32
++ Flags uint32
++ Spare [4]uint32
++ Pad_cgo_0 [4]byte
++}
++
++type Dirent struct {
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]uint8
++ Pad_cgo_0 [5]byte
++}
++
++type Fsid struct {
++ X__val [2]int32
++}
++
++type Flock_t struct {
++ Type int16
++ Whence int16
++ Pad_cgo_0 [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ Pad_cgo_1 [4]byte
++}
++
++type RawSockaddrInet4 struct {
++ Family uint16
++ Port uint16
++ Addr [4]byte /* in_addr */
++ Zero [8]uint8
++}
++
++type RawSockaddrInet6 struct {
++ Family uint16
++ Port uint16
++ Flowinfo uint32
++ Addr [16]byte /* in6_addr */
++ Scope_id uint32
++}
++
++type RawSockaddrUnix struct {
++ Family uint16
++ Path [108]int8
++}
++
++type RawSockaddrLinklayer struct {
++ Family uint16
++ Protocol uint16
++ Ifindex int32
++ Hatype uint16
++ Pkttype uint8
++ Halen uint8
++ Addr [8]uint8
++}
++
++type RawSockaddrNetlink struct {
++ Family uint16
++ Pad uint16
++ Pid uint32
++ Groups uint32
++}
++
++type RawSockaddr struct {
++ Family uint16
++ Data [14]uint8
++}
++
++type RawSockaddrAny struct {
++ Addr RawSockaddr
++ Pad [96]uint8
++}
++
++type _Socklen uint32
++
++type Linger struct {
++ Onoff int32
++ Linger int32
++}
++
++type Iovec struct {
++ Base *byte
++ Len uint64
++}
++
++type IPMreq struct {
++ Multiaddr [4]byte /* in_addr */
++ Interface [4]byte /* in_addr */
++}
++
++type IPMreqn struct {
++ Multiaddr [4]byte /* in_addr */
++ Address [4]byte /* in_addr */
++ Ifindex int32
++}
++
++type IPv6Mreq struct {
++ Multiaddr [16]byte /* in6_addr */
++ Interface uint32
++}
++
++type Msghdr struct {
++ Name *byte
++ Namelen uint32
++ Pad_cgo_0 [4]byte
++ Iov *Iovec
++ Iovlen uint64
++ Control *byte
++ Controllen uint64
++ Flags int32
++ Pad_cgo_1 [4]byte
++}
++
++type Cmsghdr struct {
++ Len uint64
++ Level int32
++ Type int32
++ X__cmsg_data [0]uint8
++}
++
++type Inet4Pktinfo struct {
++ Ifindex int32
++ Spec_dst [4]byte /* in_addr */
++ Addr [4]byte /* in_addr */
++}
++
++type Inet6Pktinfo struct {
++ Addr [16]byte /* in6_addr */
++ Ifindex uint32
++}
++
++type IPv6MTUInfo struct {
++ Addr RawSockaddrInet6
++ Mtu uint32
++}
++
++type ICMPv6Filter struct {
++ Data [8]uint32
++}
++
++type Ucred struct {
++ Pid int32
++ Uid uint32
++ Gid uint32
++}
++
++type TCPInfo struct {
++ State uint8
++ Ca_state uint8
++ Retransmits uint8
++ Probes uint8
++ Backoff uint8
++ Options uint8
++ Pad_cgo_0 [2]byte
++ Rto uint32
++ Ato uint32
++ Snd_mss uint32
++ Rcv_mss uint32
++ Unacked uint32
++ Sacked uint32
++ Lost uint32
++ Retrans uint32
++ Fackets uint32
++ Last_data_sent uint32
++ Last_ack_sent uint32
++ Last_data_recv uint32
++ Last_ack_recv uint32
++ Pmtu uint32
++ Rcv_ssthresh uint32
++ Rtt uint32
++ Rttvar uint32
++ Snd_ssthresh uint32
++ Snd_cwnd uint32
++ Advmss uint32
++ Reordering uint32
++ Rcv_rtt uint32
++ Rcv_space uint32
++ Total_retrans uint32
++}
++
++const (
++ SizeofSockaddrInet4 = 0x10
++ SizeofSockaddrInet6 = 0x1c
++ SizeofSockaddrAny = 0x70
++ SizeofSockaddrUnix = 0x6e
++ SizeofSockaddrLinklayer = 0x14
++ SizeofSockaddrNetlink = 0xc
++ SizeofLinger = 0x8
++ SizeofIPMreq = 0x8
++ SizeofIPMreqn = 0xc
++ SizeofIPv6Mreq = 0x14
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
++ SizeofInet4Pktinfo = 0xc
++ SizeofInet6Pktinfo = 0x14
++ SizeofIPv6MTUInfo = 0x20
++ SizeofICMPv6Filter = 0x20
++ SizeofUcred = 0xc
++ SizeofTCPInfo = 0x68
++)
++
++const (
++ IFA_UNSPEC = 0x0
++ IFA_ADDRESS = 0x1
++ IFA_LOCAL = 0x2
++ IFA_LABEL = 0x3
++ IFA_BROADCAST = 0x4
++ IFA_ANYCAST = 0x5
++ IFA_CACHEINFO = 0x6
++ IFA_MULTICAST = 0x7
++ IFLA_UNSPEC = 0x0
++ IFLA_ADDRESS = 0x1
++ IFLA_BROADCAST = 0x2
++ IFLA_IFNAME = 0x3
++ IFLA_MTU = 0x4
++ IFLA_LINK = 0x5
++ IFLA_QDISC = 0x6
++ IFLA_STATS = 0x7
++ IFLA_COST = 0x8
++ IFLA_PRIORITY = 0x9
++ IFLA_MASTER = 0xa
++ IFLA_WIRELESS = 0xb
++ IFLA_PROTINFO = 0xc
++ IFLA_TXQLEN = 0xd
++ IFLA_MAP = 0xe
++ IFLA_WEIGHT = 0xf
++ IFLA_OPERSTATE = 0x10
++ IFLA_LINKMODE = 0x11
++ IFLA_LINKINFO = 0x12
++ IFLA_NET_NS_PID = 0x13
++ IFLA_IFALIAS = 0x14
++ IFLA_MAX = 0x22
++ RT_SCOPE_UNIVERSE = 0x0
++ RT_SCOPE_SITE = 0xc8
++ RT_SCOPE_LINK = 0xfd
++ RT_SCOPE_HOST = 0xfe
++ RT_SCOPE_NOWHERE = 0xff
++ RT_TABLE_UNSPEC = 0x0
++ RT_TABLE_COMPAT = 0xfc
++ RT_TABLE_DEFAULT = 0xfd
++ RT_TABLE_MAIN = 0xfe
++ RT_TABLE_LOCAL = 0xff
++ RT_TABLE_MAX = 0xffffffff
++ RTA_UNSPEC = 0x0
++ RTA_DST = 0x1
++ RTA_SRC = 0x2
++ RTA_IIF = 0x3
++ RTA_OIF = 0x4
++ RTA_GATEWAY = 0x5
++ RTA_PRIORITY = 0x6
++ RTA_PREFSRC = 0x7
++ RTA_METRICS = 0x8
++ RTA_MULTIPATH = 0x9
++ RTA_FLOW = 0xb
++ RTA_CACHEINFO = 0xc
++ RTA_TABLE = 0xf
++ RTN_UNSPEC = 0x0
++ RTN_UNICAST = 0x1
++ RTN_LOCAL = 0x2
++ RTN_BROADCAST = 0x3
++ RTN_ANYCAST = 0x4
++ RTN_MULTICAST = 0x5
++ RTN_BLACKHOLE = 0x6
++ RTN_UNREACHABLE = 0x7
++ RTN_PROHIBIT = 0x8
++ RTN_THROW = 0x9
++ RTN_NAT = 0xa
++ RTN_XRESOLVE = 0xb
++ RTNLGRP_NONE = 0x0
++ RTNLGRP_LINK = 0x1
++ RTNLGRP_NOTIFY = 0x2
++ RTNLGRP_NEIGH = 0x3
++ RTNLGRP_TC = 0x4
++ RTNLGRP_IPV4_IFADDR = 0x5
++ RTNLGRP_IPV4_MROUTE = 0x6
++ RTNLGRP_IPV4_ROUTE = 0x7
++ RTNLGRP_IPV4_RULE = 0x8
++ RTNLGRP_IPV6_IFADDR = 0x9
++ RTNLGRP_IPV6_MROUTE = 0xa
++ RTNLGRP_IPV6_ROUTE = 0xb
++ RTNLGRP_IPV6_IFINFO = 0xc
++ RTNLGRP_IPV6_PREFIX = 0x12
++ RTNLGRP_IPV6_RULE = 0x13
++ RTNLGRP_ND_USEROPT = 0x14
++ SizeofNlMsghdr = 0x10
++ SizeofNlMsgerr = 0x14
++ SizeofRtGenmsg = 0x1
++ SizeofNlAttr = 0x4
++ SizeofRtAttr = 0x4
++ SizeofIfInfomsg = 0x10
++ SizeofIfAddrmsg = 0x8
++ SizeofRtMsg = 0xc
++ SizeofRtNexthop = 0x8
++)
++
++type NlMsghdr struct {
++ Len uint32
++ Type uint16
++ Flags uint16
++ Seq uint32
++ Pid uint32
++}
++
++type NlMsgerr struct {
++ Error int32
++ Msg NlMsghdr
++}
++
++type RtGenmsg struct {
++ Family uint8
++}
++
++type NlAttr struct {
++ Len uint16
++ Type uint16
++}
++
++type RtAttr struct {
++ Len uint16
++ Type uint16
++}
++
++type IfInfomsg struct {
++ Family uint8
++ X__ifi_pad uint8
++ Type uint16
++ Index int32
++ Flags uint32
++ Change uint32
++}
++
++type IfAddrmsg struct {
++ Family uint8
++ Prefixlen uint8
++ Flags uint8
++ Scope uint8
++ Index uint32
++}
++
++type RtMsg struct {
++ Family uint8
++ Dst_len uint8
++ Src_len uint8
++ Tos uint8
++ Table uint8
++ Protocol uint8
++ Scope uint8
++ Type uint8
++ Flags uint32
++}
++
++type RtNexthop struct {
++ Len uint16
++ Flags uint8
++ Hops uint8
++ Ifindex int32
++}
++
++const (
++ SizeofSockFilter = 0x8
++ SizeofSockFprog = 0x10
++)
++
++type SockFilter struct {
++ Code uint16
++ Jt uint8
++ Jf uint8
++ K uint32
++}
++
++type SockFprog struct {
++ Len uint16
++ Pad_cgo_0 [6]byte
++ Filter *SockFilter
++}
++
++type InotifyEvent struct {
++ Wd int32
++ Mask uint32
++ Cookie uint32
++ Len uint32
++ Name [0]uint8
++}
++
++const SizeofInotifyEvent = 0x10
++
++type PtraceRegsPsw struct {
++ Mask uint64
++ Addr uint64
++}
++
++type PtraceRegsFp struct {
++ Fpc uint32
++ Pad_cgo_0 [4]byte
++ Fprs [16]float64
++}
++
++type PtraceRegsPer struct {
++ Control_regs [0]uint64
++ Pad_cgo_0 [24]byte
++ Pad_cgo_1 [8]byte
++ Starting_addr uint64
++ Ending_addr uint64
++ Perc_atmid uint16
++ Pad_cgo_2 [6]byte
++ Address uint64
++ Access_id uint8
++ Pad_cgo_3 [7]byte
++}
++
++type PtraceRegs struct {
++ Psw PtraceRegsPsw
++ Gprs [16]uint64
++ Acrs [16]uint32
++ Orig_gpr2 uint64
++ Fp_regs PtraceRegsFp
++ Per_info PtraceRegsPer
++ Ieee_instruction_pointer uint64
++}
++
++type FdSet struct {
++ Bits [16]int64
++}
++
++type Sysinfo_t struct {
++ Uptime int64
++ Loads [3]uint64
++ Totalram uint64
++ Freeram uint64
++ Sharedram uint64
++ Bufferram uint64
++ Totalswap uint64
++ Freeswap uint64
++ Procs uint16
++ Pad uint16
++ Pad_cgo_0 [4]byte
++ Totalhigh uint64
++ Freehigh uint64
++ Unit uint32
++ X_f [0]uint8
++ Pad_cgo_1 [4]byte
++}
++
++type Utsname struct {
++ Sysname [65]uint8
++ Nodename [65]uint8
++ Release [65]uint8
++ Version [65]uint8
++ Machine [65]uint8
++ Domainname [65]uint8
++}
++
++type Ustat_t struct {
++ Tfree int32
++ Pad_cgo_0 [4]byte
++ Tinode uint64
++ Fname [6]uint8
++ Fpack [6]uint8
++ Pad_cgo_1 [4]byte
++}
++
++type EpollEvent struct {
++ Events uint32
++ Fd int32
++ Pad int32
++}
++
++const (
++ _AT_FDCWD = -0x64
++ _AT_REMOVEDIR = 0x200
++ _AT_SYMLINK_NOFOLLOW = 0x100
++)
++
++type Termios struct {
++ Iflag uint32
++ Oflag uint32
++ Cflag uint32
++ Lflag uint32
++ Line uint8
++ Cc [32]uint8
++ Pad_cgo_0 [3]byte
++ Ispeed uint32
++ Ospeed uint32
++}
++
++const (
++ IUCLC = 0x200
++ OLCUC = 0x2
++ TCGETS = 0x5401
++ TCSETS = 0x5402
++ XCASE = 0x4
++)
+diff --git a/test/fixedbugs/issue11656.go b/test/fixedbugs/issue11656.go
+index 565e796..08c143e 100644
+--- a/test/fixedbugs/issue11656.go
++++ b/test/fixedbugs/issue11656.go
+@@ -65,6 +65,8 @@ func f(n int) {
+ binary.BigEndian.PutUint32(ill, 0x00000034) // trap
+ case "mips64le":
+ binary.LittleEndian.PutUint32(ill, 0x00000034) // trap
++ case "s390x":
++ binary.BigEndian.PutUint32(ill, 0) // undefined
+ default:
+ // Just leave it as 0 and hope for the best.
+ }
+diff --git a/test/init1.go b/test/init1.go
+index 62dfb72..a008e3e 100644
+--- a/test/init1.go
++++ b/test/init1.go
+@@ -40,7 +40,7 @@ func init() {
+ sys1, numGC1 := memstats.Sys, memstats.NumGC
+ if sys1-sys >= N*MB || numGC1 == numGC {
+ println("allocated 1000 chunks of", MB, "and used ", sys1-sys, "memory")
+- println("numGC went", numGC, "to", numGC)
++ println("numGC went", numGC, "to", numGC1)
+ panic("init1")
+ }
+ }
+diff --git a/test/nilptr3.go b/test/nilptr3.go
+index 6c8aab3..7d579fd 100644
+--- a/test/nilptr3.go
++++ b/test/nilptr3.go
+@@ -2,7 +2,8 @@
+ // Fails on ppc64x because of incomplete optimization.
+ // See issues 9058.
+ // Same reason for mips64x.
+-// +build !ppc64,!ppc64le,!mips64,!mips64le
++// Same reason for s390x.
++// +build !ppc64,!ppc64le,!mips64,!mips64le,!s390x
+
+ // Copyright 2013 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+diff --git a/test/nosplit.go b/test/nosplit.go
+index 3c4ae10..189a320 100644
+--- a/test/nosplit.go
++++ b/test/nosplit.go
+@@ -275,6 +275,9 @@ TestCases:
+ case "amd64":
+ ptrSize = 8
+ fmt.Fprintf(&buf, "#define REGISTER AX\n")
++ case "s390x":
++ ptrSize = 8
++ fmt.Fprintf(&buf, "#define REGISTER R10\n")
+ default:
+ fmt.Fprintf(&buf, "#define REGISTER AX\n")
+ }
+--
+2.5.0
+
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..0f83bf3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+0001-s390x-port.patch -p1
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-golang/golang.git
More information about the pkg-golang-commits
mailing list