[Pkg-golang-commits] [golang] 05/15: - Add d/patches/0001-s390x-port.patch from IBM's repo.

Michael Hudson-Doyle mwhudson-guest at moszumanska.debian.org
Tue Mar 1 02:57:48 UTC 2016


This is an automated email from the git hooks/post-receive script.

mwhudson-guest pushed a commit to branch ubuntu-trusty-golang-1.6
in repository golang.

commit 36097fd361a23fce5142a4e07f39034cfddffdb1
Author: Michael Hudson-Doyle <michael.hudson at canonical.com>
Date:   Tue Mar 1 13:39:43 2016 +1300

        - Add d/patches/0001-s390x-port.patch from IBM's repo.
---
 debian/patches/0001-s390x-port.patch | 34712 +++++++++++++++++++++++++++++++++
 debian/patches/series                |     1 +
 2 files changed, 34713 insertions(+)

diff --git a/debian/patches/0001-s390x-port.patch b/debian/patches/0001-s390x-port.patch
new file mode 100644
index 0000000..2188bc5
--- /dev/null
+++ b/debian/patches/0001-s390x-port.patch
@@ -0,0 +1,34712 @@
+Subject: [PATCH] [s390x] Add support for Linux on IBM z architecture (s390x)
+
+diff --git a/api/go1.6.txt b/api/go1.6.txt
+index d63efd0..94b1fbe 100644
+--- a/api/go1.6.txt
++++ b/api/go1.6.txt
+@@ -273,3 +273,9374 @@ 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 = 41
++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_VSOCK = 40
++pkg syscall (linux-s390x-cgo), const AF_VSOCK 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 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_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_NODAD = 2
++pkg syscall (linux-s390x-cgo), const IFA_F_NODAD 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 = 7
++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_NOFILTER = 4096
++pkg syscall (linux-s390x-cgo), const IFF_NOFILTER 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_PERSIST = 2048
++pkg syscall (linux-s390x-cgo), const IFF_PERSIST 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_BEETPH = 94
++pkg syscall (linux-s390x-cgo), const IPPROTO_BEETPH 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_MH = 135
++pkg syscall (linux-s390x-cgo), const IPPROTO_MH 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_HUGE_MASK = 63
++pkg syscall (linux-s390x-cgo), const MAP_HUGE_MASK ideal-int
++pkg syscall (linux-s390x-cgo), const MAP_HUGE_SHIFT = 26
++pkg syscall (linux-s390x-cgo), const MAP_HUGE_SHIFT 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_TMPFILE = 4259840
++pkg syscall (linux-s390x-cgo), const O_TMPFILE ideal-int
++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_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_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_GETSIGMASK = 16906
++pkg syscall (linux-s390x-cgo), const PTRACE_GETSIGMASK 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_SETSIGMASK = 16907
++pkg syscall (linux-s390x-cgo), const PTRACE_SETSIGMASK 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_TE_ABORT_RAND = 20497
++pkg syscall (linux-s390x-cgo), const PTRACE_TE_ABORT_RAND 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 = 15
++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_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_COOKIE_IN_ALWAYS = 1
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_IN_ALWAYS ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_MAX = 16
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_MAX ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_MIN = 8
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_MIN ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_OUT_NEVER = 2
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_OUT_NEVER ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_PAIR_SIZE = 32
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_PAIR_SIZE ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_TRANSACTIONS = 15
++pkg syscall (linux-s390x-cgo), const TCP_COOKIE_TRANSACTIONS 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_FASTOPEN = 23
++pkg syscall (linux-s390x-cgo), const TCP_FASTOPEN 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_DEFAULT = 536
++pkg syscall (linux-s390x-cgo), const TCP_MSS_DEFAULT ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MSS_DESIRED = 1220
++pkg syscall (linux-s390x-cgo), const TCP_MSS_DESIRED ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_MSS ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_QUEUE_SEQ = 21
++pkg syscall (linux-s390x-cgo), const TCP_QUEUE_SEQ 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_REPAIR = 19
++pkg syscall (linux-s390x-cgo), const TCP_REPAIR ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_REPAIR_OPTIONS = 22
++pkg syscall (linux-s390x-cgo), const TCP_REPAIR_OPTIONS ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_REPAIR_QUEUE = 20
++pkg syscall (linux-s390x-cgo), const TCP_REPAIR_QUEUE ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_S_DATA_IN = 4
++pkg syscall (linux-s390x-cgo), const TCP_S_DATA_IN ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_S_DATA_OUT = 8
++pkg syscall (linux-s390x-cgo), const TCP_S_DATA_OUT 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_THIN_DUPACK = 17
++pkg syscall (linux-s390x-cgo), const TCP_THIN_DUPACK ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_THIN_LINEAR_TIMEOUTS = 16
++pkg syscall (linux-s390x-cgo), const TCP_THIN_LINEAR_TIMEOUTS ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_TIMESTAMP = 24
++pkg syscall (linux-s390x-cgo), const TCP_TIMESTAMP ideal-int
++pkg syscall (linux-s390x-cgo), const TCP_USER_TIMEOUT = 18
++pkg syscall (linux-s390x-cgo), const TCP_USER_TIMEOUT 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 TUNGETFILTER = 2148553947
++pkg syscall (linux-s390x-cgo), const TUNGETFILTER 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 TUNSETIFINDEX = 1074025690
++pkg syscall (linux-s390x-cgo), const TUNSETIFINDEX 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 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, 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]uint8
++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__glibc_reserved [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 = 41
++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_VSOCK = 40
++pkg syscall (linux-s390x), const AF_VSOCK 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 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_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_NODAD = 2
++pkg syscall (linux-s390x), const IFA_F_NODAD 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 = 7
++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_NOFILTER = 4096
++pkg syscall (linux-s390x), const IFF_NOFILTER 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_PERSIST = 2048
++pkg syscall (linux-s390x), const IFF_PERSIST 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_BEETPH = 94
++pkg syscall (linux-s390x), const IPPROTO_BEETPH 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_MH = 135
++pkg syscall (linux-s390x), const IPPROTO_MH 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_HUGE_MASK = 63
++pkg syscall (linux-s390x), const MAP_HUGE_MASK ideal-int
++pkg syscall (linux-s390x), const MAP_HUGE_SHIFT = 26
++pkg syscall (linux-s390x), const MAP_HUGE_SHIFT 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_TMPFILE = 4259840
++pkg syscall (linux-s390x), const O_TMPFILE ideal-int
++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_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_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_GETSIGMASK = 16906
++pkg syscall (linux-s390x), const PTRACE_GETSIGMASK 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_SETSIGMASK = 16907
++pkg syscall (linux-s390x), const PTRACE_SETSIGMASK 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_TE_ABORT_RAND = 20497
++pkg syscall (linux-s390x), const PTRACE_TE_ABORT_RAND 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 = 15
++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_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_COOKIE_IN_ALWAYS = 1
++pkg syscall (linux-s390x), const TCP_COOKIE_IN_ALWAYS ideal-int
++pkg syscall (linux-s390x), const TCP_COOKIE_MAX = 16
++pkg syscall (linux-s390x), const TCP_COOKIE_MAX ideal-int
++pkg syscall (linux-s390x), const TCP_COOKIE_MIN = 8
++pkg syscall (linux-s390x), const TCP_COOKIE_MIN ideal-int
++pkg syscall (linux-s390x), const TCP_COOKIE_OUT_NEVER = 2
++pkg syscall (linux-s390x), const TCP_COOKIE_OUT_NEVER ideal-int
++pkg syscall (linux-s390x), const TCP_COOKIE_PAIR_SIZE = 32
++pkg syscall (linux-s390x), const TCP_COOKIE_PAIR_SIZE ideal-int
++pkg syscall (linux-s390x), const TCP_COOKIE_TRANSACTIONS = 15
++pkg syscall (linux-s390x), const TCP_COOKIE_TRANSACTIONS 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_FASTOPEN = 23
++pkg syscall (linux-s390x), const TCP_FASTOPEN 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_DEFAULT = 536
++pkg syscall (linux-s390x), const TCP_MSS_DEFAULT ideal-int
++pkg syscall (linux-s390x), const TCP_MSS_DESIRED = 1220
++pkg syscall (linux-s390x), const TCP_MSS_DESIRED ideal-int
++pkg syscall (linux-s390x), const TCP_MSS ideal-int
++pkg syscall (linux-s390x), const TCP_QUEUE_SEQ = 21
++pkg syscall (linux-s390x), const TCP_QUEUE_SEQ 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_REPAIR = 19
++pkg syscall (linux-s390x), const TCP_REPAIR ideal-int
++pkg syscall (linux-s390x), const TCP_REPAIR_OPTIONS = 22
++pkg syscall (linux-s390x), const TCP_REPAIR_OPTIONS ideal-int
++pkg syscall (linux-s390x), const TCP_REPAIR_QUEUE = 20
++pkg syscall (linux-s390x), const TCP_REPAIR_QUEUE ideal-int
++pkg syscall (linux-s390x), const TCP_S_DATA_IN = 4
++pkg syscall (linux-s390x), const TCP_S_DATA_IN ideal-int
++pkg syscall (linux-s390x), const TCP_S_DATA_OUT = 8
++pkg syscall (linux-s390x), const TCP_S_DATA_OUT 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_THIN_DUPACK = 17
++pkg syscall (linux-s390x), const TCP_THIN_DUPACK ideal-int
++pkg syscall (linux-s390x), const TCP_THIN_LINEAR_TIMEOUTS = 16
++pkg syscall (linux-s390x), const TCP_THIN_LINEAR_TIMEOUTS ideal-int
++pkg syscall (linux-s390x), const TCP_TIMESTAMP = 24
++pkg syscall (linux-s390x), const TCP_TIMESTAMP ideal-int
++pkg syscall (linux-s390x), const TCP_USER_TIMEOUT = 18
++pkg syscall (linux-s390x), const TCP_USER_TIMEOUT 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 TUNGETFILTER = 2148553947
++pkg syscall (linux-s390x), const TUNGETFILTER 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 TUNSETIFINDEX = 1074025690
++pkg syscall (linux-s390x), const TUNSETIFINDEX 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 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, 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]uint8
++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__glibc_reserved [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..6330cdf
+--- /dev/null
++++ b/misc/cgo/test/issue9400/asm_s390x.s
+@@ -0,0 +1,26 @@
++// 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 !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
++	ADD	$(1024 * 8), R15
++
++	// Ask signaller to setgid
++	MOVD	$·Baton(SB), R5
++	MOVW	$1, 0(R5)
++
++	// Wait for setgid completion
++loop:
++	SYNC
++	MOVW	·Baton(SB), R3
++	CMPBNE	R3, $0, loop
++
++	// Restore stack
++	SUB	$(1024 * 8), 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 c14a13c..a52eada 100644
+--- a/src/cmd/asm/internal/arch/arch.go
++++ b/src/cmd/asm/internal/arch/arch.go
+@@ -10,6 +10,7 @@ import (
+ 	"cmd/internal/obj/arm64"
+ 	"cmd/internal/obj/mips"
+ 	"cmd/internal/obj/ppc64"
++	"cmd/internal/obj/s390x"
+ 	"cmd/internal/obj/x86"
+ 	"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,56 @@ 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_V0; i <= s390x.REG_V31; 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..2b32492
+--- /dev/null
++++ b/src/cmd/asm/internal/arch/s390x.go
+@@ -0,0 +1,136 @@
++// 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.
++
++// 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
++}
++
++// IsS390xWithLength reports whether the op (as defined by an s390x.A* constant)
++// refers to an instruction which takes a length as its first argument.
++func IsS390xWithLength(op int) bool {
++	switch op {
++	case s390x.AMVC, s390x.ACLC, s390x.AXC, s390x.AOC, s390x.ANC:
++		return true
++	case s390x.AVLL, s390x.AVSTL:
++		return true
++	}
++	return false
++}
++
++// IsS390xWithIndex reports whether the op (as defined by an s390x.A* constant)
++// refers to an instruction which takes an index as its first argument.
++func IsS390xWithIndex(op int) bool {
++	switch op {
++	case s390x.AVSCEG, s390x.AVSCEF, s390x.AVGEG, s390x.AVGEF:
++		return true
++	case s390x.AVGMG, s390x.AVGMF, s390x.AVGMH, s390x.AVGMB:
++		return true
++	case s390x.AVLEIG, s390x.AVLEIF, s390x.AVLEIH, s390x.AVLEIB:
++		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
++		}
++	case "V":
++		if 0 <= n && n <= 31 {
++			return s390x.REG_V0 + n, true
++		}
++	}
++	return 0, false
++}
+diff --git a/src/cmd/asm/internal/asm/asm.go b/src/cmd/asm/internal/asm/asm.go
+index 9827d70..bb0b3aa 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.IsS390xWithLength(op) || arch.IsS390xWithIndex(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
+@@ -628,6 +651,13 @@ func (p *Parser) asmInstruction(op int, cond string, a []obj.Addr) {
+ 			prog.To = a[3]
+ 			break
+ 		}
++		if p.arch.Thechar == 'z' {
++			prog.From = a[1]
++			prog.Reg = p.getRegister(prog, op, &a[2])
++			prog.From3 = newAddr(a[0])
++			prog.To = a[3]
++			break
++		}
+ 		p.errorf("can't handle %s instruction with 4 operands", obj.Aconv(op))
+ 		return
+ 	case 5:
+diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
+index 0906ceb..ff82e16 100644
+--- a/src/cmd/cgo/main.go
++++ b/src/cmd/cgo/main.go
+@@ -156,7 +156,7 @@ var intSizeMap = map[string]int64{
+ 	"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..5dc74ae 100644
+--- a/src/cmd/compile/internal/gc/cgen.go
++++ b/src/cmd/compile/internal/gc/cgen.go
+@@ -247,7 +247,7 @@ func cgen_wb(n, res *Node, wb bool) {
+ 		return
+ 	}
+ 
+-	if (Ctxt.Arch.Thechar == '6' || Ctxt.Arch.Thechar == '8') && n.Addable {
++	if (Ctxt.Arch.Thechar == '6' || Ctxt.Arch.Thechar == '8' || Ctxt.Arch.Thechar == 'z') && n.Addable {
+ 		Thearch.Gmove(n, res)
+ 		return
+ 	}
+@@ -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
+@@ -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..d4fec64 100644
+--- a/src/cmd/compile/internal/gc/go.go
++++ b/src/cmd/compile/internal/gc/go.go
+@@ -493,6 +493,12 @@ var debugstr string
+ var Debug_checknil int
+ var Debug_typeassert int
+ 
++var Debugmovprop int = -1
++
++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..4a4d23e 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 b9c2735..179ec97 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'])
+@@ -196,8 +198,10 @@ func Main() {
+ 	obj.Flagcount("l", "disable inlining", &Debug['l'])
+ 	obj.Flagcount("live", "debug liveness analysis", &debuglive)
+ 	obj.Flagcount("m", "print optimization decisions", &Debug['m'])
++	obj.Flagcount("movprop", "debug MOV copy propagation, step n", &Debugmovprop)
+ 	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)
+@@ -216,14 +220,14 @@ func Main() {
+ 	var flag_shared int
+ 	var flag_dynlink bool
+ 	switch Thearch.Thechar {
+-	case '5', '6', '7', '8', '9':
++	case '5', '6', '7', '8', '9', 'z':
+ 		obj.Flagcount("shared", "generate code that can be linked into a shared library", &flag_shared)
+ 	}
+ 	if Thearch.Thechar == '6' {
+ 		obj.Flagcount("largemodel", "generate code that assumes a large memory model", &flag_largemodel)
+ 	}
+ 	switch Thearch.Thechar {
+-	case '5', '6', '7', '8', '9':
++	case '5', '6', '7', '8', '9', 'z':
+ 		flag.BoolVar(&flag_dynlink, "dynlink", false, "support references to Go symbols defined in other shared libraries")
+ 	}
+ 	obj.Flagstr("cpuprofile", "write cpu profile to `file`", &cpuprofile)
+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(&reg, Types[Tptr], n)
+ 		Cgen(n, &reg)
+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..8b047ed
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/cgen.go
+@@ -0,0 +1,178 @@
++// 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.
++
++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..a1298a2
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/galign.go
+@@ -0,0 +1,95 @@
++// 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.
++
++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..6e06bef
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/ggen.go
+@@ -0,0 +1,584 @@
++// 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.
++
++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 += gc.Ctxt.FixedFrameSize()
++	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(&reg, gc.Types[gc.TINT], s390x.REG_R0)
++	gins(s390x.AOR, &reg, &reg)
++}
++
++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) {
++	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
++		//	CMPBNE arg, $0, 2(PC) [likely]
++		//	MOVD   R0, 0(R0)
++		p1 := gc.Ctxt.NewProg()
++
++		gc.Clearp(p1)
++		p1.Link = p.Link
++		p.Link = p1
++		p1.Lineno = p.Lineno
++		p1.Pc = 9999
++		p.As = s390x.ACMPBNE
++		p.From3 = new(obj.Addr)
++		p.From3.Type = obj.TYPE_CONST
++		p.From3.Offset = 0
++
++		p.To.Type = obj.TYPE_BRANCH
++		p.To.Val = p1.Link
++
++		// crash by write to memory address 0.
++		p1.As = s390x.AMOVD
++
++		p1.From.Type = obj.TYPE_REG
++		p1.From.Reg = s390x.REGZERO
++		p1.To.Type = obj.TYPE_MEM
++		p1.To.Reg = s390x.REGZERO
++		p1.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..52cd5a2
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/gsubr.go
+@@ -0,0 +1,1115 @@
++// 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, // R0
++	s390x.REGTMP,  // R10
++	s390x.REGTMP2, // R11
++	s390x.REGCTXT, // R12
++	s390x.REGG,    // R13
++	s390x.REG_LR,  // R14
++	s390x.REGSP,   // R15
++}
++
++// 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-8 {
++		return false
++	}
++
++	if t.Xoffset < 0 || t.Xoffset >= 4096-8 {
++		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
++				}
++			}
++
++			// immediate moves to memory have a 12-bit unsigned displacement
++			if t.Xoffset < 0 || t.Xoffset >= 4096-8 {
++				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
++	}
++
++	// 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,
++		gc.TUINT8<<16 | gc.TINT8,
++		gc.TINT16<<16 | gc.TINT8,
++		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,
++		gc.TUINT8<<16 | gc.TUINT8,
++		gc.TINT16<<16 | gc.TUINT8,
++		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,
++		gc.TUINT16<<16 | gc.TINT16,
++		gc.TINT32<<16 | gc.TINT16,
++		gc.TUINT32<<16 | gc.TINT16,
++		gc.TINT64<<16 | gc.TINT16,
++		gc.TUINT64<<16 | gc.TINT16:
++		a = s390x.AMOVH
++
++	case gc.TINT16<<16 | gc.TUINT16,
++		gc.TUINT16<<16 | gc.TUINT16,
++		gc.TINT32<<16 | gc.TUINT16,
++		gc.TUINT32<<16 | gc.TUINT16,
++		gc.TINT64<<16 | gc.TUINT16,
++		gc.TUINT64<<16 | gc.TUINT16:
++		a = s390x.AMOVHZ
++
++	case gc.TINT32<<16 | gc.TINT32,
++		gc.TUINT32<<16 | gc.TINT32,
++		gc.TINT64<<16 | gc.TINT32,
++		gc.TUINT64<<16 | gc.TINT32:
++		a = s390x.AMOVW
++
++	case gc.TINT32<<16 | gc.TUINT32,
++		gc.TUINT32<<16 | gc.TUINT32,
++		gc.TINT64<<16 | gc.TUINT32,
++		gc.TUINT64<<16 | gc.TUINT32:
++		a = s390x.AMOVWZ
++
++	case gc.TINT64<<16 | gc.TINT64,
++		gc.TINT64<<16 | gc.TUINT64,
++		gc.TUINT64<<16 | gc.TINT64,
++		gc.TUINT64<<16 | gc.TUINT64:
++		a = s390x.AMOVD
++
++	// sign extend int8
++	case gc.TINT8<<16 | gc.TINT16,
++		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
++
++	// sign extend uint8
++	case gc.TUINT8<<16 | gc.TINT16,
++		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
++
++	// sign extend int16
++	case gc.TINT16<<16 | gc.TINT32,
++		gc.TINT16<<16 | gc.TUINT32,
++		gc.TINT16<<16 | gc.TINT64,
++		gc.TINT16<<16 | gc.TUINT64:
++		a = s390x.AMOVH
++		goto rdst
++
++	// zero extend uint16
++	case gc.TUINT16<<16 | gc.TINT32,
++		gc.TUINT16<<16 | gc.TUINT32,
++		gc.TUINT16<<16 | gc.TINT64,
++		gc.TUINT16<<16 | gc.TUINT64:
++		a = s390x.AMOVHZ
++		goto rdst
++
++	// sign extend int32
++	case gc.TINT32<<16 | gc.TINT64,
++		gc.TINT32<<16 | gc.TUINT64:
++		a = s390x.AMOVW
++		goto rdst
++
++	// zero extend uint32
++	case gc.TUINT32<<16 | gc.TINT64,
++		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.ALEDBR
++		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 t != nil {
++		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(mundaym): add self-move tests like amd64 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.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
++}
++
++// optoas returns the Axxx equivalent of Oxxx for 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
++)
++
++var clean [20]gc.Node
++
++var cleani int = 0
++
++func sudoclean() {
++	if clean[cleani-1].Op != gc.OEMPTY {
++		gc.Regfree(&clean[cleani-1])
++	}
++	if clean[cleani-2].Op != gc.OEMPTY {
++		gc.Regfree(&clean[cleani-2])
++	}
++	cleani -= 2
++}
++
++/*
++ * 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 {
++	if n.Type == nil {
++		return false
++	}
++
++	*a = obj.Addr{}
++
++	switch n.Op {
++	case gc.OLITERAL:
++		if !gc.Isconst(n, gc.CTINT) {
++			return false
++		}
++		v := n.Int()
++		switch as {
++		default:
++			return false
++
++		// operations that can cope with a 32-bit immediate
++		// TODO(mundaym): logical operations can work on high bits
++		case s390x.AADD,
++			s390x.AADDC,
++			s390x.ASUB,
++			s390x.AMULLW,
++			s390x.AAND,
++			s390x.AOR,
++			s390x.AXOR,
++			s390x.ASLD,
++			s390x.ASLW,
++			s390x.ASRAW,
++			s390x.ASRAD,
++			s390x.ASRW,
++			s390x.ASRD,
++			s390x.AMOVB,
++			s390x.AMOVBZ,
++			s390x.AMOVH,
++			s390x.AMOVHZ,
++			s390x.AMOVW,
++			s390x.AMOVWZ,
++			s390x.AMOVD:
++			if int64(int32(v)) != v {
++				return false
++			}
++
++		// for comparisons avoid immediates unless they can
++		// fit into a int8/uint8
++		// this favours combined compare and branch instructions
++		case s390x.ACMP:
++			if int64(int8(v)) != v {
++				return false
++			}
++		case s390x.ACMPU:
++			if int64(uint8(v)) != v {
++				return false
++			}
++		}
++
++		cleani += 2
++		reg := &clean[cleani-1]
++		reg1 := &clean[cleani-2]
++		reg.Op = gc.OEMPTY
++		reg1.Op = gc.OEMPTY
++		gc.Naddr(a, n)
++		return true
++
++	case gc.ODOT,
++		gc.ODOTPTR:
++		cleani += 2
++		reg := &clean[cleani-1]
++		reg1 := &clean[cleani-2]
++		reg.Op = gc.OEMPTY
++		reg1.Op = gc.OEMPTY
++		var nn *gc.Node
++		var oary [10]int64
++		o := gc.Dotoffset(n, oary[:], &nn)
++		if nn == nil {
++			sudoclean()
++			return false
++		}
++
++		if nn.Addable && o == 1 && oary[0] >= 0 {
++			// directly addressable set of DOTs
++			n1 := *nn
++
++			n1.Type = n.Type
++			n1.Xoffset += oary[0]
++			// check that the offset fits into a 12-bit displacement
++			if n1.Xoffset < 0 || n1.Xoffset >= (1<<12)-8 {
++				sudoclean()
++				return false
++			}
++			gc.Naddr(a, &n1)
++			return true
++		}
++
++		gc.Regalloc(reg, gc.Types[gc.Tptr], nil)
++		n1 := *reg
++		n1.Op = gc.OINDREG
++		if oary[0] >= 0 {
++			gc.Agen(nn, reg)
++			n1.Xoffset = oary[0]
++		} else {
++			gc.Cgen(nn, reg)
++			gc.Cgen_checknil(reg)
++			n1.Xoffset = -(oary[0] + 1)
++		}
++
++		for i := 1; i < o; i++ {
++			if oary[i] >= 0 {
++				gc.Fatalf("can't happen")
++			}
++			gins(s390x.AMOVD, &n1, reg)
++			gc.Cgen_checknil(reg)
++			n1.Xoffset = -(oary[i] + 1)
++		}
++
++		a.Type = obj.TYPE_NONE
++		a.Index = obj.TYPE_NONE
++		// check that the offset fits into a 12-bit displacement
++		if n1.Xoffset < 0 || n1.Xoffset >= (1<<12)-8 {
++			tmp := n1
++			tmp.Op = gc.OREGISTER
++			tmp.Type = gc.Types[gc.Tptr]
++			tmp.Xoffset = 0
++			gc.Cgen_checknil(&tmp)
++			ginscon(s390x.AADD, n1.Xoffset, &tmp)
++			n1.Xoffset = 0
++		}
++		gc.Naddr(a, &n1)
++		return true
++	}
++
++	return false
++}
+diff --git a/src/cmd/compile/internal/s390x/peep.go b/src/cmd/compile/internal/s390x/peep.go
+new file mode 100644
+index 0000000..343364a
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/peep.go
+@@ -0,0 +1,1819 @@
++// 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 movprop_cnt int
++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
++
++	// promote zero moves to MOVD so that they are more likely to
++	// be optimized in later passes
++	for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++		p := r.Prog
++		if isMove(p) && p.As != s390x.AMOVD && regzer(&p.From) != 0 && isGPR(&p.To) {
++			p.As = s390x.AMOVD
++		}
++	}
++
++	// 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.AMOVD,
++			s390x.AMOVW, s390x.AMOVWZ,
++			s390x.AMOVH, s390x.AMOVHZ,
++			s390x.AMOVB, s390x.AMOVBZ,
++			s390x.AFMOVS, s390x.AFMOVD:
++			if regtyp(&p.To) {
++				if p.From.Type == obj.TYPE_CONST || p.From.Type == obj.TYPE_FCONST {
++					conprop(r)
++				}
++			}
++		}
++	}
++
++	for {
++		changed := false
++		for r := (*gc.Flow)(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) {
++					// Convert uses to $0 to uses of R0 and
++					// propagate R0
++					if p.As == s390x.AMOVD && regzer(&p.From) != 0 {
++						p.From.Type = obj.TYPE_REG
++						p.From.Reg = s390x.REGZERO
++					}
++
++					// Try to eliminate reg->reg moves
++					if isGPR(&p.From) || isFPR(&p.From) {
++						if copyprop(r) || (subprop(r) && copyprop(r)) {
++							excise(r)
++							changed = true
++						}
++					}
++				}
++			}
++		}
++		if !changed {
++			break
++		}
++	}
++
++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++		gc.Dumpit("pass7 copyprop", g.Start, 0)
++	}
++
++	/*
++	 * For any kind of MOV in (AFMOVS, AMOVW, AMOVWZ, AMOVH, AMOVHZ, AMOVB, AMOVBZ)
++	 * MOV Ra, Rb; ...; MOV Rb, Rc; -> MOV Ra, Rc;
++	 */
++
++	for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
++		if (gc.Debugmovprop != -1) && (movprop_cnt >= gc.Debugmovprop) {
++			break
++		}
++
++		p := r.Prog
++
++		switch p.As {
++		case s390x.AFMOVS,
++			s390x.AMOVW, s390x.AMOVWZ,
++			s390x.AMOVH, s390x.AMOVHZ,
++			s390x.AMOVB, s390x.AMOVBZ:
++
++			if regzer(&p.From) == 1 && regtyp(&p.To) {
++				p.From.Type = obj.TYPE_REG
++				p.From.Reg = s390x.REGZERO
++			}
++
++			if ((regtyp(&p.From) || regzer(&p.From) == 1 ||
++				p.From.Type == obj.TYPE_CONST || p.From.Type == obj.TYPE_FCONST || p.From.Type == obj.TYPE_SCONST) &&
++				regtyp(&p.To)) != true {
++				continue
++			}
++
++		default:
++			continue
++		}
++
++		r0 := r
++		p0 := (*obj.Prog)(r0.Prog)
++		s0 := (*obj.Addr)(&p0.From)
++		v0 := (*obj.Addr)(&p0.To)
++		r1 := gc.Uniqs(r0)
++
++		// v0used: 0 means must not be used;
++		//         1 means didn't find, but can't decide;
++		//         2 means found a use, must be used;
++		// v0used is used as a tag to decide if r0 can be eliminited.
++		var v0used int = 1
++
++		for ; ; r1 = gc.Uniqs(r1) {
++			var p1 *obj.Prog
++
++			if r1 == nil || r1 == r0 {
++				break
++			}
++			if gc.Uniqp(r1) == nil {
++				break
++			}
++			breakloop := false
++			p1 = r1.Prog
++
++			if p1.As == p0.As && copyas(&p0.To, &p1.From) &&
++				(regtyp(&p0.From) || p0.From.Reg == s390x.REGZERO || regtyp(&p1.To) ||
++					(p0.From.Type != obj.TYPE_CONST && p0.From.Type != obj.TYPE_FCONST && p0.From.Type != obj.TYPE_SCONST && p1.To.Type == obj.TYPE_MEM)) {
++				if gc.Debug['D'] != 0 {
++					fmt.Printf("mov prop\n")
++					fmt.Printf("%v\n", p0)
++					fmt.Printf("%v\n", p1)
++				}
++				p1.From = p0.From
++				movprop_cnt += 1
++			} else {
++				t := copyu(p1, v0, nil)
++				if gc.Debug['D'] != 0 {
++					fmt.Printf("try v0 mov prop t=%d\n", t)
++					fmt.Printf("%v\n", p0)
++					fmt.Printf("%v\n", p1)
++				}
++				switch t {
++				case 0: // miss
++				case 1: // use
++					v0used = 2
++				case 2, // rar
++					4: // use and set
++					v0used = 2
++					breakloop = true
++				case 3: // set
++					if v0used != 2 {
++						v0used = 0
++					}
++					breakloop = true
++				default:
++				}
++
++				if regtyp(s0) {
++					t = copyu(p1, s0, nil)
++					if gc.Debug['D'] != 0 {
++						fmt.Printf("try s0 mov prop t=%d\n", t)
++						fmt.Printf("%v\n", p0)
++						fmt.Printf("%v\n", p1)
++					}
++					switch t {
++					case 0, // miss
++						1: // use
++					case 2, // rar
++						4: // use and set
++						breakloop = true
++					case 3: // set
++						breakloop = true
++					default:
++					}
++				}
++			}
++			if breakloop {
++				break
++			}
++		}
++		if v0used == 0 {
++			excise(r0)
++		}
++	}
++
++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++		gc.Dumpit("pass 7 MOV copy propagation", g.Start, 0)
++	}
++
++	/*
++	 * look for MOVB x,R; MOVB R,R (for small MOVs not handled above)
++	 */
++	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)
++	}
++
++	// Remove redundant moves/casts
++	fuseMoveChains(g.Start)
++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++		gc.Dumpit("fuse move chains", g.Start, 0)
++	}
++
++	// Fuse memory zeroing instructions into XC instructions
++	fuseClear(g.Start)
++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++		gc.Dumpit("fuse clears", g.Start, 0)
++	}
++
++	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:
++			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
++
++		var ins int16
++		switch p.As {
++		case s390x.ACMP:
++			switch p1.As {
++			case s390x.ABCL, s390x.ABC:
++				continue
++			case s390x.ABEQ:
++				ins = s390x.ACMPBEQ
++			case s390x.ABGE:
++				ins = s390x.ACMPBGE
++			case s390x.ABGT:
++				ins = s390x.ACMPBGT
++			case s390x.ABLE:
++				ins = s390x.ACMPBLE
++			case s390x.ABLT:
++				ins = s390x.ACMPBLT
++			case s390x.ABNE:
++				ins = s390x.ACMPBNE
++			default:
++				continue
++			}
++
++		case s390x.ACMPU:
++			switch p1.As {
++			case s390x.ABCL, s390x.ABC:
++				continue
++			case s390x.ABEQ:
++				ins = s390x.ACMPUBEQ
++			case s390x.ABGE:
++				ins = s390x.ACMPUBGE
++			case s390x.ABGT:
++				ins = s390x.ACMPUBGT
++			case s390x.ABLE:
++				ins = s390x.ACMPUBLE
++			case s390x.ABLT:
++				ins = s390x.ACMPUBLT
++			case s390x.ABNE:
++				ins = 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 = ins
++			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 = ins
++			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)
++	}
++
++	// Fuse LOAD/STORE instructions into LOAD/STORE MULTIPLE instructions
++	fuseMultiple(g.Start)
++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
++		gc.Dumpit("pass 7 fuse load/store instructions", g.Start, 0)
++	}
++
++ret:
++	gc.Flowend(g)
++}
++
++func conprop(r0 *gc.Flow) {
++	p0 := (*obj.Prog)(r0.Prog)
++	v0 := (*obj.Addr)(&p0.To)
++	r := (*gc.Flow)(r0)
++	for {
++		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
++			continue
++		case 3: // set
++			if p.As == p0.As && p.From.Type == p0.From.Type && p.From.Reg == p0.From.Reg && p.From.Node == p0.From.Node &&
++				p.From.Offset == p0.From.Offset && p.From.Scale == p0.From.Scale && p.From.Index == p0.From.Index {
++				if p.From.Val == p0.From.Val {
++					excise(r)
++					continue
++				}
++			}
++		}
++		break
++	}
++}
++
++// 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 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
++}
++
++// isGPR returns true if a refers to a general purpose register (GPR).
++// R0/REGZERO is treated as a GPR.
++func isGPR(a *obj.Addr) bool {
++	return a.Type == obj.TYPE_REG &&
++		s390x.REG_R0 <= a.Reg &&
++		a.Reg <= s390x.REG_R15
++}
++
++func isFPR(a *obj.Addr) bool {
++	return a.Type == obj.TYPE_REG &&
++		s390x.REG_F0 <= a.Reg &&
++		a.Reg <= s390x.REG_F15
++}
++
++// isIndirectMem returns true if a refers to a memory location addressable by a
++// register and an offset, such as:
++// 	x+8(R1)
++// and
++//	0(R10)
++// It returns false if the address contains an index register such as:
++// 	16(R1)(R2*1)
++func isIndirectMem(a *obj.Addr) bool {
++	return a.Type == obj.TYPE_MEM &&
++		a.Index == 0 &&
++		(a.Name == obj.NAME_NONE || a.Name == obj.NAME_AUTO || a.Name == obj.NAME_PARAM)
++}
++
++/*
++ * 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 /* 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.ALEDBR,
++		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, obj.AUNDEF:
++		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.REG_R15 {
++				return 2
++			}
++			if v.Reg == s390x.REGARG {
++				return 2
++			}
++			if s390x.REG_F0 < v.Reg && v.Reg <= s390x.REG_F15 {
++				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,
++		obj.AVARLIVE,
++		obj.AUSEFIELD,
++		obj.ANOP:
++		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
++}
++
++func isMove(p *obj.Prog) bool {
++	switch p.As {
++	case s390x.AMOVD,
++		s390x.AMOVW, s390x.AMOVWZ,
++		s390x.AMOVH, s390x.AMOVHZ,
++		s390x.AMOVB, s390x.AMOVBZ,
++		s390x.AFMOVD, s390x.AFMOVS:
++		return true
++	}
++	return false
++}
++
++// fuseMoveChains looks to see if destination register is used
++// again and if not merges the moves.
++//
++// Look for this pattern (sequence of moves):
++// 	MOVB	$17, R1
++// 	MOVBZ	R1, R1
++// Replace with:
++//	MOVBZ	$17, R1
++func fuseMoveChains(r *gc.Flow) {
++	for ; r != nil; r = r.Link {
++		p := r.Prog
++		if !isMove(p) || !isGPR(&p.To) {
++			continue
++		}
++
++		// r is a move with a destination register
++		var move *gc.Flow
++		visited := make(map[*gc.Flow]bool)
++		for rr := gc.Uniqs(r); rr != nil; rr = gc.Uniqs(rr) {
++			if visited[rr] {
++				break
++			} else {
++				visited[rr] = true
++			}
++			if gc.Uniqp(rr) == nil {
++				// branch target: leave alone
++				break
++			}
++			pp := rr.Prog
++			if isMove(pp) && isGPR(&pp.From) && isGPR(&pp.To) && pp.From.Reg == p.To.Reg {
++				move = rr
++				break
++			}
++			if pp.As == obj.ANOP {
++				continue
++			}
++			break
++		}
++
++		// we have a move that reads from our destination reg, check if any future
++		// instructions also read from the reg
++		if move != nil && move.Prog.From.Reg != move.Prog.To.Reg {
++			safe := false
++			visited := make(map[*gc.Flow]bool)
++			children := make([]*gc.Flow, 0)
++			if move.S1 != nil {
++				children = append(children, move.S1)
++			}
++			if move.S2 != nil {
++				children = append(children, move.S2)
++			}
++			if len(children) == 0 {
++				safe = true
++			} else {
++				for len(children) > 0 {
++					rr := children[0]
++					if visited[rr] {
++						children = children[1:]
++						continue
++					} else {
++						visited[rr] = true
++					}
++					pp := rr.Prog
++					t := copyu(pp, &p.To, nil)
++					if t == 0 { // not found
++						if rr.S1 != nil {
++							children = append(children, rr.S1)
++						}
++						if rr.S2 != nil {
++							children = append(children, rr.S2)
++						}
++						children = children[1:]
++						continue
++					}
++					if t == 3 { // set
++						children = children[1:]
++						if len(children) == 0 {
++							safe = true
++						}
++						continue
++					}
++					// t is 1, 2 or 4: use
++					break
++				}
++			}
++			if !safe {
++				move = nil
++			}
++		}
++
++		if move == nil {
++			continue
++		}
++
++		pp := move.Prog
++		execute := false
++		// at this point we have something like:
++		// MOV* anything, reg1
++		// MOV* reg1, reg2
++		// now check if this is a cast that cannot be forward propagated
++		if p.As == pp.As {
++			// if the operations match then we can always propagate
++			execute = true
++		}
++		if !execute && isGPR(&p.From) {
++			switch p.As {
++			case s390x.AMOVD:
++				fallthrough
++			case s390x.AMOVWZ:
++				if pp.As == s390x.AMOVWZ {
++					execute = true
++					break
++				}
++				fallthrough
++			case s390x.AMOVHZ:
++				if pp.As == s390x.AMOVHZ {
++					execute = true
++					break
++				}
++				fallthrough
++			case s390x.AMOVBZ:
++				if pp.As == s390x.AMOVBZ {
++					execute = true
++					break
++				}
++			}
++		}
++		if !execute {
++			if (p.As == s390x.AMOVB || p.As == s390x.AMOVBZ) && (pp.As == s390x.AMOVB || pp.As == s390x.AMOVBZ) {
++				execute = true
++			}
++			if (p.As == s390x.AMOVH || p.As == s390x.AMOVHZ) && (pp.As == s390x.AMOVH || pp.As == s390x.AMOVHZ) {
++				execute = true
++			}
++			if (p.As == s390x.AMOVW || p.As == s390x.AMOVWZ) && (pp.As == s390x.AMOVW || pp.As == s390x.AMOVWZ) {
++				execute = true
++			}
++		}
++
++		if execute {
++			pp.From = p.From
++			excise(r)
++		}
++	}
++	return
++}
++
++// fuseClear merges memory clear operations.
++//
++// Looks for this pattern (sequence of clears):
++// 	MOVD	R0, n(R15)
++// 	MOVD	R0, n+8(R15)
++// 	MOVD	R0, n+16(R15)
++// Replaces with:
++//	CLEAR	$24, n(R15)
++func fuseClear(r *gc.Flow) {
++	var clear *obj.Prog
++	for ; r != nil; r = r.Link {
++		// If there is a branch into the instruction stream then
++		// we can't fuse into previous instructions.
++		if gc.Uniqp(r) == nil {
++			clear = nil
++		}
++
++		p := r.Prog
++		if p.As == obj.ANOP {
++			continue
++		}
++		if p.As == s390x.AXC {
++			if p.From.Reg == p.To.Reg && p.From.Offset == p.To.Offset {
++				// TODO(mundaym): merge clears?
++				p.As = s390x.ACLEAR
++				p.From.Offset = p.From3.Offset
++				p.From3 = nil
++				p.From.Type = obj.TYPE_CONST
++				p.From.Reg = 0
++				clear = p
++			} else {
++				clear = nil
++			}
++			continue
++		}
++
++		// Is our source a constant zero?
++		if regzer(&p.From) == 0 {
++			clear = nil
++			continue
++		}
++
++		// Are we moving to memory?
++		if p.To.Type != obj.TYPE_MEM ||
++			p.To.Index != 0 ||
++			p.To.Offset >= 4096 ||
++			!(p.To.Name == obj.NAME_NONE || p.To.Name == obj.NAME_AUTO || p.To.Name == obj.NAME_PARAM) {
++			clear = nil
++			continue
++		}
++
++		size := int64(0)
++		switch p.As {
++		default:
++			clear = nil
++			continue
++		case s390x.AMOVB, s390x.AMOVBZ:
++			size = 1
++		case s390x.AMOVH, s390x.AMOVHZ:
++			size = 2
++		case s390x.AMOVW, s390x.AMOVWZ:
++			size = 4
++		case s390x.AMOVD:
++			size = 8
++		}
++
++		if clear != nil &&
++			clear.To.Reg == p.To.Reg &&
++			clear.To.Name == p.To.Name &&
++			clear.To.Node == p.To.Node &&
++			clear.To.Sym == p.To.Sym {
++
++			min := clear.To.Offset
++			max := clear.To.Offset + clear.From.Offset
++
++			// previous clear is already clearing this region
++			if min <= p.To.Offset && max >= p.To.Offset+size {
++				excise(r)
++				continue
++			}
++
++			// merge forwards
++			if max == p.To.Offset {
++				clear.From.Offset += size
++				excise(r)
++				continue
++			}
++
++			// merge backwards
++			if min-size == p.To.Offset {
++				clear.From.Offset += size
++				clear.To.Offset -= size
++				excise(r)
++				continue
++			}
++		}
++
++		// transform into clear
++		p.From.Type = obj.TYPE_CONST
++		p.From.Offset = size
++		p.From.Reg = 0
++		p.As = s390x.ACLEAR
++		clear = p
++	}
++}
++
++// fuseMultiple merges memory loads and stores into load multiple and
++// store multiple operations.
++//
++// Looks for this pattern (sequence of loads or stores):
++// 	MOVD	R1, 0(R15)
++//	MOVD	R2, 8(R15)
++//	MOVD	R3, 16(R15)
++// Replaces with:
++//	STMG	R1, R3, 0(R15)
++func fuseMultiple(r *gc.Flow) {
++	var fused *obj.Prog
++	for ; r != nil; r = r.Link {
++		// If there is a branch into the instruction stream then
++		// we can't fuse into previous instructions.
++		if gc.Uniqp(r) == nil {
++			fused = nil
++		}
++
++		p := r.Prog
++
++		isStore := isGPR(&p.From) && isIndirectMem(&p.To)
++		isLoad := isGPR(&p.To) && isIndirectMem(&p.From)
++
++		// are we a candidate?
++		size := int64(0)
++		switch p.As {
++		default:
++			fused = nil
++			continue
++		case obj.ANOP:
++			// skip over nops
++			continue
++		case s390x.AMOVW, s390x.AMOVWZ:
++			size = 4
++			// TODO(mundaym): 32-bit load multiple is currently not supported
++			// as it requires sign/zero extension.
++			if !isStore {
++				fused = nil
++				continue
++			}
++		case s390x.AMOVD:
++			size = 8
++			if !isLoad && !isStore {
++				fused = nil
++				continue
++			}
++		}
++
++		// If we merge two loads/stores with different source/destination Nodes
++		// then we will lose a reference the second Node which means that the
++		// compiler might mark the Node as unused and free its slot on the stack.
++		// TODO(mundaym): allow this by adding a dummy reference to the Node.
++		if fused == nil ||
++			fused.From.Node != p.From.Node ||
++			fused.From.Type != p.From.Type ||
++			fused.To.Node != p.To.Node ||
++			fused.To.Type != p.To.Type {
++			fused = p
++			continue
++		}
++
++		// check two addresses
++		ca := func(a, b *obj.Addr, offset int64) bool {
++			return a.Reg == b.Reg && a.Offset+offset == b.Offset &&
++				a.Sym == b.Sym && a.Name == b.Name
++		}
++
++		switch fused.As {
++		default:
++			fused = p
++		case s390x.AMOVW, s390x.AMOVWZ:
++			if size == 4 && fused.From.Reg+1 == p.From.Reg && ca(&fused.To, &p.To, 4) {
++				fused.As = s390x.ASTMY
++				fused.Reg = p.From.Reg
++				excise(r)
++			} else {
++				fused = p
++			}
++		case s390x.AMOVD:
++			if size == 8 && fused.From.Reg+1 == p.From.Reg && ca(&fused.To, &p.To, 8) {
++				fused.As = s390x.ASTMG
++				fused.Reg = p.From.Reg
++				excise(r)
++			} else if size == 8 && fused.To.Reg+1 == p.To.Reg && ca(&fused.From, &p.From, 8) {
++				fused.As = s390x.ALMG
++				fused.Reg = fused.To.Reg
++				fused.To.Reg = p.To.Reg
++				excise(r)
++			} else {
++				fused = p
++			}
++		case s390x.ASTMG, s390x.ASTMY:
++			if (fused.As == s390x.ASTMY && size != 4) ||
++				(fused.As == s390x.ASTMG && size != 8) {
++				fused = p
++				continue
++			}
++			offset := size * int64(fused.Reg-fused.From.Reg+1)
++			if fused.Reg+1 == p.From.Reg && ca(&fused.To, &p.To, offset) {
++				fused.Reg = p.From.Reg
++				excise(r)
++			} else {
++				fused = p
++			}
++		case s390x.ALMG:
++			offset := 8 * int64(fused.To.Reg-fused.Reg+1)
++			if size == 8 && fused.To.Reg+1 == p.To.Reg && ca(&fused.From, &p.From, offset) {
++				fused.To.Reg = p.To.Reg
++				excise(r)
++			} else {
++				fused = p
++			}
++		}
++	}
++}
+diff --git a/src/cmd/compile/internal/s390x/prog.go b/src/cmd/compile/internal/s390x/prog.go
+new file mode 100644
+index 0000000..00cd22c
+--- /dev/null
++++ b/src/cmd/compile/internal/s390x/prog.go
+@@ -0,0 +1,183 @@
++// 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.
++
++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},
++	obj.AVARLIVE:  {Flags: gc.Pseudo | gc.LeftRead},
++
++	// 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.ALEDBR: {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},
++	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.LeftRead | gc.LeftAddr | gc.RightWrite | gc.RightAddr},
++	s390x.ACLC: {Flags: gc.LeftRead | gc.LeftAddr | gc.RightRead | gc.RightAddr},
++	s390x.AXC:  {Flags: gc.LeftRead | gc.LeftAddr | gc.RightWrite | gc.RightAddr},
++	s390x.AOC:  {Flags: gc.LeftRead | gc.LeftAddr | gc.RightWrite | gc.RightAddr},
++	s390x.ANC:  {Flags: gc.LeftRead | gc.LeftAddr | gc.RightWrite | gc.RightAddr},
++
++	// 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},
++
++	// Macros
++	s390x.ACLEAR: {Flags: gc.SizeQ | gc.LeftRead | gc.RightAddr | gc.RightWrite},
++
++	// Load/store multiple
++	s390x.ASTMG: {Flags: gc.SizeQ | gc.LeftRead | gc.RightAddr | gc.RightWrite},
++	s390x.ASTMY: {Flags: gc.SizeL | gc.LeftRead | gc.RightAddr | gc.RightWrite},
++	s390x.ALMG:  {Flags: gc.SizeQ | gc.LeftAddr | gc.LeftRead | gc.RightWrite},
++	s390x.ALMY:  {Flags: gc.SizeL | gc.LeftAddr | gc.LeftRead | gc.RightWrite},
++
++	obj.ARET: {Flags: gc.Break},
++}
++
++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 (p.To.Type == obj.TYPE_MEM || p.To.Type == obj.TYPE_ADDR) && p.To.Reg != 0 {
++		info.Regindex |= 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
++	}
++
++	switch p.As {
++	// load multiple sets a range of registers
++	case s390x.ALMG, s390x.ALMY:
++		for r := p.Reg; r <= p.To.Reg; r++ {
++			info.Regset |= RtoB(int(r))
++		}
++	// store multiple reads a range of registers
++	case s390x.ASTMG, s390x.ASTMY:
++		for r := p.From.Reg; r <= p.Reg; r++ {
++			info.Reguse |= RtoB(int(r))
++		}
++	}
++}
+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..66bbf84 100644
+--- a/src/cmd/compile/main.go
++++ b/src/cmd/compile/main.go
+@@ -10,6 +10,7 @@ import (
+ 	"cmd/compile/internal/arm64"
+ 	"cmd/compile/internal/mips64"
+ 	"cmd/compile/internal/ppc64"
++	"cmd/compile/internal/s390x"
+ 	"cmd/compile/internal/x86"
+ 	"cmd/internal/obj"
+ 	"fmt"
+@@ -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/test.go b/src/cmd/dist/test.go
+index 36c829d..320f10d 100644
+--- a/src/cmd/dist/test.go
++++ b/src/cmd/dist/test.go
+@@ -667,7 +667,7 @@ func (t *tester) supportedBuildmode(mode string) bool {
+ 		return false
+ 	case "shared":
+ 		switch pair {
+-		case "linux-386", "linux-amd64", "linux-arm", "linux-arm64", "linux-ppc64le":
++		case "linux-386", "linux-amd64", "linux-arm", "linux-arm64", "linux-ppc64le", "linux-s390x":
+ 			return true
+ 		}
+ 		return false
+@@ -711,7 +711,7 @@ func (t *tester) cgoTest(dt *distTest) error {
+ 	case "android-arm",
+ 		"dragonfly-386", "dragonfly-amd64",
+ 		"freebsd-386", "freebsd-amd64", "freebsd-arm",
+-		"linux-386", "linux-amd64", "linux-arm",
++		"linux-386", "linux-amd64", "linux-arm", "linux-s390x",
+ 		"netbsd-386", "netbsd-amd64":
+ 
+ 		cmd := t.addCmd(dt, "misc/cgo/test", "go", "test", "-ldflags", "-linkmode=external")
+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 f2a2a60..0e5df79 100644
+--- a/src/cmd/go/build.go
++++ b/src/cmd/go/build.go
+@@ -377,7 +377,7 @@ func buildModeInit() {
+ 			fatalf("-buildmode=pie not supported by gccgo")
+ 		} else {
+ 			switch platform {
+-			case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le",
++			case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le", "linux/s390x",
+ 				"android/amd64", "android/arm", "android/arm64", "android/386":
+ 				codegenArg = "-shared"
+ 			default:
+@@ -391,7 +391,7 @@ func buildModeInit() {
+ 			codegenArg = "-fPIC"
+ 		} else {
+ 			switch platform {
+-			case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le":
++			case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le", "linux/s390x":
+ 			default:
+ 				fatalf("-buildmode=shared not supported on %s\n", platform)
+ 			}
+@@ -409,7 +409,7 @@ func buildModeInit() {
+ 			codegenArg = "-fPIC"
+ 		} else {
+ 			switch platform {
+-			case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le":
++			case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le", "linux/s390x":
+ 				buildAsmflags = append(buildAsmflags, "-D=GOBUILDMODE_shared=1")
+ 			default:
+ 				fatalf("-linkshared not supported on %s\n", platform)
+@@ -2976,6 +2976,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 762a49e..465e4d0 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..72fd427
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/a.out.go
+@@ -0,0 +1,908 @@
++// 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 purpose 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
++
++	// V0-V15 are aliases for F0-F15
++	// We keep them in a separate space to make printing etc. easier
++	// If the code generator ever emits vector instructions it will
++	// need to take into account the aliasing.
++	REG_V0
++	REG_V1
++	REG_V2
++	REG_V3
++	REG_V4
++	REG_V5
++	REG_V6
++	REG_V7
++	REG_V8
++	REG_V9
++	REG_V10
++	REG_V11
++	REG_V12
++	REG_V13
++	REG_V14
++	REG_V15
++	REG_V16
++	REG_V17
++	REG_V18
++	REG_V19
++	REG_V20
++	REG_V21
++	REG_V22
++	REG_V23
++	REG_V24
++	REG_V25
++	REG_V26
++	REG_V27
++	REG_V28
++	REG_V29
++	REG_V30
++	REG_V31
++
++	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 // end of allocated registers
++
++	REGZERO = REG_R0  // set to zero
++	REGARG  = -1      // -1 disables passing the first argument in register
++	REGRT1  = REG_R3  // used during zeroing of the stack - not reserved
++	REGRT2  = REG_R4  // used during zeroing of the stack - not reserved
++	REGTMP  = REG_R10 // scratch register used in the assembler and linker
++	REGTMP2 = REG_R11 // scratch register used in the assembler and linker
++	REGCTXT = REG_R12 // context for closures
++	REGG    = REG_R13 // G
++	REG_LR  = REG_R14 // link register
++	REGSP   = REG_R15 // stack pointer
++)
++
++/*
++ * 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 (64-bit)
++	C_FREG     // floating-point register (64-bit)
++	C_VREG     // vector register (128-bit)
++	C_AREG     // access register (32-bit)
++	C_ZCON     // constant == 0
++	C_SCON     // 0 <= constant <= 0x7fff (positive int16)
++	C_UCON     // constant & 0xffff == 0 (int16 or uint16)
++	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_LACON    // computed address, 32-bit displacement, possibly SP-relative
++	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_TLS_LE   // TLS - local exec model (for executables)
++	C_TLS_IE   // TLS - initial exec model (for shared libraries loaded at program startup)
++	C_GOK      // general address
++	C_ADDR     // relocation for extern or static symbols
++	C_GOTADDR  // GOT slot for a symbol in -dynlink mode
++	C_TEXTSIZE // text size
++	C_ANY
++	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
++	ALEDBR
++	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
++
++	// load/store multiple
++	ALMY
++	ALMG
++	ASTMY
++	ASTMG
++
++	// store clock
++	ASTCK
++	ASTCKC
++	ASTCKE
++	ASTCKF
++
++	// macros
++	ACLEAR
++
++	// vector
++	AVA
++	AVAB
++	AVAH
++	AVAF
++	AVAG
++	AVAQ
++	AVACC
++	AVACCB
++	AVACCH
++	AVACCF
++	AVACCG
++	AVACCQ
++	AVAC
++	AVACQ
++	AVACCC
++	AVACCCQ
++	AVN
++	AVNC
++	AVAVG
++	AVAVGB
++	AVAVGH
++	AVAVGF
++	AVAVGG
++	AVAVGL
++	AVAVGLB
++	AVAVGLH
++	AVAVGLF
++	AVAVGLG
++	AVCKSM
++	AVCEQ
++	AVCEQB
++	AVCEQH
++	AVCEQF
++	AVCEQG
++	AVCEQBS
++	AVCEQHS
++	AVCEQFS
++	AVCEQGS
++	AVCH
++	AVCHB
++	AVCHH
++	AVCHF
++	AVCHG
++	AVCHBS
++	AVCHHS
++	AVCHFS
++	AVCHGS
++	AVCHL
++	AVCHLB
++	AVCHLH
++	AVCHLF
++	AVCHLG
++	AVCHLBS
++	AVCHLHS
++	AVCHLFS
++	AVCHLGS
++	AVCLZ
++	AVCLZB
++	AVCLZH
++	AVCLZF
++	AVCLZG
++	AVCTZ
++	AVCTZB
++	AVCTZH
++	AVCTZF
++	AVCTZG
++	AVEC
++	AVECB
++	AVECH
++	AVECF
++	AVECG
++	AVECL
++	AVECLB
++	AVECLH
++	AVECLF
++	AVECLG
++	AVERIM
++	AVERIMB
++	AVERIMH
++	AVERIMF
++	AVERIMG
++	AVERLL
++	AVERLLB
++	AVERLLH
++	AVERLLF
++	AVERLLG
++	AVERLLV
++	AVERLLVB
++	AVERLLVH
++	AVERLLVF
++	AVERLLVG
++	AVESLV
++	AVESLVB
++	AVESLVH
++	AVESLVF
++	AVESLVG
++	AVESL
++	AVESLB
++	AVESLH
++	AVESLF
++	AVESLG
++	AVESRA
++	AVESRAB
++	AVESRAH
++	AVESRAF
++	AVESRAG
++	AVESRAV
++	AVESRAVB
++	AVESRAVH
++	AVESRAVF
++	AVESRAVG
++	AVESRL
++	AVESRLB
++	AVESRLH
++	AVESRLF
++	AVESRLG
++	AVESRLV
++	AVESRLVB
++	AVESRLVH
++	AVESRLVF
++	AVESRLVG
++	AVX
++	AVFAE
++	AVFAEB
++	AVFAEH
++	AVFAEF
++	AVFAEBS
++	AVFAEHS
++	AVFAEFS
++	AVFAEZB
++	AVFAEZH
++	AVFAEZF
++	AVFAEZBS
++	AVFAEZHS
++	AVFAEZFS
++	AVFEE
++	AVFEEB
++	AVFEEH
++	AVFEEF
++	AVFEEBS
++	AVFEEHS
++	AVFEEFS
++	AVFEEZB
++	AVFEEZH
++	AVFEEZF
++	AVFEEZBS
++	AVFEEZHS
++	AVFEEZFS
++	AVFENE
++	AVFENEB
++	AVFENEH
++	AVFENEF
++	AVFENEBS
++	AVFENEHS
++	AVFENEFS
++	AVFENEZB
++	AVFENEZH
++	AVFENEZF
++	AVFENEZBS
++	AVFENEZHS
++	AVFENEZFS
++	AVFA
++	AVFADB
++	AWFADB
++	AWFK
++	AWFKDB
++	AVFCE
++	AVFCEDB
++	AVFCEDBS
++	AWFCEDB
++	AWFCEDBS
++	AVFCH
++	AVFCHDB
++	AVFCHDBS
++	AWFCHDB
++	AWFCHDBS
++	AVFCHE
++	AVFCHEDB
++	AVFCHEDBS
++	AWFCHEDB
++	AWFCHEDBS
++	AWFC
++	AWFCDB
++	AVCDG
++	AVCDGB
++	AWCDGB
++	AVCDLG
++	AVCDLGB
++	AWCDLGB
++	AVCGD
++	AVCGDB
++	AWCGDB
++	AVCLGD
++	AVCLGDB
++	AWCLGDB
++	AVFD
++	AVFDDB
++	AWFDDB
++	AVLDE
++	AVLDEB
++	AWLDEB
++	AVLED
++	AVLEDB
++	AWLEDB
++	AVFM
++	AVFMDB
++	AWFMDB
++	AVFMA
++	AVFMADB
++	AWFMADB
++	AVFMS
++	AVFMSDB
++	AWFMSDB
++	AVFPSO
++	AVFPSODB
++	AWFPSODB
++	AVFLCDB
++	AWFLCDB
++	AVFLNDB
++	AWFLNDB
++	AVFLPDB
++	AWFLPDB
++	AVFSQ
++	AVFSQDB
++	AWFSQDB
++	AVFS
++	AVFSDB
++	AWFSDB
++	AVFTCI
++	AVFTCIDB
++	AWFTCIDB
++	AVGFM
++	AVGFMB
++	AVGFMH
++	AVGFMF
++	AVGFMG
++	AVGFMA
++	AVGFMAB
++	AVGFMAH
++	AVGFMAF
++	AVGFMAG
++	AVGEF
++	AVGEG
++	AVGBM
++	AVZERO
++	AVONE
++	AVGM
++	AVGMB
++	AVGMH
++	AVGMF
++	AVGMG
++	AVISTR
++	AVISTRB
++	AVISTRH
++	AVISTRF
++	AVISTRBS
++	AVISTRHS
++	AVISTRFS
++	AVL
++	AVLR
++	AVLREP
++	AVLREPB
++	AVLREPH
++	AVLREPF
++	AVLREPG
++	AVLC
++	AVLCB
++	AVLCH
++	AVLCF
++	AVLCG
++	AVLEH
++	AVLEF
++	AVLEG
++	AVLEB
++	AVLEIH
++	AVLEIF
++	AVLEIG
++	AVLEIB
++	AVFI
++	AVFIDB
++	AWFIDB
++	AVLGV
++	AVLGVB
++	AVLGVH
++	AVLGVF
++	AVLGVG
++	AVLLEZ
++	AVLLEZB
++	AVLLEZH
++	AVLLEZF
++	AVLLEZG
++	AVLM
++	AVLP
++	AVLPB
++	AVLPH
++	AVLPF
++	AVLPG
++	AVLBB
++	AVLVG
++	AVLVGB
++	AVLVGH
++	AVLVGF
++	AVLVGG
++	AVLVGP
++	AVLL
++	AVMX
++	AVMXB
++	AVMXH
++	AVMXF
++	AVMXG
++	AVMXL
++	AVMXLB
++	AVMXLH
++	AVMXLF
++	AVMXLG
++	AVMRH
++	AVMRHB
++	AVMRHH
++	AVMRHF
++	AVMRHG
++	AVMRL
++	AVMRLB
++	AVMRLH
++	AVMRLF
++	AVMRLG
++	AVMN
++	AVMNB
++	AVMNH
++	AVMNF
++	AVMNG
++	AVMNL
++	AVMNLB
++	AVMNLH
++	AVMNLF
++	AVMNLG
++	AVMAE
++	AVMAEB
++	AVMAEH
++	AVMAEF
++	AVMAH
++	AVMAHB
++	AVMAHH
++	AVMAHF
++	AVMALE
++	AVMALEB
++	AVMALEH
++	AVMALEF
++	AVMALH
++	AVMALHB
++	AVMALHH
++	AVMALHF
++	AVMALO
++	AVMALOB
++	AVMALOH
++	AVMALOF
++	AVMAL
++	AVMALB
++	AVMALHW
++	AVMALF
++	AVMAO
++	AVMAOB
++	AVMAOH
++	AVMAOF
++	AVME
++	AVMEB
++	AVMEH
++	AVMEF
++	AVMH
++	AVMHB
++	AVMHH
++	AVMHF
++	AVMLE
++	AVMLEB
++	AVMLEH
++	AVMLEF
++	AVMLH
++	AVMLHB
++	AVMLHH
++	AVMLHF
++	AVMLO
++	AVMLOB
++	AVMLOH
++	AVMLOF
++	AVML
++	AVMLB
++	AVMLHW
++	AVMLF
++	AVMO
++	AVMOB
++	AVMOH
++	AVMOF
++	AVNO
++	AVNOT
++	AVO
++	AVPK
++	AVPKH
++	AVPKF
++	AVPKG
++	AVPKLS
++	AVPKLSH
++	AVPKLSF
++	AVPKLSG
++	AVPKLSHS
++	AVPKLSFS
++	AVPKLSGS
++	AVPKS
++	AVPKSH
++	AVPKSF
++	AVPKSG
++	AVPKSHS
++	AVPKSFS
++	AVPKSGS
++	AVPERM
++	AVPDI
++	AVPOPCT
++	AVREP
++	AVREPB
++	AVREPH
++	AVREPF
++	AVREPG
++	AVREPI
++	AVREPIB
++	AVREPIH
++	AVREPIF
++	AVREPIG
++	AVSCEF
++	AVSCEG
++	AVSEL
++	AVSL
++	AVSLB
++	AVSLDB
++	AVSRA
++	AVSRAB
++	AVSRL
++	AVSRLB
++	AVSEG
++	AVSEGB
++	AVSEGH
++	AVSEGF
++	AVST
++	AVSTEH
++	AVSTEF
++	AVSTEG
++	AVSTEB
++	AVSTM
++	AVSTL
++	AVSTRC
++	AVSTRCB
++	AVSTRCH
++	AVSTRCF
++	AVSTRCBS
++	AVSTRCHS
++	AVSTRCFS
++	AVSTRCZB
++	AVSTRCZH
++	AVSTRCZF
++	AVSTRCZBS
++	AVSTRCZHS
++	AVSTRCZFS
++	AVS
++	AVSB
++	AVSH
++	AVSF
++	AVSG
++	AVSQ
++	AVSCBI
++	AVSCBIB
++	AVSCBIH
++	AVSCBIF
++	AVSCBIG
++	AVSCBIQ
++	AVSBCBI
++	AVSBCBIQ
++	AVSBI
++	AVSBIQ
++	AVSUMG
++	AVSUMGH
++	AVSUMGF
++	AVSUMQ
++	AVSUMQF
++	AVSUMQG
++	AVSUM
++	AVSUMB
++	AVSUMH
++	AVTM
++	AVUPH
++	AVUPHB
++	AVUPHH
++	AVUPHF
++	AVUPLH
++	AVUPLHB
++	AVUPLHH
++	AVUPLHF
++	AVUPLL
++	AVUPLLB
++	AVUPLLH
++	AVUPLLF
++	AVUPL
++	AVUPLB
++	AVUPLHW
++	AVUPLF
++
++	// 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..0cdc0e2
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/anames.go
+@@ -0,0 +1,658 @@
++// 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",
++	"LEDBR",
++	"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",
++	"LMY",
++	"LMG",
++	"STMY",
++	"STMG",
++	"STCK",
++	"STCKC",
++	"STCKE",
++	"STCKF",
++	"CLEAR",
++	"VA",
++	"VAB",
++	"VAH",
++	"VAF",
++	"VAG",
++	"VAQ",
++	"VACC",
++	"VACCB",
++	"VACCH",
++	"VACCF",
++	"VACCG",
++	"VACCQ",
++	"VAC",
++	"VACQ",
++	"VACCC",
++	"VACCCQ",
++	"VN",
++	"VNC",
++	"VAVG",
++	"VAVGB",
++	"VAVGH",
++	"VAVGF",
++	"VAVGG",
++	"VAVGL",
++	"VAVGLB",
++	"VAVGLH",
++	"VAVGLF",
++	"VAVGLG",
++	"VCKSM",
++	"VCEQ",
++	"VCEQB",
++	"VCEQH",
++	"VCEQF",
++	"VCEQG",
++	"VCEQBS",
++	"VCEQHS",
++	"VCEQFS",
++	"VCEQGS",
++	"VCH",
++	"VCHB",
++	"VCHH",
++	"VCHF",
++	"VCHG",
++	"VCHBS",
++	"VCHHS",
++	"VCHFS",
++	"VCHGS",
++	"VCHL",
++	"VCHLB",
++	"VCHLH",
++	"VCHLF",
++	"VCHLG",
++	"VCHLBS",
++	"VCHLHS",
++	"VCHLFS",
++	"VCHLGS",
++	"VCLZ",
++	"VCLZB",
++	"VCLZH",
++	"VCLZF",
++	"VCLZG",
++	"VCTZ",
++	"VCTZB",
++	"VCTZH",
++	"VCTZF",
++	"VCTZG",
++	"VEC",
++	"VECB",
++	"VECH",
++	"VECF",
++	"VECG",
++	"VECL",
++	"VECLB",
++	"VECLH",
++	"VECLF",
++	"VECLG",
++	"VERIM",
++	"VERIMB",
++	"VERIMH",
++	"VERIMF",
++	"VERIMG",
++	"VERLL",
++	"VERLLB",
++	"VERLLH",
++	"VERLLF",
++	"VERLLG",
++	"VERLLV",
++	"VERLLVB",
++	"VERLLVH",
++	"VERLLVF",
++	"VERLLVG",
++	"VESLV",
++	"VESLVB",
++	"VESLVH",
++	"VESLVF",
++	"VESLVG",
++	"VESL",
++	"VESLB",
++	"VESLH",
++	"VESLF",
++	"VESLG",
++	"VESRA",
++	"VESRAB",
++	"VESRAH",
++	"VESRAF",
++	"VESRAG",
++	"VESRAV",
++	"VESRAVB",
++	"VESRAVH",
++	"VESRAVF",
++	"VESRAVG",
++	"VESRL",
++	"VESRLB",
++	"VESRLH",
++	"VESRLF",
++	"VESRLG",
++	"VESRLV",
++	"VESRLVB",
++	"VESRLVH",
++	"VESRLVF",
++	"VESRLVG",
++	"VX",
++	"VFAE",
++	"VFAEB",
++	"VFAEH",
++	"VFAEF",
++	"VFAEBS",
++	"VFAEHS",
++	"VFAEFS",
++	"VFAEZB",
++	"VFAEZH",
++	"VFAEZF",
++	"VFAEZBS",
++	"VFAEZHS",
++	"VFAEZFS",
++	"VFEE",
++	"VFEEB",
++	"VFEEH",
++	"VFEEF",
++	"VFEEBS",
++	"VFEEHS",
++	"VFEEFS",
++	"VFEEZB",
++	"VFEEZH",
++	"VFEEZF",
++	"VFEEZBS",
++	"VFEEZHS",
++	"VFEEZFS",
++	"VFENE",
++	"VFENEB",
++	"VFENEH",
++	"VFENEF",
++	"VFENEBS",
++	"VFENEHS",
++	"VFENEFS",
++	"VFENEZB",
++	"VFENEZH",
++	"VFENEZF",
++	"VFENEZBS",
++	"VFENEZHS",
++	"VFENEZFS",
++	"VFA",
++	"VFADB",
++	"WFADB",
++	"WFK",
++	"WFKDB",
++	"VFCE",
++	"VFCEDB",
++	"VFCEDBS",
++	"WFCEDB",
++	"WFCEDBS",
++	"VFCH",
++	"VFCHDB",
++	"VFCHDBS",
++	"WFCHDB",
++	"WFCHDBS",
++	"VFCHE",
++	"VFCHEDB",
++	"VFCHEDBS",
++	"WFCHEDB",
++	"WFCHEDBS",
++	"WFC",
++	"WFCDB",
++	"VCDG",
++	"VCDGB",
++	"WCDGB",
++	"VCDLG",
++	"VCDLGB",
++	"WCDLGB",
++	"VCGD",
++	"VCGDB",
++	"WCGDB",
++	"VCLGD",
++	"VCLGDB",
++	"WCLGDB",
++	"VFD",
++	"VFDDB",
++	"WFDDB",
++	"VLDE",
++	"VLDEB",
++	"WLDEB",
++	"VLED",
++	"VLEDB",
++	"WLEDB",
++	"VFM",
++	"VFMDB",
++	"WFMDB",
++	"VFMA",
++	"VFMADB",
++	"WFMADB",
++	"VFMS",
++	"VFMSDB",
++	"WFMSDB",
++	"VFPSO",
++	"VFPSODB",
++	"WFPSODB",
++	"VFLCDB",
++	"WFLCDB",
++	"VFLNDB",
++	"WFLNDB",
++	"VFLPDB",
++	"WFLPDB",
++	"VFSQ",
++	"VFSQDB",
++	"WFSQDB",
++	"VFS",
++	"VFSDB",
++	"WFSDB",
++	"VFTCI",
++	"VFTCIDB",
++	"WFTCIDB",
++	"VGFM",
++	"VGFMB",
++	"VGFMH",
++	"VGFMF",
++	"VGFMG",
++	"VGFMA",
++	"VGFMAB",
++	"VGFMAH",
++	"VGFMAF",
++	"VGFMAG",
++	"VGEF",
++	"VGEG",
++	"VGBM",
++	"VZERO",
++	"VONE",
++	"VGM",
++	"VGMB",
++	"VGMH",
++	"VGMF",
++	"VGMG",
++	"VISTR",
++	"VISTRB",
++	"VISTRH",
++	"VISTRF",
++	"VISTRBS",
++	"VISTRHS",
++	"VISTRFS",
++	"VL",
++	"VLR",
++	"VLREP",
++	"VLREPB",
++	"VLREPH",
++	"VLREPF",
++	"VLREPG",
++	"VLC",
++	"VLCB",
++	"VLCH",
++	"VLCF",
++	"VLCG",
++	"VLEH",
++	"VLEF",
++	"VLEG",
++	"VLEB",
++	"VLEIH",
++	"VLEIF",
++	"VLEIG",
++	"VLEIB",
++	"VFI",
++	"VFIDB",
++	"WFIDB",
++	"VLGV",
++	"VLGVB",
++	"VLGVH",
++	"VLGVF",
++	"VLGVG",
++	"VLLEZ",
++	"VLLEZB",
++	"VLLEZH",
++	"VLLEZF",
++	"VLLEZG",
++	"VLM",
++	"VLP",
++	"VLPB",
++	"VLPH",
++	"VLPF",
++	"VLPG",
++	"VLBB",
++	"VLVG",
++	"VLVGB",
++	"VLVGH",
++	"VLVGF",
++	"VLVGG",
++	"VLVGP",
++	"VLL",
++	"VMX",
++	"VMXB",
++	"VMXH",
++	"VMXF",
++	"VMXG",
++	"VMXL",
++	"VMXLB",
++	"VMXLH",
++	"VMXLF",
++	"VMXLG",
++	"VMRH",
++	"VMRHB",
++	"VMRHH",
++	"VMRHF",
++	"VMRHG",
++	"VMRL",
++	"VMRLB",
++	"VMRLH",
++	"VMRLF",
++	"VMRLG",
++	"VMN",
++	"VMNB",
++	"VMNH",
++	"VMNF",
++	"VMNG",
++	"VMNL",
++	"VMNLB",
++	"VMNLH",
++	"VMNLF",
++	"VMNLG",
++	"VMAE",
++	"VMAEB",
++	"VMAEH",
++	"VMAEF",
++	"VMAH",
++	"VMAHB",
++	"VMAHH",
++	"VMAHF",
++	"VMALE",
++	"VMALEB",
++	"VMALEH",
++	"VMALEF",
++	"VMALH",
++	"VMALHB",
++	"VMALHH",
++	"VMALHF",
++	"VMALO",
++	"VMALOB",
++	"VMALOH",
++	"VMALOF",
++	"VMAL",
++	"VMALB",
++	"VMALHW",
++	"VMALF",
++	"VMAO",
++	"VMAOB",
++	"VMAOH",
++	"VMAOF",
++	"VME",
++	"VMEB",
++	"VMEH",
++	"VMEF",
++	"VMH",
++	"VMHB",
++	"VMHH",
++	"VMHF",
++	"VMLE",
++	"VMLEB",
++	"VMLEH",
++	"VMLEF",
++	"VMLH",
++	"VMLHB",
++	"VMLHH",
++	"VMLHF",
++	"VMLO",
++	"VMLOB",
++	"VMLOH",
++	"VMLOF",
++	"VML",
++	"VMLB",
++	"VMLHW",
++	"VMLF",
++	"VMO",
++	"VMOB",
++	"VMOH",
++	"VMOF",
++	"VNO",
++	"VNOT",
++	"VO",
++	"VPK",
++	"VPKH",
++	"VPKF",
++	"VPKG",
++	"VPKLS",
++	"VPKLSH",
++	"VPKLSF",
++	"VPKLSG",
++	"VPKLSHS",
++	"VPKLSFS",
++	"VPKLSGS",
++	"VPKS",
++	"VPKSH",
++	"VPKSF",
++	"VPKSG",
++	"VPKSHS",
++	"VPKSFS",
++	"VPKSGS",
++	"VPERM",
++	"VPDI",
++	"VPOPCT",
++	"VREP",
++	"VREPB",
++	"VREPH",
++	"VREPF",
++	"VREPG",
++	"VREPI",
++	"VREPIB",
++	"VREPIH",
++	"VREPIF",
++	"VREPIG",
++	"VSCEF",
++	"VSCEG",
++	"VSEL",
++	"VSL",
++	"VSLB",
++	"VSLDB",
++	"VSRA",
++	"VSRAB",
++	"VSRL",
++	"VSRLB",
++	"VSEG",
++	"VSEGB",
++	"VSEGH",
++	"VSEGF",
++	"VST",
++	"VSTEH",
++	"VSTEF",
++	"VSTEG",
++	"VSTEB",
++	"VSTM",
++	"VSTL",
++	"VSTRC",
++	"VSTRCB",
++	"VSTRCH",
++	"VSTRCF",
++	"VSTRCBS",
++	"VSTRCHS",
++	"VSTRCFS",
++	"VSTRCZB",
++	"VSTRCZH",
++	"VSTRCZF",
++	"VSTRCZBS",
++	"VSTRCZHS",
++	"VSTRCZFS",
++	"VS",
++	"VSB",
++	"VSH",
++	"VSF",
++	"VSG",
++	"VSQ",
++	"VSCBI",
++	"VSCBIB",
++	"VSCBIH",
++	"VSCBIF",
++	"VSCBIG",
++	"VSCBIQ",
++	"VSBCBI",
++	"VSBCBIQ",
++	"VSBI",
++	"VSBIQ",
++	"VSUMG",
++	"VSUMGH",
++	"VSUMGF",
++	"VSUMQ",
++	"VSUMQF",
++	"VSUMQG",
++	"VSUM",
++	"VSUMB",
++	"VSUMH",
++	"VTM",
++	"VUPH",
++	"VUPHB",
++	"VUPHH",
++	"VUPHF",
++	"VUPLH",
++	"VUPLHB",
++	"VUPLHH",
++	"VUPLHF",
++	"VUPLL",
++	"VUPLLB",
++	"VUPLLH",
++	"VUPLLF",
++	"VUPL",
++	"VUPLB",
++	"VUPLHW",
++	"VUPLF",
++	"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..bc5f969
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/anamesz.go
+@@ -0,0 +1,34 @@
++package s390x
++
++var cnamesz = []string{
++	"NONE",
++	"REG",
++	"FREG",
++	"VREG",
++	"AREG",
++	"ZCON",
++	"SCON",
++	"UCON",
++	"ADDCON",
++	"ANDCON",
++	"LCON",
++	"DCON",
++	"SACON",
++	"LACON",
++	"DACON",
++	"SBRA",
++	"LBRA",
++	"SAUTO",
++	"LAUTO",
++	"ZOREG",
++	"SOREG",
++	"LOREG",
++	"TLS_LE",
++	"TLS_IE",
++	"GOK",
++	"ADDR",
++	"GOTADDR",
++	"TEXTSIZE",
++	"ANY",
++	"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..82b07bb
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/asmz.go
+@@ -0,0 +1,5177 @@
++// 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_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_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_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_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_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_FREG, 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_FREG, C_FREG, C_FREG, 34, 0},
++	Optab{AFMUL, C_FREG, C_NONE, C_NONE, C_FREG, 32, 0},
++	Optab{AFMUL, C_FREG, C_FREG, 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{ALA, C_SAUTO, C_NONE, C_NONE, C_REG, 86, REGSP},
++	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_LCON, C_NONE, C_NONE, C_ADDR, 73, 0},
++	Optab{AMOVW, C_LCON, C_NONE, C_NONE, C_ADDR, 73, 0},
++	Optab{AMOVWZ, C_LCON, C_NONE, C_NONE, C_ADDR, 73, 0},
++	Optab{AMOVBZ, C_LCON, C_NONE, C_NONE, C_ADDR, 73, 0},
++	Optab{AMOVB, C_LCON, C_NONE, C_NONE, C_ADDR, 73, 0},
++	Optab{AMOVD, C_LCON, C_NONE, C_NONE, C_SAUTO, 72, REGSP},
++	Optab{AMOVW, C_LCON, C_NONE, C_NONE, C_SAUTO, 72, REGSP},
++	Optab{AMOVWZ, C_LCON, C_NONE, C_NONE, C_SAUTO, 72, REGSP},
++	Optab{AMOVB, C_LCON, C_NONE, C_NONE, C_SAUTO, 72, REGSP},
++	Optab{AMOVBZ, C_LCON, C_NONE, C_NONE, C_SAUTO, 72, REGSP},
++	Optab{AMOVD, C_LCON, C_NONE, C_NONE, C_SOREG, 72, 0},
++	Optab{AMOVW, C_LCON, C_NONE, C_NONE, C_SOREG, 72, 0},
++	Optab{AMOVWZ, C_LCON, C_NONE, C_NONE, C_SOREG, 72, 0},
++	Optab{AMOVB, C_LCON, C_NONE, C_NONE, C_SOREG, 72, 0},
++	Optab{AMOVBZ, C_LCON, C_NONE, C_NONE, C_SOREG, 72, 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_ANDCON, C_NONE, C_NONE, C_REG, 3, 0},
++	Optab{AMOVBZ, C_ADDCON, 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{AMOVD, C_GOTADDR, C_NONE, C_NONE, C_REG, 93, 0},
++	Optab{AMOVD, C_TLS_LE, C_NONE, C_NONE, C_REG, 94, 0},
++	Optab{AMOVD, C_TLS_IE, C_NONE, C_NONE, C_REG, 95, 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},
++
++	// macros
++	Optab{ACLEAR, C_LCON, C_NONE, C_NONE, C_LOREG, 96, 0},
++	Optab{ACLEAR, C_LCON, C_NONE, C_NONE, C_LAUTO, 96, REGSP},
++
++	///////////////////////////////////////////////////////////////////////
++	// vector instructions
++	///////////////////////////////////////////////////////////////////////
++
++	// VRX store
++	Optab{AVST, C_VREG, C_NONE, C_NONE, C_SOREG, 100, 0},
++	Optab{AVST, C_VREG, C_NONE, C_NONE, C_SAUTO, 100, REGSP},
++	Optab{AVSTEG, C_VREG, C_NONE, C_SCON, C_SOREG, 100, 0},
++	Optab{AVSTEG, C_VREG, C_NONE, C_SCON, C_SAUTO, 100, REGSP},
++
++	// VRX load
++	Optab{AVL, C_SOREG, C_NONE, C_NONE, C_VREG, 101, 0},
++	Optab{AVL, C_SAUTO, C_NONE, C_NONE, C_VREG, 101, REGSP},
++	Optab{AVLEG, C_SOREG, C_NONE, C_SCON, C_VREG, 101, 0},
++	Optab{AVLEG, C_SAUTO, C_NONE, C_SCON, C_VREG, 101, REGSP},
++
++	// VRV scatter
++	Optab{AVSCEG, C_VREG, C_NONE, C_SCON, C_SOREG, 102, 0},
++	Optab{AVSCEG, C_VREG, C_NONE, C_SCON, C_SAUTO, 102, REGSP},
++
++	// VRV gather
++	Optab{AVGEG, C_SOREG, C_NONE, C_SCON, C_VREG, 103, 0},
++	Optab{AVGEG, C_SAUTO, C_NONE, C_SCON, C_VREG, 103, REGSP},
++
++	// VRS element shift/rotate and load gr to/from vr element
++	Optab{AVESLG, C_SCON, C_VREG, C_NONE, C_VREG, 104, 0},
++	Optab{AVESLG, C_REG, C_VREG, C_NONE, C_VREG, 104, 0},
++	Optab{AVESLG, C_SCON, C_NONE, C_NONE, C_VREG, 104, 0},
++	Optab{AVESLG, C_REG, C_NONE, C_NONE, C_VREG, 104, 0},
++	Optab{AVLGVG, C_SCON, C_VREG, C_NONE, C_REG, 104, 0},
++	Optab{AVLGVG, C_REG, C_VREG, C_NONE, C_REG, 104, 0},
++	Optab{AVLVGG, C_SCON, C_REG, C_NONE, C_VREG, 104, 0},
++	Optab{AVLVGG, C_REG, C_REG, C_NONE, C_VREG, 104, 0},
++
++	// VRS store multiple
++	Optab{AVSTM, C_VREG, C_VREG, C_NONE, C_SOREG, 105, 0},
++	Optab{AVSTM, C_VREG, C_VREG, C_NONE, C_SAUTO, 105, REGSP},
++
++	// VRS load multiple
++	Optab{AVLM, C_SOREG, C_VREG, C_NONE, C_VREG, 106, 0},
++	Optab{AVLM, C_SAUTO, C_VREG, C_NONE, C_VREG, 106, REGSP},
++
++	// VRS store with length
++	Optab{AVSTL, C_VREG, C_NONE, C_REG, C_SOREG, 107, 0},
++	Optab{AVSTL, C_VREG, C_NONE, C_REG, C_SAUTO, 107, REGSP},
++
++	// VRS load with length
++	Optab{AVLL, C_SOREG, C_NONE, C_REG, C_VREG, 108, 0},
++	Optab{AVLL, C_SAUTO, C_NONE, C_REG, C_VREG, 108, REGSP},
++
++	// VRI-a
++	Optab{AVGBM, C_ANDCON, C_NONE, C_NONE, C_VREG, 109, 0},
++	Optab{AVZERO, C_NONE, C_NONE, C_NONE, C_VREG, 109, 0},
++	Optab{AVREPIG, C_ADDCON, C_NONE, C_NONE, C_VREG, 109, 0},
++	Optab{AVREPIG, C_SCON, C_NONE, C_NONE, C_VREG, 109, 0},
++	Optab{AVLEIG, C_ADDCON, C_NONE, C_SCON, C_VREG, 109, 0},
++	Optab{AVLEIG, C_SCON, C_NONE, C_SCON, C_VREG, 109, 0},
++
++	// VRI-b generate mask
++	Optab{AVGMG, C_SCON, C_NONE, C_SCON, C_VREG, 110, 0},
++
++	// VRI-c replicate
++	Optab{AVREPG, C_UCON, C_VREG, C_NONE, C_VREG, 111, 0},
++
++	// VRI-d element rotate and insert under mask and
++	// shift left double by byte
++	Optab{AVERIMG, C_VREG, C_VREG, C_SCON, C_VREG, 112, 0},
++	Optab{AVSLDB, C_VREG, C_VREG, C_SCON, C_VREG, 112, 0},
++
++	// VRI-d fp test data class immediate
++	Optab{AVFTCIDB, C_SCON, C_VREG, C_NONE, C_VREG, 113, 0},
++
++	// VRR-a load reg
++	Optab{AVLR, C_VREG, C_NONE, C_NONE, C_VREG, 114, 0},
++
++	// VRR-a compare
++	Optab{AVECG, C_VREG, C_NONE, C_NONE, C_VREG, 115, 0},
++
++	// VRR-b
++	Optab{AVCEQG, C_VREG, C_VREG, C_NONE, C_VREG, 117, 0},
++	Optab{AVFAEF, C_VREG, C_VREG, C_NONE, C_VREG, 117, 0},
++	Optab{AVPKSG, C_VREG, C_VREG, C_NONE, C_VREG, 117, 0},
++
++	// VRR-c
++	Optab{AVAQ, C_VREG, C_VREG, C_NONE, C_VREG, 118, 0},
++	Optab{AVAQ, C_VREG, C_NONE, C_NONE, C_VREG, 118, 0},
++	Optab{AVNOT, C_VREG, C_NONE, C_NONE, C_VREG, 118, 0},
++
++	// VRR-c shifts
++	Optab{AVERLLVG, C_VREG, C_VREG, C_NONE, C_VREG, 119, 0},
++	Optab{AVERLLVG, C_VREG, C_NONE, C_NONE, C_VREG, 119, 0},
++
++	// VRR-d
++	//             2       3       1       4
++	Optab{AVACQ, C_VREG, C_VREG, C_VREG, C_VREG, 120, 0},
++
++	// VRR-e
++	Optab{AVSEL, C_VREG, C_VREG, C_VREG, C_VREG, 121, 0},
++
++	// VRR-f
++	Optab{AVLVGP, C_REG, C_REG, C_NONE, C_VREG, 122, 0},
++
++	// load/store multiple
++	Optab{ASTMG, C_REG, C_REG, C_NONE, C_LOREG, 97, 0},
++	Optab{ASTMG, C_REG, C_REG, C_NONE, C_LAUTO, 97, REGSP},
++	Optab{ALMG, C_LOREG, C_REG, C_NONE, C_REG, 98, 0},
++	Optab{ALMG, C_LAUTO, C_REG, C_NONE, C_REG, 98, REGSP},
++
++	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)
++
++	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
++		}
++		if REG_V0 <= a.Reg && a.Reg <= REG_V31 {
++			return C_VREG
++		}
++		return C_GOK
++
++	case obj.TYPE_MEM:
++		switch a.Name {
++		case obj.NAME_EXTERN,
++			obj.NAME_STATIC:
++			if a.Sym == nil {
++				// must have a symbol
++				break
++			}
++			ctxt.Instoffset = a.Offset
++			if a.Sym.Type == obj.STLSBSS {
++				if ctxt.Flag_shared != 0 {
++					return C_TLS_IE // initial exec model
++				}
++				return C_TLS_LE // local exec model
++			}
++			return C_ADDR
++
++		case obj.NAME_GOTREF:
++			return C_GOTADDR
++
++		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 + ctxt.FixedFrameSize()
++			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
++			}
++			ctxt.Instoffset = s.Value + a.Offset
++			if s.Type == obj.SCONST {
++				goto consize
++			}
++
++			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 + ctxt.FixedFrameSize()
++			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 {
++		if REG_R0 <= p.Reg && p.Reg <= REG_R15 {
++			a2 = C_REG
++		} else if REG_V0 <= p.Reg && p.Reg <= REG_V31 {
++			a2 = C_VREG
++		} else if REG_F0 <= p.Reg && p.Reg <= REG_F15 {
++			a2 = C_FREG
++		} else if REG_AR0 <= p.Reg && p.Reg <= REG_AR15 {
++			a2 = C_AREG
++		}
++	}
++
++	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 || b == C_SCON {
++			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 ACLEAR:
++
++		case ASTMG:
++			opset(ASTMY, r0)
++
++		case ALMG:
++			opset(ALMY, 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(ALEDBR, 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 AVL:
++			opset(AVLLEZB, r0)
++			opset(AVLLEZH, r0)
++			opset(AVLLEZF, r0)
++			opset(AVLLEZG, r0)
++			opset(AVLREPB, r0)
++			opset(AVLREPH, r0)
++			opset(AVLREPF, r0)
++			opset(AVLREPG, r0)
++
++		case AVST:
++
++		case AVLEG:
++			opset(AVLBB, r0)
++			opset(AVLEB, r0)
++			opset(AVLEH, r0)
++			opset(AVLEF, r0)
++			opset(AVLEG, r0)
++			opset(AVLREP, r0)
++
++		case AVSTEG:
++			opset(AVSTEB, r0)
++			opset(AVSTEH, r0)
++			opset(AVSTEF, r0)
++
++		case AVSCEG:
++			opset(AVSCEF, r0)
++
++		case AVGEG:
++			opset(AVGEF, r0)
++
++		case AVESLG:
++			opset(AVESLB, r0)
++			opset(AVESLH, r0)
++			opset(AVESLF, r0)
++			opset(AVERLLB, r0)
++			opset(AVERLLH, r0)
++			opset(AVERLLF, r0)
++			opset(AVERLLG, r0)
++			opset(AVESRAB, r0)
++			opset(AVESRAH, r0)
++			opset(AVESRAF, r0)
++			opset(AVESRAG, r0)
++			opset(AVESRLB, r0)
++			opset(AVESRLH, r0)
++			opset(AVESRLF, r0)
++			opset(AVESRLG, r0)
++
++		case AVLGVG:
++			opset(AVLGVB, r0)
++			opset(AVLGVH, r0)
++			opset(AVLGVF, r0)
++
++		case AVLVGG:
++			opset(AVLVGB, r0)
++			opset(AVLVGH, r0)
++			opset(AVLVGF, r0)
++
++		case AVLL:
++
++		case AVSTL:
++
++		case AVLM:
++
++		case AVSTM:
++
++		case AVGBM:
++
++		case AVZERO:
++			opset(AVONE, r0)
++
++		case AVREPIG:
++			opset(AVREPIB, r0)
++			opset(AVREPIH, r0)
++			opset(AVREPIF, r0)
++
++		case AVLEIG:
++			opset(AVLEIB, r0)
++			opset(AVLEIH, r0)
++			opset(AVLEIF, r0)
++
++		case AVGMG:
++			opset(AVGMB, r0)
++			opset(AVGMH, r0)
++			opset(AVGMF, r0)
++
++		case AVREPG:
++			opset(AVREPB, r0)
++			opset(AVREPH, r0)
++			opset(AVREPF, r0)
++
++		case AVERIMG:
++			opset(AVERIMB, r0)
++			opset(AVERIMH, r0)
++			opset(AVERIMF, r0)
++
++		case AVSLDB:
++
++		case AVFTCIDB:
++			opset(AWFTCIDB, r0)
++
++		case AVLR:
++			opset(AVUPHB, r0)
++			opset(AVUPHH, r0)
++			opset(AVUPHF, r0)
++			opset(AVUPLHB, r0)
++			opset(AVUPLHH, r0)
++			opset(AVUPLHF, r0)
++			opset(AVUPLB, r0)
++			opset(AVUPLHW, r0)
++			opset(AVUPLF, r0)
++			opset(AVUPLLB, r0)
++			opset(AVUPLLH, r0)
++			opset(AVUPLLF, r0)
++			opset(AVCLZB, r0)
++			opset(AVCLZH, r0)
++			opset(AVCLZF, r0)
++			opset(AVCLZG, r0)
++			opset(AVCTZB, r0)
++			opset(AVCTZH, r0)
++			opset(AVCTZF, r0)
++			opset(AVCTZG, r0)
++			opset(AVLDEB, r0)
++			opset(AWLDEB, r0)
++			opset(AVFLCDB, r0)
++			opset(AWFLCDB, r0)
++			opset(AVFLNDB, r0)
++			opset(AWFLNDB, r0)
++			opset(AVFLPDB, r0)
++			opset(AWFLPDB, r0)
++			opset(AVFSQDB, r0)
++			opset(AWFSQDB, r0)
++			opset(AVISTRB, r0)
++			opset(AVISTRH, r0)
++			opset(AVISTRF, r0)
++			opset(AVISTRBS, r0)
++			opset(AVISTRHS, r0)
++			opset(AVISTRFS, r0)
++			opset(AVLCB, r0)
++			opset(AVLCH, r0)
++			opset(AVLCF, r0)
++			opset(AVLCG, r0)
++			opset(AVLPB, r0)
++			opset(AVLPH, r0)
++			opset(AVLPF, r0)
++			opset(AVLPG, r0)
++			opset(AVPOPCT, r0)
++			opset(AVSEGB, r0)
++			opset(AVSEGH, r0)
++			opset(AVSEGF, r0)
++
++		case AVECG:
++			opset(AVECB, r0)
++			opset(AVECH, r0)
++			opset(AVECF, r0)
++			opset(AVECLB, r0)
++			opset(AVECLH, r0)
++			opset(AVECLF, r0)
++			opset(AVECLG, r0)
++			opset(AWFCDB, r0)
++			opset(AWFKDB, r0)
++
++		case AVCEQG:
++			opset(AVCEQB, r0)
++			opset(AVCEQH, r0)
++			opset(AVCEQF, r0)
++			opset(AVCEQBS, r0)
++			opset(AVCEQHS, r0)
++			opset(AVCEQFS, r0)
++			opset(AVCEQGS, r0)
++			opset(AVCHB, r0)
++			opset(AVCHH, r0)
++			opset(AVCHF, r0)
++			opset(AVCHG, r0)
++			opset(AVCHBS, r0)
++			opset(AVCHHS, r0)
++			opset(AVCHFS, r0)
++			opset(AVCHGS, r0)
++			opset(AVCHLB, r0)
++			opset(AVCHLH, r0)
++			opset(AVCHLF, r0)
++			opset(AVCHLG, r0)
++			opset(AVCHLBS, r0)
++			opset(AVCHLHS, r0)
++			opset(AVCHLFS, r0)
++			opset(AVCHLGS, r0)
++
++		case AVFAEF:
++			opset(AVFAEB, r0)
++			opset(AVFAEH, r0)
++			opset(AVFAEBS, r0)
++			opset(AVFAEHS, r0)
++			opset(AVFAEFS, r0)
++			opset(AVFAEZB, r0)
++			opset(AVFAEZH, r0)
++			opset(AVFAEZF, r0)
++			opset(AVFAEZBS, r0)
++			opset(AVFAEZHS, r0)
++			opset(AVFAEZFS, r0)
++			opset(AVFEEB, r0)
++			opset(AVFEEH, r0)
++			opset(AVFEEF, r0)
++			opset(AVFEEBS, r0)
++			opset(AVFEEHS, r0)
++			opset(AVFEEFS, r0)
++			opset(AVFEEZB, r0)
++			opset(AVFEEZH, r0)
++			opset(AVFEEZF, r0)
++			opset(AVFEEZBS, r0)
++			opset(AVFEEZHS, r0)
++			opset(AVFEEZFS, r0)
++			opset(AVFENEB, r0)
++			opset(AVFENEH, r0)
++			opset(AVFENEF, r0)
++			opset(AVFENEBS, r0)
++			opset(AVFENEHS, r0)
++			opset(AVFENEFS, r0)
++			opset(AVFENEZB, r0)
++			opset(AVFENEZH, r0)
++			opset(AVFENEZF, r0)
++			opset(AVFENEZBS, r0)
++			opset(AVFENEZHS, r0)
++			opset(AVFENEZFS, r0)
++
++		case AVPKSG:
++			opset(AVPKSH, r0)
++			opset(AVPKSF, r0)
++			opset(AVPKSHS, r0)
++			opset(AVPKSFS, r0)
++			opset(AVPKSGS, r0)
++			opset(AVPKLSH, r0)
++			opset(AVPKLSF, r0)
++			opset(AVPKLSG, r0)
++			opset(AVPKLSHS, r0)
++			opset(AVPKLSFS, r0)
++			opset(AVPKLSGS, r0)
++
++		case AVAQ:
++			opset(AVAB, r0)
++			opset(AVAH, r0)
++			opset(AVAF, r0)
++			opset(AVAG, r0)
++			opset(AVACCB, r0)
++			opset(AVACCH, r0)
++			opset(AVACCF, r0)
++			opset(AVACCG, r0)
++			opset(AVACCQ, r0)
++			opset(AVN, r0)
++			opset(AVNC, r0)
++			opset(AVAVGB, r0)
++			opset(AVAVGH, r0)
++			opset(AVAVGF, r0)
++			opset(AVAVGG, r0)
++			opset(AVAVGLB, r0)
++			opset(AVAVGLH, r0)
++			opset(AVAVGLF, r0)
++			opset(AVAVGLG, r0)
++			opset(AVCKSM, r0)
++			opset(AVX, r0)
++			opset(AVFADB, r0)
++			opset(AWFADB, r0)
++			opset(AVFCEDB, r0)
++			opset(AVFCEDBS, r0)
++			opset(AWFCEDB, r0)
++			opset(AWFCEDBS, r0)
++			opset(AVFCHDB, r0)
++			opset(AVFCHDBS, r0)
++			opset(AWFCHDB, r0)
++			opset(AWFCHDBS, r0)
++			opset(AVFCHEDB, r0)
++			opset(AVFCHEDBS, r0)
++			opset(AWFCHEDB, r0)
++			opset(AWFCHEDBS, r0)
++			opset(AVFMDB, r0)
++			opset(AWFMDB, r0)
++			opset(AVGFMB, r0)
++			opset(AVGFMH, r0)
++			opset(AVGFMF, r0)
++			opset(AVGFMG, r0)
++			opset(AVMXB, r0)
++			opset(AVMXH, r0)
++			opset(AVMXF, r0)
++			opset(AVMXG, r0)
++			opset(AVMXLB, r0)
++			opset(AVMXLH, r0)
++			opset(AVMXLF, r0)
++			opset(AVMXLG, r0)
++			opset(AVMNB, r0)
++			opset(AVMNH, r0)
++			opset(AVMNF, r0)
++			opset(AVMNG, r0)
++			opset(AVMNLB, r0)
++			opset(AVMNLH, r0)
++			opset(AVMNLF, r0)
++			opset(AVMNLG, r0)
++			opset(AVMRHB, r0)
++			opset(AVMRHH, r0)
++			opset(AVMRHF, r0)
++			opset(AVMRHG, r0)
++			opset(AVMRLB, r0)
++			opset(AVMRLH, r0)
++			opset(AVMRLF, r0)
++			opset(AVMRLG, r0)
++			opset(AVMEB, r0)
++			opset(AVMEH, r0)
++			opset(AVMEF, r0)
++			opset(AVMLEB, r0)
++			opset(AVMLEH, r0)
++			opset(AVMLEF, r0)
++			opset(AVMOB, r0)
++			opset(AVMOH, r0)
++			opset(AVMOF, r0)
++			opset(AVMLOB, r0)
++			opset(AVMLOH, r0)
++			opset(AVMLOF, r0)
++			opset(AVMHB, r0)
++			opset(AVMHH, r0)
++			opset(AVMHF, r0)
++			opset(AVMLHB, r0)
++			opset(AVMLHH, r0)
++			opset(AVMLHF, r0)
++			opset(AVMLH, r0)
++			opset(AVMLHW, r0)
++			opset(AVMLF, r0)
++			opset(AVNO, r0)
++			opset(AVO, r0)
++			opset(AVPKH, r0)
++			opset(AVPKF, r0)
++			opset(AVPKG, r0)
++			opset(AVSUMGH, r0)
++			opset(AVSUMGF, r0)
++			opset(AVSUMQF, r0)
++			opset(AVSUMQG, r0)
++			opset(AVSUMB, r0)
++			opset(AVSUMH, r0)
++
++		case AVNOT:
++
++		case AVERLLVG:
++			opset(AVERLLVB, r0)
++			opset(AVERLLVH, r0)
++			opset(AVERLLVF, r0)
++			opset(AVESLVB, r0)
++			opset(AVESLVH, r0)
++			opset(AVESLVF, r0)
++			opset(AVESLVG, r0)
++			opset(AVESRAVB, r0)
++			opset(AVESRAVH, r0)
++			opset(AVESRAVF, r0)
++			opset(AVESRAVG, r0)
++			opset(AVESRLVB, r0)
++			opset(AVESRLVH, r0)
++			opset(AVESRLVF, r0)
++			opset(AVESRLVG, r0)
++			opset(AVFDDB, r0)
++			opset(AWFDDB, r0)
++			opset(AVFSDB, r0)
++			opset(AWFSDB, r0)
++			opset(AVSL, r0)
++			opset(AVSLB, r0)
++			opset(AVSRA, r0)
++			opset(AVSRAB, r0)
++			opset(AVSRL, r0)
++			opset(AVSRLB, r0)
++			opset(AVSF, r0)
++			opset(AVSG, r0)
++			opset(AVSQ, r0)
++			opset(AVSCBIB, r0)
++			opset(AVSCBIH, r0)
++			opset(AVSCBIF, r0)
++			opset(AVSCBIG, r0)
++			opset(AVSCBIQ, r0)
++
++		case AVACQ:
++			opset(AVACCCQ, r0)
++			opset(AVGFMAB, r0)
++			opset(AVGFMAH, r0)
++			opset(AVGFMAF, r0)
++			opset(AVGFMAG, r0)
++			opset(AVMALB, r0)
++			opset(AVMALHW, r0)
++			opset(AVMALF, r0)
++			opset(AVMAHB, r0)
++			opset(AVMAHH, r0)
++			opset(AVMAHF, r0)
++			opset(AVMALHB, r0)
++			opset(AVMALHH, r0)
++			opset(AVMALHF, r0)
++			opset(AVMAEB, r0)
++			opset(AVMAEH, r0)
++			opset(AVMAEF, r0)
++			opset(AVMALEB, r0)
++			opset(AVMALEH, r0)
++			opset(AVMALEF, r0)
++			opset(AVMAOB, r0)
++			opset(AVMAOH, r0)
++			opset(AVMAOF, r0)
++			opset(AVMALOB, r0)
++			opset(AVMALOH, r0)
++			opset(AVMALOF, r0)
++			opset(AVSTRCB, r0)
++			opset(AVSTRCH, r0)
++			opset(AVSTRCF, r0)
++			opset(AVSTRCBS, r0)
++			opset(AVSTRCHS, r0)
++			opset(AVSTRCFS, r0)
++			opset(AVSTRCZB, r0)
++			opset(AVSTRCZH, r0)
++			opset(AVSTRCZF, r0)
++			opset(AVSTRCZBS, r0)
++			opset(AVSTRCZHS, r0)
++			opset(AVSTRCZFS, r0)
++			opset(AVSBCBIQ, r0)
++			opset(AVSBIQ, r0)
++
++		case AVSEL:
++			opset(AVFMADB, r0)
++			opset(AWFMADB, r0)
++			opset(AVFMSDB, r0)
++			opset(AWFMSDB, r0)
++			opset(AVPERM, r0)
++
++		case AVLVGP:
++
++		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
++
++	// added in z13
++	OP_CXPT   uint32 = 0xEDAF // 	RSL-b	CONVERT FROM PACKED (to extended DFP)
++	OP_CDPT   uint32 = 0xEDAE // 	RSL-b	CONVERT FROM PACKED (to long DFP)
++	OP_CPXT   uint32 = 0xEDAD // 	RSL-b	CONVERT TO PACKED (from extended DFP)
++	OP_CPDT   uint32 = 0xEDAC // 	RSL-b	CONVERT TO PACKED (from long DFP)
++	OP_LZRF   uint32 = 0xE33B // 	RXY-a	LOAD AND ZERO RIGHTMOST BYTE (32)
++	OP_LZRG   uint32 = 0xE32A // 	RXY-a	LOAD AND ZERO RIGHTMOST BYTE (64)
++	OP_LCCB   uint32 = 0xE727 // 	RXE	LOAD COUNT TO BLOCK BOUNDARY
++	OP_LOCHHI uint32 = 0xEC4E // 	RIE-g	LOAD HALFWORD HIGH IMMEDIATE ON CONDITION (32←16)
++	OP_LOCHI  uint32 = 0xEC42 // 	RIE-g	LOAD HALFWORD IMMEDIATE ON CONDITION (32←16)
++	OP_LOCGHI uint32 = 0xEC46 // 	RIE-g	LOAD HALFWORD IMMEDIATE ON CONDITION (64←16)
++	OP_LOCFH  uint32 = 0xEBE0 // 	RSY-b	LOAD HIGH ON CONDITION (32)
++	OP_LOCFHR uint32 = 0xB9E0 // 	RRF-c	LOAD HIGH ON CONDITION (32)
++	OP_LLZRGF uint32 = 0xE33A // 	RXY-a	LOAD LOGICAL AND ZERO RIGHTMOST BYTE (64←32)
++	OP_STOCFH uint32 = 0xEBE1 // 	RSY-b	STORE HIGH ON CONDITION
++	OP_VA     uint32 = 0xE7F3 // 	VRR-c	VECTOR ADD
++	OP_VACC   uint32 = 0xE7F1 // 	VRR-c	VECTOR ADD COMPUTE CARRY
++	OP_VAC    uint32 = 0xE7BB // 	VRR-d	VECTOR ADD WITH CARRY
++	OP_VACCC  uint32 = 0xE7B9 // 	VRR-d	VECTOR ADD WITH CARRY COMPUTE CARRY
++	OP_VN     uint32 = 0xE768 // 	VRR-c	VECTOR AND
++	OP_VNC    uint32 = 0xE769 // 	VRR-c	VECTOR AND WITH COMPLEMENT
++	OP_VAVG   uint32 = 0xE7F2 // 	VRR-c	VECTOR AVERAGE
++	OP_VAVGL  uint32 = 0xE7F0 // 	VRR-c	VECTOR AVERAGE LOGICAL
++	OP_VCKSM  uint32 = 0xE766 // 	VRR-c	VECTOR CHECKSUM
++	OP_VCEQ   uint32 = 0xE7F8 // 	VRR-b	VECTOR COMPARE EQUAL
++	OP_VCH    uint32 = 0xE7FB // 	VRR-b	VECTOR COMPARE HIGH
++	OP_VCHL   uint32 = 0xE7F9 // 	VRR-b	VECTOR COMPARE HIGH LOGICAL
++	OP_VCLZ   uint32 = 0xE753 // 	VRR-a	VECTOR COUNT LEADING ZEROS
++	OP_VCTZ   uint32 = 0xE752 // 	VRR-a	VECTOR COUNT TRAILING ZEROS
++	OP_VEC    uint32 = 0xE7DB // 	VRR-a	VECTOR ELEMENT COMPARE
++	OP_VECL   uint32 = 0xE7D9 // 	VRR-a	VECTOR ELEMENT COMPARE LOGICAL
++	OP_VERIM  uint32 = 0xE772 // 	VRI-d	VECTOR ELEMENT ROTATE AND INSERT UNDER MASK
++	OP_VERLL  uint32 = 0xE733 // 	VRS-a	VECTOR ELEMENT ROTATE LEFT LOGICAL
++	OP_VERLLV uint32 = 0xE773 // 	VRR-c	VECTOR ELEMENT ROTATE LEFT LOGICAL
++	OP_VESLV  uint32 = 0xE770 // 	VRR-c	VECTOR ELEMENT SHIFT LEFT
++	OP_VESL   uint32 = 0xE730 // 	VRS-a	VECTOR ELEMENT SHIFT LEFT
++	OP_VESRA  uint32 = 0xE73A // 	VRS-a	VECTOR ELEMENT SHIFT RIGHT ARITHMETIC
++	OP_VESRAV uint32 = 0xE77A // 	VRR-c	VECTOR ELEMENT SHIFT RIGHT ARITHMETIC
++	OP_VESRL  uint32 = 0xE738 // 	VRS-a	VECTOR ELEMENT SHIFT RIGHT LOGICAL
++	OP_VESRLV uint32 = 0xE778 // 	VRR-c	VECTOR ELEMENT SHIFT RIGHT LOGICAL
++	OP_VX     uint32 = 0xE76D // 	VRR-c	VECTOR EXCLUSIVE OR
++	OP_VFAE   uint32 = 0xE782 // 	VRR-b	VECTOR FIND ANY ELEMENT EQUAL
++	OP_VFEE   uint32 = 0xE780 // 	VRR-b	VECTOR FIND ELEMENT EQUAL
++	OP_VFENE  uint32 = 0xE781 // 	VRR-b	VECTOR FIND ELEMENT NOT EQUAL
++	OP_VFA    uint32 = 0xE7E3 // 	VRR-c	VECTOR FP ADD
++	OP_WFK    uint32 = 0xE7CA // 	VRR-a	VECTOR FP COMPARE AND SIGNAL SCALAR
++	OP_VFCE   uint32 = 0xE7E8 // 	VRR-c	VECTOR FP COMPARE EQUAL
++	OP_VFCH   uint32 = 0xE7EB // 	VRR-c	VECTOR FP COMPARE HIGH
++	OP_VFCHE  uint32 = 0xE7EA // 	VRR-c	VECTOR FP COMPARE HIGH OR EQUAL
++	OP_WFC    uint32 = 0xE7CB // 	VRR-a	VECTOR FP COMPARE SCALAR
++	OP_VCDG   uint32 = 0xE7C3 // 	VRR-a	VECTOR FP CONVERT FROM FIXED 64-BIT
++	OP_VCDLG  uint32 = 0xE7C1 // 	VRR-a	VECTOR FP CONVERT FROM LOGICAL 64-BIT
++	OP_VCGD   uint32 = 0xE7C2 // 	VRR-a	VECTOR FP CONVERT TO FIXED 64-BIT
++	OP_VCLGD  uint32 = 0xE7C0 // 	VRR-a	VECTOR FP CONVERT TO LOGICAL 64-BIT
++	OP_VFD    uint32 = 0xE7E5 // 	VRR-c	VECTOR FP DIVIDE
++	OP_VLDE   uint32 = 0xE7C4 // 	VRR-a	VECTOR FP LOAD LENGTHENED
++	OP_VLED   uint32 = 0xE7C5 // 	VRR-a	VECTOR FP LOAD ROUNDED
++	OP_VFM    uint32 = 0xE7E7 // 	VRR-c	VECTOR FP MULTIPLY
++	OP_VFMA   uint32 = 0xE78F // 	VRR-e	VECTOR FP MULTIPLY AND ADD
++	OP_VFMS   uint32 = 0xE78E // 	VRR-e	VECTOR FP MULTIPLY AND SUBTRACT
++	OP_VFPSO  uint32 = 0xE7CC // 	VRR-a	VECTOR FP PERFORM SIGN OPERATION
++	OP_VFSQ   uint32 = 0xE7CE // 	VRR-a	VECTOR FP SQUARE ROOT
++	OP_VFS    uint32 = 0xE7E2 // 	VRR-c	VECTOR FP SUBTRACT
++	OP_VFTCI  uint32 = 0xE74A // 	VRI-e	VECTOR FP TEST DATA CLASS IMMEDIATE
++	OP_VGFM   uint32 = 0xE7B4 // 	VRR-c	VECTOR GALOIS FIELD MULTIPLY SUM
++	OP_VGFMA  uint32 = 0xE7BC // 	VRR-d	VECTOR GALOIS FIELD MULTIPLY SUM AND ACCUMULATE
++	OP_VGEF   uint32 = 0xE713 // 	VRV	VECTOR GATHER ELEMENT (32)
++	OP_VGEG   uint32 = 0xE712 // 	VRV	VECTOR GATHER ELEMENT (64)
++	OP_VGBM   uint32 = 0xE744 // 	VRI-a	VECTOR GENERATE BYTE MASK
++	OP_VGM    uint32 = 0xE746 // 	VRI-b	VECTOR GENERATE MASK
++	OP_VISTR  uint32 = 0xE75C // 	VRR-a	VECTOR ISOLATE STRING
++	OP_VL     uint32 = 0xE706 // 	VRX	VECTOR LOAD
++	OP_VLR    uint32 = 0xE756 // 	VRR-a	VECTOR LOAD
++	OP_VLREP  uint32 = 0xE705 // 	VRX	VECTOR LOAD AND REPLICATE
++	OP_VLC    uint32 = 0xE7DE // 	VRR-a	VECTOR LOAD COMPLEMENT
++	OP_VLEH   uint32 = 0xE701 // 	VRX	VECTOR LOAD ELEMENT (16)
++	OP_VLEF   uint32 = 0xE703 // 	VRX	VECTOR LOAD ELEMENT (32)
++	OP_VLEG   uint32 = 0xE702 // 	VRX	VECTOR LOAD ELEMENT (64)
++	OP_VLEB   uint32 = 0xE700 // 	VRX	VECTOR LOAD ELEMENT (8)
++	OP_VLEIH  uint32 = 0xE741 // 	VRI-a	VECTOR LOAD ELEMENT IMMEDIATE (16)
++	OP_VLEIF  uint32 = 0xE743 // 	VRI-a	VECTOR LOAD ELEMENT IMMEDIATE (32)
++	OP_VLEIG  uint32 = 0xE742 // 	VRI-a	VECTOR LOAD ELEMENT IMMEDIATE (64)
++	OP_VLEIB  uint32 = 0xE740 // 	VRI-a	VECTOR LOAD ELEMENT IMMEDIATE (8)
++	OP_VFI    uint32 = 0xE7C7 // 	VRR-a	VECTOR LOAD FP INTEGER
++	OP_VLGV   uint32 = 0xE721 // 	VRS-c	VECTOR LOAD GR FROM VR ELEMENT
++	OP_VLLEZ  uint32 = 0xE704 // 	VRX	VECTOR LOAD LOGICAL ELEMENT AND ZERO
++	OP_VLM    uint32 = 0xE736 // 	VRS-a	VECTOR LOAD MULTIPLE
++	OP_VLP    uint32 = 0xE7DF // 	VRR-a	VECTOR LOAD POSITIVE
++	OP_VLBB   uint32 = 0xE707 // 	VRX	VECTOR LOAD TO BLOCK BOUNDARY
++	OP_VLVG   uint32 = 0xE722 // 	VRS-b	VECTOR LOAD VR ELEMENT FROM GR
++	OP_VLVGP  uint32 = 0xE762 // 	VRR-f	VECTOR LOAD VR FROM GRS DISJOINT
++	OP_VLL    uint32 = 0xE737 // 	VRS-b	VECTOR LOAD WITH LENGTH
++	OP_VMX    uint32 = 0xE7FF // 	VRR-c	VECTOR MAXIMUM
++	OP_VMXL   uint32 = 0xE7FD // 	VRR-c	VECTOR MAXIMUM LOGICAL
++	OP_VMRH   uint32 = 0xE761 // 	VRR-c	VECTOR MERGE HIGH
++	OP_VMRL   uint32 = 0xE760 // 	VRR-c	VECTOR MERGE LOW
++	OP_VMN    uint32 = 0xE7FE // 	VRR-c	VECTOR MINIMUM
++	OP_VMNL   uint32 = 0xE7FC // 	VRR-c	VECTOR MINIMUM LOGICAL
++	OP_VMAE   uint32 = 0xE7AE // 	VRR-d	VECTOR MULTIPLY AND ADD EVEN
++	OP_VMAH   uint32 = 0xE7AB // 	VRR-d	VECTOR MULTIPLY AND ADD HIGH
++	OP_VMALE  uint32 = 0xE7AC // 	VRR-d	VECTOR MULTIPLY AND ADD LOGICAL EVEN
++	OP_VMALH  uint32 = 0xE7A9 // 	VRR-d	VECTOR MULTIPLY AND ADD LOGICAL HIGH
++	OP_VMALO  uint32 = 0xE7AD // 	VRR-d	VECTOR MULTIPLY AND ADD LOGICAL ODD
++	OP_VMAL   uint32 = 0xE7AA // 	VRR-d	VECTOR MULTIPLY AND ADD LOW
++	OP_VMAO   uint32 = 0xE7AF // 	VRR-d	VECTOR MULTIPLY AND ADD ODD
++	OP_VME    uint32 = 0xE7A6 // 	VRR-c	VECTOR MULTIPLY EVEN
++	OP_VMH    uint32 = 0xE7A3 // 	VRR-c	VECTOR MULTIPLY HIGH
++	OP_VMLE   uint32 = 0xE7A4 // 	VRR-c	VECTOR MULTIPLY EVEN LOGICAL
++	OP_VMLH   uint32 = 0xE7A1 // 	VRR-c	VECTOR MULTIPLY HIGH LOGICAL
++	OP_VMLO   uint32 = 0xE7A5 // 	VRR-c	VECTOR MULTIPLY ODD LOGICAL
++	OP_VML    uint32 = 0xE7A2 // 	VRR-c	VECTOR MULTIPLY LOW
++	OP_VMO    uint32 = 0xE7A7 // 	VRR-c	VECTOR MULTIPLY ODD
++	OP_VNO    uint32 = 0xE76B // 	VRR-c	VECTOR NOR
++	OP_VO     uint32 = 0xE76A // 	VRR-c	VECTOR OR
++	OP_VPK    uint32 = 0xE794 // 	VRR-c	VECTOR PACK
++	OP_VPKLS  uint32 = 0xE795 // 	VRR-b	VECTOR PACK LOGICAL SATURATE
++	OP_VPKS   uint32 = 0xE797 // 	VRR-b	VECTOR PACK SATURATE
++	OP_VPERM  uint32 = 0xE78C // 	VRR-e	VECTOR PERMUTE
++	OP_VPDI   uint32 = 0xE784 // 	VRR-c	VECTOR PERMUTE DOUBLEWORD IMMEDIATE
++	OP_VPOPCT uint32 = 0xE750 // 	VRR-a	VECTOR POPULATION COUNT
++	OP_VREP   uint32 = 0xE74D // 	VRI-c	VECTOR REPLICATE
++	OP_VREPI  uint32 = 0xE745 // 	VRI-a	VECTOR REPLICATE IMMEDIATE
++	OP_VSCEF  uint32 = 0xE71B // 	VRV	VECTOR SCATTER ELEMENT (32)
++	OP_VSCEG  uint32 = 0xE71A // 	VRV	VECTOR SCATTER ELEMENT (64)
++	OP_VSEL   uint32 = 0xE78D // 	VRR-e	VECTOR SELECT
++	OP_VSL    uint32 = 0xE774 // 	VRR-c	VECTOR SHIFT LEFT
++	OP_VSLB   uint32 = 0xE775 // 	VRR-c	VECTOR SHIFT LEFT BY BYTE
++	OP_VSLDB  uint32 = 0xE777 // 	VRI-d	VECTOR SHIFT LEFT DOUBLE BY BYTE
++	OP_VSRA   uint32 = 0xE77E // 	VRR-c	VECTOR SHIFT RIGHT ARITHMETIC
++	OP_VSRAB  uint32 = 0xE77F // 	VRR-c	VECTOR SHIFT RIGHT ARITHMETIC BY BYTE
++	OP_VSRL   uint32 = 0xE77C // 	VRR-c	VECTOR SHIFT RIGHT LOGICAL
++	OP_VSRLB  uint32 = 0xE77D // 	VRR-c	VECTOR SHIFT RIGHT LOGICAL BY BYTE
++	OP_VSEG   uint32 = 0xE75F // 	VRR-a	VECTOR SIGN EXTEND TO DOUBLEWORD
++	OP_VST    uint32 = 0xE70E // 	VRX	VECTOR STORE
++	OP_VSTEH  uint32 = 0xE709 // 	VRX	VECTOR STORE ELEMENT (16)
++	OP_VSTEF  uint32 = 0xE70B // 	VRX	VECTOR STORE ELEMENT (32)
++	OP_VSTEG  uint32 = 0xE70A // 	VRX	VECTOR STORE ELEMENT (64)
++	OP_VSTEB  uint32 = 0xE708 // 	VRX	VECTOR STORE ELEMENT (8)
++	OP_VSTM   uint32 = 0xE73E // 	VRS-a	VECTOR STORE MULTIPLE
++	OP_VSTL   uint32 = 0xE73F // 	VRS-b	VECTOR STORE WITH LENGTH
++	OP_VSTRC  uint32 = 0xE78A // 	VRR-d	VECTOR STRING RANGE COMPARE
++	OP_VS     uint32 = 0xE7F7 // 	VRR-c	VECTOR SUBTRACT
++	OP_VSCBI  uint32 = 0xE7F5 // 	VRR-c	VECTOR SUBTRACT COMPUTE BORROW INDICATION
++	OP_VSBCBI uint32 = 0xE7BD // 	VRR-d	VECTOR SUBTRACT WITH BORROW COMPUTE BORROW INDICATION
++	OP_VSBI   uint32 = 0xE7BF // 	VRR-d	VECTOR SUBTRACT WITH BORROW INDICATION
++	OP_VSUMG  uint32 = 0xE765 // 	VRR-c	VECTOR SUM ACROSS DOUBLEWORD
++	OP_VSUMQ  uint32 = 0xE767 // 	VRR-c	VECTOR SUM ACROSS QUADWORD
++	OP_VSUM   uint32 = 0xE764 // 	VRR-c	VECTOR SUM ACROSS WORD
++	OP_VTM    uint32 = 0xE7D8 // 	VRR-a	VECTOR TEST UNDER MASK
++	OP_VUPH   uint32 = 0xE7D7 // 	VRR-a	VECTOR UNPACK HIGH
++	OP_VUPLH  uint32 = 0xE7D5 // 	VRR-a	VECTOR UNPACK LOGICAL HIGH
++	OP_VUPLL  uint32 = 0xE7D4 // 	VRR-a	VECTOR UNPACK LOGICAL LOW
++	OP_VUPL   uint32 = 0xE7D6 // 	VRR-a	VECTOR UNPACK LOW
++)
++
++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
++}
++
++func addrilrelocoffset(ctxt *obj.Link, sym *obj.LSym, add, offset 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 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 {
++			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 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)
++		}
++
++		v := vregoff(ctxt, &p.From)
++		r := p.Reg
++		if r == 0 {
++			r = p.To.Reg
++		}
++		switch p.As {
++		default:
++		case AADD:
++			if r == p.To.Reg {
++				RIL(a, OP_AGFI, uint32(p.To.Reg), uint32(v), asm)
++			} else if int64(int16(v)) == v {
++				RIE(d, OP_AGHIK, uint32(p.To.Reg), uint32(r), uint32(v), 0, 0, 0, 0, asm)
++			} else {
++				RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++				RIL(a, OP_AGFI, uint32(p.To.Reg), uint32(v), asm)
++			}
++		case AADDC:
++			if r != p.To.Reg {
++				RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++			}
++			RIL(a, OP_ALGFI, uint32(p.To.Reg), uint32(v), asm)
++		case AMULLW:
++			if r != p.To.Reg {
++				RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
++			}
++			RIL(a, OP_MSGFI, uint32(p.To.Reg), uint32(v), asm)
++		}
++
++	case 23: /* and $lcon,r1,r2 ==> cau+or+and */ /* masks could be done using rlnm etc. */
++
++		v := vregoff(ctxt, &p.From)
++		var opcode uint32
++		r := p.Reg
++		if r == 0 {
++			r = p.To.Reg
++		}
++		if r == p.To.Reg {
++			switch p.As {
++			default:
++				ctxt.Diag("%v is not supported", p)
++			case AAND:
++				if v >= 0 { // needs zero extend
++					RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++					RRE(OP_NGR, uint32(p.To.Reg), REGTMP, asm)
++				} else if int64(int16(v)) == v {
++					RI(OP_NILL, uint32(p.To.Reg), uint32(v), asm)
++				} else { //  r.To.Reg & 0xffffffff00000000 & uint32(v)
++					RIL(a, OP_NILF, uint32(p.To.Reg), uint32(v), asm)
++				}
++			case AOR:
++				if int64(uint32(v)) != v { // needs sign extend
++					RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++					RRE(OP_OGR, uint32(p.To.Reg), REGTMP, asm)
++				} else if int64(uint16(v)) == v {
++					RI(OP_OILL, uint32(p.To.Reg), uint32(v), asm)
++				} else {
++					RIL(a, OP_OILF, uint32(p.To.Reg), uint32(v), asm)
++				}
++			case AXOR:
++				if int64(uint32(v)) != v { // needs sign extend
++					RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++					RRE(OP_XGR, uint32(p.To.Reg), REGTMP, asm)
++				} else {
++					RIL(a, OP_XILF, uint32(p.To.Reg), uint32(v), 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(v), 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 ALEDBR:
++				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 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)
++
++	case 72: // MOV int32 -> s+o(r)(i*1)
++		v := regoff(ctxt, &p.From)
++		d := regoff(ctxt, &p.To)
++		r := p.To.Reg
++		x := p.To.Index
++		if r == 0 {
++			r = o.param
++		}
++		if p.From.Sym != nil {
++			RIL(b, OP_LARL, REGTMP, 0, asm)
++			if v&0x1 != 0 {
++				v -= 1
++				RX(OP_LA, uint32(REGTMP), uint32(REGTMP), 0, 1, asm)
++			}
++			addrilreloc(ctxt, p.From.Sym, int64(v))
++			if d < -DISP20/2 || d >= DISP20/2 {
++				RIL(a, OP_LGFI, REGTMP2, uint32(d), asm)
++				if x != 0 {
++					RRE(OP_AGR, REGTMP2, uint32(x), asm)
++				}
++				d = 0
++				x = REGTMP2
++			}
++			RXY(0, zopstore(ctxt, int(p.As)), REGTMP, uint32(x), uint32(r), uint32(d), asm)
++		} else if int32(int16(v)) == v && x == 0 && d >= 0 && d < DISP12 {
++			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
++			}
++			if opcode == OP_MVI {
++				SI(opcode, uint32(v), uint32(r), uint32(d), asm)
++			} else {
++				SIL(opcode, uint32(r), uint32(d), uint32(v), asm)
++			}
++		} else {
++			RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
++			if d < -DISP20/2 || d >= DISP20/2 {
++				RIL(a, OP_LGFI, REGTMP2, uint32(d), asm)
++				if x != 0 {
++					RRE(OP_AGR, REGTMP2, uint32(x), asm)
++				}
++				d = 0
++				x = REGTMP2
++			}
++			RXY(0, zopstore(ctxt, int(p.As)), REGTMP, uint32(x), uint32(r), uint32(d), asm)
++		}
++
++	case 73: // MOV int32 -> addr
++		v := regoff(ctxt, &p.From)
++		d := regoff(ctxt, &p.To)
++		a := uint32(0)
++		if d&1 != 0 {
++			d -= 1
++			a = 1
++		}
++		RIL(b, OP_LARL, REGTMP, uint32(d), asm)
++		addrilreloc(ctxt, p.To.Sym, int64(d))
++		if p.From.Sym != nil {
++			RIL(b, OP_LARL, REGTMP2, 0, asm)
++			a := uint32(0)
++			if v&0x1 != 0 {
++				v -= 1
++				RX(OP_LA, uint32(REGTMP2), uint32(REGTMP2), 0, 1, asm)
++			}
++			addrilrelocoffset(ctxt, p.From.Sym, int64(v), FORMAT_RIL_size)
++			RXY(0, zopstore(ctxt, int(p.As)), REGTMP2, 0, REGTMP, a, asm)
++		} else if int32(int16(v)) == v {
++			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
++			}
++			if opcode == OP_MVI {
++				SI(opcode, uint32(v), uint32(REGTMP), a, asm)
++			} else {
++				SIL(opcode, uint32(REGTMP), a, uint32(v), asm)
++			}
++		} else {
++			RIL(a, OP_LGFI, REGTMP2, uint32(v), asm)
++			RXY(0, zopstore(ctxt, int(p.As)), REGTMP2, 0, REGTMP, a, 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)
++			adj := uint32(0) // adjustment needed for odd addresses
++			if v&1 != 0 {
++				v -= 1
++				adj = 1
++			}
++			RX(OP_STC, uint32(p.From.Reg), REGTMP, 0, adj, 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)
++					RXY(0, OP_LG, uint32(p.To.Reg), REGTMP, 0, 1, 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)
++				adj := uint32(0) // adjustment needed for odd addresses
++				if d&1 != 0 {
++					d -= 1
++					adj = 1
++				}
++				switch p.As {
++				case AMOVB:
++					RXY(0, OP_LGB, uint32(p.To.Reg), REGTMP, 0, adj, asm)
++				case AMOVBZ:
++					RXY(0, OP_LLGC, uint32(p.To.Reg), REGTMP, 0, adj, 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)
++		d1 := regoff(ctxt, &p.To)
++		d2 := regoff(ctxt, &p.From)
++		if l < 1 || l > 256 {
++			ctxt.Diag("number of bytes (%v) not in range [1,256]", l)
++		}
++		b1 := p.To.Reg
++		b2 := p.From.Reg
++		var opcode uint32
++		switch p.As {
++		default:
++			ctxt.Diag("unexpected opcode %v", p.As)
++		case AMVC:
++			opcode = OP_MVC
++		case ACLC:
++			opcode = OP_CLC
++			// swap operand order for CLC so that it matches CMP
++			b1, b2 = b2, b1
++			d1, d2 = d2, d1
++		case AXC:
++			opcode = OP_XC
++		case AOC:
++			opcode = OP_OC
++		case ANC:
++			opcode = OP_NC
++		}
++		SS(a, opcode, uint32(l-1), 0, uint32(b1), uint32(d1), uint32(b2), 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 */
++		d := vregoff(ctxt, &p.From)
++		x := p.From.Index
++		b := p.From.Reg
++		if b == 0 {
++			b = o.param
++		}
++		switch p.As {
++		case ALA:
++			RX(OP_LA, uint32(p.To.Reg), uint32(x), uint32(b), uint32(d), asm)
++		case ALAY:
++			RXY(0, OP_LAY, uint32(p.To.Reg), uint32(x), uint32(b), uint32(d), 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:
++		var v int32
++		if p.Pcond != nil {
++			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:
++		var v int32
++		if p.Pcond != nil {
++			v = int32((p.Pcond.Pc - p.Pc) >> 1)
++		}
++		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
++		}
++		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 93: // GOT lookup
++		v := vregoff(ctxt, &p.To)
++		if v != 0 {
++			ctxt.Diag("invalid offset against GOT slot %v", p)
++		}
++		RIL(b, OP_LGRL, uint32(p.To.Reg), 0, asm)
++		rel := obj.Addrel(ctxt.Cursym)
++		rel.Off = int32(ctxt.Pc + 2)
++		rel.Siz = 4
++		rel.Sym = p.From.Sym
++		rel.Type = obj.R_GOTPCREL
++		rel.Add = 2 + int64(rel.Siz)
++
++	case 94: // TLS local exec model
++		RIL(b, OP_LARL, REGTMP, (FORMAT_RIL_size+FORMAT_RXY_size+FORMAT_RI_size)>>1, asm)
++		RXY(0, OP_LG, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++		RI(OP_BRC, 0xF, (FORMAT_RI_size+8)>>1, asm)
++		*asm = append(*asm, 0, 0, 0, 0, 0, 0, 0, 0)
++		rel := obj.Addrel(ctxt.Cursym)
++		rel.Off = int32(ctxt.Pc + FORMAT_RIL_size + FORMAT_RXY_size + FORMAT_RI_size)
++		rel.Siz = 8
++		rel.Sym = p.From.Sym
++		rel.Type = obj.R_TLS_LE
++		rel.Add = 0
++
++	case 95: // TLS initial exec model
++		// Assembly                   | Relocation symbol    | Done Here?
++		// --------------------------------------------------------------
++		// ear  %r11, %a0             |                      |
++		// sllg %r11, %r11, 32        |                      |
++		// ear  %r11, %a1             |                      |
++		// larl %r10, <var>@indntpoff | R_390_TLS_IEENT      | Y
++		// lg   %r10, 0(%r10)         | R_390_TLS_LOAD (tag) | Y
++		// la   %r10, 0(%r10, %r11)   |                      |
++		// --------------------------------------------------------------
++
++		// R_390_TLS_IEENT
++		RIL(b, OP_LARL, uint32(REGTMP), 0, asm)
++		ieent := obj.Addrel(ctxt.Cursym)
++		ieent.Off = int32(ctxt.Pc + 2)
++		ieent.Siz = 4
++		ieent.Sym = p.From.Sym
++		ieent.Type = obj.R_TLS_IE
++		ieent.Add = 2 + int64(ieent.Siz)
++
++		// R_390_TLS_LOAD
++		RXY(0, OP_LGF, uint32(p.To.Reg), REGTMP, 0, 0, asm)
++		// TODO(mundaym): add R_390_TLS_LOAD relocation here
++		// not strictly required but might allow the linker to optimize
++
++	case 96: // CLEAR macro
++		length := vregoff(ctxt, &p.From)
++		offset := vregoff(ctxt, &p.To)
++		reg := p.To.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		if length <= 0 {
++			ctxt.Diag("cannot CLEAR %d bytes, must be greater than 0", length)
++		}
++		for length > 0 {
++			if offset < 0 || offset >= DISP12 {
++				if offset >= -DISP20/2 && offset < DISP20/2 {
++					RXY(0, OP_LAY, uint32(REGTMP), uint32(reg), 0, uint32(offset), asm)
++				} else {
++					if reg != REGTMP {
++						RRE(OP_LGR, uint32(REGTMP), uint32(reg), asm)
++					}
++					RIL(a, OP_AGFI, uint32(REGTMP), uint32(offset), asm)
++				}
++				reg = REGTMP
++				offset = 0
++			}
++			size := length
++			if size > 256 {
++				size = 256
++			}
++
++			switch size {
++			case 1:
++				SI(OP_MVI, 0, uint32(reg), uint32(offset), asm)
++			case 2:
++				SIL(OP_MVHHI, uint32(reg), uint32(offset), 0, asm)
++			case 4:
++				SIL(OP_MVHI, uint32(reg), uint32(offset), 0, asm)
++			case 8:
++				SIL(OP_MVGHI, uint32(reg), uint32(offset), 0, asm)
++			default:
++				SS(a, OP_XC, uint32(size-1), 0, uint32(reg), uint32(offset), uint32(reg), uint32(offset), asm)
++			}
++
++			length -= size
++			offset += size
++		}
++
++	case 97: // STORE MULTIPLE (STMG/STMY)
++		rstart := p.From.Reg
++		rend := p.Reg
++		offset := vregoff(ctxt, &p.To)
++		reg := p.To.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		if offset < -DISP20/2 || offset >= DISP20/2 {
++			if reg != REGTMP {
++				RRE(OP_LGR, uint32(REGTMP), uint32(reg), asm)
++			}
++			RIL(a, OP_AGFI, uint32(REGTMP), uint32(offset), asm)
++			reg = REGTMP
++		}
++		switch p.As {
++		case ASTMY:
++			if offset >= 0 && offset < DISP12 {
++				RS(OP_STM, uint32(rstart), uint32(rend), uint32(reg), uint32(offset), asm)
++			} else {
++				RSY(OP_STMY, uint32(rstart), uint32(rend), uint32(reg), uint32(offset), asm)
++			}
++		case ASTMG:
++			RSY(OP_STMG, uint32(rstart), uint32(rend), uint32(reg), uint32(offset), asm)
++		}
++
++	case 98: // LOAD MULTIPLE (LMG/LMY)
++		rstart := p.Reg
++		rend := p.To.Reg
++		offset := vregoff(ctxt, &p.From)
++		reg := p.From.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		if offset < -DISP20/2 || offset >= DISP20/2 {
++			if reg != REGTMP {
++				RRE(OP_LGR, uint32(REGTMP), uint32(reg), asm)
++			}
++			RIL(a, OP_AGFI, uint32(REGTMP), uint32(offset), asm)
++			reg = REGTMP
++		}
++		switch p.As {
++		case ALMY:
++			if offset >= 0 && offset < DISP12 {
++				RS(OP_LM, uint32(rstart), uint32(rend), uint32(reg), uint32(offset), asm)
++			} else {
++				RSY(OP_LMY, uint32(rstart), uint32(rend), uint32(reg), uint32(offset), asm)
++			}
++		case ALMG:
++			RSY(OP_LMG, uint32(rstart), uint32(rend), uint32(reg), uint32(offset), asm)
++		}
++
++	case 100: // VRX STORE
++		op, m3, _ := vop(p.As)
++		if p.From3 != nil {
++			m3 = uint32(vregoff(ctxt, p.From3))
++		}
++		b2 := p.To.Reg
++		if b2 == 0 {
++			b2 = o.param
++		}
++		d2 := uint32(vregoff(ctxt, &p.To))
++		vrx(op, uint32(p.From.Reg), uint32(p.To.Index), uint32(b2), d2, m3, asm)
++
++	case 101: // VRX LOAD
++		op, m3, _ := vop(p.As)
++		if p.From3 != nil {
++			m3 = uint32(vregoff(ctxt, p.From3))
++		}
++		b2 := p.From.Reg
++		if b2 == 0 {
++			b2 = o.param
++		}
++		d2 := uint32(vregoff(ctxt, &p.From))
++		vrx(op, uint32(p.To.Reg), uint32(p.From.Index), uint32(b2), d2, m3, asm)
++
++	case 102: // VRV SCATTER
++		op, m3, _ := vop(p.As)
++		if p.From3 != nil {
++			m3 = uint32(vregoff(ctxt, p.From3))
++		}
++		b2 := p.To.Reg
++		if b2 == 0 {
++			b2 = o.param
++		}
++		d2 := uint32(vregoff(ctxt, &p.To))
++		vrv(op, uint32(p.From.Reg), uint32(p.To.Index), uint32(b2), d2, m3, asm)
++
++	case 103: // VRV GATHER
++		op, m3, _ := vop(p.As)
++		if p.From3 != nil {
++			m3 = uint32(vregoff(ctxt, p.From3))
++		}
++		b2 := p.From.Reg
++		if b2 == 0 {
++			b2 = o.param
++		}
++		d2 := uint32(vregoff(ctxt, &p.From))
++		vrv(op, uint32(p.To.Reg), uint32(p.From.Index), uint32(b2), d2, m3, asm)
++
++	case 104: // VRS SHIFT/ROTATE and LOAD GR FROM VR ELEMENT
++		op, m4, _ := vop(p.As)
++		fr := p.Reg
++		if fr == 0 {
++			fr = p.To.Reg
++		}
++		bits := uint32(vregoff(ctxt, &p.From))
++		vrs(op, uint32(p.To.Reg), uint32(fr), uint32(p.From.Reg), bits, m4, asm)
++
++	case 105: // VRS STORE MULTIPLE
++		op, _, _ := vop(p.As)
++		offset := uint32(vregoff(ctxt, &p.To))
++		reg := p.To.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		vrs(op, uint32(p.From.Reg), uint32(p.Reg), uint32(reg), offset, 0, asm)
++
++	case 106: // VRS LOAD MULTIPLE
++		op, _, _ := vop(p.As)
++		offset := uint32(vregoff(ctxt, &p.From))
++		reg := p.From.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		vrs(op, uint32(p.Reg), uint32(p.To.Reg), uint32(reg), offset, 0, asm)
++
++	case 107: // VRS STORE WITH LENGTH
++		op, _, _ := vop(p.As)
++		offset := uint32(vregoff(ctxt, &p.To))
++		reg := p.To.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		vrs(op, uint32(p.From.Reg), uint32(p.From3.Reg), uint32(reg), offset, 0, asm)
++
++	case 108: // VRS LOAD WITH LENGTH
++		op, _, _ := vop(p.As)
++		offset := uint32(vregoff(ctxt, &p.From))
++		reg := p.From.Reg
++		if reg == 0 {
++			reg = o.param
++		}
++		vrs(op, uint32(p.To.Reg), uint32(p.From3.Reg), uint32(reg), offset, 0, asm)
++
++	case 109: // VRI-a instructions
++		op, _, _ := vop(p.As)
++		i2 := uint32(vregoff(ctxt, &p.From))
++		switch p.As {
++		case AVZERO:
++			i2 = 0
++		case AVONE:
++			i2 = 0xffff
++		}
++		m3 := uint32(0)
++		if p.From3 != nil {
++			m3 = uint32(vregoff(ctxt, p.From3))
++		}
++		vria(op, uint32(p.To.Reg), i2, m3, asm)
++
++	case 110:
++		op, m4, _ := vop(p.As)
++		i2 := uint32(vregoff(ctxt, p.From3))
++		i3 := uint32(vregoff(ctxt, &p.From))
++		vrib(op, uint32(p.To.Reg), i2, i3, m4, asm)
++
++	case 111:
++		op, m4, _ := vop(p.As)
++		i2 := uint32(vregoff(ctxt, &p.From))
++		vric(op, uint32(p.To.Reg), uint32(p.Reg), i2, m4, asm)
++
++	case 112:
++		op, m5, _ := vop(p.As)
++		i4 := uint32(vregoff(ctxt, p.From3))
++		vrid(op, uint32(p.To.Reg), uint32(p.From.Reg), uint32(p.Reg), i4, m5, asm)
++
++	case 113:
++		op, m4, _ := vop(p.As)
++		m5 := singleElementMask(p.As)
++		i3 := uint32(vregoff(ctxt, &p.From))
++		vrie(op, uint32(p.To.Reg), uint32(p.Reg), i3, m5, m4, asm)
++
++	case 114: // VRR-a
++		op, m3, m5 := vop(p.As)
++		m4 := singleElementMask(p.As)
++		vrra(op, uint32(p.To.Reg), uint32(p.From.Reg), m5, m4, m3, asm)
++
++	case 115: // VRR-a COMPARE
++		op, m3, m5 := vop(p.As)
++		m4 := singleElementMask(p.As)
++		vrra(op, uint32(p.From.Reg), uint32(p.To.Reg), m5, m4, m3, asm)
++
++	case 116: // VRR-a
++
++	case 117: // VRR-b
++		op, m4, m5 := vop(p.As)
++		vrrb(op, uint32(p.To.Reg), uint32(p.From.Reg), uint32(p.Reg), m5, m4, asm)
++
++	case 118: // VRR-c
++		op, m4, m6 := vop(p.As)
++		m5 := singleElementMask(p.As)
++		v3 := p.Reg
++		if v3 == 0 {
++			v3 = p.To.Reg
++		}
++		vrrc(op, uint32(p.To.Reg), uint32(p.From.Reg), uint32(v3), m6, m5, m4, asm)
++
++	case 119: // VRR-c SHIFT/ROTATE/DIVIDE/SUB (rhs value on the left, like SLD, DIV etc.)
++		op, m4, m6 := vop(p.As)
++		m5 := singleElementMask(p.As)
++		v2 := p.Reg
++		if v2 == 0 {
++			v2 = p.To.Reg
++		}
++		vrrc(op, uint32(p.To.Reg), uint32(v2), uint32(p.From.Reg), m6, m5, m4, asm)
++
++	case 120: // VRR-d
++		op, m6, _ := vop(p.As)
++		m5 := singleElementMask(p.As)
++		v1 := uint32(p.To.Reg)
++		v2 := uint32(p.From3.Reg)
++		v3 := uint32(p.From.Reg)
++		v4 := uint32(p.Reg)
++		vrrd(op, v1, v2, v3, m6, m5, v4, asm)
++
++	case 121: // VRR-e
++		op, m6, _ := vop(p.As)
++		m5 := singleElementMask(p.As)
++		v1 := uint32(p.To.Reg)
++		v2 := uint32(p.From3.Reg)
++		v3 := uint32(p.From.Reg)
++		v4 := uint32(p.Reg)
++		vrre(op, v1, v2, v3, m5, m6, v4, asm)
++
++	case 122: // VRR-f LOAD VRS FROM GRS DISJOINT
++		op, _, _ := vop(p.As)
++		vrrf(op, uint32(p.To.Reg), uint32(p.From.Reg), uint32(p.Reg), 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))
++}
++
++func rxb(va, vb, vc, vd uint32) uint8 {
++	mask := uint8(0)
++	if va >= REG_V16 && va <= REG_V31 {
++		mask |= 0x8
++	}
++	if vb >= REG_V16 && vb <= REG_V31 {
++		mask |= 0x4
++	}
++	if vc >= REG_V16 && vc <= REG_V31 {
++		mask |= 0x2
++	}
++	if vd >= REG_V16 && vd <= REG_V31 {
++		mask |= 0x1
++	}
++	return mask
++}
++
++func vrx(op, v1, x2, b2, d2, m3 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(x2)&0xf),
++		(uint8(b2)<<4)|(uint8(d2>>8)&0xf),
++		uint8(d2),
++		(uint8(m3)<<4)|rxb(v1, 0, 0, 0),
++		uint8(op))
++}
++
++func vrv(op, v1, v2, b2, d2, m3 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		(uint8(b2)<<4)|(uint8(d2>>8)&0xf),
++		uint8(d2),
++		(uint8(m3)<<4)|rxb(v1, v2, 0, 0),
++		uint8(op))
++}
++
++func vrs(op, v1, v3_r3, b2, d2, m4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v3_r3)&0xf),
++		(uint8(b2)<<4)|(uint8(d2>>8)&0xf),
++		uint8(d2),
++		(uint8(m4)<<4)|rxb(v1, v3_r3, 0, 0),
++		uint8(op))
++}
++
++func vrra(op, v1, v2, m5, m4, m3 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		0,
++		(uint8(m5)<<4)|(uint8(m4)&0xf),
++		(uint8(m3)<<4)|rxb(v1, v2, 0, 0),
++		uint8(op))
++}
++
++func vrrb(op, v1, v2, v3, m5, m4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		uint8(v3)<<4,
++		uint8(m5)<<4,
++		(uint8(m4)<<4)|rxb(v1, v2, v3, 0),
++		uint8(op))
++}
++
++func vrrc(op, v1, v2, v3, m6, m5, m4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		uint8(v3)<<4,
++		(uint8(m6)<<4)|(uint8(m5)&0xf),
++		(uint8(m4)<<4)|rxb(v1, v2, v3, 0),
++		uint8(op))
++}
++
++func vrrd(op, v1, v2, v3, m5, m6, v4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		(uint8(v3)<<4)|(uint8(m5)&0xf),
++		uint8(m6)<<4,
++		(uint8(v4)<<4)|rxb(v1, v2, v3, v4),
++		uint8(op))
++}
++
++func vrre(op, v1, v2, v3, m6, m5, v4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		(uint8(v3)<<4)|(uint8(m6)&0xf),
++		uint8(m5),
++		(uint8(v4)<<4)|rxb(v1, v2, v3, v4),
++		uint8(op))
++}
++
++func vrrf(op, v1, r2, r3 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(r2)&0xf),
++		uint8(r3)<<4,
++		0,
++		rxb(v1, 0, 0, 0),
++		uint8(op))
++}
++
++func vria(op, v1, i2, m3 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		uint8(v1)<<4,
++		uint8(i2>>8),
++		uint8(i2),
++		(uint8(m3)<<4)|rxb(v1, 0, 0, 0),
++		uint8(op))
++}
++
++func vrib(op, v1, i2, i3, m4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		uint8(v1)<<4,
++		uint8(i2),
++		uint8(i3),
++		(uint8(m4)<<4)|rxb(v1, 0, 0, 0),
++		uint8(op))
++}
++
++func vric(op, v1, v3, i2, m4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v3)&0xf),
++		uint8(i2>>8),
++		uint8(i2),
++		(uint8(m4)<<4)|rxb(v1, v3, 0, 0),
++		uint8(op))
++}
++
++func vrid(op, v1, v2, v3, i4, m5 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		uint8(v3)<<4,
++		uint8(i4),
++		(uint8(m5)<<4)|rxb(v1, v2, v3, 0),
++		uint8(op))
++}
++
++func vrie(op, v1, v2, i3, m5, m4 uint32, asm *[]byte) {
++	*asm = append(*asm,
++		uint8(op>>8),
++		(uint8(v1)<<4)|(uint8(v2)&0xf),
++		uint8(i3>>4),
++		(uint8(i3)<<4)|(uint8(m5)&0xf),
++		(uint8(m4)<<4)|rxb(v1, v2, 0, 0),
++		uint8(op))
++}
+diff --git a/src/cmd/internal/obj/s390x/listz.go b/src/cmd/internal/obj/s390x/listz.go
+new file mode 100644
+index 0000000..99702c9
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/listz.go
+@@ -0,0 +1,73 @@
++// 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_R0+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)
++	}
++	if REG_V0 <= r && r <= REG_V31 {
++		return fmt.Sprintf("V%d", r-REG_V0)
++	}
++	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..1beb068
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/objz.go
+@@ -0,0 +1,1014 @@
++// 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.Sym.Local = true
++			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.Sym.Local = true
++			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.Sym.Local = true
++			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
++		}
++	}
++
++	if ctxt.Flag_dynlink {
++		rewriteToUseGot(ctxt, p)
++	}
++}
++
++// Rewrite p, if necessary, to access global data via the global offset table.
++func rewriteToUseGot(ctxt *obj.Link, p *obj.Prog) {
++	// At the moment EXRL instructions are not emitted by the compiler and only reference local symbols in
++	// assembly code.
++	// TODO(mundaym): A better solution needs to be found.
++	if p.As == AEXRL {
++		return
++	}
++
++	// We only care about global data: NAME_EXTERN means a global
++	// symbol in the Go sense, and p.Sym.Local is true for a few
++	// internally defined symbols.
++	if p.From.Type == obj.TYPE_ADDR && p.From.Name == obj.NAME_EXTERN && !p.From.Sym.Local {
++		// MOVD $sym, Rx becomes MOVD sym at GOT, Rx
++		// MOVD $sym+<off>, Rx becomes MOVD sym at GOT, Rx; ADD <off>, Rx
++		if p.To.Type != obj.TYPE_REG || p.As != AMOVD {
++			ctxt.Diag("do not know how to handle LEA-type insn to non-register in %v with -dynlink", p)
++		}
++		p.From.Type = obj.TYPE_MEM
++		p.From.Name = obj.NAME_GOTREF
++		q := p
++		if p.From.Offset != 0 {
++			q = obj.Appendp(ctxt, p)
++			q.As = AADD // TODO(mundaym): should this be LA for performance (address gen short circuit)?
++			q.From.Type = obj.TYPE_CONST
++			q.From.Offset = p.From.Offset
++			q.To = p.To
++			p.From.Offset = 0
++		}
++	}
++	if p.From3 != nil && p.From3.Name == obj.NAME_EXTERN {
++		ctxt.Diag("don't know how to handle %v with -dynlink", p)
++	}
++	var source *obj.Addr
++	// MOVD sym, Ry becomes MOVD sym at GOT, REGTMP; MOVD (REGTMP), Ry
++	// MOVD Ry, sym becomes MOVD sym at GOT, REGTMP; MOVD Ry, (REGTMP)
++	// An addition may be inserted between the two MOVs if there is an offset.
++	if p.From.Name == obj.NAME_EXTERN && !p.From.Sym.Local {
++		if p.To.Name == obj.NAME_EXTERN && !p.To.Sym.Local {
++			ctxt.Diag("cannot handle NAME_EXTERN on both sides in %v with -dynlink", p)
++		}
++		source = &p.From
++	} else if p.To.Name == obj.NAME_EXTERN && !p.To.Sym.Local {
++		source = &p.To
++	} else {
++		return
++	}
++	if p.As == obj.ATEXT || p.As == obj.AFUNCDATA || p.As == obj.ACALL || p.As == obj.ARET || p.As == obj.AJMP {
++		return
++	}
++	if source.Sym.Type == obj.STLSBSS {
++		return
++	}
++	if source.Type != obj.TYPE_MEM {
++		ctxt.Diag("don't know how to handle %v with -dynlink", p)
++	}
++	p1 := obj.Appendp(ctxt, p)
++	p2 := obj.Appendp(ctxt, p1)
++
++	p1.As = AMOVD
++	p1.From.Type = obj.TYPE_MEM
++	p1.From.Sym = source.Sym
++	p1.From.Name = obj.NAME_GOTREF
++	p1.To.Type = obj.TYPE_REG
++	p1.To.Reg = REGTMP
++
++	p2.As = p.As
++	p2.From = p.From
++	p2.To = p.To
++	if p.From.Name == obj.NAME_EXTERN {
++		p2.From.Reg = REGTMP
++		p2.From.Name = obj.NAME_NONE
++		p2.From.Sym = nil
++	} else if p.To.Name == obj.NAME_EXTERN {
++		p2.To.Reg = REGTMP
++		p2.To.Name = obj.NAME_NONE
++		p2.To.Sym = nil
++	} else {
++		return
++	}
++	obj.Nopout(p)
++}
++
++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
++	if textstksiz == -8 {
++		// Compatibility hack.
++		p.From3.Offset |= obj.NOFRAME
++		textstksiz = 0
++	}
++	if textstksiz%8 != 0 {
++		ctxt.Diag("frame size %d not a multiple of 8", textstksiz)
++	}
++	if p.From3.Offset&obj.NOFRAME != 0 {
++		if textstksiz != 0 {
++			ctxt.Diag("NOFRAME functions must have a frame size of 0, not %d", textstksiz)
++		}
++	}
++
++	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,
++			AFMOVS,
++			AFMSUB,
++			AFMUL,
++			AFNABS,
++			AFNEG,
++			AFNMADD,
++			AFNMSUB,
++			ALEDBR,
++			ALDEBR,
++			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
++	var pLast *obj.Prog
++	var pPre *obj.Prog
++	var pPreempt *obj.Prog
++	wasSplit := false
++	for p := cursym.Text; p != nil; p = p.Link {
++		pLast = p
++		o = int(p.As)
++		switch o {
++		case obj.ATEXT:
++			autosize = int32(textstksiz)
++
++			if p.Mark&LEAF != 0 && autosize == 0 && p.From3.Offset&obj.NOFRAME == 0 {
++				// A leaf function with no locals has no frame.
++				p.From3.Offset |= obj.NOFRAME
++			}
++
++			if p.From3.Offset&obj.NOFRAME == 0 {
++				// If there is a stack frame at all, it includes
++				// space to save the LR.
++				autosize += int32(ctxt.FixedFrameSize())
++			}
++
++			p.To.Offset = int64(autosize)
++
++			q = p
++
++			if p.From3.Offset&obj.NOSPLIT == 0 {
++				p, pPreempt = stacksplitPre(ctxt, p, autosize) // emit pre part of split check
++				pPre = p
++				wasSplit = true //need post part of split
++			}
++
++			if autosize != 0 {
++				q = obj.Appendp(ctxt, p)
++				q.As = AMOVD
++				q.From.Type = obj.TYPE_ADDR
++				q.From.Offset = int64(-autosize)
++				q.From.Reg = REGSP // not actually needed - REGSP is assumed if no reg is provided
++				q.To.Type = obj.TYPE_REG
++				q.To.Reg = REGSP
++				q.Spadj = autosize
++			} else if cursym.Text.Mark&LEAF == 0 {
++				// A very few functions that do not return to their caller
++				// (e.g. gogo) are not identified as leaves but still have
++				// no frame.
++				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) + ctxt.FixedFrameSize()
++				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 = ctxt.FixedFrameSize()
++				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
++			}
++
++			retTarget := p.To.Sym
++
++			if cursym.Text.Mark&LEAF != 0 {
++				if autosize == 0 {
++					p.As = ABR
++					p.From = obj.Addr{}
++					if retTarget == nil {
++						p.To.Type = obj.TYPE_REG
++						p.To.Reg = REG_LR
++					} else {
++						p.To.Type = obj.TYPE_BRANCH
++						p.To.Sym = retTarget
++					}
++					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{}
++			if retTarget == nil {
++				q.To.Type = obj.TYPE_REG
++				q.To.Reg = REG_LR
++			} else {
++				q.To.Type = obj.TYPE_BRANCH
++				q.To.Sym = retTarget
++			}
++			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)
++			}
++		}
++	}
++	if wasSplit {
++		pLast = stacksplitPost(ctxt, pLast, pPre, pPreempt) // emit post part of split check
++	}
++}
++
++/*
++// 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 stacksplitPre(ctxt *obj.Link, p *obj.Prog, framesize int32) (*obj.Prog, *obj.Prog) {
++	var q *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
++
++	q = nil
++	if framesize <= obj.StackSmall {
++		// small stack: SP < stackguard
++		//	CMP	stackguard, SP
++
++		//p.To.Type = obj.TYPE_REG
++		//p.To.Reg = REGSP
++
++		// q1: BLT	done
++
++		p = obj.Appendp(ctxt, p)
++		//q1 = p
++		p.From.Type = obj.TYPE_REG
++		p.From.Reg = REG_R3
++		p.Reg = REGSP
++		p.As = ACMPUBGE
++		p.To.Type = obj.TYPE_BRANCH
++		//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
++
++		//p = obj.Appendp(ctxt, p)
++		//p.As = ABGE
++		//p.To.Type = obj.TYPE_BRANCH
++
++	} 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.From.Type = obj.TYPE_REG
++		p.From.Reg = REG_R3
++		p.Reg = REG_R4
++		p.As = ACMPUBGE
++		p.To.Type = obj.TYPE_BRANCH
++
++	} 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)), TEMP
++		//	CMPUBGE	TEMP, 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.From.Type = obj.TYPE_REG
++		p.From.Reg = REGTMP
++		p.Reg = REG_R4
++		p.As = ACMPUBGE
++		p.To.Type = obj.TYPE_BRANCH
++	}
++
++	return p, q
++}
++
++func stacksplitPost(ctxt *obj.Link, p *obj.Prog, pPre *obj.Prog, pPreempt *obj.Prog) *obj.Prog {
++
++	// MOVD	LR, R5
++	p = obj.Appendp(ctxt, p)
++	pPre.Pcond = 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 pPreempt != nil {
++		pPreempt.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
++	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,
++	ANEG:   true,
++	AVONE:  true,
++	AVZERO: 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/s390x/vector.go b/src/cmd/internal/obj/s390x/vector.go
+new file mode 100644
+index 0000000..36b4783
+--- /dev/null
++++ b/src/cmd/internal/obj/s390x/vector.go
+@@ -0,0 +1,1057 @@
++// 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.
++
++package s390x
++
++// This file contains utility functions for use when
++// assembling vector instructions.
++
++// vop returns the opcode, element size and condition
++// setting for the given (possibly extended) mnemonic.
++func vop(as int16) (opcode, es, cs uint32) {
++	switch as {
++	default:
++		return 0, 0, 0
++	case AVA:
++		return OP_VA, 0, 0
++	case AVAB:
++		return OP_VA, 0, 0
++	case AVAH:
++		return OP_VA, 1, 0
++	case AVAF:
++		return OP_VA, 2, 0
++	case AVAG:
++		return OP_VA, 3, 0
++	case AVAQ:
++		return OP_VA, 4, 0
++	case AVACC:
++		return OP_VACC, 0, 0
++	case AVACCB:
++		return OP_VACC, 0, 0
++	case AVACCH:
++		return OP_VACC, 1, 0
++	case AVACCF:
++		return OP_VACC, 2, 0
++	case AVACCG:
++		return OP_VACC, 3, 0
++	case AVACCQ:
++		return OP_VACC, 4, 0
++	case AVAC:
++		return OP_VAC, 0, 0
++	case AVACQ:
++		return OP_VAC, 4, 0
++	case AVACCC:
++		return OP_VACCC, 0, 0
++	case AVACCCQ:
++		return OP_VACCC, 4, 0
++	case AVN:
++		return OP_VN, 0, 0
++	case AVNC:
++		return OP_VNC, 0, 0
++	case AVAVG:
++		return OP_VAVG, 0, 0
++	case AVAVGB:
++		return OP_VAVG, 0, 0
++	case AVAVGH:
++		return OP_VAVG, 1, 0
++	case AVAVGF:
++		return OP_VAVG, 2, 0
++	case AVAVGG:
++		return OP_VAVG, 3, 0
++	case AVAVGL:
++		return OP_VAVGL, 0, 0
++	case AVAVGLB:
++		return OP_VAVGL, 0, 0
++	case AVAVGLH:
++		return OP_VAVGL, 1, 0
++	case AVAVGLF:
++		return OP_VAVGL, 2, 0
++	case AVAVGLG:
++		return OP_VAVGL, 3, 0
++	case AVCKSM:
++		return OP_VCKSM, 0, 0
++	case AVCEQ:
++		return OP_VCEQ, 0, 0
++	case AVCEQB:
++		return OP_VCEQ, 0, 0
++	case AVCEQH:
++		return OP_VCEQ, 1, 0
++	case AVCEQF:
++		return OP_VCEQ, 2, 0
++	case AVCEQG:
++		return OP_VCEQ, 3, 0
++	case AVCEQBS:
++		return OP_VCEQ, 0, 1
++	case AVCEQHS:
++		return OP_VCEQ, 1, 1
++	case AVCEQFS:
++		return OP_VCEQ, 2, 1
++	case AVCEQGS:
++		return OP_VCEQ, 3, 1
++	case AVCH:
++		return OP_VCH, 0, 0
++	case AVCHB:
++		return OP_VCH, 0, 0
++	case AVCHH:
++		return OP_VCH, 1, 0
++	case AVCHF:
++		return OP_VCH, 2, 0
++	case AVCHG:
++		return OP_VCH, 3, 0
++	case AVCHBS:
++		return OP_VCH, 0, 1
++	case AVCHHS:
++		return OP_VCH, 1, 1
++	case AVCHFS:
++		return OP_VCH, 2, 1
++	case AVCHGS:
++		return OP_VCH, 3, 1
++	case AVCHL:
++		return OP_VCHL, 0, 0
++	case AVCHLB:
++		return OP_VCHL, 0, 0
++	case AVCHLH:
++		return OP_VCHL, 1, 0
++	case AVCHLF:
++		return OP_VCHL, 2, 0
++	case AVCHLG:
++		return OP_VCHL, 3, 0
++	case AVCHLBS:
++		return OP_VCHL, 0, 1
++	case AVCHLHS:
++		return OP_VCHL, 1, 1
++	case AVCHLFS:
++		return OP_VCHL, 2, 1
++	case AVCHLGS:
++		return OP_VCHL, 3, 1
++	case AVCLZ:
++		return OP_VCLZ, 0, 0
++	case AVCLZB:
++		return OP_VCLZ, 0, 0
++	case AVCLZH:
++		return OP_VCLZ, 1, 0
++	case AVCLZF:
++		return OP_VCLZ, 2, 0
++	case AVCLZG:
++		return OP_VCLZ, 3, 0
++	case AVCTZ:
++		return OP_VCTZ, 0, 0
++	case AVCTZB:
++		return OP_VCTZ, 0, 0
++	case AVCTZH:
++		return OP_VCTZ, 1, 0
++	case AVCTZF:
++		return OP_VCTZ, 2, 0
++	case AVCTZG:
++		return OP_VCTZ, 3, 0
++	case AVEC:
++		return OP_VEC, 0, 0
++	case AVECB:
++		return OP_VEC, 0, 0
++	case AVECH:
++		return OP_VEC, 1, 0
++	case AVECF:
++		return OP_VEC, 2, 0
++	case AVECG:
++		return OP_VEC, 3, 0
++	case AVECL:
++		return OP_VECL, 0, 0
++	case AVECLB:
++		return OP_VECL, 0, 0
++	case AVECLH:
++		return OP_VECL, 1, 0
++	case AVECLF:
++		return OP_VECL, 2, 0
++	case AVECLG:
++		return OP_VECL, 3, 0
++	case AVERIM:
++		return OP_VERIM, 0, 0
++	case AVERIMB:
++		return OP_VERIM, 0, 0
++	case AVERIMH:
++		return OP_VERIM, 1, 0
++	case AVERIMF:
++		return OP_VERIM, 2, 0
++	case AVERIMG:
++		return OP_VERIM, 3, 0
++	case AVERLL:
++		return OP_VERLL, 0, 0
++	case AVERLLB:
++		return OP_VERLL, 0, 0
++	case AVERLLH:
++		return OP_VERLL, 1, 0
++	case AVERLLF:
++		return OP_VERLL, 2, 0
++	case AVERLLG:
++		return OP_VERLL, 3, 0
++	case AVERLLV:
++		return OP_VERLLV, 0, 0
++	case AVERLLVB:
++		return OP_VERLLV, 0, 0
++	case AVERLLVH:
++		return OP_VERLLV, 1, 0
++	case AVERLLVF:
++		return OP_VERLLV, 2, 0
++	case AVERLLVG:
++		return OP_VERLLV, 3, 0
++	case AVESLV:
++		return OP_VESLV, 0, 0
++	case AVESLVB:
++		return OP_VESLV, 0, 0
++	case AVESLVH:
++		return OP_VESLV, 1, 0
++	case AVESLVF:
++		return OP_VESLV, 2, 0
++	case AVESLVG:
++		return OP_VESLV, 3, 0
++	case AVESL:
++		return OP_VESL, 0, 0
++	case AVESLB:
++		return OP_VESL, 0, 0
++	case AVESLH:
++		return OP_VESL, 1, 0
++	case AVESLF:
++		return OP_VESL, 2, 0
++	case AVESLG:
++		return OP_VESL, 3, 0
++	case AVESRA:
++		return OP_VESRA, 0, 0
++	case AVESRAB:
++		return OP_VESRA, 0, 0
++	case AVESRAH:
++		return OP_VESRA, 1, 0
++	case AVESRAF:
++		return OP_VESRA, 2, 0
++	case AVESRAG:
++		return OP_VESRA, 3, 0
++	case AVESRAV:
++		return OP_VESRAV, 0, 0
++	case AVESRAVB:
++		return OP_VESRAV, 0, 0
++	case AVESRAVH:
++		return OP_VESRAV, 1, 0
++	case AVESRAVF:
++		return OP_VESRAV, 2, 0
++	case AVESRAVG:
++		return OP_VESRAV, 3, 0
++	case AVESRL:
++		return OP_VESRL, 0, 0
++	case AVESRLB:
++		return OP_VESRL, 0, 0
++	case AVESRLH:
++		return OP_VESRL, 1, 0
++	case AVESRLF:
++		return OP_VESRL, 2, 0
++	case AVESRLG:
++		return OP_VESRL, 3, 0
++	case AVESRLV:
++		return OP_VESRLV, 0, 0
++	case AVESRLVB:
++		return OP_VESRLV, 0, 0
++	case AVESRLVH:
++		return OP_VESRLV, 1, 0
++	case AVESRLVF:
++		return OP_VESRLV, 2, 0
++	case AVESRLVG:
++		return OP_VESRLV, 3, 0
++	case AVX:
++		return OP_VX, 0, 0
++	case AVFAE:
++		return OP_VFAE, 0, 0
++	case AVFAEB:
++		return OP_VFAE, 0, 0
++	case AVFAEH:
++		return OP_VFAE, 1, 0
++	case AVFAEF:
++		return OP_VFAE, 2, 0
++	case AVFAEBS:
++		return OP_VFAE, 0, 1
++	case AVFAEHS:
++		return OP_VFAE, 1, 1
++	case AVFAEFS:
++		return OP_VFAE, 2, 1
++	case AVFAEZB:
++		return OP_VFAE, 0, 2
++	case AVFAEZH:
++		return OP_VFAE, 1, 2
++	case AVFAEZF:
++		return OP_VFAE, 2, 2
++	case AVFAEZBS:
++		return OP_VFAE, 0, 3
++	case AVFAEZHS:
++		return OP_VFAE, 1, 3
++	case AVFAEZFS:
++		return OP_VFAE, 2, 3
++	case AVFEE:
++		return OP_VFEE, 0, 0
++	case AVFEEB:
++		return OP_VFEE, 0, 0
++	case AVFEEH:
++		return OP_VFEE, 1, 0
++	case AVFEEF:
++		return OP_VFEE, 2, 0
++	case AVFEEBS:
++		return OP_VFEE, 0, 1
++	case AVFEEHS:
++		return OP_VFEE, 1, 1
++	case AVFEEFS:
++		return OP_VFEE, 2, 1
++	case AVFEEZB:
++		return OP_VFEE, 0, 2
++	case AVFEEZH:
++		return OP_VFEE, 1, 2
++	case AVFEEZF:
++		return OP_VFEE, 2, 2
++	case AVFEEZBS:
++		return OP_VFEE, 0, 3
++	case AVFEEZHS:
++		return OP_VFEE, 1, 3
++	case AVFEEZFS:
++		return OP_VFEE, 2, 3
++	case AVFENE:
++		return OP_VFENE, 0, 0
++	case AVFENEB:
++		return OP_VFENE, 0, 0
++	case AVFENEH:
++		return OP_VFENE, 1, 0
++	case AVFENEF:
++		return OP_VFENE, 2, 0
++	case AVFENEBS:
++		return OP_VFENE, 0, 1
++	case AVFENEHS:
++		return OP_VFENE, 1, 1
++	case AVFENEFS:
++		return OP_VFENE, 2, 1
++	case AVFENEZB:
++		return OP_VFENE, 0, 2
++	case AVFENEZH:
++		return OP_VFENE, 1, 2
++	case AVFENEZF:
++		return OP_VFENE, 2, 2
++	case AVFENEZBS:
++		return OP_VFENE, 0, 3
++	case AVFENEZHS:
++		return OP_VFENE, 1, 3
++	case AVFENEZFS:
++		return OP_VFENE, 2, 3
++	case AVFA:
++		return OP_VFA, 0, 0
++	case AVFADB:
++		return OP_VFA, 3, 0
++	case AWFADB:
++		return OP_VFA, 3, 0
++	case AWFK:
++		return OP_WFK, 0, 0
++	case AWFKDB:
++		return OP_WFK, 3, 0
++	case AVFCE:
++		return OP_VFCE, 0, 0
++	case AVFCEDB:
++		return OP_VFCE, 3, 0
++	case AVFCEDBS:
++		return OP_VFCE, 3, 1
++	case AWFCEDB:
++		return OP_VFCE, 3, 0
++	case AWFCEDBS:
++		return OP_VFCE, 3, 1
++	case AVFCH:
++		return OP_VFCH, 0, 0
++	case AVFCHDB:
++		return OP_VFCH, 3, 0
++	case AVFCHDBS:
++		return OP_VFCH, 3, 1
++	case AWFCHDB:
++		return OP_VFCH, 3, 0
++	case AWFCHDBS:
++		return OP_VFCH, 3, 1
++	case AVFCHE:
++		return OP_VFCHE, 0, 0
++	case AVFCHEDB:
++		return OP_VFCHE, 3, 0
++	case AVFCHEDBS:
++		return OP_VFCHE, 3, 1
++	case AWFCHEDB:
++		return OP_VFCHE, 3, 0
++	case AWFCHEDBS:
++		return OP_VFCHE, 3, 1
++	case AWFC:
++		return OP_WFC, 0, 0
++	case AWFCDB:
++		return OP_WFC, 3, 0
++	case AVCDG:
++		return OP_VCDG, 0, 0
++	case AVCDGB:
++		return OP_VCDG, 3, 0
++	case AWCDGB:
++		return OP_VCDG, 3, 0
++	case AVCDLG:
++		return OP_VCDLG, 0, 0
++	case AVCDLGB:
++		return OP_VCDLG, 3, 0
++	case AWCDLGB:
++		return OP_VCDLG, 3, 0
++	case AVCGD:
++		return OP_VCGD, 0, 0
++	case AVCGDB:
++		return OP_VCGD, 3, 0
++	case AWCGDB:
++		return OP_VCGD, 3, 0
++	case AVCLGD:
++		return OP_VCLGD, 0, 0
++	case AVCLGDB:
++		return OP_VCLGD, 3, 0
++	case AWCLGDB:
++		return OP_VCLGD, 3, 0
++	case AVFD:
++		return OP_VFD, 0, 0
++	case AVFDDB:
++		return OP_VFD, 3, 0
++	case AWFDDB:
++		return OP_VFD, 3, 0
++	case AVLDE:
++		return OP_VLDE, 0, 0
++	case AVLDEB:
++		return OP_VLDE, 2, 0
++	case AWLDEB:
++		return OP_VLDE, 2, 0
++	case AVLED:
++		return OP_VLED, 0, 0
++	case AVLEDB:
++		return OP_VLED, 3, 0
++	case AWLEDB:
++		return OP_VLED, 3, 0
++	case AVFM:
++		return OP_VFM, 0, 0
++	case AVFMDB:
++		return OP_VFM, 3, 0
++	case AWFMDB:
++		return OP_VFM, 3, 0
++	case AVFMA:
++		return OP_VFMA, 0, 0
++	case AVFMADB:
++		return OP_VFMA, 3, 0
++	case AWFMADB:
++		return OP_VFMA, 3, 0
++	case AVFMS:
++		return OP_VFMS, 0, 0
++	case AVFMSDB:
++		return OP_VFMS, 3, 0
++	case AWFMSDB:
++		return OP_VFMS, 3, 0
++	case AVFPSO:
++		return OP_VFPSO, 0, 0
++	case AVFPSODB:
++		return OP_VFPSO, 3, 0
++	case AWFPSODB:
++		return OP_VFPSO, 3, 0
++	case AVFLCDB:
++		return OP_VFPSO, 3, 0
++	case AWFLCDB:
++		return OP_VFPSO, 3, 0
++	case AVFLNDB:
++		return OP_VFPSO, 3, 1
++	case AWFLNDB:
++		return OP_VFPSO, 3, 1
++	case AVFLPDB:
++		return OP_VFPSO, 3, 2
++	case AWFLPDB:
++		return OP_VFPSO, 3, 2
++	case AVFSQ:
++		return OP_VFSQ, 0, 0
++	case AVFSQDB:
++		return OP_VFSQ, 3, 0
++	case AWFSQDB:
++		return OP_VFSQ, 3, 0
++	case AVFS:
++		return OP_VFS, 0, 0
++	case AVFSDB:
++		return OP_VFS, 3, 0
++	case AWFSDB:
++		return OP_VFS, 3, 0
++	case AVFTCI:
++		return OP_VFTCI, 0, 0
++	case AVFTCIDB:
++		return OP_VFTCI, 3, 0
++	case AWFTCIDB:
++		return OP_VFTCI, 3, 0
++	case AVGFM:
++		return OP_VGFM, 0, 0
++	case AVGFMB:
++		return OP_VGFM, 0, 0
++	case AVGFMH:
++		return OP_VGFM, 1, 0
++	case AVGFMF:
++		return OP_VGFM, 2, 0
++	case AVGFMG:
++		return OP_VGFM, 3, 0
++	case AVGFMA:
++		return OP_VGFMA, 0, 0
++	case AVGFMAB:
++		return OP_VGFMA, 0, 0
++	case AVGFMAH:
++		return OP_VGFMA, 1, 0
++	case AVGFMAF:
++		return OP_VGFMA, 2, 0
++	case AVGFMAG:
++		return OP_VGFMA, 3, 0
++	case AVGEF:
++		return OP_VGEF, 0, 0
++	case AVGEG:
++		return OP_VGEG, 0, 0
++	case AVGBM:
++		return OP_VGBM, 0, 0
++	case AVZERO:
++		return OP_VGBM, 0, 0
++	case AVONE:
++		return OP_VGBM, 0, 0
++	case AVGM:
++		return OP_VGM, 0, 0
++	case AVGMB:
++		return OP_VGM, 0, 0
++	case AVGMH:
++		return OP_VGM, 1, 0
++	case AVGMF:
++		return OP_VGM, 2, 0
++	case AVGMG:
++		return OP_VGM, 3, 0
++	case AVISTR:
++		return OP_VISTR, 0, 0
++	case AVISTRB:
++		return OP_VISTR, 0, 0
++	case AVISTRH:
++		return OP_VISTR, 1, 0
++	case AVISTRF:
++		return OP_VISTR, 2, 0
++	case AVISTRBS:
++		return OP_VISTR, 0, 1
++	case AVISTRHS:
++		return OP_VISTR, 1, 1
++	case AVISTRFS:
++		return OP_VISTR, 2, 1
++	case AVL:
++		return OP_VL, 0, 0
++	case AVLR:
++		return OP_VLR, 0, 0
++	case AVLREP:
++		return OP_VLREP, 0, 0
++	case AVLREPB:
++		return OP_VLREP, 0, 0
++	case AVLREPH:
++		return OP_VLREP, 1, 0
++	case AVLREPF:
++		return OP_VLREP, 2, 0
++	case AVLREPG:
++		return OP_VLREP, 3, 0
++	case AVLC:
++		return OP_VLC, 0, 0
++	case AVLCB:
++		return OP_VLC, 0, 0
++	case AVLCH:
++		return OP_VLC, 1, 0
++	case AVLCF:
++		return OP_VLC, 2, 0
++	case AVLCG:
++		return OP_VLC, 3, 0
++	case AVLEH:
++		return OP_VLEH, 0, 0
++	case AVLEF:
++		return OP_VLEF, 0, 0
++	case AVLEG:
++		return OP_VLEG, 0, 0
++	case AVLEB:
++		return OP_VLEB, 0, 0
++	case AVLEIH:
++		return OP_VLEIH, 0, 0
++	case AVLEIF:
++		return OP_VLEIF, 0, 0
++	case AVLEIG:
++		return OP_VLEIG, 0, 0
++	case AVLEIB:
++		return OP_VLEIB, 0, 0
++	case AVFI:
++		return OP_VFI, 0, 0
++	case AVFIDB:
++		return OP_VFI, 3, 0
++	case AWFIDB:
++		return OP_VFI, 3, 0
++	case AVLGV:
++		return OP_VLGV, 0, 0
++	case AVLGVB:
++		return OP_VLGV, 0, 0
++	case AVLGVH:
++		return OP_VLGV, 1, 0
++	case AVLGVF:
++		return OP_VLGV, 2, 0
++	case AVLGVG:
++		return OP_VLGV, 3, 0
++	case AVLLEZ:
++		return OP_VLLEZ, 0, 0
++	case AVLLEZB:
++		return OP_VLLEZ, 0, 0
++	case AVLLEZH:
++		return OP_VLLEZ, 1, 0
++	case AVLLEZF:
++		return OP_VLLEZ, 2, 0
++	case AVLLEZG:
++		return OP_VLLEZ, 3, 0
++	case AVLM:
++		return OP_VLM, 0, 0
++	case AVLP:
++		return OP_VLP, 0, 0
++	case AVLPB:
++		return OP_VLP, 0, 0
++	case AVLPH:
++		return OP_VLP, 1, 0
++	case AVLPF:
++		return OP_VLP, 2, 0
++	case AVLPG:
++		return OP_VLP, 3, 0
++	case AVLBB:
++		return OP_VLBB, 0, 0
++	case AVLVG:
++		return OP_VLVG, 0, 0
++	case AVLVGB:
++		return OP_VLVG, 0, 0
++	case AVLVGH:
++		return OP_VLVG, 1, 0
++	case AVLVGF:
++		return OP_VLVG, 2, 0
++	case AVLVGG:
++		return OP_VLVG, 3, 0
++	case AVLVGP:
++		return OP_VLVGP, 0, 0
++	case AVLL:
++		return OP_VLL, 0, 0
++	case AVMX:
++		return OP_VMX, 0, 0
++	case AVMXB:
++		return OP_VMX, 0, 0
++	case AVMXH:
++		return OP_VMX, 1, 0
++	case AVMXF:
++		return OP_VMX, 2, 0
++	case AVMXG:
++		return OP_VMX, 3, 0
++	case AVMXL:
++		return OP_VMXL, 0, 0
++	case AVMXLB:
++		return OP_VMXL, 0, 0
++	case AVMXLH:
++		return OP_VMXL, 1, 0
++	case AVMXLF:
++		return OP_VMXL, 2, 0
++	case AVMXLG:
++		return OP_VMXL, 3, 0
++	case AVMRH:
++		return OP_VMRH, 0, 0
++	case AVMRHB:
++		return OP_VMRH, 0, 0
++	case AVMRHH:
++		return OP_VMRH, 1, 0
++	case AVMRHF:
++		return OP_VMRH, 2, 0
++	case AVMRHG:
++		return OP_VMRH, 3, 0
++	case AVMRL:
++		return OP_VMRL, 0, 0
++	case AVMRLB:
++		return OP_VMRL, 0, 0
++	case AVMRLH:
++		return OP_VMRL, 1, 0
++	case AVMRLF:
++		return OP_VMRL, 2, 0
++	case AVMRLG:
++		return OP_VMRL, 3, 0
++	case AVMN:
++		return OP_VMN, 0, 0
++	case AVMNB:
++		return OP_VMN, 0, 0
++	case AVMNH:
++		return OP_VMN, 1, 0
++	case AVMNF:
++		return OP_VMN, 2, 0
++	case AVMNG:
++		return OP_VMN, 3, 0
++	case AVMNL:
++		return OP_VMNL, 0, 0
++	case AVMNLB:
++		return OP_VMNL, 0, 0
++	case AVMNLH:
++		return OP_VMNL, 1, 0
++	case AVMNLF:
++		return OP_VMNL, 2, 0
++	case AVMNLG:
++		return OP_VMNL, 3, 0
++	case AVMAE:
++		return OP_VMAE, 0, 0
++	case AVMAEB:
++		return OP_VMAE, 0, 0
++	case AVMAEH:
++		return OP_VMAE, 1, 0
++	case AVMAEF:
++		return OP_VMAE, 2, 0
++	case AVMAH:
++		return OP_VMAH, 0, 0
++	case AVMAHB:
++		return OP_VMAH, 0, 0
++	case AVMAHH:
++		return OP_VMAH, 1, 0
++	case AVMAHF:
++		return OP_VMAH, 2, 0
++	case AVMALE:
++		return OP_VMALE, 0, 0
++	case AVMALEB:
++		return OP_VMALE, 0, 0
++	case AVMALEH:
++		return OP_VMALE, 1, 0
++	case AVMALEF:
++		return OP_VMALE, 2, 0
++	case AVMALH:
++		return OP_VMALH, 0, 0
++	case AVMALHB:
++		return OP_VMALH, 0, 0
++	case AVMALHH:
++		return OP_VMALH, 1, 0
++	case AVMALHF:
++		return OP_VMALH, 2, 0
++	case AVMALO:
++		return OP_VMALO, 0, 0
++	case AVMALOB:
++		return OP_VMALO, 0, 0
++	case AVMALOH:
++		return OP_VMALO, 1, 0
++	case AVMALOF:
++		return OP_VMALO, 2, 0
++	case AVMAL:
++		return OP_VMAL, 0, 0
++	case AVMALB:
++		return OP_VMAL, 0, 0
++	case AVMALHW:
++		return OP_VMAL, 1, 0
++	case AVMALF:
++		return OP_VMAL, 2, 0
++	case AVMAO:
++		return OP_VMAO, 0, 0
++	case AVMAOB:
++		return OP_VMAO, 0, 0
++	case AVMAOH:
++		return OP_VMAO, 1, 0
++	case AVMAOF:
++		return OP_VMAO, 2, 0
++	case AVME:
++		return OP_VME, 0, 0
++	case AVMEB:
++		return OP_VME, 0, 0
++	case AVMEH:
++		return OP_VME, 1, 0
++	case AVMEF:
++		return OP_VME, 2, 0
++	case AVMH:
++		return OP_VMH, 0, 0
++	case AVMHB:
++		return OP_VMH, 0, 0
++	case AVMHH:
++		return OP_VMH, 1, 0
++	case AVMHF:
++		return OP_VMH, 2, 0
++	case AVMLE:
++		return OP_VMLE, 0, 0
++	case AVMLEB:
++		return OP_VMLE, 0, 0
++	case AVMLEH:
++		return OP_VMLE, 1, 0
++	case AVMLEF:
++		return OP_VMLE, 2, 0
++	case AVMLH:
++		return OP_VMLH, 0, 0
++	case AVMLHB:
++		return OP_VMLH, 0, 0
++	case AVMLHH:
++		return OP_VMLH, 1, 0
++	case AVMLHF:
++		return OP_VMLH, 2, 0
++	case AVMLO:
++		return OP_VMLO, 0, 0
++	case AVMLOB:
++		return OP_VMLO, 0, 0
++	case AVMLOH:
++		return OP_VMLO, 1, 0
++	case AVMLOF:
++		return OP_VMLO, 2, 0
++	case AVML:
++		return OP_VML, 0, 0
++	case AVMLB:
++		return OP_VML, 0, 0
++	case AVMLHW:
++		return OP_VML, 1, 0
++	case AVMLF:
++		return OP_VML, 2, 0
++	case AVMO:
++		return OP_VMO, 0, 0
++	case AVMOB:
++		return OP_VMO, 0, 0
++	case AVMOH:
++		return OP_VMO, 1, 0
++	case AVMOF:
++		return OP_VMO, 2, 0
++	case AVNO:
++		return OP_VNO, 0, 0
++	case AVNOT:
++		return OP_VNO, 0, 0
++	case AVO:
++		return OP_VO, 0, 0
++	case AVPK:
++		return OP_VPK, 0, 0
++	case AVPKH:
++		return OP_VPK, 1, 0
++	case AVPKF:
++		return OP_VPK, 2, 0
++	case AVPKG:
++		return OP_VPK, 3, 0
++	case AVPKLS:
++		return OP_VPKLS, 0, 0
++	case AVPKLSH:
++		return OP_VPKLS, 1, 0
++	case AVPKLSF:
++		return OP_VPKLS, 2, 0
++	case AVPKLSG:
++		return OP_VPKLS, 3, 0
++	case AVPKLSHS:
++		return OP_VPKLS, 1, 1
++	case AVPKLSFS:
++		return OP_VPKLS, 2, 1
++	case AVPKLSGS:
++		return OP_VPKLS, 3, 1
++	case AVPKS:
++		return OP_VPKS, 0, 0
++	case AVPKSH:
++		return OP_VPKS, 1, 0
++	case AVPKSF:
++		return OP_VPKS, 2, 0
++	case AVPKSG:
++		return OP_VPKS, 3, 0
++	case AVPKSHS:
++		return OP_VPKS, 1, 1
++	case AVPKSFS:
++		return OP_VPKS, 2, 1
++	case AVPKSGS:
++		return OP_VPKS, 3, 1
++	case AVPERM:
++		return OP_VPERM, 0, 0
++	case AVPDI:
++		return OP_VPDI, 0, 0
++	case AVPOPCT:
++		return OP_VPOPCT, 0, 0
++	case AVREP:
++		return OP_VREP, 0, 0
++	case AVREPB:
++		return OP_VREP, 0, 0
++	case AVREPH:
++		return OP_VREP, 1, 0
++	case AVREPF:
++		return OP_VREP, 2, 0
++	case AVREPG:
++		return OP_VREP, 3, 0
++	case AVREPI:
++		return OP_VREPI, 0, 0
++	case AVREPIB:
++		return OP_VREPI, 0, 0
++	case AVREPIH:
++		return OP_VREPI, 1, 0
++	case AVREPIF:
++		return OP_VREPI, 2, 0
++	case AVREPIG:
++		return OP_VREPI, 3, 0
++	case AVSCEF:
++		return OP_VSCEF, 0, 0
++	case AVSCEG:
++		return OP_VSCEG, 0, 0
++	case AVSEL:
++		return OP_VSEL, 0, 0
++	case AVSL:
++		return OP_VSL, 0, 0
++	case AVSLB:
++		return OP_VSLB, 0, 0
++	case AVSLDB:
++		return OP_VSLDB, 0, 0
++	case AVSRA:
++		return OP_VSRA, 0, 0
++	case AVSRAB:
++		return OP_VSRAB, 0, 0
++	case AVSRL:
++		return OP_VSRL, 0, 0
++	case AVSRLB:
++		return OP_VSRLB, 0, 0
++	case AVSEG:
++		return OP_VSEG, 0, 0
++	case AVSEGB:
++		return OP_VSEG, 0, 0
++	case AVSEGH:
++		return OP_VSEG, 1, 0
++	case AVSEGF:
++		return OP_VSEG, 2, 0
++	case AVST:
++		return OP_VST, 0, 0
++	case AVSTEH:
++		return OP_VSTEH, 0, 0
++	case AVSTEF:
++		return OP_VSTEF, 0, 0
++	case AVSTEG:
++		return OP_VSTEG, 0, 0
++	case AVSTEB:
++		return OP_VSTEB, 0, 0
++	case AVSTM:
++		return OP_VSTM, 0, 0
++	case AVSTL:
++		return OP_VSTL, 0, 0
++	case AVSTRC:
++		return OP_VSTRC, 0, 0
++	case AVSTRCB:
++		return OP_VSTRC, 0, 0
++	case AVSTRCH:
++		return OP_VSTRC, 1, 0
++	case AVSTRCF:
++		return OP_VSTRC, 2, 0
++	case AVSTRCBS:
++		return OP_VSTRC, 0, 1
++	case AVSTRCHS:
++		return OP_VSTRC, 1, 1
++	case AVSTRCFS:
++		return OP_VSTRC, 2, 1
++	case AVSTRCZB:
++		return OP_VSTRC, 0, 2
++	case AVSTRCZH:
++		return OP_VSTRC, 1, 2
++	case AVSTRCZF:
++		return OP_VSTRC, 2, 2
++	case AVSTRCZBS:
++		return OP_VSTRC, 0, 3
++	case AVSTRCZHS:
++		return OP_VSTRC, 1, 3
++	case AVSTRCZFS:
++		return OP_VSTRC, 2, 3
++	case AVS:
++		return OP_VS, 0, 0
++	case AVSB:
++		return OP_VS, 0, 0
++	case AVSH:
++		return OP_VS, 1, 0
++	case AVSF:
++		return OP_VS, 2, 0
++	case AVSG:
++		return OP_VS, 3, 0
++	case AVSQ:
++		return OP_VS, 4, 0
++	case AVSCBI:
++		return OP_VSCBI, 0, 0
++	case AVSCBIB:
++		return OP_VSCBI, 0, 0
++	case AVSCBIH:
++		return OP_VSCBI, 1, 0
++	case AVSCBIF:
++		return OP_VSCBI, 2, 0
++	case AVSCBIG:
++		return OP_VSCBI, 3, 0
++	case AVSCBIQ:
++		return OP_VSCBI, 4, 0
++	case AVSBCBI:
++		return OP_VSBCBI, 0, 0
++	case AVSBCBIQ:
++		return OP_VSBCBI, 4, 0
++	case AVSBI:
++		return OP_VSBI, 0, 0
++	case AVSBIQ:
++		return OP_VSBI, 4, 0
++	case AVSUMG:
++		return OP_VSUMG, 0, 0
++	case AVSUMGH:
++		return OP_VSUMG, 1, 0
++	case AVSUMGF:
++		return OP_VSUMG, 2, 0
++	case AVSUMQ:
++		return OP_VSUMQ, 0, 0
++	case AVSUMQF:
++		return OP_VSUMQ, 1, 0
++	case AVSUMQG:
++		return OP_VSUMQ, 2, 0
++	case AVSUM:
++		return OP_VSUM, 0, 0
++	case AVSUMB:
++		return OP_VSUM, 0, 0
++	case AVSUMH:
++		return OP_VSUM, 1, 0
++	case AVTM:
++		return OP_VTM, 0, 0
++	case AVUPH:
++		return OP_VUPH, 0, 0
++	case AVUPHB:
++		return OP_VUPH, 0, 0
++	case AVUPHH:
++		return OP_VUPH, 1, 0
++	case AVUPHF:
++		return OP_VUPH, 2, 0
++	case AVUPLH:
++		return OP_VUPLH, 0, 0
++	case AVUPLHB:
++		return OP_VUPLH, 0, 0
++	case AVUPLHH:
++		return OP_VUPLH, 1, 0
++	case AVUPLHF:
++		return OP_VUPLH, 2, 0
++	case AVUPLL:
++		return OP_VUPLL, 0, 0
++	case AVUPLLB:
++		return OP_VUPLL, 0, 0
++	case AVUPLLH:
++		return OP_VUPLL, 1, 0
++	case AVUPLLF:
++		return OP_VUPLL, 2, 0
++	case AVUPL:
++		return OP_VUPL, 0, 0
++	case AVUPLB:
++		return OP_VUPL, 0, 0
++	case AVUPLHW:
++		return OP_VUPL, 1, 0
++	case AVUPLF:
++		return OP_VUPL, 2, 0
++	}
++}
++
++// singleElementMask returns the single element mask bits required for the
++// given instruction.
++func singleElementMask(as int16) uint32 {
++	switch as {
++	case AWFADB,
++		AWFK,
++		AWFKDB,
++		AWFCEDB,
++		AWFCEDBS,
++		AWFCHDB,
++		AWFCHDBS,
++		AWFCHEDB,
++		AWFCHEDBS,
++		AWFC,
++		AWFCDB,
++		AWCDGB,
++		AWCDLGB,
++		AWCGDB,
++		AWCLGDB,
++		AWFDDB,
++		AWLDEB,
++		AWLEDB,
++		AWFMDB,
++		AWFMADB,
++		AWFMSDB,
++		AWFPSODB,
++		AWFLCDB,
++		AWFLNDB,
++		AWFLPDB,
++		AWFSQDB,
++		AWFSDB,
++		AWFTCIDB,
++		AWFIDB:
++		return 8
++	}
++	return 0
++}
+diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go
+index 5103299..06391cb 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, 14k)
++	RBaseS390X  = 14 * 1024 // range [14k, 15k)
+ )
+ 
+ // 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 f038883..b100830 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 a96b37a..96c3503 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))
+@@ -2237,7 +2258,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")
+@@ -2290,7 +2311,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 6d34978..00aa344 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 {
+@@ -1380,13 +1444,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
+@@ -1454,7 +1530,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)
+@@ -1594,7 +1670,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:
+@@ -1767,7 +1843,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")
+@@ -1813,7 +1889,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")
+@@ -1840,7 +1916,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:
+@@ -1858,7 +1934,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
+@@ -1876,7 +1952,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)
+@@ -1921,7 +1997,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)
+@@ -1950,7 +2026,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)
+@@ -1958,7 +2034,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)
+@@ -1974,6 +2050,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))
+ 		}
+@@ -2069,6 +2147,8 @@ func Asmbelf(symo int64) {
+ 		eh.machine = EM_386
+ 	case '9':
+ 		eh.machine = EM_PPC64
++	case 'z':
++		eh.machine = EM_S390
+ 	}
+ 
+ 	elfreserve := int64(ELFRESERVE)
+@@ -2254,7 +2334,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
+@@ -2303,6 +2383,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/lib.go b/src/cmd/link/internal/ld/lib.go
+index bdfa056..8146fa8 100644
+--- a/src/cmd/link/internal/ld/lib.go
++++ b/src/cmd/link/internal/ld/lib.go
+@@ -329,7 +329,7 @@ func (mode *BuildMode) Set(s string) error {
+ 		switch goos {
+ 		case "linux":
+ 			switch goarch {
+-			case "386", "amd64", "arm", "arm64", "ppc64le":
++			case "386", "amd64", "arm", "arm64", "ppc64le", "s390x":
+ 			default:
+ 				return badmode()
+ 			}
+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..78198eb 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
+diff --git a/src/cmd/link/internal/s390x/asm.go b/src/cmd/link/internal/s390x/asm.go
+new file mode 100644
+index 0000000..ad37833
+--- /dev/null
++++ b/src/cmd/link/internal/s390x/asm.go
+@@ -0,0 +1,643 @@
++// 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"
++)
++
++// gentext generates assembly to append the local moduledata to the global
++// moduledata linked list at initialization time. This is only done if the runtime
++// is in a different module.
++//
++// <go.link.addmoduledata>:
++// 	larl  %r2, <local.moduledata>
++// 	jg    <runtime.addmoduledata at plt>
++//	undef
++//
++// The job of appending the moduledata is delegated to runtime.addmoduledata.
++func gentext() {
++	if !ld.DynlinkingGo() {
++		return
++	}
++	addmoduledata := ld.Linklookup(ld.Ctxt, "runtime.addmoduledata", 0)
++	if addmoduledata.Type == obj.STEXT {
++		// we're linking a module containing the runtime -> no need for
++		// an init function
++		return
++	}
++	addmoduledata.Reachable = true
++	initfunc := ld.Linklookup(ld.Ctxt, "go.link.addmoduledata", 0)
++	initfunc.Type = obj.STEXT
++	initfunc.Local = true
++	initfunc.Reachable = true
++
++	// larl %r2, <local.moduledata>
++	ld.Adduint8(ld.Ctxt, initfunc, 0xc0)
++	ld.Adduint8(ld.Ctxt, initfunc, 0x20)
++	lmd := ld.Addrel(initfunc)
++	lmd.Off = int32(initfunc.Size)
++	lmd.Siz = 4
++	lmd.Sym = ld.Ctxt.Moduledata
++	lmd.Type = obj.R_PCREL
++	lmd.Variant = ld.RV_390_DBL
++	lmd.Add = 2 + int64(lmd.Siz)
++	ld.Adduint32(ld.Ctxt, initfunc, 0)
++
++	// jg <runtime.addmoduledata[@plt]>
++	ld.Adduint8(ld.Ctxt, initfunc, 0xc0)
++	ld.Adduint8(ld.Ctxt, initfunc, 0xf4)
++	rel := ld.Addrel(initfunc)
++	rel.Off = int32(initfunc.Size)
++	rel.Siz = 4
++	rel.Sym = ld.Linklookup(ld.Ctxt, "runtime.addmoduledata", 0)
++	rel.Type = obj.R_CALL
++	rel.Variant = ld.RV_390_DBL
++	rel.Add = 2 + int64(rel.Siz)
++	ld.Adduint32(ld.Ctxt, initfunc, 0)
++
++	// undef (for debugging)
++	ld.Adduint32(ld.Ctxt, initfunc, 0)
++
++	if ld.Ctxt.Etextp != nil {
++		ld.Ctxt.Etextp.Next = initfunc
++	} else {
++		ld.Ctxt.Textp = initfunc
++	}
++	ld.Ctxt.Etextp = initfunc
++	initarray_entry := ld.Linklookup(ld.Ctxt, "go.link.addmoduledatainit", 0)
++	initarray_entry.Reachable = true
++	initarray_entry.Local = true
++	initarray_entry.Type = obj.SINITARR
++	ld.Addaddr(ld.Ctxt, initarray_entry, initfunc)
++}
++
++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.ElfsymForReloc()
++	switch r.Type {
++	default:
++		return -1
++
++	case obj.R_TLS_LE:
++		switch r.Siz {
++		default:
++			return -1
++		case 4:
++			// WARNING - silently ignored by linker in ELF64
++			ld.Thearch.Vput(ld.R_390_TLS_LE32 | uint64(elfsym)<<32)
++		case 8:
++			// WARNING - silently ignored by linker in ELF32
++			ld.Thearch.Vput(ld.R_390_TLS_LE64 | uint64(elfsym)<<32)
++		}
++
++	case obj.R_TLS_IE:
++		switch r.Siz {
++		default:
++			return -1
++		case 4:
++			ld.Thearch.Vput(ld.R_390_TLS_IEENT | 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_GOTPCREL:
++		if r.Siz == 4 {
++			ld.Thearch.Vput(ld.R_390_GOTENT | uint64(elfsym)<<32)
++		} else {
++			return -1
++		}
++
++	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 || r.Type == obj.R_CALL) {
++			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..d1d4d6f
+--- /dev/null
++++ b/src/cmd/link/internal/s390x/obj.go
+@@ -0,0 +1,115 @@
++// 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
++	}
++
++	if ld.Buildmode == ld.BuildmodeCArchive || ld.Buildmode == ld.BuildmodeCShared || ld.DynlinkingGo() {
++		ld.Linkmode = ld.LinkExternal
++	}
++
++	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..0122bda 100644
+--- a/src/cmd/link/main.go
++++ b/src/cmd/link/main.go
+@@ -11,6 +11,7 @@ import (
+ 	"cmd/link/internal/arm64"
+ 	"cmd/link/internal/mips64"
+ 	"cmd/link/internal/ppc64"
++	"cmd/link/internal/s390x"
+ 	"cmd/link/internal/x86"
+ 	"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..025d3e0 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/cipher/xor.go b/src/crypto/cipher/xor.go
+index f88dc89..9e1151a 100644
+--- a/src/crypto/cipher/xor.go
++++ b/src/crypto/cipher/xor.go
+@@ -10,7 +10,7 @@ import (
+ )
+ 
+ const wordSize = int(unsafe.Sizeof(uintptr(0)))
+-const supportsUnaligned = runtime.GOARCH == "386" || runtime.GOARCH == "amd64"
++const supportsUnaligned = runtime.GOARCH == "386" || runtime.GOARCH == "amd64" || runtime.GOARCH == "s390x"
+ 
+ // fastXORBytes xors in bulk. It only works on architectures that
+ // support unaligned read/writes.
+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/crypto/x509/sec1.go b/src/crypto/x509/sec1.go
+index f484b6d..1424dea 100644
+--- a/src/crypto/x509/sec1.go
++++ b/src/crypto/x509/sec1.go
+@@ -41,8 +41,8 @@ func MarshalECPrivateKey(key *ecdsa.PrivateKey) ([]byte, error) {
+ 	}
+ 
+ 	privateKeyBytes := key.D.Bytes()
+-	paddedPrivateKey := make([]byte, (key.Curve.Params().N.BitLen() + 7) / 8)
+-	copy(paddedPrivateKey[len(paddedPrivateKey) - len(privateKeyBytes):], privateKeyBytes)
++	paddedPrivateKey := make([]byte, (key.Curve.Params().N.BitLen()+7)/8)
++	copy(paddedPrivateKey[len(paddedPrivateKey)-len(privateKeyBytes):], privateKeyBytes)
+ 
+ 	return asn1.Marshal(ecPrivateKey{
+ 		Version:       1,
+@@ -84,7 +84,7 @@ func parseECPrivateKey(namedCurveOID *asn1.ObjectIdentifier, der []byte) (key *e
+ 	priv.Curve = curve
+ 	priv.D = k
+ 
+-	privateKey := make([]byte, (curveOrder.BitLen() + 7) / 8)
++	privateKey := make([]byte, (curveOrder.BitLen()+7)/8)
+ 
+ 	// Some private keys have leading zero padding. This is invalid
+ 	// according to [SEC1], but this code will ignore it.
+@@ -98,7 +98,7 @@ func parseECPrivateKey(namedCurveOID *asn1.ObjectIdentifier, der []byte) (key *e
+ 	// Some private keys remove all leading zeros, this is also invalid
+ 	// according to [SEC1] but since OpenSSL used to do this, we ignore
+ 	// this too.
+-	copy(privateKey[len(privateKey) - len(privKey.PrivateKey):], privKey.PrivateKey)
++	copy(privateKey[len(privateKey)-len(privKey.PrivateKey):], privKey.PrivateKey)
+ 	priv.X, priv.Y = curve.ScalarBaseMult(privateKey)
+ 
+ 	return priv, nil
+diff --git a/src/crypto/x509/sec1_test.go b/src/crypto/x509/sec1_test.go
+index 5e9ded5..55b76d6 100644
+--- a/src/crypto/x509/sec1_test.go
++++ b/src/crypto/x509/sec1_test.go
+@@ -10,8 +10,8 @@ import (
+ 	"testing"
+ )
+ 
+-var ecKeyTests = []struct{
+-	derHex string
++var ecKeyTests = []struct {
++	derHex            string
+ 	shouldReserialize bool
+ }{
+ 	// Generated using:
+diff --git a/src/debug/elf/elf.go b/src/debug/elf/elf.go
+index f53ba00..0ee840d 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..2221f3f 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 c1b70bc..4cfc4be 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..d435f71
+--- /dev/null
++++ b/src/internal/syscall/unix/getrandom_linux_s390x.go
+@@ -0,0 +1,7 @@
++// 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.
++
++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..35ed863
+--- /dev/null
++++ b/src/math/big/arith_s390x.s
+@@ -0,0 +1,574 @@
++// 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
++
++// func divWW(x1, x0, y Word) (q, r Word)
++TEXT ·divWW(SB),NOSPLIT,$0
++	MOVD  x1+0(FP), R10
++	MOVD  x0+8(FP), R11
++	MOVD  y+16(FP), R5
++	WORD  $0xb98700a5 // dlgr r10,r5
++	MOVD  R11, q+24(FP)
++	MOVD  R10, r+32(FP)
++	RET
++
++// DI = R3, CX = R4, SI = r10, r8 = r8, r9=r9, r10 = r2 , r11 = r5, r12 = r6, r13 = r7, r14 = r1 (R0 set to 0) + use R11
++// func addVV(z, x, y []Word) (c Word)
++TEXT ·addVV(SB),NOSPLIT,$0
++	MOVD z_len+8(FP), R3
++	MOVD x+24(FP), R8
++	MOVD y+48(FP), R9
++	MOVD z+0(FP), R2
++
++	MOVD $0, R4		// c = 0
++	MOVD $0, R0		// make sure it's zero
++	MOVD $0, R10		// i = 0
++
++	// s/JL/JMP/ below to disable the unrolled loop
++	SUB  $4, R3		// n -= 4
++	BLT v1			// if n < 0 goto v1
++
++U1:	// 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, R4		// restore CF
++	MOVD 0(R9)(R10*1), R11
++	ADDE R11, R5
++	MOVD 8(R9)(R10*1), R11
++	ADDE R11, R6
++	MOVD 16(R9)(R10*1), R11
++	ADDE R11, R7
++	MOVD 24(R9)(R10*1), R11
++	ADDE R11, R1
++	MOVD R0, R4
++	ADDE 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
++	SUB  $4,  R3		// n -= 4
++	BGE  U1			// if n >= 0 goto U1
++
++v1:	ADD  $4, R3		// n += 4
++	BLE E1			// if n <= 0 goto E1
++
++L1:	// n > 0
++	ADDC R4, R4		// restore CF
++	MOVD 0(R8)(R10*1), R5
++	MOVD 0(R9)(R10*1), R11
++	ADDE R11, R5
++	MOVD R5, 0(R2)(R10*1)
++	MOVD R0, R4
++	ADDE R4, R4		// save CF
++	NEG  R4, R4
++
++	ADD  $8, R10		// i++
++	SUB  $1, R3		// n--
++	BGT L1			// if n > 0 goto L1
++
++E1:	NEG  R4, R4
++	MOVD R4, c+72(FP)	// return c
++	RET
++
++// DI = R3, CX = R4, SI = r10, r8 = r8, r9=r9, r10 = r2 , r11 = r5, r12 = r6, r13 = r7, r14 = r1 (R0 set to 0) + use R11
++// func subVV(z, x, y []Word) (c Word)
++// (same as addVV except for SUBC/SUBE instead of ADDC/ADDE and label names)
++TEXT ·subVV(SB),NOSPLIT,$0
++	MOVD z_len+8(FP), R3
++	MOVD x+24(FP), R8
++	MOVD y+48(FP), R9
++	MOVD z+0(FP), R2
++
++	MOVD $0, R4		// c = 0
++	MOVD $0, R0		// make sure it's zero
++	MOVD $0, R10		// i = 0
++
++	// s/JL/JMP/ below to disable the unrolled loop
++	SUB  $4, R3		// n -= 4
++	BLT v1			// if n < 0 goto v1
++
++U1:	// 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
++	MOVD R0, R11
++	SUBC R4, R11		// restore CF
++	MOVD 0(R9)(R10*1), R11
++	SUBE R11, R5
++	MOVD 8(R9)(R10*1), R11
++	SUBE R11, R6
++	MOVD 16(R9)(R10*1), R11
++	SUBE R11, R7
++	MOVD 24(R9)(R10*1), R11
++	SUBE R11, R1
++	MOVD R0, R4
++	SUBE R4, R4		// save CF
++	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
++	SUB  $4,  R3		// n -= 4
++	BGE  U1			// if n >= 0 goto U1
++
++v1:	ADD  $4, R3		// n += 4
++	BLE E1			// if n <= 0 goto E1
++
++L1:	// n > 0
++	MOVD R0, R11
++	SUBC R4, R11		// restore CF
++	MOVD 0(R8)(R10*1), R5
++	MOVD 0(R9)(R10*1), R11
++	SUBE R11, R5
++	MOVD R5, 0(R2)(R10*1)
++	MOVD R0, R4
++	SUBE R4, R4		// save CF
++
++	ADD  $8, R10		// i++
++	SUB  $1, R3		// n--
++	BGT L1			// if n > 0 goto L1
++
++E1:	NEG  R4, R4
++	MOVD R4, c+72(FP)	// return c
++	RET
++	
++
++// 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)
++	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
++	ADDE R0, R6
++	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 SUBC/SUBE instead of ADDC/ADDE 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
++
++// CX = R4, r8 = r8, r9=r9, r10 = r2 , r11 = r5, DX = r3, AX = r6 , BX = R1 , (R0 set to 0) + use R11 + use R7 for i
++// func mulAddVWW(z, x []Word, y, r Word) (c Word)
++TEXT ·mulAddVWW(SB),NOSPLIT,$0
++	MOVD z+0(FP), R2
++	MOVD x+24(FP), R8
++	MOVD y+48(FP), R9
++	MOVD r+56(FP), R4	// c = r
++	MOVD z_len+8(FP), R5
++	MOVD $0, R1		// i = 0
++	MOVD $0, R7		// i*8 = 0
++	MOVD $0, R0		// make sure it's zero
++	BR E5
++
++L5:	MOVD (R8)(R1*1), R6
++	MULHDU R9, R6
++	ADDC R4, R11 		//add to low order bits
++	ADDE R0, R6
++	MOVD R11, (R2)(R1*1)
++	MOVD R6, R4
++	ADD  $8, R1		// i*8 + 8
++	ADD  $1, R7		// i++
++
++E5:	CMPBLT R7, R5, L5	// i < n
++
++	MOVD R4, c+64(FP)
++	RET
++
++// func addMulVVW(z, x []Word, y Word) (c Word)
++// CX = R4, r8 = r8, r9=r9, r10 = r2 , r11 = r5, AX = r11, DX = R6, r12=r12, BX = R1 , (R0 set to 0) + use R11 + use R7 for i
++TEXT ·addMulVVW(SB),NOSPLIT,$0
++	MOVD z+0(FP), R2
++	MOVD x+24(FP), R8
++	MOVD y+48(FP), R9
++	MOVD z_len+8(FP), R5
++
++	MOVD $0, R1		// i*8 = 0
++	MOVD $0, R7		// i = 0
++	MOVD $0, R0		// make sure it's zero
++	MOVD $0, R4		// c = 0
++	
++	MOVD R5, R12
++	AND  $-2, R12
++	CMPBGE R5, $2, A6
++	BR   E6
++
++A6:	MOVD (R8)(R1*1), R6
++	MULHDU R9, R6
++	MOVD (R2)(R1*1), R10
++	ADDC R10, R11	//add to low order bits
++	ADDE R0, R6
++	ADDC R4, R11
++	ADDE R0, R6
++	MOVD R6, R4
++	MOVD R11, (R2)(R1*1)
++	
++	MOVD (8)(R8)(R1*1), R6
++	MULHDU R9, R6
++	MOVD (8)(R2)(R1*1), R10
++	ADDC R10, R11	//add to low order bits
++	ADDE R0, R6
++	ADDC R4, R11
++	ADDE R0, R6
++	MOVD R6, R4
++	MOVD R11, (8)(R2)(R1*1)
++	
++	ADD  $16, R1		// i*8 + 8
++	ADD  $2, R7		// i++
++	
++	CMPBLT R7, R12, A6
++	BR E6
++
++L6:	MOVD (R8)(R1*1), R6
++	MULHDU R9, R6
++	MOVD (R2)(R1*1), R10
++	ADDC R10, R11	//add to low order bits
++	ADDE R0, R6
++	ADDC R4, R11
++	ADDE R0, R6
++	MOVD R6, R4
++	MOVD R11, (R2)(R1*1)
++	
++	ADD  $8, R1		// i*8 + 8
++	ADD  $1, R7		// i++
++
++E6:	CMPBLT R7, R5, L6	// i < n
++
++	MOVD R4, c+56(FP)
++	RET
++
++// func divWVW(z []Word, xn Word, x []Word, y Word) (r Word)
++// CX = R4, r8 = r8, r9=r9, r10 = r2 , r11 = r5, AX = r11, DX = R6, r12=r12, BX = R1(*8) , (R0 set to 0) + use R11 + use R7 for i
++TEXT ·divWVW(SB),NOSPLIT,$0
++	MOVD z+0(FP), R2
++	MOVD xn+24(FP), R10	// r = xn
++	MOVD x+32(FP), R8
++	MOVD y+56(FP), R9
++	MOVD z_len+8(FP), R7	// i = z
++	SLD  $3, R7, R1		// i*8
++	MOVD $0, R0		// make sure it's zero
++	BR E7
++
++L7:	MOVD (R8)(R1*1), R11
++	WORD $0xB98700A9  //DLGR R10,R9
++	MOVD R11, (R2)(R1*1)
++
++E7:	SUB  $1, R7		// i--
++	SUB  $8, R1
++	BGE L7			// i >= 0
++
++	MOVD R10, r+64(FP)
++	RET
++
++// 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..305480e
+--- /dev/null
++++ b/src/math/stubs_s390x.s
+@@ -0,0 +1,77 @@
++// 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 "../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/http/fs_test.go b/src/net/http/fs_test.go
+index 69d7806..9799ec7 100644
+--- a/src/net/http/fs_test.go
++++ b/src/net/http/fs_test.go
+@@ -963,9 +963,9 @@ func TestLinuxSendfile(t *testing.T) {
+ 
+ 	syscalls := "sendfile,sendfile64"
+ 	switch runtime.GOARCH {
+-	case "mips64", "mips64le":
+-		// mips64 strace doesn't support sendfile64 and will error out
+-		// if we specify that with `-e trace='.
++	case "mips64", "mips64le", "s390x":
++		// strace on the above platforms doesn't support sendfile64
++		// and will error out if we specify that with `-e trace='.
+ 		syscalls = "sendfile"
+ 	}
+ 
+diff --git a/src/net/lookup_test.go b/src/net/lookup_test.go
+index 439496a..f8f69c7 100644
+--- a/src/net/lookup_test.go
++++ b/src/net/lookup_test.go
+@@ -626,6 +626,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..4810d46
+--- /dev/null
++++ b/src/reflect/asm_s390x.s
+@@ -0,0 +1,30 @@
++// 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"
++#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..3390dc8
+--- /dev/null
++++ b/src/runtime/asm_s390x.s
+@@ -0,0 +1,1122 @@
++// 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 "go_asm.h"
++#include "go_tls.h"
++#include "funcdata.h"
++#include "textflag.h"
++
++DATA runtime·vectorfacility+0x00(SB)/4, $0
++GLOBL runtime·vectorfacility(SB), NOPTR, $4
++
++TEXT runtime·checkvectorfacility(SB),NOSPLIT,$24-0
++	MOVD	$2, R0
++	MOVD	$x-24(SP), R1
++	// STFLE 0(R1)
++	WORD	$0xB2B01000
++	MOVBZ	z-8(SP), R1
++	AND	$0x40, R1
++	BNE	setvector
++	MOVD	$0, R0
++	RET
++setvector:
++	MOVD	$1, R1
++	MOVBZ	R1, runtime·vectorfacility(SB)
++	MOVD	$0, R0
++	RET
++
++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
++	XOR	R0, R0
++
++	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)
++
++	// check and set the vectorfacility
++	BL	runtime·checkvectorfacility(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|NOFRAME,$0-0
++	MOVD	R0, 2(R0) // TODO: TD
++	RET
++
++TEXT runtime·asminit(SB),NOSPLIT|NOFRAME,$0-0
++	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|NOFRAME,$0-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|NOFRAME,$0-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(·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|NOFRAME,$0-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|NOFRAME,$0
++	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
++	BL	(R3)
++
++	// 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|NOFRAME,$0-0
++	// The standard prologue clobbers LR (R14), which is callee-save in
++	// the C ABI, so we have to use NOFRAME 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|NOFRAME,$0-0
++	MOVW	(R0), R0
++	UNDEF
++
++// 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 s390x
++TEXT runtime·aeshash(SB),NOSPLIT|NOFRAME,$0-0
++	MOVW	(R0), R15
++TEXT runtime·aeshash32(SB),NOSPLIT|NOFRAME,$0-0
++	MOVW	(R0), R15
++TEXT runtime·aeshash64(SB),NOSPLIT|NOFRAME,$0-0
++	MOVW	(R0), R15
++TEXT runtime·aeshashstr(SB),NOSPLIT|NOFRAME,$0-0
++	MOVW	(R0), R15
++
++TEXT runtime·memeq(SB),NOSPLIT|NOFRAME,$0-25
++	MOVD	a+0(FP), R3
++	MOVD	b+8(FP), R5
++	MOVD	size+16(FP), R6
++	LA	ret+24(FP), R7
++	BR	runtime·memeqbody(SB)
++
++// memequal_varlen(a, b unsafe.Pointer) bool
++TEXT runtime·memequal_varlen(SB),NOSPLIT|NOFRAME,$0-17
++	MOVD	a+0(FP), R3
++	MOVD	b+8(FP), R5
++	MOVD	8(R12), R6    // compiler stores size at offset 8 in the closure
++	LA	ret+16(FP), R7
++	BR	runtime·memeqbody(SB)
++
++// 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|NOFRAME,$0-33
++	MOVD	s1str+0(FP), R3
++	MOVD	s1len+8(FP), R6
++	MOVD	s2str+16(FP), R5
++	LA	ret+32(FP), R7
++	BR	runtime·memeqbody(SB)
++
++TEXT bytes·Equal(SB),NOSPLIT|NOFRAME,$0-49
++	MOVD	a_len+8(FP), R2
++	MOVD	b_len+32(FP), R6
++	MOVD	a+0(FP), R3
++	MOVD	b+24(FP), R5
++	LA	ret+48(FP), R7
++	CMPBNE	R2, R6, notequal
++	BR	runtime·memeqbody(SB)
++notequal:
++	MOVB	$0, ret+48(FP)
++	RET
++
++// input:
++//   R3 = a
++//   R5 = b
++//   R6 = len
++//   R7 = address of output byte (stores 0 or 1 here)
++//   a and b have the same length
++TEXT runtime·memeqbody(SB),NOSPLIT|NOFRAME,$0-0
++	CMPBEQ	R3, R5, equal
++loop:
++	CMPBEQ	R6, $0, equal
++	CMPBLT	R6, $32, tiny
++	CMP	R6, $256
++	BLT	tail
++	CLC	$256, 0(R3), 0(R5)
++	BNE	notequal
++	SUB	$256, R6
++	LA	256(R3), R3
++	LA	256(R5), R5
++	BR	loop
++tail:
++	SUB	$1, R6, R8
++	EXRL	$runtime·memeqbodyclc(SB), R8
++	BEQ	equal
++notequal:
++	MOVB	$0, 0(R7)
++	RET
++equal:
++	MOVB	$1, 0(R7)
++	RET
++tiny:
++	MOVD	$0, R2
++	CMPBLT	R6, $16, lt16
++	MOVD	0(R3), R8
++	MOVD	0(R5), R9
++	CMPBNE	R8, R9, notequal
++	MOVD	8(R3), R8
++	MOVD	8(R5), R9
++	CMPBNE	R8, R9, notequal
++	LA	16(R2), R2
++	SUB	$16, R6
++lt16:
++	CMPBLT	R6, $8, lt8
++	MOVD	0(R3)(R2*1), R8
++	MOVD	0(R5)(R2*1), R9
++	CMPBNE	R8, R9, notequal
++	LA	8(R2), R2
++	SUB	$8, R6
++lt8:
++	CMPBLT	R6, $4, lt4
++	MOVWZ	0(R3)(R2*1), R8
++	MOVWZ	0(R5)(R2*1), R9
++	CMPBNE	R8, R9, notequal
++	LA	4(R2), R2
++	SUB	$4, R6
++lt4:
++#define CHECK(n) \
++	CMPBEQ	R6, $n, equal \
++	MOVB	n(R3)(R2*1), R8 \
++	MOVB	n(R5)(R2*1), R9 \
++	CMPBNE	R8, R9, notequal
++	CHECK(0)
++	CHECK(1)
++	CHECK(2)
++	CHECK(3)
++	BR	equal
++
++TEXT runtime·memeqbodyclc(SB),NOSPLIT|NOFRAME,$0-0
++	CLC	$1, 0(R3), 0(R5)
++	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 bytes·IndexByte(SB),NOSPLIT,$0-40
++	MOVD	s+0(FP), R3     // s => R3
++	MOVD	s_len+8(FP), R4 // s_len => R4
++	MOVBZ	c+24(FP), R5    // c => R5
++	MOVD	$ret+32(FP), R2 // &ret => R9
++	BR	runtime·indexbytebody(SB)
++
++TEXT strings·IndexByte(SB),NOSPLIT,$0-32
++	MOVD	s+0(FP), R3     // s => R3
++	MOVD	s_len+8(FP), R4 // s_len => R4
++	MOVBZ	c+16(FP), R5    // c => R5
++	MOVD	$ret+24(FP), R2 // &ret => R9
++	BR	runtime·indexbytebody(SB)
++
++// input:
++// R3: s
++// R4: s_len
++// R5: c -- byte sought
++// R2: &ret -- address to put index into
++TEXT runtime·indexbytebody(SB),NOSPLIT,$0
++	CMPBEQ	R4, $0, notfound
++	MOVD	R3, R6          // store base for later
++	ADD	R3, R4, R8      // the address after the end of the string
++	//if the length is small, use loop; otherwise, use vector or srst search
++	CMPBGE	R4, $16, large
++
++residual:
++	CMPBEQ	R3, R8, notfound
++	MOVBZ	0(R3), R7
++	LA	1(R3), R3
++	CMPBNE	R7, R5, residual
++
++found:
++	SUB	R6, R3
++	SUB	$1, R3
++	MOVD	R3, 0(R2)
++	RET
++
++notfound:
++	MOVD	$-1, 0(R2)
++	RET
++
++large:
++	MOVBZ	runtime·vectorfacility(SB), R1
++	CMPBEQ	R1, $1, vectorimpl      // vectorfacility = 1, vector supported
++
++srstimpl:                       // vectorfacility == 0, not support vector
++	MOVBZ	R5, R0          // c needs to be in R0, leave until last minute as currently R0 is expected to be 0
++srstloop:
++	WORD	$0xB25E0083     // srst %r8, %r3 (search the range [R3, R8))
++	BVS	srstloop        // interrupted - continue
++	BGT	notfoundr0
++foundr0:
++	XOR	R0, R0          // reset R0
++	SUB	R6, R8          // remove base
++	MOVD	R8, 0(R2)
++	RET
++notfoundr0:
++	XOR	R0, R0          // reset R0
++	MOVD	$-1, 0(R2)
++	RET
++
++vectorimpl:
++	//if the address is not 16byte aligned, use loop for the header
++	AND	$15, R3, R8
++	CMPBGT	R8, $0, notaligned
++
++aligned:
++	ADD	R6, R4, R8
++	AND	$-16, R8, R7
++	// replicate c across V17
++	VLVGB	$0, R5, V19
++	VREPB	$0, V19, V17
++
++vectorloop:
++	CMPBGE	R3, R7, residual
++	VL	0(R3), V16    // load string to be searched into V16
++	ADD	$16, R3
++	VFEEBS	V16, V17, V18 // search V17 in V16 and set conditional code accordingly
++	BVS	vectorloop
++
++	// when vector search found c in the string
++	VLGVB	$7, V18, R7   // load 7th element of V18 containing index into R7
++	SUB	$16, R3
++	SUB	R6, R3
++	ADD	R3, R7
++	MOVD	R7, 0(R2)
++	RET
++
++notaligned:
++	AND	$-16, R3, R8
++	ADD     $16, R8
++notalignedloop:
++	CMPBEQ	R3, R8, aligned
++	MOVBZ	0(R3), R7
++	LA	1(R3), R3
++	CMPBNE	R7, R5, notalignedloop
++	BR	found
++
++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|NOFRAME,$0
++	// 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|NOFRAME,$0-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 runtime·sigreturn(SB),NOSPLIT,$0-8
++	RET
++
++TEXT ·publicationBarrier(SB),NOSPLIT|NOFRAME,$0-0
++	SYNC
++	RET
++
++TEXT runtime·cmpstring(SB),NOSPLIT|NOFRAME,$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
++	LA	ret+32(FP), R7
++	BR	runtime·cmpbody(SB)
++
++TEXT bytes·Compare(SB),NOSPLIT|NOFRAME,$0-56
++	MOVD	s1+0(FP), R3
++	MOVD	s1+8(FP), R4
++	MOVD	s2+24(FP), R5
++	MOVD	s2+32(FP), R6
++	LA	res+48(FP), R7
++	BR	runtime·cmpbody(SB)
++
++// input:
++//   R3 = a
++//   R4 = alen
++//   R5 = b
++//   R6 = blen
++//   R7 = address of output word (stores -1/0/1 here)
++TEXT runtime·cmpbody(SB),NOSPLIT|NOFRAME,$0-0
++	CMPBEQ	R3, R5, cmplengths
++	MOVD	R4, R8
++	CMPBLE	R4, R6, amin
++	MOVD	R6, R8
++amin:
++	CMPBEQ	R8, $0, cmplengths
++	CMP	R8, $256
++	BLE	tail
++loop:
++	CLC	$256, 0(R3), 0(R5)
++	BGT	gt
++	BLT	lt
++	SUB	$256, R8
++	CMP	R8, $256
++	BGT	loop
++tail:
++	SUB	$1, R8
++	EXRL	$runtime·cmpbodyclc(SB), R8
++	BGT	gt
++	BLT	lt
++cmplengths:
++	CMP	R4, R6
++	BEQ	eq
++	BLT	lt
++gt:
++	MOVD	$1, 0(R7)
++	RET
++lt:
++	MOVD	$-1, 0(R7)
++	RET
++eq:
++	MOVD	$0, 0(R7)
++	RET
++
++TEXT runtime·cmpbodyclc(SB),NOSPLIT|NOFRAME,$0-0
++	CLC	$1, 0(R3), 0(R5)
++	RET
++
++// This is called from .init_array and follows the platform, not Go, ABI.
++// We are overly conservative. We could only save the registers we use.
++// However, since this function is only called once per loaded module
++// performance is unimportant.
++TEXT runtime·addmoduledata(SB),NOSPLIT|NOFRAME,$0-0
++	// Save R6-R15, F0, F2, F4 and F6 in the
++	// register save area of the calling function
++	STMG	R6, R15, 48(R15)
++	FMOVD	F0, 128(R15)
++	FMOVD	F2, 136(R15)
++	FMOVD	F4, 144(R15)
++	FMOVD	F6, 152(R15)
++
++	// append the argument (passed in R2, as per the ELF ABI) to the
++	// moduledata linked list.
++	MOVD	runtime·lastmoduledatap(SB), R1
++	MOVD	R2, moduledata_next(R1)
++	MOVD	R2, runtime·lastmoduledatap(SB)
++
++	// Restore R6-R15, F0, F2, F4 and F6
++	LMG	48(R15), R6, R15
++	FMOVD	F0, 128(R15)
++	FMOVD	F2, 136(R15)
++	FMOVD	F4, 144(R15)
++	FMOVD	F6, 152(R15)
++	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..dcb1e6b
+--- /dev/null
++++ b/src/runtime/cgo/asm_s390x.s
+@@ -0,0 +1,44 @@
++// 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"
++
++/*
++ * 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|NOFRAME,$0
++	// 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)
++	FMOVD	F0, 128(R15)
++	FMOVD	F2, 136(R15)
++	FMOVD	F4, 144(R15)
++	FMOVD	F6, 152(R15)
++
++	// Initialize Go ABI environment
++	XOR	R0, R0
++	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	48(R15), R6, R15
++	FMOVD	F0, 128(R15)
++	FMOVD	F2, 136(R15)
++	FMOVD	F4, 144(R15)
++	FMOVD	F6, 152(R15)
++
++	RET
++
+diff --git a/src/runtime/cgo/gcc_linux_s390x.c b/src/runtime/cgo/gcc_linux_s390x.c
+new file mode 100644
+index 0000000..80550e6
+--- /dev/null
++++ b/src/runtime/cgo/gcc_linux_s390x.c
+@@ -0,0 +1,68 @@
++// 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 <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..dc242eb
+--- /dev/null
++++ b/src/runtime/cgo/gcc_s390x.S
+@@ -0,0 +1,43 @@
++// 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.
++
++/*
++ * 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)
++
++	/* assumes this call does not clobber r2 or r15 */
++	xgr	%r0, %r0
++
++	/* 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 */
++
++#ifdef __ELF__
++.section .note.GNU-stack,"",%progbits
++#endif
+diff --git a/src/runtime/cgocall.go b/src/runtime/cgocall.go
+index 66115fd..634b6e7 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..893a31c
+--- /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..d782ecd
+--- /dev/null
++++ b/src/runtime/internal/atomic/asm_s390x.s
+@@ -0,0 +1,192 @@
++// 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"
++
++// bool ·Cas(uint32 *ptr, uint32 old, uint32 new)
++// Atomically:
++//	if(*val == old){
++//		*val = new;
++//		return 1;
++//	} else
++//		return 0;
++TEXT ·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	·Cas64(uint64 *ptr, uint64 old, uint64 new)
++// Atomically:
++//	if(*val == *old){
++//		*val = new;
++//		return 1;
++//	} else {
++//		return 0;
++//	}
++TEXT ·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 ·Casuintptr(SB), NOSPLIT, $0-25
++	BR	·Cas64(SB)
++
++TEXT ·Loaduintptr(SB), NOSPLIT, $0-16
++	BR	·Load64(SB)
++
++TEXT ·Loaduint(SB), NOSPLIT, $0-16
++	BR	·Load64(SB)
++
++TEXT ·Storeuintptr(SB), NOSPLIT, $0-16
++	BR	·Store64(SB)
++
++TEXT ·Loadint64(SB), NOSPLIT, $0-16
++	BR	·Load64(SB)
++
++TEXT ·Xadduintptr(SB), NOSPLIT, $0-24
++	BR	·Xadd64(SB)
++
++TEXT ·Xaddint64(SB), NOSPLIT, $0-16
++	BR	·Xadd64(SB)
++
++// bool ·Casp1(void **val, void *old, void *new)
++// Atomically:
++//	if(*val == old){
++//		*val = new;
++//		return 1;
++//	} else
++//		return 0;
++TEXT ·Casp1(SB), NOSPLIT, $0-25
++	BR ·Cas64(SB)
++
++// uint32 ·Xadd(uint32 volatile *ptr, int32 delta)
++// Atomically:
++//	*val += delta;
++//	return *val;
++TEXT ·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 ·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 ·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 ·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 ·Xchguintptr(SB), NOSPLIT, $0-24
++	BR	·Xchg64(SB)
++
++TEXT ·Storep1(SB), NOSPLIT, $0-16
++	BR	·Store64(SB)
++
++// on Z, load & store both are atomic operations
++TEXT ·Store(SB), NOSPLIT, $0-12
++	MOVD	ptr+0(FP), R3
++	MOVW	val+8(FP), R4
++	SYNC
++	MOVW	R4, 0(R3)
++	RET
++
++TEXT ·Store64(SB), NOSPLIT, $0-16
++	MOVD	ptr+0(FP), R3
++	MOVD	val+8(FP), R4
++	SYNC
++	MOVD	R4, 0(R3)
++	RET
++
++// func Or8(addr *uint8, v uint8)
++TEXT ·Or8(SB), NOSPLIT, $0-9
++	MOVD    ptr+0(FP), R3
++	MOVBZ   val+8(FP), R4
++	// Calculate shift.
++	AND	$3, R3, R5
++	XOR	$3, R5 // big endian - flip direction
++	SLD	$3, R5 // MUL $8, R5
++	SLD	R5, R4
++	// Align ptr down to 4 bytes so we can use 32-bit load/store.
++	SRD	$2, R3, R5
++	SLD	$2, R5
++	MOVWZ	0(R5), R6
++again:
++	OR	R4, R6, R7
++	CS	R6, R7, 0(R5) //  if (R6 == 0(R5)) then 0(R5)= R7 else R6= 0(R5)
++	BNE	again
++	RET
++
++// func And8(addr *uint8, v uint8)
++TEXT ·And8(SB), NOSPLIT, $0-9
++	MOVD    ptr+0(FP), R3
++	MOVBZ   val+8(FP), R4
++	// Calculate shift.
++	AND	$3, R3, R5
++	XOR	$3, R5 // big endian - flip direction
++	SLD	$3, R5 // MUL $8, R5
++	OR	$-256, R4 // create 0xffffffffffffffxx
++	BYTE	$0xEB // RLLG R5, R4
++	BYTE	$0x44
++	BYTE	$0x50
++	BYTE	$0x00
++	BYTE	$0x00
++	BYTE	$0x1C
++	// Align ptr down to 4 bytes so we can use 32-bit load/store.
++	SRD	$2, R3, R5
++	SLD	$2, R5
++	MOVWZ	0(R5), R6
++again:
++	AND	R4, R6, R7
++	CS	R6, R7, 0(R5) //  if (R6 == 0(R5)) then 0(R5)= R7 else R6= 0(R5)
++	BNE	again
++	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..67f50e4
+--- /dev/null
++++ b/src/runtime/internal/atomic/atomic_s390x.go
+@@ -0,0 +1,63 @@
++// 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.
++
++package atomic
++
++import "unsafe"
++
++//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:noescape
++func And8(ptr *uint8, val uint8)
++
++//go:noescape
++func Or8(ptr *uint8, val uint8)
++
++// 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..8690571
+--- /dev/null
++++ b/src/runtime/internal/sys/arch_s390x.go
+@@ -0,0 +1,18 @@
++// 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.
++
++package sys
++
++const (
++	TheChar       = 'z'
++	BigEndian     = 1
++	CacheLineSize = 256
++	PhysPageSize  = 4096
++	PCQuantum     = 2
++	Int64Align    = 8
++	HugePageSize  = 0
++	MinFrameSize  = 8
++)
++
++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..14c1d07
+--- /dev/null
++++ b/src/runtime/lfstack_linux_s390x.go
+@@ -0,0 +1,25 @@
++// 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.
++
++package runtime
++
++import "unsafe"
++
++// 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..86eafec
+--- /dev/null
++++ b/src/runtime/memclr_s390x.s
+@@ -0,0 +1,122 @@
++// 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"
++
++// void runtime·memclr(void*, uintptr)
++TEXT runtime·memclr(SB),NOSPLIT|NOFRAME,$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|NOFRAME,$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..238f308
+--- /dev/null
++++ b/src/runtime/memmove_s390x.s
+@@ -0,0 +1,189 @@
++// 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"
++
++// void runtime·memmove(void*, void*, uintptr)
++TEXT runtime·memmove(SB),NOSPLIT|NOFRAME,$0-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|NOFRAME,$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..704d5ca
+--- /dev/null
++++ b/src/runtime/os1_linux_s390x.go
+@@ -0,0 +1,29 @@
++// 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.
++
++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..d03b499
+--- /dev/null
++++ b/src/runtime/os2_linux_s390x.go
+@@ -0,0 +1,22 @@
++// 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.
++
++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..cd66122
+--- /dev/null
++++ b/src/runtime/rt0_linux_s390x.s
+@@ -0,0 +1,20 @@
++// 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"
++
++TEXT _rt0_s390x_linux(SB),NOSPLIT|NOFRAME,$0
++	// 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|NOFRAME,$0
++	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..0643cfc
+--- /dev/null
++++ b/src/runtime/signal_linux_s390x.go
+@@ -0,0 +1,50 @@
++// 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.
++
++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..0b09332
+--- /dev/null
++++ b/src/runtime/signal_s390x.go
+@@ -0,0 +1,170 @@
++// 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 linux
++
++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..a4a4693
+--- /dev/null
++++ b/src/runtime/sys_linux_s390x.s
+@@ -0,0 +1,440 @@
++// 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.
++
++// 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|NOFRAME,$0-4
++	MOVW	code+0(FP), R2
++	MOVW	$SYS_exit_group, R1
++	SYSCALL
++	RET
++
++TEXT runtime·exit1(SB),NOSPLIT|NOFRAME,$0-4
++	MOVW	code+0(FP), R2
++	MOVW	$SYS_exit, R1
++	SYSCALL
++	RET
++
++TEXT runtime·open(SB),NOSPLIT|NOFRAME,$0-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|NOFRAME,$0-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|NOFRAME,$0-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|NOFRAME,$0-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|NOFRAME,$0-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|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0-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|NOFRAME,$0-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|NOFRAME,$0-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|NOFRAME,$0-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)
++	XOR	R0, R0
++
++	// 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
++
++// func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uint32) unsafe.Pointer
++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
++	MOVWZ	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.
++	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	$-4095, R3
++	CMPUBLT	R2, R3, 2(PC)
++	NEG	R2
++	MOVD	R2, ret+32(FP)
++	RET
++
++TEXT runtime·munmap(SB),NOSPLIT|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	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
++	XOR	R0, R0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	MOVW	$SYS_sched_yield, R1
++	SYSCALL
++	RET
++
++TEXT runtime·sched_getaffinity(SB),NOSPLIT|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	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|NOFRAME,$0
++	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..106d7ea
+--- /dev/null
++++ b/src/runtime/sys_s390x.go
+@@ -0,0 +1,48 @@
++// 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.
++
++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..03bfc50
+--- /dev/null
++++ b/src/runtime/tls_s390x.s
+@@ -0,0 +1,51 @@
++// 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 "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|NOFRAME,$0-0
++	MOVB	runtime·iscgo(SB),  R10
++	CMPBEQ	R10, $0, nocgo
++	MOVW	AR0, R11
++	SLD	$32, R11
++	MOVW	AR1, R11
++	MOVD	runtime·tls_g(SB), R10
++	MOVD	g, 0(R10)(R11*1)
++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|NOFRAME,$0-0
++	MOVW	AR0, R11
++	SLD	$32, R11
++	MOVW	AR1, R11
++	MOVD	runtime·tls_g(SB), R10
++	MOVD	0(R10)(R11*1), g
++	RET
++
++GLOBL runtime·tls_g+0(SB),TLSBSS,$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..a96cce3
+--- /dev/null
++++ b/src/sync/atomic/asm_s390x.s
+@@ -0,0 +1,149 @@
++// 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"
++
++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..5d9bf07
+--- /dev/null
++++ b/src/syscall/asm_linux_s390x.s
+@@ -0,0 +1,173 @@
++// 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"
++
++//
++// 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/mksyscall.pl b/src/syscall/mksyscall.pl
+index 96437fe..6ee7c3c 100755
+--- a/src/syscall/mksyscall.pl
++++ b/src/syscall/mksyscall.pl
+@@ -100,7 +100,7 @@ while(<>) {
+ 	# Line must be of the form
+ 	#	func Open(path string, mode int, perm int) (fd int, errno error)
+ 	# Split into name, in params, out params.
+-	if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$/) {
++	if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)_?SYS_[A-Z0-9_]+))?$/) {
+ 		print STDERR "$ARGV:$.: malformed //sys declaration\n";
+ 		$errors = 1;
+ 		next;
+diff --git a/src/syscall/syscall_linux.go b/src/syscall/syscall_linux.go
+index 2875067..b5e33bf 100644
+--- a/src/syscall/syscall_linux.go
++++ b/src/syscall/syscall_linux.go
+@@ -301,7 +301,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	}
+ 	sa.raw.Family = AF_UNIX
+ 	for i := 0; i < n; i++ {
+-		sa.raw.Path[i] = int8(name[i])
++		bp := (*byte)(unsafe.Pointer(&sa.raw.Path[i]))
++		*bp = name[i]
+ 	}
+ 	// length is family (uint16), name, NUL.
+ 	sl := _Socklen(2)
+diff --git a/src/syscall/syscall_linux_s390x.go b/src/syscall/syscall_linux_s390x.go
+new file mode 100644
+index 0000000..4fc9c3f
+--- /dev/null
++++ b/src/syscall/syscall_linux_s390x.go
+@@ -0,0 +1,299 @@
++// 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.
++
++package syscall
++
++import "unsafe"
++
++const (
++       _SYS_dup = SYS_DUP2
++       _SYS_getdents = SYS_GETDENTS64
++)
++
++//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..547419f
+--- /dev/null
++++ b/src/syscall/zerrors_linux_s390x.go
+@@ -0,0 +1,1893 @@
++// 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                           = 0x29
++	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_VSOCK                         = 0x28
++	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
++	ETH_P_1588                       = 0x88f7
++	ETH_P_8021AD                     = 0x88a8
++	ETH_P_8021AH                     = 0x88e7
++	ETH_P_8021Q                      = 0x8100
++	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_NODAD                      = 0x2
++	IFA_F_OPTIMISTIC                 = 0x4
++	IFA_F_PERMANENT                  = 0x80
++	IFA_F_SECONDARY                  = 0x1
++	IFA_F_TEMPORARY                  = 0x1
++	IFA_F_TENTATIVE                  = 0x40
++	IFA_MAX                          = 0x7
++	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_NOFILTER                     = 0x1000
++	IFF_NOTRAILERS                   = 0x20
++	IFF_NO_PI                        = 0x1000
++	IFF_ONE_QUEUE                    = 0x2000
++	IFF_OVS_DATAPATH                 = 0x8000
++	IFF_PERSIST                      = 0x800
++	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_BEETPH                   = 0x5e
++	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_MH                       = 0x87
++	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_HUGETLB                      = 0x40000
++	MAP_HUGE_MASK                    = 0x3f
++	MAP_HUGE_SHIFT                   = 0x1a
++	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_TMPFILE                        = 0x410000
++	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_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_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_GETSIGMASK                = 0x420a
++	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_SETSIGMASK                = 0x420b
++	PTRACE_SINGLESTEP                = 0x9
++	PTRACE_SYSCALL                   = 0x18
++	PTRACE_TE_ABORT_RAND             = 0x5011
++	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                         = 0xf
++	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_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_COOKIE_IN_ALWAYS             = 0x1
++	TCP_COOKIE_MAX                   = 0x10
++	TCP_COOKIE_MIN                   = 0x8
++	TCP_COOKIE_OUT_NEVER             = 0x2
++	TCP_COOKIE_PAIR_SIZE             = 0x20
++	TCP_COOKIE_TRANSACTIONS          = 0xf
++	TCP_CORK                         = 0x3
++	TCP_DEFER_ACCEPT                 = 0x9
++	TCP_FASTOPEN                     = 0x17
++	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_MSS_DEFAULT                  = 0x218
++	TCP_MSS_DESIRED                  = 0x4c4
++	TCP_NODELAY                      = 0x1
++	TCP_QUEUE_SEQ                    = 0x15
++	TCP_QUICKACK                     = 0xc
++	TCP_REPAIR                       = 0x13
++	TCP_REPAIR_OPTIONS               = 0x16
++	TCP_REPAIR_QUEUE                 = 0x14
++	TCP_SYNCNT                       = 0x7
++	TCP_S_DATA_IN                    = 0x4
++	TCP_S_DATA_OUT                   = 0x8
++	TCP_THIN_DUPACK                  = 0x11
++	TCP_THIN_LINEAR_TIMEOUTS         = 0x10
++	TCP_TIMESTAMP                    = 0x18
++	TCP_USER_TIMEOUT                 = 0x12
++	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
++	TUNGETFILTER                     = 0x801054db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	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..e5b941c
+--- /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_getdents, 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..e994c58
+--- /dev/null
++++ b/src/syscall/ztypes_linux_s390x.go
+@@ -0,0 +1,621 @@
++// 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__glibc_reserved [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]uint8
++}
++
++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
++}
++
++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
++}
++
++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")
+ 		}
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..9142d39 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+0001-s390x-port.patch

-- 
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