[Pkg-golang-commits] [golang] 24/27: Imported Debian patch 2:1.6~rc2-0ubuntu1

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


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

mwhudson-guest pushed a commit to branch gbp
in repository golang.

commit ae6442802368fd6ba8b92833329137f4b4d8fdd0
Merge: 9079736 512a669
Author: Michael Hudson-Doyle <michael.hudson at canonical.com>
Date:   Thu Feb 4 14:06:36 2016 +1300

    Imported Debian patch 2:1.6~rc2-0ubuntu1

 VERSION                                    |    2 +-
 debian/changelog                           |    7 +
 debian/patches/0001-s390x-port.patch       | 1289 +++++++++++++++++++---------
 doc/go1.6.html                             |   26 +-
 lib/time/update.bash                       |    4 +-
 lib/time/zoneinfo.zip                      |  Bin 360617 -> 360703 bytes
 src/archive/zip/reader.go                  |   12 +-
 src/archive/zip/reader_test.go             |  235 ++++-
 src/cmd/compile/internal/gc/parser.go      |   18 +
 src/cmd/go/alldocs.go                      |    3 +-
 src/cmd/go/build.go                        |    3 +-
 src/cmd/go/go_test.go                      |  140 ++-
 src/cmd/go/main.go                         |    9 +
 src/cmd/go/pkg.go                          |   30 +-
 src/cmd/go/vcs.go                          |   11 +-
 src/cmd/vet/cgo.go                         |    3 +
 src/cmd/vet/print.go                       |    8 +-
 src/cmd/vet/testdata/cgo2.go               |    9 +
 src/cmd/vet/testdata/print.go              |    3 +
 src/net/http/clientserver_test.go          |   12 +-
 src/net/http/h2_bundle.go                  |   67 +-
 src/net/http/httputil/reverseproxy.go      |    5 +-
 src/net/http/httputil/reverseproxy_test.go |    8 +
 src/net/http/transport_test.go             |    5 +-
 src/net/net_test.go                        |   24 +-
 src/os/doc.go                              |    6 +-
 src/runtime/cgo_mmap.go                    |   13 +-
 src/runtime/pprof/pprof_test.go            |   14 +-
 src/runtime/proc.go                        |   12 +
 src/runtime/runtime_test.go                |   25 +-
 src/runtime/sys_darwin_386.s               |   20 +-
 src/sync/waitgroup_test.go                 |   11 +-
 src/unsafe/unsafe.go                       |    2 +-
 test/fixedbugs/issue14164.dir/a.go         |   47 +
 test/fixedbugs/issue14164.dir/main.go      |   12 +
 test/fixedbugs/issue14164.go               |    7 +
 36 files changed, 1596 insertions(+), 506 deletions(-)

diff --cc debian/changelog
index 9fc140f,0000000..a04ea14
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,938 -1,0 +1,945 @@@
++golang (2:1.6~rc2-0ubuntu1) xenial; urgency=medium
++
++  * New upstream version. (LP: #1541660)
++  * Update d/patches/0001-s390x-port.patch from IBM's repo.
++
++ -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Thu, 04 Feb 2016 14:06:36 +1300
++
 +golang (2:1.6~rc1-0ubuntu1) xenial; urgency=medium
 +
 +  * New upstream version.
 +  * Update d/patches/0001-s390x-port.patch from IBM's repo.
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Fri, 29 Jan 2016 10:22:32 +1300
 +
 +golang (2:1.6~beta2-0ubuntu1) xenial; urgency=medium
 +
 +  * New upstream version.
 +    - Update debian/rules clean to new location of generated file.
 +  * Dropped changes:
 +    - d/patches/armhf-elf-header.patch (fixed properly upstream).
 +    - d/patches/skip-userns-tests-when-chrooted.patch (included upstream).
 +  * Add:
 +    - d/patches/0001-s390x-port.patch
 +  * Updates for s390x support.
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Sat, 16 Jan 2016 19:59:59 +1300
 +
 +golang (2:1.5.3-1ubuntu1) xenial; urgency=low
 +
 +  * Merge from Debian unstable.  Remaining changes:
 +    - d/patches/armhf-elf-header.patch (see upstream bug
 +      https://github.com/golang/go/issues/7094)
 +    - debian/copyright: updated copyright file to fix some lintian warnings
 +      (see Debian bug #807304)
 +    - Build empty golang-go and golang-src packages on architectures without
 +      golang support and depend on gccgo instead (see Debian bug #780355)
 +    - Do not distribute un-built from source race detector runtime files and
 +      recommend golang-race-detector-runtime instead (see Debian bug #807455)
 +    - debian/source/lintian-overrides: silence some extra source-missing false
 +      positives.
 +    - Breaks/Replaces: older golang-golang-x-tools, not Conflicts, to ensure
 +      smooth upgrades.
 +    - d/patches/skip-userns-tests-when-chrooted.patch (see Debian bug #807303)
 +    - Do not include race enabled packages in golang-go deb (see Debian bug
 +      #807294)
 +
 + -- Steve Langasek <steve.langasek at ubuntu.com>  Fri, 15 Jan 2016 14:04:35 -0800
 +
 +golang (2:1.5.3-1) unstable; urgency=high
 +
 +  * Update to 1.5.3 upstream release
 +    - Fix CVE-2015-8618: Carry propagation in Int.Exp Montgomery code in
 +      math/big library (Closes: #809168)
 +  * Add "Breaks" to properly complement our "Replaces" (Closes: #810595)
 +
 + -- Tianon Gravi <tianon at debian.org>  Thu, 14 Jan 2016 07:41:44 -0800
 +
 +golang (2:1.5.2-1ubuntu1) xenial; urgency=low
 +
 +  * Merge from Debian unstable (LP: #1524165).  Remaining changes:
 +    - d/patches/armhf-elf-header.patch (see upstream bug
 +      https://github.com/golang/go/issues/7094)
 +    - debian/copyright: updated copyright file to fix some lintian warnings
 +      (see Debian bug #807304)
 +    - Build empty golang-go and golang-src packages on architectures without
 +      golang support and depend on gccgo instead (see Debian bug #780355)
 +    - Do not distribute un-built from source race detector runtime files and
 +      recommend golang-race-detector-runtime instead (see Debian bug #807455)
 +    - debian/source/lintian-overrides: silence some extra source-missing false
 +      positives.
 +    - Breaks/Replaces: older golang-golang-x-tools, not Conflicts, to ensure
 +      smooth upgrades.
 +  * Dropped changes, included upstream:
 +    - d/patches/qemu-compat.patch
 +    - d/patches/support-new-relocations.patch
 +  * Add a patch to avoid build failures:
 +    - d/patches/skip-userns-tests-when-chrooted.patch (see Debian bug #807303)
 +  * Do not include race enabled packages in golang-go deb (see Debian bug
 +    #807294)
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Thu, 07 Jan 2016 10:11:50 +1300
 +
 +golang (2:1.5.2-1) unstable; urgency=medium
 +
 +  * Update to 1.5.2 upstream release (Closes: #807136)
 +
 + -- Tianon Gravi <tianon at debian.org>  Tue, 05 Jan 2016 19:59:22 -0800
 +
 +golang (2:1.5.1-4) unstable; urgency=medium
 +
 +  * Add Conflicts to force newer golang-go.tools too (Closes: #803559)
 +
 + -- Tianon Gravi <tianon at debian.org>  Tue, 03 Nov 2015 21:57:54 -0800
 +
 +golang (2:1.5.1-3) unstable; urgency=medium
 +
 +  * Remove architecture qualification on golang-go Build-Depend now that
 +    golang-go is available for more architectures.
 +
 + -- Tianon Gravi <tianon at debian.org>  Thu, 29 Oct 2015 07:40:38 -0700
 +
 +golang (2:1.5.1-2) unstable; urgency=medium
 +
 +  * Add Conflicts to force newer golang-golang-x-tools (Closes: #802945).
 +
 + -- Tianon Gravi <tianon at debian.org>  Tue, 27 Oct 2015 13:28:56 -0700
 +
 +golang (2:1.5.1-1) unstable; urgency=medium
 +
 +  * Upload to unstable.
 +  * Update to 1.5.1 upstream release (see notes from experimental uploads for
 +    what's changed).
 +  * Skip tests on architectures where the tests fail.
 +
 + -- Tianon Gravi <tianon at debian.org>  Sat, 24 Oct 2015 10:22:02 -0700
 +
 +golang (2:1.5.1-0ubuntu4) xenial; urgency=medium
 +
 +  * Add d/patches/support-new-relocations.patch to fix ftbfs on xenial.
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Mon, 16 Nov 2015 09:43:57 +1300
 +
 +golang (2:1.5.1-0ubuntu3) xenial; urgency=medium
 +
 +  * Add d/patches/qemu-compat.patch (LP: #1501651)
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Fri, 13 Nov 2015 10:26:17 +1300
 +
 +golang (2:1.5.1-0ubuntu2) wily; urgency=medium
 +
 +  * Recommends: golang-race-detector-runtime on amd64. (LP: #1506393)
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Thu, 15 Oct 2015 22:35:25 +1300
 +
 +golang (2:1.5.1-0ubuntu1) wily; urgency=medium
 +
 +  * New upstream release.
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Wed, 09 Sep 2015 21:11:47 +1200
 +
 +golang (2:1.5-0ubuntu1) wily; urgency=medium
 +
 +  * New upstream release.
 +    - Drop debian/patches/disable-duffzero-ppc64el.patch
 +  * Breaks/Replaces: older golang-go.tools (LP: 1486560)
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Fri, 21 Aug 2015 11:48:02 +1200
 +
 +golang (2:1.5~rc1-0ubuntu2) wily; urgency=medium
 +
 +  * debian/control: Breaks/Replaces golang-go.tools, so as to permit proper
 +    upgrade.
 +
 + -- Mathieu Trudel-Lapierre <mathieu-tl at ubuntu.com>  Fri, 28 Aug 2015 09:26:01 -0400
 +
 +golang (2:1.5~rc1-0ubuntu1) wily; urgency=low
 +
 +  [ Tianon Gravi ]
 +  * Upload to experimental.
 +  * Update to 1.5rc1 upstream release.
 +    - Compiler and runtime written entirely in Go.
 +    - Concurrent garbage collector.
 +    - GOMAXPROCS=runtime.NumCPU() by default.
 +    - "internal" packages for all, not just core.
 +    - Experimental "vendoring" support.
 +    - Cross-compilation no longer requires a complete rebuild of the stdlib in
 +      GOROOT, and thus the golang-go-GOHOST-GOARCH packages are removed.
 +  * Sync debian/copyright with the Ubuntu delta. (thanks doko!)
 +
 +  [ Michael Hudson-Doyle ]
 +  * Update GO{HOST,}ARCH computation
 +  * Breaks/Replaces: older golang-golang-x-tools 
 +  * Two patches:
 +    - correct ELF header on armhf
 +    - disable duffzero on ppc64el
 +
 +  [ Mathieu Trudel-Lapierre ]
 +  * debian/copyright: updated copyright file to fix some lintian warnings.
 +  * debian/source/lintian-overrides: silence some extra source-missing false
 +    positives.
 +
 + -- Michael Hudson-Doyle <michael.hudson at canonical.com>  Tue, 18 Aug 2015 16:05:37 +1200
 +
 +golang (2:1.4.3-3) unstable; urgency=medium
 +
 +  * Fix FTBFS for non-amd64 architectures due to handling of "-race".
 +
 + -- Tianon Gravi <tianon at debian.org>  Mon, 05 Oct 2015 02:04:07 -0700
 +
 +golang (2:1.5.1-1~exp2) experimental; urgency=medium
 +
 +  * Upload to experimental.
 +  * Add arch-qualifiers to "golang-go" build-depends to unblock the buildds
 +    (Closes: #800479); thanks Tim!
 +
 + -- Tianon Gravi <tianon at debian.org>  Wed, 30 Sep 2015 11:19:26 -0700
 +
 +golang (2:1.4.3-2) unstable; urgency=medium
 +
 +  * Update Recommends/Suggests, especially to add gcc, etc.
 +  * Refactor "debian/rules" to utilize debhelper more effectively, especially
 +    for arch vs indep building (mostly backported from the 1.5+ changes), which
 +    fixes the "arch:all" FTBFS.
 +
 + -- Tianon Gravi <tianon at debian.org>  Sun, 27 Sep 2015 22:06:07 -0700
 +
 +golang (2:1.5.1-1~exp1) experimental; urgency=low
 +
 +  * Upload to experimental.
 +  * Update to 1.5.1 upstream release (Closes: #796150).
 +    - Compiler and runtime written entirely in Go.
 +    - Concurrent garbage collector.
 +    - GOMAXPROCS=runtime.NumCPU() by default.
 +    - "internal" packages for all, not just core.
 +    - Experimental "vendoring" support.
 +    - Cross-compilation no longer requires a complete rebuild of the stdlib in
 +      GOROOT, and thus the golang-go-GOHOST-GOARCH packages are removed.
 +  * Sync debian/copyright with the Ubuntu delta. (thanks doko!)
 +  * Remove patches that no longer apply.
 +  * Add more supported arches to "debian/rules" code for detecting
 +    appropriate GOARCH/GOHOSTARCH values; thanks mwhudson and tpot!
 +    (Closes: #799907)
 +  * Refactor "debian/rules" to utilize debhelper more effectively, especially
 +    for arch vs indep building.
 +  * Move "dpkg-architecture" to "GOOS"/"GOARCH" code into a simple shell script
 +    for easier maintenance.
 +
 + -- Tianon Gravi <tianon at debian.org>  Fri, 25 Sep 2015 14:36:53 -0700
 +
 +golang (2:1.4.3-1) unstable; urgency=medium
 +
 +  * New upstream version (https://golang.org/doc/devel/release.html#go1.4.minor)
 +    - includes previous CVE and non-CVE security fixes, especially
 +      TEMP-0000000-1C4729
 +
 + -- Tianon Gravi <tianon at debian.org>  Fri, 25 Sep 2015 00:02:31 -0700
 +
 +golang (2:1.4.2-4) unstable; urgency=high
 +
 +  * Apply backported CVE fixes (Closes: #795106).
 +    - CVE-2015-5739: Invalid headers are parsed as valid headers
 +    - CVE-2015-5740: RFC 7230 3.3.3 4 violation
 +    - CVE-2015-5741: other discoveries of security-relevant RFC 7230 violations
 +
 + -- Tianon Gravi <tianon at debian.org>  Mon, 14 Sep 2015 12:27:57 -0700
 +
 +golang (2:1.4.2-3ubuntu2) wily; urgency=medium
 +
 +  * Fix installation of fake golang-go package.
 +
 + -- Matthias Klose <doko at ubuntu.com>  Wed, 27 May 2015 12:54:55 +0200
 +
 +golang (2:1.4.2-3ubuntu1) wily; urgency=medium
 +
 +  * Merge with Debian; remaining changes:
 +    - Build empty golang-go and golang-src packages on architectures
 +      without golang support, and depend on gccgo instead.
 +    - golang-go: Conflict with golang-go (<< 2:1.3.3-1ubuntu2).
 +    - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
 +    - d/copyright: Amendments for full compliance with copyright format.
 +  * Remove generated override files.
 +
 + -- Matthias Klose <doko at ubuntu.com>  Tue, 26 May 2015 15:05:11 +0200
 +
 +golang (2:1.4.2-3) unstable; urgency=medium
 +
 +  * Add missing "prerm" for our new alternatives (thanks piuparts).
 +
 + -- Tianon Gravi <admwiggin at gmail.com>  Tue, 05 May 2015 17:38:37 -0600
 +
 +golang (2:1.4.2-2) unstable; urgency=medium
 +
 +  * Move "go" and "gofmt" into "/usr/lib/go" and use alternatives to provide
 +    appropriate symlinks (Closes: #779503, #782301).
 +  * Relax "golang-go.tools" relationship to Suggests (from Recommends).
 +  * Add "go get" VCS options to Suggests for golang-go (bzr, git, mercurial,
 +    subversion).
 +
 + -- Tianon Gravi <admwiggin at gmail.com>  Tue, 05 May 2015 00:37:53 -0600
 +
 +golang (2:1.4.2-1) unstable; urgency=medium
 +
 +  * New upstream version
 +    (https://golang.org/doc/devel/release.html#go1.4.minor)
 +
 + -- Tianon Gravi <admwiggin at gmail.com>  Sat, 02 May 2015 10:06:34 -0600
 +
 +golang (2:1.4.1-1~exp1) experimental; urgency=low
 +
 +  * New upstream version (https://golang.org/doc/go1.4)
 +    - all editor support files have been removed from misc/ upstream upstream,
 +      so golang-mode, kate-syntax-go, and vim-syntax-go can no longer be
 +      provided; see https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins
 +      for an upstream-maintained list of potential replacements
 +
 + -- Tianon Gravi <admwiggin at gmail.com>  Fri, 16 Jan 2015 00:52:10 -0500
 +
 +golang (2:1.3.3-1ubuntu4) vivid; urgency=medium
 +
 +  * Build empty golang-go and golang-src packages on architectures
 +    without golang support, and depend on gccgo instead.
 +
 + -- Matthias Klose <doko at ubuntu.com>  Tue, 10 Mar 2015 21:46:25 +0100
 +
 +golang (2:1.3.3-1ubuntu3) vivid; urgency=medium
 +
 +  * Regenerate the control file.
 +
 + -- Matthias Klose <doko at ubuntu.com>  Tue, 03 Mar 2015 14:08:51 +0100
 +
 +golang (2:1.3.3-1ubuntu2) vivid; urgency=medium
 +
 +  * Install gofmt as an alternative.
 +  * Update the update-alternatives dance.
 +  * golang-go: Conflict with golang-go (<< 2:1.3.3-1ubuntu2).
 +  * Bump the alternative priority to 100, see Debian #779503.
 +
 + -- Matthias Klose <doko at ubuntu.com>  Tue, 03 Mar 2015 13:29:34 +0100
 +
 +golang (2:1.3.3-1ubuntu1) vivid; urgency=low
 +
 +  * Merge from Debian unstable. (LP: #1407409) Remaining changes:
 +    - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
 +    - Support co-installability with gccgo-go tool:
 +      - d/rules,golang-go.install: Rename bin/go -> bin/golang-go
 +      - d/golang-go.{postinst,prerm}: Install/remove /usr/bin/go using
 +        alternatives.
 +    - d/copyright: Amendments for full compiliance with copyright format.
 +    - d/control: Demote golang-go.tools to Suggests to support Ubuntu MIR.
 +
 + -- Gianfranco Costamagna <costamagnagianfranco at yahoo.it>  Sun, 04 Jan 2015 12:18:38 +0100
 +
 +golang (2:1.3.3-1) unstable; urgency=medium
 +
 +  * New upstream version (https://code.google.com/p/go/source/list?name=go1.3.3)
 +    - time: removed from tests now obsolete assumption about Australian tz
 +      abbreviations
 +    - net: temporarily skip TestAcceptIgnoreSomeErrors
 +    - runtime: hide cgocallback_gofunc calling cgocallbackg from linker
 +    - runtime: fix GOTRACEBACK reading on Windows, Plan 9
 +    - nacltest.bash: unset GOROOT
 +    - cmd/5l, cmd/6l, cmd/8l: fix nacl binary corruption bug
 +  * Add Paul and myself as uploaders. Many, many thanks to Michael for his work
 +    so far on this package (and hopefully more to come).
 +
 + -- Tianon Gravi <admwiggin at gmail.com>  Fri, 12 Dec 2014 16:11:02 -0500
 +
 +golang (2:1.3.2-1ubuntu1) vivid; urgency=medium
 +
 +  * Merge from Debian unstable.  Remaining changes:
 +    - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
 +    - Support co-installability with gccgo-go tool:
 +      - d/rules,golang-go.install: Rename bin/go -> bin/golang-go
 +      - d/golang-go.{postinst,prerm}: Install/remove /usr/bin/go using
 +        alternatives.
 +    - d/copyright: Amendments for full compiliance with copyright format.
 +    - d/control: Demote golang-go.tools to Suggests to support Ubuntu MIR.
 +    - dropped patches (now upstream):
 +      - d/p/issue27650045_40001_50001.diff
 +      - d/p/issue28050043_60001_70001.diff
 +      - d/p/issue54790044_100001_110001.diff
 +
 + -- Serge Hallyn <serge.hallyn at ubuntu.com>  Tue, 18 Nov 2014 15:12:26 -0600
 +
 +golang (2:1.3.2-1) unstable; urgency=medium
 +
 +  * New upstream version
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Fri, 26 Sep 2014 23:21:45 +0200
 +
 +golang (2:1.3.1-1) unstable; urgency=medium
 +
 +  * New upstream version
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Wed, 13 Aug 2014 09:15:58 +0200
 +
 +golang (2:1.3-4) unstable; urgency=medium
 +
 +  [ Tianon Gravi ]
 +  * update debian/watch for upstream's latest move (Closes: #756415)
 +  * backport archive/tar patch to fix PAX headers (Closes: #756416)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Sat, 02 Aug 2014 21:02:24 +0200
 +
 +golang (2:1.3-3) unstable; urgency=medium
 +
 +  * don’t depend on emacs23, depend on emacs instead (Closes: #754013)
 +  * install include/ in golang-src, VERSION in golang-go (Closes: #693186)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Mon, 07 Jul 2014 08:30:50 +0200
 +
 +golang (2:1.3-2) unstable; urgency=medium
 +
 +  * Add /usr/lib/go/test symlink
 +  * Build with GO386=387 to favor the 387 floating point unit over sse2
 +    instructions (Closes: #753160)
 +  * Add debian/patches/0001-backport-delete-whole-line.patch to fix a
 +    deprecation warning about flet in the emacs part of golang-mode
 +    (Closes: #753607)
 +  * Migrate to emacsen >2 (Closes: #753607)
 +  * Backport two patches to improve archive/tar performance (for docker):
 +    debian/patches/0002-archive-tar-reuse-temporary-buffer-in-writeHeader.patch
 +    debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Thu, 03 Jul 2014 23:33:46 +0200
 +
 +golang (2:1.3-1) unstable; urgency=medium
 +
 +  * New upstream version.
 +  * Drop patches merged upstream:
 +    - debian/patches/add-tar-xattr-support.patch
 +    - debian/patches/add-tar-xattr-support.patch
 +  * Fix debian/watch (Thanks Tianon) (Closes: #748290)
 +  * Remove dangling symlink /usr/lib/go/lib/godoc (Closes: #747968)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Thu, 19 Jun 2014 09:23:36 +0200
 +
 +golang (2:1.2.1-2) unstable; urgency=low
 +
 +  * Re-apply debian/patches/add-tar-xattr-support.patch which got lost when
 +    uploading 1.2.1-1; sorry about that.
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Sat, 08 Mar 2014 20:01:12 +0100
 +
 +golang (2:1.2.1-1) unstable; urgency=low
 +
 +  * New upstream release.
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Mon, 03 Mar 2014 17:40:57 +0100
 +
 +golang (2:1.2-3) unstable; urgency=low
 +
 +  * add debian/patches/add-tar-xattr-support.patch to have xattr support in
 +    tar (cherry-picked from upstream) (Thanks proppy) (Closes: #739586)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Mon, 24 Feb 2014 19:34:16 +0100
 +
 +golang (2:1.2-2) unstable; urgency=low
 +
 +  * add patches/add-src-pkg-debug-elf-testdata-hello.patch to provide source
 +    for the testdata/ ELF binaries (Closes: #716853)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Tue, 31 Dec 2013 18:28:29 +0100
 +
 +golang (2:1.2-1) unstable; urgency=low
 +
 +  * New upstream release.
 +  * drop patches/archive-tar-fix-links-and-pax.patch, it is merged upstream
 +  * godoc(1) is now in the Debian package golang-go.tools, it was moved into a
 +    separate repository by upstream.
 +  * move patches/godoc-symlinks.diff to golang-go.tools
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Mon, 02 Dec 2013 23:57:24 +0100
 +
 +golang (2:1.1.2-3) unstable; urgency=low
 +
 +  * cherry-pick upstream commit: archive-tar-fix-links-and-pax.patch
 +    (Closes: #730566)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Tue, 26 Nov 2013 18:59:27 +0100
 +
 +golang (2:1.1.2-2) unstable; urgency=low
 +
 +  * Build golang-go-linux-* for each architecture (Thanks James Page)
 +    (Closes: #719611)
 +  * Update lintian-overrides to override statically-linked-binary and
 +    unstripped-binary-or-object for all of golang-go
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Tue, 20 Aug 2013 08:13:40 +0200
 +
 +golang (2:1.1.2-1) unstable; urgency=low
 +
 +  * New upstream release.
 +  * Relicense debian/ under the Go license to match upstream. All copyright
 +    holders agreed to this. (Closes: #716907)
 +  * golang-mode: don’t install for a number of emacs versions which are not
 +    supported upstream (Thanks Kevin Ryde) (Closes: #702511, #717521)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Tue, 13 Aug 2013 13:47:58 +0200
 +
 +golang (2:1.1.1-4) unstable; urgency=low
 +
 +  * Disable stripping, it breaks go binaries on some architectures. This drops
 +    the golang-dbg package which would be empty now. (Thanks Robie Basak)
 +    (Closes: #717172)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Wed, 17 Jul 2013 19:15:18 +0200
 +
 +golang (2:1.1.1-3) unstable; urgency=low
 +
 +  * Ship */runtime/cgo.a in golang-go to ensure it is present. It can only be
 +    used on the native architecture anyway (cannot be used when
 +    cross-compiling), so having it in golang-go-$GOOS-$GOARCH is not
 +    necessary. Even worse, since these packages are arch: all, they will be
 +    built precisely once, and only the runtime/cgo.a for the buildd’s native
 +    arch will be present. (Closes: #715025)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Thu, 11 Jul 2013 20:25:52 +0200
 +
 +golang (2:1.1.1-2) unstable; urgency=low
 +
 +  [ James Page ]
 +  * Ensure smooth upgrade path from << 2:1.1-2 (Closes: #714838)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Wed, 03 Jul 2013 18:05:58 +0200
 +
 +golang (2:1.1.1-1) unstable; urgency=low
 +
 +  * Imported Upstream version 1.1.1
 +
 + -- Ingo Oeser <nightlyone at googlemail.com>  Fri, 14 Jun 2013 23:25:44 +0200
 +
 +golang (2:1.1-2) unstable; urgency=low
 +
 +  [ Ondřej Surý ]
 +  * Promote Michael to Maintainer
 +
 +  [ Michael Stapelberg ]
 +  * Build golang-go-$GOOS-$GOARCH packages for cross-compiling (Closes: #710090)
 +  * Build race detector on linux/amd64 (only supported arch) (Closes: #710691)
 +  * Switch compression to xz (50% smaller binaries)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Fri, 07 Jun 2013 23:18:09 +0200
 +
 +golang (2:1.1-1) unstable; urgency=low
 +
 +  * New upstream release: Go 1.1!
 +  * Remove the long obsolete goinstall debconf question and config file.
 +    goinstall does not exist anymore since a long time.
 +    This also obsoletes the need for any translations
 +    (Closes: #685923, #692478)
 +  * Emacs go-mode auto-mode-alist entry was fixed upstream (Closes: #670371)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Tue, 14 May 2013 19:36:04 +0200
 +
 +golang (2:1.1~hg20130405-1) experimental; urgency=low
 +
 +  * Provide a new hg tip snapshot. This includes what was recently released as
 +    Go 1.1 beta.
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Fri, 05 Apr 2013 18:24:36 +0200
 +
 +golang (2:1.1~hg20130323-1) experimental; urgency=low
 +
 +  * Provide a new hg tip snapshot.
 +  * Add debian/watch (Closes: #699698)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Sat, 23 Mar 2013 11:31:26 +0100
 +
 +golang (2:1.1~hg20130304-2) experimental; urgency=low
 +
 +  * Fix FTBFS of binary-arch only builds (as performed by buildds)
 +    caused by 'rm' not finding jquery.js in golang-doc
 +    (Thanks Peter Green)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Tue, 05 Mar 2013 00:49:27 +0100
 +
 +golang (2:1.1~hg20130304-1) experimental; urgency=low
 +
 +  * Provide a hg tip snapshot (2013-03-04) in Debian experimental.
 +    Current hg tip is a good approximation to Go 1.1 and should get
 +    some testing within Debian in order to package Go 1.1 well when
 +    it is released. Thanks to Andrew Gerrand.
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Mon, 04 Mar 2013 21:28:58 +0100
 +
 +golang (2:1.0.2-2) unstable; urgency=low
 +
 +  * Add myself to uploaders, as discussed in #683421.
 +  * cherry-pick r820ffde8c396 (net/http: non-keepalive connections close
 +    successfully) (Closes: #683421)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Thu, 02 Aug 2012 14:25:58 +0200
 +
 +golang (2:1.0.2-1.1) unstable; urgency=low
 +
 +  * Non-maintainer upload. (as discussed with Ondřej in #679692)
 +  * Fix godoc-symlinks.diff (godoc didn’t find docs) (Closes: #679692)
 +
 + -- Michael Stapelberg <stapelberg at debian.org>  Fri, 20 Jul 2012 17:59:38 +0200
 +
 +golang (2:1.0.2-1) unstable; urgency=low
 +
 +  [ Ondřej Surý ]
 +  * Imported Upstream version 1.0.2
 +  * Update Vcs fields to reflect new git repository location
 +  * Kill get-orig-source, since 1.0.0, the tarballs can be downloaded from
 +    webpage
 +
 +  [ Michael Stapelberg ]
 +  * golang-mode: use debian-pkg-add-load-path-item (Closes: #664802)
 +  * add manpages (Closes: #632964)
 +  * Use updated pt.po from Pedro Ribeiro (Closes: #674958)
 +
 + -- Ondřej Surý <ondrej at sury.org>  Thu, 28 Jun 2012 12:14:15 +0200
 +
 +golang (2:1.0.1-1) unstable; urgency=low
 +
 +  * Imported Upstream version 1.0.1
 +  * Apply godoc patch to display package list correctly (Closes: #669354)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 02 May 2012 15:44:59 +0200
 +
 +golang (2:1-6) unstable; urgency=low
 +
 +  * Merge upstream patch to fix homedir issue
 +    (http://code.google.com/p/go/source/detail?r=709120aecee0)
 +  * Disable GNU/KFreeBSD build (Closes: #668794)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 18 Apr 2012 09:53:30 +0200
 +
 +golang (2:1-5) unstable; urgency=low
 +
 +  * Rewrite test conditions to make them more readable
 +    (and fix the debian/rules to really not check on armel+kfreebsd)
 +  * Patch upstream test to not fail on missing home directory
 +
 + -- Ondřej Surý <ondrej at debian.org>  Sun, 15 Apr 2012 12:35:53 +0200
 +
 +golang (2:1-4) unstable; urgency=low
 +
 +  * Disable tests on Debian GNU/KFreeBSD, they just hang now (Closes: #668794)
 +  * Disable tests on armel, but the invalid instruction needs fixing in
 +    upstream
 +  * Create fake home directory to pass the os/user test
 +
 + -- Ondřej Surý <ondrej at debian.org>  Sun, 15 Apr 2012 10:49:09 +0200
 +
 +golang (2:1-3) unstable; urgency=high
 +
 +  * Use VERSION provided by upstream for packaging purposes
 +  * Run tests as a part of a build process
 +  * Install full src tree (except pkg/debug) because go command depend
 +    on sources available
 +  * Install sources without testdata and *_test.go
 +  * Remove circular dependency golang-go->golang-doc->golang-go
 +  * Make sure that timestamp on installed binaries and libraries is same
 +    because go build/install recompiles everything if the go binary has
 +    more recent timestamp than libraries (Closes: #668235)
 +    + Need to update timestamps at postinst time because already created
 +      directories can have time in the past
 +  * Fix couple of lintian errors and warnings
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 11 Apr 2012 23:21:47 +0200
 +
 +golang (2:1-2) unstable; urgency=low
 +
 +  * Remove preserving of old -tools settings, there are too many options
 +    now anyway (Closes: #666007)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Fri, 06 Apr 2012 16:52:13 +0200
 +
 +golang (2:1-1) unstable; urgency=low
 +
 +  * New major upstream release Go 1 (Closes: #666942)
 +  * Bumb epoch to 2, since 1 < 60 < 2011 (I wonder if next version will be 0 :)
 +  * Debconf templates and debian/control reviewed by the debian-l10n-
 +    english team as part of the Smith review project. (Closes: #663181)
 +  * [Debconf translation updates]
 +    + Pick existing translations from golang-weekly and do appropriate
 +      sed magic to fit golang templates. (Closes: #666884, #666880, #666881)
 +    + Dutch; (Jeroen Schot).  (Closes: #664598)
 +    + Czech (Michal Simunek).  (Closes: #665385)
 +    + Spanish; (Camaleón).  (Closes: #666177)
 +    + Danish (Joe Hansen).  (Closes: #666526)
 +  
 + -- Ondřej Surý <ondrej at debian.org>  Fri, 06 Apr 2012 16:04:17 +0200
 +
 +golang (1:60.3-2) unstable; urgency=low
 +
 +  * debconf-gettextize package templates
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 20 Feb 2012 22:01:10 +0100
 +
 +golang (1:60.3-1) unstable; urgency=low
 +
 +  * Imported Upstream version 60.3
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 28 Nov 2011 08:46:18 +0100
 +
 +golang (1:60.2-1) unstable; urgency=low
 +
 +  * Imported Upstream version 60.2
 +
 + -- Ondřej Surý <ondrej at debian.org>  Thu, 06 Oct 2011 08:57:00 +0200
 +
 +golang (1:60.1-1) unstable; urgency=low
 +
 +  * Imported Upstream version 60.1
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 19 Sep 2011 10:18:12 +0200
 +
 +golang (1:60-1) unstable; urgency=low
 +
 +  * Imported Upstream version 60
 +  * Save upstream VERSION to the archive
 +  * Use GOVERSION as generated by src/version.bash on hg archive time
 +  * Add support for goinstall dashboard debconf question in the Debian
 +    packaging
 +  * Read goinstall dashboard option from debian configuration file
 +  * Remove 005-goinstall_dont_call_home_by_default.patch; replaced by
 +    configuration option
 +  * Fix directory name for upstream archive checkout
 +
 + -- Ondřej Surý <ondrej at debian.org>  Tue, 13 Sep 2011 13:13:59 +0200
 +
 +golang (1:59-1) unstable; urgency=low
 +
 +  * Imported Upstream version 59
 +  * Refresh patches to a new release
 +  * Fix FTBFS on ARM (Closes: #634270)
 +  * Update version.bash to work with Debian packaging and not hg
 +    repository
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 03 Aug 2011 17:04:59 +0200
 +
 +golang (1:58.1-2) unstable; urgency=low
 +
 +  * Install golang-doc package by default (Recommends from golang-tools,
 +    Depends from golang)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 18 Jul 2011 09:13:43 +0200
 +
 +golang (1:58.1-1) unstable; urgency=low
 +
 +  * Imported Upstream version 58.1
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 13 Jul 2011 08:39:04 +0200
 +
 +golang (1:58-1) unstable; urgency=low
 +
 +  * Imported Upstream version 58
 +    + Add NEWS file with upstream API changes
 +  * Remove patch to not update standard package, fixed in upstream
 +
 + -- Ondřej Surý <ondrej at debian.org>  Thu, 30 Jun 2011 15:36:35 +0200
 +
 +golang (1:57.2-1) unstable; urgency=low
 +
 +  * Imported Upstream version 57.2
 +  * More spelling fixes (Closes: #630660)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Thu, 16 Jun 2011 11:10:58 +0200
 +
 +golang (1:57.1-4) unstable; urgency=low
 +
 +  * Description update to have proper articles and capitalization
 +    (Closes: #630189)
 +  * Add extended description about Go being experimental and that the
 +    languager can change between releases
 +
 + -- Ondřej Surý <ondrej at debian.org>  Tue, 14 Jun 2011 21:38:11 +0200
 +
 +golang (1:57.1-3) unstable; urgency=low
 +
 +  * Fix "the Google's Go implementation" in extended description
 +    (Closes: #627814)
 +  * Update Vcs-* links
 +  * Install vim ftplugin files into correct directory (Closes: #629844)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Thu, 09 Jun 2011 10:10:41 +0200
 +
 +golang (1:57.1-2) unstable; urgency=low
 +
 +  * Bump standards version to 3.9.2
 +  * Capitalize Kate (Closes: #627036)
 +  * Import slightly modified patch to be more clear about $GOPATH
 +    installs for non-root users
 +  * Remove don't install deps patch from goinstall; deprecated by
 +    $GOPATH installs
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 23 May 2011 11:07:11 +0200
 +
 +golang (1:57.1-1) unstable; urgency=low
 +
 +  * Add support for dot-minor releases
 +  * Imported Upstream version 57.1
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 16 May 2011 11:45:53 +0200
 +
 +golang (1:57-3) unstable; urgency=low
 +
 +  [ Florian Weimer ]
 +  * golang-tools: install gofix binary
 +
 +  [ Ondřej Surý ]
 +  * Add lintian-overrides for gofix binary
 +
 + -- Ondřej Surý <ondrej at debian.org>  Sat, 07 May 2011 20:41:58 +0200
 +
 +golang (1:57-2) unstable; urgency=low
 +
 +  * Remove weekly code from debian/rules
 +  * Add golang meta-package
 +  * Don't create tool chain symlinks twice
 +  * Make debian/rules more generic for simpler sync between weekly
 +    and release branches
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 04 May 2011 16:48:24 +0200
 +
 +golang (1:57-1) unstable; urgency=low
 +
 +  * Imported Upstream version r57
 +  * Bumped epoch version to 1, to convert from date based versions
 +    to release number based version
 +  * Allow release to migrate to testing (Closes: #624408)
 +  * Add kate and vim syntax highlighting (Closes: #624544)
 +  * Add -dbg package with debugging symbols
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 04 May 2011 01:20:07 +0200
 +
 +golang (2011.04.27-2) unstable; urgency=low
 +
 +  * Fix yet another build failure on kfreebsd (use linux userspace)
 +
 + -- Ondřej Surý <ondrej at debian.org>  Fri, 29 Apr 2011 16:22:47 +0200
 +
 +golang (2011.04.27-1) unstable; urgency=low
 +
 +  * Imported Upstream version 2011.04.27
 +  * Update debian/rules to allow pulling weekly upstream releases
 +  * Don't remove RUNPATH from binaries; fixed upstream (golang#1527)
 +  * Set GOHOSTOS and GOHOSTARCH to match dpkg-architecture variables
 +  * Add support for kfreebsd-i386, kfreebsd-amd64, armel and armhf
 +    architectures
 +    + 006-fix_kfreebsd_build.patch:
 +      - Add GNU/KFreeBSD support by replacing all uname calls by $(GOOS)
 +    + 007-use_native_dynamic_linker_on_kfreebsd.patch:
 +      - Use native kfreebsd dynamic linker (/lib/ld-*.so.1)
 +  * Add information about available architectures (Closes: #623877)
 +  * Don't strip gotest
 +  * Add Depends: golang-go to golang-tools
 +  * Add better support for armhf
 +
 + -- Ondřej Surý <ondrej at debian.org>  Thu, 28 Apr 2011 16:14:39 +0200
 +
 +golang (2011.04.13-1) unstable; urgency=low
 +
 +  [ Florian Weimer ]
 +  * Delete bin directory in clean target
 +  * Enable parallel build
 +  * golang-src: install source files directly
 +  * Use proper symlink targets for architecture-independent toolchain
 +    names
 +  * Emacs mode: indent keys in struct literals properly
 +
 +  [ Ondřej Surý ]
 +  * Imported Upstream weekly version 2011.04.13
 +  * Update patches to new weekly release
 +  * Add lintian-override for gotest binary
 +
 + -- Ondřej Surý <ondrej at debian.org>  Tue, 26 Apr 2011 09:59:28 +0200
 +
 +golang (2011.03.07.1-1) unstable; urgency=low
 +
 +  * Imported Upstream version 2011.03.07.1
 +  * Install to /usr/lib/go
 +  * Remove xkcd strip to get rid of CC-NC-BY
 +  * Update golang-src.install to new upstream
 +  * Remove 002-use_GOROOT_FINAL_in_generated_binaries.patch; merged
 +    upstream
 +  * Make all .go files no-executable
 +  * Update lintian-overrides to include both types of syntax
 +
 + -- Ondřej Surý <ondrej at debian.org>  Wed, 20 Apr 2011 17:36:48 +0200
 +
 +golang (2011.02.15-2) unstable; urgency=low
 +
 +  [ Ondřej Surý ]
 +  * Add ${misc:Depends} to golang-mode to shutup lintian
 +  * Rehaul build system and add golang-src package with .go source files
 +  * goinstall: do not automatically install prerequisities
 +  * goinstall: don't report to dashboard by default
 +  * Add a README.Debian about local modifications to goinstall
 +  * Add warning about local modifications also directly to goinstall command
 +  
 +  [ Florian Weimer ]
 +  * Fix syntax error in 004-
 +    dont_reinstall_dependencies_in_goinstall.patch
 +
 + -- Ondřej Surý <ondrej at debian.org>  Fri, 18 Feb 2011 16:02:09 +0100
 +
 +golang (2011.02.15-1) unstable; urgency=low
 +
 +  [ Obey Arthur Liu ]
 +  * Added pkg-google git repo to control file
 +
 +  [ Florian Weimer ]
 +  * Build golang-mode package
 +
 +  [ Ondřej Surý ]
 +  * Imported Upstream version 2011.02.15
 +  * Don't compress godoc documentation
 +  * Correctly use $GOROOT_FINAL in the build chain
 +  * Remove RPATH/RUNPATH from go binaries
 +
 + -- Ondřej Surý <ondrej at debian.org>  Fri, 18 Feb 2011 11:39:10 +0100
 +
 +golang (2011.02.01.1-1) unstable; urgency=low
 +
 +  [ Ivan Wong ]
 +  * Initial release (Closes: #574371)
 +
 +  [ Jonathan Nieder ]
 +  * Fill out copyright file
 +  * Rewrite debian/rules using dh driver
 +  * debian: fix get-orig-source rule
 +  * debian: do not install extra files on repeated build
 +  * debian: fix reversed ‘if’
 +  * debian: do not leave around stale debian/env.sh+ file
 +  * debian: Build-Depends on awk instead of gawk
 +  * debian: add run-time dependency on perl
 +  * debian: add build-time dependency on perl
 +  * debian: fix setting of GOARM on arm
 +  * debian: do not compress files in web page
 +  * debian: install favicon
 +
 +  [ Ondřej Surý ]
 +  * Make myself a maintainer
 +  * Add patch to allow IPv4 on IPv6 sockets (Courtesy of Florian Weimer)
 +  * Use GOROOT_FINAL and change GOBIN to /usr/bin
 +  * Get rid of env.sh and wrappers
 +  * Add support for building in i386 pbuilder on amd64 architecture
 +  * Rename source package to golang to match upstream repository name
 +  * Add golang-doc package
 +  * Split package into compiler, docs and tools
 +  * Don't install quietgcc and hgpatch
 +  * Don't generate fake gomake
 +  * Update golang-doc package
 +  * Export GOHOSTARCH and GOHOSTOS
 +  * Disable build time checks
 +  * Fail on missed installed files
 +  * Revert s{tmp{golang-go{ change in DESTDIR
 +  * Relicence debian/ files from versionless GPL to GPL-3
 +  * Move golang-doc to doc section
 +  * Add more lintian overrides for Go binaries
 +  * Install all 6,8,5 variants of commands
 +  * Install golang-* symlinks for 6,8,5* commands
 +  * Don't strip govet as well
 +  * Remove ${shlibs:Depends} where it doesn't belong
 +  * Move more html files to golang-doc package
 +  * Remove codereview directory - some python code to deal with mercurial
 +
 + -- Ondřej Surý <ondrej at debian.org>  Mon, 14 Feb 2011 17:42:39 +0100
 +
diff --cc debian/patches/0001-s390x-port.patch
index 0c1fe29,0000000..4d64ffc
mode 100644,000000..100644
--- a/debian/patches/0001-s390x-port.patch
+++ b/debian/patches/0001-s390x-port.patch
@@@ -1,30539 -1,0 +1,31006 @@@
- From e4d19dfc2ef61ebfa1cf512a99a0b59ff6bdb5ff Mon Sep 17 00:00:00 2001
++From 8cafcab0d9460c1fb9c6b05f338f75fb90d00fad Mon Sep 17 00:00:00 2001
 +From: wgo <billo at ca.ibm.com>
 +Date: Sun, 12 Jul 2015 23:28:19 -0400
 +Subject: [PATCH] [s390x] Add support for Linux on IBM z architecture (s390x)
 +
++Change-Id: I684a4007d8e4bd2d42cad6ba97b0938031a48458
 +---
 + api/go1.6.txt                                      | 9279 ++++++++++++++++++++
 + misc/cgo/test/issue9400/asm_s390x.s                |   31 +
 + src/cmd/api/goapi.go                               |    2 +
 + src/cmd/asm/internal/arch/arch.go                  |   55 +
 + src/cmd/asm/internal/arch/s390x.go                 |  116 +
 + src/cmd/asm/internal/asm/asm.go                    |   23 +
 + src/cmd/cgo/main.go                                |    2 +-
 + src/cmd/cgo/out.go                                 |    1 +
 + src/cmd/compile/internal/gc/cgen.go                |   14 +-
 + src/cmd/compile/internal/gc/go.go                  |    6 +
 + src/cmd/compile/internal/gc/gsubr.go               |    6 +-
-  src/cmd/compile/internal/gc/lex.go                 |    4 +
++ src/cmd/compile/internal/gc/lex.go                 |    8 +-
 + src/cmd/compile/internal/gc/pgen.go                |    4 +-
 + src/cmd/compile/internal/gc/reg.go                 |    6 +-
 + src/cmd/compile/internal/gc/walk.go                |    4 +-
 + src/cmd/compile/internal/s390x/cgen.go             |  178 +
 + src/cmd/compile/internal/s390x/galign.go           |   95 +
 + src/cmd/compile/internal/s390x/ggen.go             |  611 ++
-  src/cmd/compile/internal/s390x/gsubr.go            |  976 ++
-  src/cmd/compile/internal/s390x/peep.go             | 1407 +++
++ src/cmd/compile/internal/s390x/gsubr.go            |  972 ++
++ src/cmd/compile/internal/s390x/peep.go             | 1419 +++
 + src/cmd/compile/internal/s390x/prog.go             |  183 +
 + src/cmd/compile/internal/s390x/reg.go              |  131 +
 + src/cmd/compile/main.go                            |    3 +
 + src/cmd/dist/build.go                              |    1 +
 + src/cmd/dist/buildtool.go                          |    3 +
++ src/cmd/dist/test.go                               |    4 +-
 + src/cmd/dist/util.go                               |    2 +
-  src/cmd/go/build.go                                |    2 +
++ src/cmd/go/build.go                                |    8 +-
 + src/cmd/internal/obj/link.go                       |    3 +
-  src/cmd/internal/obj/s390x/a.out.go                |  370 +
++ src/cmd/internal/obj/s390x/a.out.go                |  360 +
 + src/cmd/internal/obj/s390x/anames.go               |  152 +
-  src/cmd/internal/obj/s390x/anamesz.go              |   64 +
-  src/cmd/internal/obj/s390x/asmz.go                 | 3983 +++++++++
++ src/cmd/internal/obj/s390x/anamesz.go              |   35 +
++ src/cmd/internal/obj/s390x/asmz.go                 | 4017 +++++++++
 + src/cmd/internal/obj/s390x/listz.go                |   70 +
-  src/cmd/internal/obj/s390x/objz.go                 |  900 ++
++ src/cmd/internal/obj/s390x/objz.go                 |  990 +++
 + src/cmd/internal/obj/util.go                       |    2 +
 + src/cmd/internal/objfile/disasm.go                 |    1 +
 + src/cmd/internal/objfile/elf.go                    |    2 +
 + src/cmd/link/internal/ld/arch.go                   |    9 +
 + src/cmd/link/internal/ld/data.go                   |   47 +-
 + src/cmd/link/internal/ld/dwarf.go                  |   37 +-
 + src/cmd/link/internal/ld/elf.go                    |  120 +-
 + src/cmd/link/internal/ld/ldelf.go                  |   45 +-
++ src/cmd/link/internal/ld/lib.go                    |    2 +-
 + src/cmd/link/internal/ld/link.go                   |    1 +
 + src/cmd/link/internal/ld/symtab.go                 |    3 +-
-  src/cmd/link/internal/s390x/asm.go                 |  564 ++
++ src/cmd/link/internal/s390x/asm.go                 |  643 ++
 + src/cmd/link/internal/s390x/l.go                   |   78 +
-  src/cmd/link/internal/s390x/obj.go                 |  111 +
++ src/cmd/link/internal/s390x/obj.go                 |  115 +
 + src/cmd/link/main.go                               |    3 +
 + src/cmd/objdump/objdump_test.go                    |    4 +
 + src/cmd/vet/asmdecl.go                             |    2 +
 + src/crypto/aes/asm_s390x.s                         |   97 +
 + src/crypto/aes/cipher_asm.go                       |    2 +-
 + src/crypto/aes/cipher_generic.go                   |   10 +-
 + src/crypto/aes/gcm_generic.go                      |   15 +
 + src/crypto/cipher/xor.go                           |    2 +-
 + src/crypto/sha1/sha1block_decl.go                  |    2 +-
 + src/crypto/sha1/sha1block_generic.go               |    2 +-
 + src/crypto/sha1/sha1block_s390x.s                  |   37 +
 + src/crypto/sha256/sha256block.go                   |    2 +-
 + src/crypto/sha256/sha256block_decl.go              |    2 +-
 + src/crypto/sha256/sha256block_generic.go           |    9 +
 + src/crypto/sha256/sha256block_s390x.s              |   37 +
 + src/crypto/sha512/sha512block.go                   |    2 +-
 + src/crypto/sha512/sha512block_decl.go              |    2 +-
 + src/crypto/sha512/sha512block_generic.go           |    9 +
 + src/crypto/sha512/sha512block_s390x.s              |   37 +
 + src/crypto/x509/sec1.go                            |    8 +-
 + src/crypto/x509/sec1_test.go                       |    4 +-
 + src/debug/elf/elf.go                               |   66 +
 + src/debug/elf/file.go                              |   51 +
 + src/debug/gosym/pclntab.go                         |    2 +-
 + src/go/build/build.go                              |    1 +
 + src/hash/crc32/crc32_generic.go                    |    2 +-
 + src/internal/syscall/unix/getrandom_linux_s390x.go |    7 +
-  src/math/big/arith_s390x.s                         |  340 +
++ src/math/big/arith_s390x.s                         |  574 ++
 + src/math/dim_s390x.s                               |  132 +
 + src/math/sqrt_s390x.s                              |   12 +
 + src/math/stubs_s390x.s                             |   77 +
 + src/net/http/fs_test.go                            |    6 +-
 + src/net/lookup_test.go                             |    5 +
 + src/reflect/asm_s390x.s                            |   30 +
-  src/runtime/asm_s390x.s                            | 1162 +++
++ src/runtime/asm_s390x.s                            | 1182 +++
 + src/runtime/cgo/asm_s390x.s                        |   56 +
-  src/runtime/cgo/callbacks_s390x.go                 |   10 +
 + src/runtime/cgo/gcc_linux_s390x.c                  |   68 +
-  src/runtime/cgo/gcc_s390x.S                        |   44 +
++ src/runtime/cgo/gcc_s390x.S                        |   43 +
 + src/runtime/cgocall.go                             |    6 +-
 + src/runtime/defs_linux_s390x.go                    |  176 +
 + src/runtime/extern.go                              |    2 +-
 + src/runtime/gcinfo_test.go                         |    2 +-
 + src/runtime/hash64.go                              |    2 +-
-  src/runtime/internal/atomic/asm_s390x.s            |  202 +
++ src/runtime/internal/atomic/asm_s390x.s            |  192 +
 + src/runtime/internal/atomic/atomic_s390x.go        |   63 +
 + src/runtime/internal/sys/arch_s390x.go             |   18 +
 + src/runtime/internal/sys/zgoarch_s390x.go          |   26 +
 + src/runtime/lfstack_linux_s390x.go                 |   25 +
 + src/runtime/memclr_s390x.s                         |  122 +
 + src/runtime/memmove_s390x.s                        |  189 +
 + src/runtime/noasm.go                               |    2 +-
 + src/runtime/os1_linux_generic.go                   |    1 +
 + src/runtime/os1_linux_s390x.go                     |   29 +
 + src/runtime/os2_linux_generic.go                   |    1 +
 + src/runtime/os2_linux_s390x.go                     |   22 +
 + src/runtime/rt0_linux_s390x.s                      |   20 +
 + src/runtime/runtime-gdb_test.go                    |    2 +-
 + src/runtime/signal_linux_s390x.go                  |   50 +
 + src/runtime/signal_s390x.go                        |  170 +
 + src/runtime/sys_linux_s390x.s                      |  437 +
 + src/runtime/sys_s390x.go                           |   48 +
-  src/runtime/tls_s390x.s                            |   67 +
++ src/runtime/tls_s390x.s                            |   51 +
 + src/runtime/unaligned1.go                          |    2 +-
 + src/sync/atomic/asm_s390x.s                        |  149 +
 + src/syscall/asm_linux_s390x.s                      |  173 +
 + src/syscall/exec_linux.go                          |    7 +-
 + src/syscall/mkall.sh                               |    7 +
 + src/syscall/syscall_linux_s390x.go                 |  296 +
 + src/syscall/types_linux.go                         |   18 +
 + src/syscall/zerrors_linux_s390x.go                 | 1869 ++++
 + src/syscall/zsyscall_linux_s390x.go                | 1578 ++++
 + src/syscall/zsysnum_linux_s390x.go                 |  293 +
 + src/syscall/ztypes_linux_s390x.go                  |  623 ++
 + test/fixedbugs/issue11656.go                       |    2 +
 + test/init1.go                                      |    2 +-
 + test/nilptr3.go                                    |    3 +-
 + test/nosplit.go                                    |    3 +
-  125 files changed, 28671 insertions(+), 102 deletions(-)
++ 126 files changed, 29072 insertions(+), 110 deletions(-)
 + create mode 100644 misc/cgo/test/issue9400/asm_s390x.s
 + create mode 100644 src/cmd/asm/internal/arch/s390x.go
 + create mode 100644 src/cmd/compile/internal/s390x/cgen.go
 + create mode 100644 src/cmd/compile/internal/s390x/galign.go
 + create mode 100644 src/cmd/compile/internal/s390x/ggen.go
 + create mode 100644 src/cmd/compile/internal/s390x/gsubr.go
 + create mode 100644 src/cmd/compile/internal/s390x/peep.go
 + create mode 100644 src/cmd/compile/internal/s390x/prog.go
 + create mode 100644 src/cmd/compile/internal/s390x/reg.go
 + create mode 100644 src/cmd/internal/obj/s390x/a.out.go
 + create mode 100644 src/cmd/internal/obj/s390x/anames.go
 + create mode 100644 src/cmd/internal/obj/s390x/anamesz.go
 + create mode 100644 src/cmd/internal/obj/s390x/asmz.go
 + create mode 100644 src/cmd/internal/obj/s390x/listz.go
 + create mode 100644 src/cmd/internal/obj/s390x/objz.go
 + create mode 100644 src/cmd/link/internal/s390x/asm.go
 + create mode 100644 src/cmd/link/internal/s390x/l.go
 + create mode 100644 src/cmd/link/internal/s390x/obj.go
 + create mode 100644 src/crypto/aes/asm_s390x.s
 + create mode 100644 src/crypto/aes/gcm_generic.go
 + create mode 100644 src/crypto/sha1/sha1block_s390x.s
 + create mode 100644 src/crypto/sha256/sha256block_generic.go
 + create mode 100644 src/crypto/sha256/sha256block_s390x.s
 + create mode 100644 src/crypto/sha512/sha512block_generic.go
 + create mode 100644 src/crypto/sha512/sha512block_s390x.s
 + create mode 100644 src/internal/syscall/unix/getrandom_linux_s390x.go
 + create mode 100644 src/math/big/arith_s390x.s
 + create mode 100644 src/math/dim_s390x.s
 + create mode 100644 src/math/sqrt_s390x.s
 + create mode 100644 src/math/stubs_s390x.s
 + create mode 100644 src/reflect/asm_s390x.s
 + create mode 100644 src/runtime/asm_s390x.s
 + create mode 100644 src/runtime/cgo/asm_s390x.s
-  create mode 100644 src/runtime/cgo/callbacks_s390x.go
 + create mode 100644 src/runtime/cgo/gcc_linux_s390x.c
 + create mode 100644 src/runtime/cgo/gcc_s390x.S
 + create mode 100644 src/runtime/defs_linux_s390x.go
 + create mode 100644 src/runtime/internal/atomic/asm_s390x.s
 + create mode 100644 src/runtime/internal/atomic/atomic_s390x.go
 + create mode 100644 src/runtime/internal/sys/arch_s390x.go
 + create mode 100644 src/runtime/internal/sys/zgoarch_s390x.go
 + create mode 100644 src/runtime/lfstack_linux_s390x.go
 + create mode 100644 src/runtime/memclr_s390x.s
 + create mode 100644 src/runtime/memmove_s390x.s
 + create mode 100644 src/runtime/os1_linux_s390x.go
 + create mode 100644 src/runtime/os2_linux_s390x.go
 + create mode 100644 src/runtime/rt0_linux_s390x.s
 + create mode 100644 src/runtime/signal_linux_s390x.go
 + create mode 100644 src/runtime/signal_s390x.go
 + create mode 100644 src/runtime/sys_linux_s390x.s
 + create mode 100644 src/runtime/sys_s390x.go
 + create mode 100644 src/runtime/tls_s390x.s
 + create mode 100644 src/sync/atomic/asm_s390x.s
 + create mode 100644 src/syscall/asm_linux_s390x.s
 + create mode 100644 src/syscall/syscall_linux_s390x.go
 + create mode 100644 src/syscall/zerrors_linux_s390x.go
 + create mode 100644 src/syscall/zsyscall_linux_s390x.go
 + create mode 100644 src/syscall/zsysnum_linux_s390x.go
 + create mode 100644 src/syscall/ztypes_linux_s390x.go
 +
 +diff --git a/api/go1.6.txt b/api/go1.6.txt
 +index d63efd0..6261e9c 100644
 +--- a/api/go1.6.txt
 ++++ b/api/go1.6.txt
 +@@ -273,3 +273,9282 @@ pkg text/template, method (ExecError) Error() string
 + pkg text/template, type ExecError struct
 + pkg text/template, type ExecError struct, Err error
 + pkg text/template, type ExecError struct, Name string
 ++pkg debug/elf, const R_390_12 = 2
 ++pkg debug/elf, const R_390_12 R_S390X
 ++pkg debug/elf, const R_390_16 = 3
 ++pkg debug/elf, const R_390_16 R_S390X
 ++pkg debug/elf, const R_390_32 = 4
 ++pkg debug/elf, const R_390_32 R_S390X
 ++pkg debug/elf, const R_390_64 = 22
 ++pkg debug/elf, const R_390_64 R_S390X
 ++pkg debug/elf, const R_390_8 = 1
 ++pkg debug/elf, const R_390_8 R_S390X
 ++pkg debug/elf, const R_390_COPY = 9
 ++pkg debug/elf, const R_390_COPY R_S390X
 ++pkg debug/elf, const R_390_GLOB_DAT = 10
 ++pkg debug/elf, const R_390_GLOB_DAT R_S390X
 ++pkg debug/elf, const R_390_GOT12 = 6
 ++pkg debug/elf, const R_390_GOT12 R_S390X
 ++pkg debug/elf, const R_390_GOT16 = 15
 ++pkg debug/elf, const R_390_GOT16 R_S390X
 ++pkg debug/elf, const R_390_GOT32 = 7
 ++pkg debug/elf, const R_390_GOT32 R_S390X
 ++pkg debug/elf, const R_390_GOT64 = 24
 ++pkg debug/elf, const R_390_GOT64 R_S390X
 ++pkg debug/elf, const R_390_GOTENT = 26
 ++pkg debug/elf, const R_390_GOTENT R_S390X
 ++pkg debug/elf, const R_390_GOTOFF = 13
 ++pkg debug/elf, const R_390_GOTOFF R_S390X
 ++pkg debug/elf, const R_390_GOTPC = 14
 ++pkg debug/elf, const R_390_GOTPCDBL = 21
 ++pkg debug/elf, const R_390_GOTPCDBL R_S390X
 ++pkg debug/elf, const R_390_GOTPC R_S390X
 ++pkg debug/elf, const R_390_JMP_SLOT = 11
 ++pkg debug/elf, const R_390_JMP_SLOT R_S390X
 ++pkg debug/elf, const R_390_NONE = 0
 ++pkg debug/elf, const R_390_NONE R_S390X
 ++pkg debug/elf, const R_390_PC16 = 16
 ++pkg debug/elf, const R_390_PC16DBL = 17
 ++pkg debug/elf, const R_390_PC16DBL R_S390X
 ++pkg debug/elf, const R_390_PC16 R_S390X
 ++pkg debug/elf, const R_390_PC32 = 5
 ++pkg debug/elf, const R_390_PC32DBL = 19
 ++pkg debug/elf, const R_390_PC32DBL R_S390X
 ++pkg debug/elf, const R_390_PC32 R_S390X
 ++pkg debug/elf, const R_390_PC64 = 23
 ++pkg debug/elf, const R_390_PC64 R_S390X
 ++pkg debug/elf, const R_390_PLT16DBL = 18
 ++pkg debug/elf, const R_390_PLT16DBL R_S390X
 ++pkg debug/elf, const R_390_PLT32 = 8
 ++pkg debug/elf, const R_390_PLT32DBL = 20
 ++pkg debug/elf, const R_390_PLT32DBL R_S390X
 ++pkg debug/elf, const R_390_PLT32 R_S390X
 ++pkg debug/elf, const R_390_PLT64 = 25
 ++pkg debug/elf, const R_390_PLT64 R_S390X
 ++pkg debug/elf, const R_390_RELATIVE = 12
 ++pkg debug/elf, const R_390_RELATIVE R_S390X
 ++pkg debug/elf, method (R_S390X) GoString() string
 ++pkg debug/elf, method (R_S390X) String() string
 ++pkg debug/elf, type R_S390X int
 ++pkg log/syslog (linux-s390x-cgo), const LOG_ALERT = 1
 ++pkg log/syslog (linux-s390x-cgo), const LOG_ALERT Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_AUTH = 32
 ++pkg log/syslog (linux-s390x-cgo), const LOG_AUTH Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_AUTHPRIV = 80
 ++pkg log/syslog (linux-s390x-cgo), const LOG_AUTHPRIV Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_CRIT = 2
 ++pkg log/syslog (linux-s390x-cgo), const LOG_CRIT Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_CRON = 72
 ++pkg log/syslog (linux-s390x-cgo), const LOG_CRON Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_DAEMON = 24
 ++pkg log/syslog (linux-s390x-cgo), const LOG_DAEMON Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_DEBUG = 7
 ++pkg log/syslog (linux-s390x-cgo), const LOG_DEBUG Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_EMERG = 0
 ++pkg log/syslog (linux-s390x-cgo), const LOG_EMERG Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_ERR = 3
 ++pkg log/syslog (linux-s390x-cgo), const LOG_ERR Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_FTP = 88
 ++pkg log/syslog (linux-s390x-cgo), const LOG_FTP Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_INFO = 6
 ++pkg log/syslog (linux-s390x-cgo), const LOG_INFO Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_KERN = 0
 ++pkg log/syslog (linux-s390x-cgo), const LOG_KERN Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL0 = 128
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL0 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL1 = 136
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL1 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL2 = 144
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL2 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL3 = 152
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL3 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL4 = 160
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL4 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL5 = 168
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL5 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL6 = 176
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL6 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL7 = 184
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LOCAL7 Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LPR = 48
 ++pkg log/syslog (linux-s390x-cgo), const LOG_LPR Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_MAIL = 16
 ++pkg log/syslog (linux-s390x-cgo), const LOG_MAIL Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_NEWS = 56
 ++pkg log/syslog (linux-s390x-cgo), const LOG_NEWS Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_NOTICE = 5
 ++pkg log/syslog (linux-s390x-cgo), const LOG_NOTICE Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_SYSLOG = 40
 ++pkg log/syslog (linux-s390x-cgo), const LOG_SYSLOG Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_USER = 8
 ++pkg log/syslog (linux-s390x-cgo), const LOG_USER Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_UUCP = 64
 ++pkg log/syslog (linux-s390x-cgo), const LOG_UUCP Priority
 ++pkg log/syslog (linux-s390x-cgo), const LOG_WARNING = 4
 ++pkg log/syslog (linux-s390x-cgo), const LOG_WARNING Priority
 ++pkg log/syslog (linux-s390x-cgo), func Dial(string, string, Priority, string) (*Writer, error)
 ++pkg log/syslog (linux-s390x-cgo), func NewLogger(Priority, int) (*log.Logger, error)
 ++pkg log/syslog (linux-s390x-cgo), func New(Priority, string) (*Writer, error)
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Alert(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Close() error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Crit(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Debug(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Emerg(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Err(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Info(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Notice(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Warning(string) error
 ++pkg log/syslog (linux-s390x-cgo), method (*Writer) Write([]uint8) (int, error)
 ++pkg log/syslog (linux-s390x-cgo), type Priority int
 ++pkg log/syslog (linux-s390x-cgo), type Writer struct
 ++pkg log/syslog (linux-s390x), const LOG_ALERT = 1
 ++pkg log/syslog (linux-s390x), const LOG_ALERT Priority
 ++pkg log/syslog (linux-s390x), const LOG_AUTH = 32
 ++pkg log/syslog (linux-s390x), const LOG_AUTH Priority
 ++pkg log/syslog (linux-s390x), const LOG_AUTHPRIV = 80
 ++pkg log/syslog (linux-s390x), const LOG_AUTHPRIV Priority
 ++pkg log/syslog (linux-s390x), const LOG_CRIT = 2
 ++pkg log/syslog (linux-s390x), const LOG_CRIT Priority
 ++pkg log/syslog (linux-s390x), const LOG_CRON = 72
 ++pkg log/syslog (linux-s390x), const LOG_CRON Priority
 ++pkg log/syslog (linux-s390x), const LOG_DAEMON = 24
 ++pkg log/syslog (linux-s390x), const LOG_DAEMON Priority
 ++pkg log/syslog (linux-s390x), const LOG_DEBUG = 7
 ++pkg log/syslog (linux-s390x), const LOG_DEBUG Priority
 ++pkg log/syslog (linux-s390x), const LOG_EMERG = 0
 ++pkg log/syslog (linux-s390x), const LOG_EMERG Priority
 ++pkg log/syslog (linux-s390x), const LOG_ERR = 3
 ++pkg log/syslog (linux-s390x), const LOG_ERR Priority
 ++pkg log/syslog (linux-s390x), const LOG_FTP = 88
 ++pkg log/syslog (linux-s390x), const LOG_FTP Priority
 ++pkg log/syslog (linux-s390x), const LOG_INFO = 6
 ++pkg log/syslog (linux-s390x), const LOG_INFO Priority
 ++pkg log/syslog (linux-s390x), const LOG_KERN = 0
 ++pkg log/syslog (linux-s390x), const LOG_KERN Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL0 = 128
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL0 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL1 = 136
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL1 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL2 = 144
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL2 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL3 = 152
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL3 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL4 = 160
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL4 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL5 = 168
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL5 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL6 = 176
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL6 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL7 = 184
 ++pkg log/syslog (linux-s390x), const LOG_LOCAL7 Priority
 ++pkg log/syslog (linux-s390x), const LOG_LPR = 48
 ++pkg log/syslog (linux-s390x), const LOG_LPR Priority
 ++pkg log/syslog (linux-s390x), const LOG_MAIL = 16
 ++pkg log/syslog (linux-s390x), const LOG_MAIL Priority
 ++pkg log/syslog (linux-s390x), const LOG_NEWS = 56
 ++pkg log/syslog (linux-s390x), const LOG_NEWS Priority
 ++pkg log/syslog (linux-s390x), const LOG_NOTICE = 5
 ++pkg log/syslog (linux-s390x), const LOG_NOTICE Priority
 ++pkg log/syslog (linux-s390x), const LOG_SYSLOG = 40
 ++pkg log/syslog (linux-s390x), const LOG_SYSLOG Priority
 ++pkg log/syslog (linux-s390x), const LOG_USER = 8
 ++pkg log/syslog (linux-s390x), const LOG_USER Priority
 ++pkg log/syslog (linux-s390x), const LOG_UUCP = 64
 ++pkg log/syslog (linux-s390x), const LOG_UUCP Priority
 ++pkg log/syslog (linux-s390x), const LOG_WARNING = 4
 ++pkg log/syslog (linux-s390x), const LOG_WARNING Priority
 ++pkg log/syslog (linux-s390x), func Dial(string, string, Priority, string) (*Writer, error)
 ++pkg log/syslog (linux-s390x), func NewLogger(Priority, int) (*log.Logger, error)
 ++pkg log/syslog (linux-s390x), func New(Priority, string) (*Writer, error)
 ++pkg log/syslog (linux-s390x), method (*Writer) Alert(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Close() error
 ++pkg log/syslog (linux-s390x), method (*Writer) Crit(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Debug(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Emerg(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Err(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Info(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Notice(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Warning(string) error
 ++pkg log/syslog (linux-s390x), method (*Writer) Write([]uint8) (int, error)
 ++pkg log/syslog (linux-s390x), type Priority int
 ++pkg log/syslog (linux-s390x), type Writer struct
 ++pkg os (linux-s390x-cgo), const DevNull = "/dev/null"
 ++pkg os (linux-s390x-cgo), const O_APPEND = 1024
 ++pkg os (linux-s390x-cgo), const O_CREATE = 64
 ++pkg os (linux-s390x-cgo), const O_EXCL = 128
 ++pkg os (linux-s390x-cgo), const O_SYNC = 1052672
 ++pkg os (linux-s390x-cgo), const O_TRUNC = 512
 ++pkg os (linux-s390x-cgo), const PathListSeparator = 58
 ++pkg os (linux-s390x-cgo), const PathSeparator = 47
 ++pkg os (linux-s390x), const DevNull = "/dev/null"
 ++pkg os (linux-s390x), const O_APPEND = 1024
 ++pkg os (linux-s390x), const O_CREATE = 64
 ++pkg os (linux-s390x), const O_EXCL = 128
 ++pkg os (linux-s390x), const O_SYNC = 1052672
 ++pkg os (linux-s390x), const O_TRUNC = 512
 ++pkg os (linux-s390x), const PathListSeparator = 58
 ++pkg os (linux-s390x), const PathSeparator = 47
 ++pkg path/filepath (linux-s390x-cgo), const ListSeparator = 58
 ++pkg path/filepath (linux-s390x-cgo), const Separator = 47
 ++pkg path/filepath (linux-s390x), const ListSeparator = 58
 ++pkg path/filepath (linux-s390x), const Separator = 47
 ++pkg runtime (linux-s390x-cgo), const GOARCH = "s390x"
 ++pkg runtime (linux-s390x-cgo), const GOOS = "linux"
 ++pkg runtime (linux-s390x), const GOARCH = "s390x"
 ++pkg runtime (linux-s390x), const GOOS = "linux"
 ++pkg syscall (linux-s390x-cgo), const AF_ALG = 38
 ++pkg syscall (linux-s390x-cgo), const AF_ALG ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_APPLETALK = 5
 ++pkg syscall (linux-s390x-cgo), const AF_APPLETALK ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ASH = 18
 ++pkg syscall (linux-s390x-cgo), const AF_ASH ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ATMPVC = 8
 ++pkg syscall (linux-s390x-cgo), const AF_ATMPVC ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ATMSVC = 20
 ++pkg syscall (linux-s390x-cgo), const AF_ATMSVC ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_AX25 = 3
 ++pkg syscall (linux-s390x-cgo), const AF_AX25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_BLUETOOTH = 31
 ++pkg syscall (linux-s390x-cgo), const AF_BLUETOOTH ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_BRIDGE = 7
 ++pkg syscall (linux-s390x-cgo), const AF_BRIDGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_CAIF = 37
 ++pkg syscall (linux-s390x-cgo), const AF_CAIF ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_CAN = 29
 ++pkg syscall (linux-s390x-cgo), const AF_CAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_DECnet = 12
 ++pkg syscall (linux-s390x-cgo), const AF_DECnet ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ECONET = 19
 ++pkg syscall (linux-s390x-cgo), const AF_ECONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_FILE = 1
 ++pkg syscall (linux-s390x-cgo), const AF_FILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_IEEE802154 = 36
 ++pkg syscall (linux-s390x-cgo), const AF_IEEE802154 ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_INET6 = 10
 ++pkg syscall (linux-s390x-cgo), const AF_IPX = 4
 ++pkg syscall (linux-s390x-cgo), const AF_IPX ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_IRDA = 23
 ++pkg syscall (linux-s390x-cgo), const AF_IRDA ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ISDN = 34
 ++pkg syscall (linux-s390x-cgo), const AF_ISDN ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_IUCV = 32
 ++pkg syscall (linux-s390x-cgo), const AF_IUCV ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_KEY = 15
 ++pkg syscall (linux-s390x-cgo), const AF_KEY ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_LLC = 26
 ++pkg syscall (linux-s390x-cgo), const AF_LLC ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_LOCAL = 1
 ++pkg syscall (linux-s390x-cgo), const AF_LOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_MAX = 40
 ++pkg syscall (linux-s390x-cgo), const AF_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_NETBEUI = 13
 ++pkg syscall (linux-s390x-cgo), const AF_NETBEUI ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_NETLINK = 16
 ++pkg syscall (linux-s390x-cgo), const AF_NETLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_NETROM = 6
 ++pkg syscall (linux-s390x-cgo), const AF_NETROM ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_NFC = 39
 ++pkg syscall (linux-s390x-cgo), const AF_NFC ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_PACKET = 17
 ++pkg syscall (linux-s390x-cgo), const AF_PACKET ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_PHONET = 35
 ++pkg syscall (linux-s390x-cgo), const AF_PHONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_PPPOX = 24
 ++pkg syscall (linux-s390x-cgo), const AF_PPPOX ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_RDS = 21
 ++pkg syscall (linux-s390x-cgo), const AF_RDS ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ROSE = 11
 ++pkg syscall (linux-s390x-cgo), const AF_ROSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_ROUTE = 16
 ++pkg syscall (linux-s390x-cgo), const AF_ROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_RXRPC = 33
 ++pkg syscall (linux-s390x-cgo), const AF_RXRPC ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_SECURITY = 14
 ++pkg syscall (linux-s390x-cgo), const AF_SECURITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_SNA = 22
 ++pkg syscall (linux-s390x-cgo), const AF_SNA ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_TIPC = 30
 ++pkg syscall (linux-s390x-cgo), const AF_TIPC ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_WANPIPE = 25
 ++pkg syscall (linux-s390x-cgo), const AF_WANPIPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const AF_X25 = 9
 ++pkg syscall (linux-s390x-cgo), const AF_X25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ADAPT = 264
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ADAPT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_APPLETLK = 8
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_APPLETLK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ARCNET = 7
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ARCNET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ASH = 781
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ASH ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ATM = 19
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ATM ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_AX25 = 3
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_AX25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_BIF = 775
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_BIF ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CAIF = 822
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CAIF ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CAN = 280
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CHAOS = 5
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CHAOS ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CISCO = 513
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CISCO ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP = 257
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP6 = 259
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_CSLIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_DDCMP = 517
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_DDCMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_DLCI = 15
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_DLCI ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ECONET = 782
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ECONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_EETHER = 2
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_EETHER ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ETHER = 1
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ETHER ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_EUI64 = 27
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_EUI64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCAL = 785
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCFABRIC = 787
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCFABRIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPL = 786
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPP = 784
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FCPP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FDDI = 774
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FDDI ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FRAD = 770
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_FRAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_HDLC = 513
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_HDLC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_HIPPI = 780
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_HIPPI ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_HWX25 = 272
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_HWX25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE1394 = 24
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE1394 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211 = 801
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_PRISM = 802
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_PRISM ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_RADIOTAP = 803
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE80211_RADIOTAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154 = 804
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154_MONITOR = 805
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802154_MONITOR ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802 = 6
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802_TR = 800
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IEEE802_TR ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_INFINIBAND = 32
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_INFINIBAND ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IP6GRE = 823
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IP6GRE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IPDDP = 777
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IPDDP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IPGRE = 778
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IPGRE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IRDA = 783
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_IRDA ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_LAPB = 516
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_LAPB ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_LOCALTLK = 773
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_LOCALTLK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_LOOPBACK = 772
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_LOOPBACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_METRICOM = 23
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_METRICOM ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_NETLINK = 824
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_NETLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_NETROM = 0
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_NETROM ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_NONE = 65534
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_NONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET = 820
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET_PIPE = 821
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PHONET_PIPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PIMREG = 779
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PIMREG ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PPP = 512
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PPP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PRONET = 4
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_PRONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_RAWHDLC = 518
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_RAWHDLC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ROSE = 270
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_ROSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_RSRVD = 260
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_RSRVD ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SIT = 776
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SKIP = 771
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SKIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP = 256
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP6 = 258
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_SLIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL6 = 769
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL = 768
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_TUNNEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_VOID = 65535
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_VOID ideal-int
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_X25 = 271
 ++pkg syscall (linux-s390x-cgo), const ARPHRD_X25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B0 = 0
 ++pkg syscall (linux-s390x-cgo), const B0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B1000000 = 4104
 ++pkg syscall (linux-s390x-cgo), const B1000000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B110 = 3
 ++pkg syscall (linux-s390x-cgo), const B110 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B1152000 = 4105
 ++pkg syscall (linux-s390x-cgo), const B1152000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B115200 = 4098
 ++pkg syscall (linux-s390x-cgo), const B115200 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B1200 = 9
 ++pkg syscall (linux-s390x-cgo), const B1200 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B134 = 4
 ++pkg syscall (linux-s390x-cgo), const B134 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B1500000 = 4106
 ++pkg syscall (linux-s390x-cgo), const B1500000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B150 = 5
 ++pkg syscall (linux-s390x-cgo), const B150 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B1800 = 10
 ++pkg syscall (linux-s390x-cgo), const B1800 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B19200 = 14
 ++pkg syscall (linux-s390x-cgo), const B19200 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B2000000 = 4107
 ++pkg syscall (linux-s390x-cgo), const B2000000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B200 = 6
 ++pkg syscall (linux-s390x-cgo), const B200 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B230400 = 4099
 ++pkg syscall (linux-s390x-cgo), const B230400 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B2400 = 11
 ++pkg syscall (linux-s390x-cgo), const B2400 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B2500000 = 4108
 ++pkg syscall (linux-s390x-cgo), const B2500000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B3000000 = 4109
 ++pkg syscall (linux-s390x-cgo), const B3000000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B300 = 7
 ++pkg syscall (linux-s390x-cgo), const B300 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B3500000 = 4110
 ++pkg syscall (linux-s390x-cgo), const B3500000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B38400 = 15
 ++pkg syscall (linux-s390x-cgo), const B38400 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B4000000 = 4111
 ++pkg syscall (linux-s390x-cgo), const B4000000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B460800 = 4100
 ++pkg syscall (linux-s390x-cgo), const B460800 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B4800 = 12
 ++pkg syscall (linux-s390x-cgo), const B4800 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B500000 = 4101
 ++pkg syscall (linux-s390x-cgo), const B500000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B50 = 1
 ++pkg syscall (linux-s390x-cgo), const B50 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B576000 = 4102
 ++pkg syscall (linux-s390x-cgo), const B576000 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B57600 = 4097
 ++pkg syscall (linux-s390x-cgo), const B57600 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B600 = 8
 ++pkg syscall (linux-s390x-cgo), const B600 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B75 = 2
 ++pkg syscall (linux-s390x-cgo), const B75 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B921600 = 4103
 ++pkg syscall (linux-s390x-cgo), const B921600 ideal-int
 ++pkg syscall (linux-s390x-cgo), const B9600 = 13
 ++pkg syscall (linux-s390x-cgo), const B9600 ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_A = 16
 ++pkg syscall (linux-s390x-cgo), const BPF_ABS = 32
 ++pkg syscall (linux-s390x-cgo), const BPF_ABS ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_ADD = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_ADD ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_A ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_ALU = 4
 ++pkg syscall (linux-s390x-cgo), const BPF_ALU ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_AND = 80
 ++pkg syscall (linux-s390x-cgo), const BPF_AND ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_B = 16
 ++pkg syscall (linux-s390x-cgo), const BPF_B ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_DIV = 48
 ++pkg syscall (linux-s390x-cgo), const BPF_DIV ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_H = 8
 ++pkg syscall (linux-s390x-cgo), const BPF_H ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_IMM = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_IMM ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_IND = 64
 ++pkg syscall (linux-s390x-cgo), const BPF_IND ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_JA = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_JA ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_JEQ = 16
 ++pkg syscall (linux-s390x-cgo), const BPF_JEQ ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_JGE = 48
 ++pkg syscall (linux-s390x-cgo), const BPF_JGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_JGT = 32
 ++pkg syscall (linux-s390x-cgo), const BPF_JGT ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_JMP = 5
 ++pkg syscall (linux-s390x-cgo), const BPF_JMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_JSET = 64
 ++pkg syscall (linux-s390x-cgo), const BPF_JSET ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_K = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_K ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_LD = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_LD ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_LDX = 1
 ++pkg syscall (linux-s390x-cgo), const BPF_LDX ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_LEN = 128
 ++pkg syscall (linux-s390x-cgo), const BPF_LEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_LSH = 96
 ++pkg syscall (linux-s390x-cgo), const BPF_LSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MAJOR_VERSION = 1
 ++pkg syscall (linux-s390x-cgo), const BPF_MAJOR_VERSION ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MAXINSNS = 4096
 ++pkg syscall (linux-s390x-cgo), const BPF_MAXINSNS ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MEM = 96
 ++pkg syscall (linux-s390x-cgo), const BPF_MEM ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MEMWORDS = 16
 ++pkg syscall (linux-s390x-cgo), const BPF_MEMWORDS ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MINOR_VERSION = 1
 ++pkg syscall (linux-s390x-cgo), const BPF_MINOR_VERSION ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MISC = 7
 ++pkg syscall (linux-s390x-cgo), const BPF_MISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MOD = 144
 ++pkg syscall (linux-s390x-cgo), const BPF_MOD ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MSH = 160
 ++pkg syscall (linux-s390x-cgo), const BPF_MSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_MUL = 32
 ++pkg syscall (linux-s390x-cgo), const BPF_MUL ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_NEG = 128
 ++pkg syscall (linux-s390x-cgo), const BPF_NEG ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_OR = 64
 ++pkg syscall (linux-s390x-cgo), const BPF_OR ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_RET = 6
 ++pkg syscall (linux-s390x-cgo), const BPF_RET ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_RSH = 112
 ++pkg syscall (linux-s390x-cgo), const BPF_RSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_ST = 2
 ++pkg syscall (linux-s390x-cgo), const BPF_ST ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_STX = 3
 ++pkg syscall (linux-s390x-cgo), const BPF_STX ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_SUB = 16
 ++pkg syscall (linux-s390x-cgo), const BPF_SUB ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_TAX = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_TAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_TXA = 128
 ++pkg syscall (linux-s390x-cgo), const BPF_TXA ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_W = 0
 ++pkg syscall (linux-s390x-cgo), const BPF_W ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_X = 8
 ++pkg syscall (linux-s390x-cgo), const BPF_X ideal-int
 ++pkg syscall (linux-s390x-cgo), const BPF_XOR = 160
 ++pkg syscall (linux-s390x-cgo), const BPF_XOR ideal-int
 ++pkg syscall (linux-s390x-cgo), const BRKINT = 2
 ++pkg syscall (linux-s390x-cgo), const BRKINT ideal-int
 ++pkg syscall (linux-s390x-cgo), const CFLUSH = 15
 ++pkg syscall (linux-s390x-cgo), const CFLUSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLOCAL = 2048
 ++pkg syscall (linux-s390x-cgo), const CLOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_CLEARTID = 2097152
 ++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_CLEARTID ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_SETTID = 16777216
 ++pkg syscall (linux-s390x-cgo), const CLONE_CHILD_SETTID ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_DETACHED = 4194304
 ++pkg syscall (linux-s390x-cgo), const CLONE_DETACHED ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_FILES = 1024
 ++pkg syscall (linux-s390x-cgo), const CLONE_FILES ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_FS = 512
 ++pkg syscall (linux-s390x-cgo), const CLONE_FS ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_IO = 2147483648
 ++pkg syscall (linux-s390x-cgo), const CLONE_IO ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWIPC = 134217728
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWIPC ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWNET = 1073741824
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWNET ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWNS = 131072
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWNS ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWPID = 536870912
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWPID ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWUSER = 268435456
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWUSER ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWUTS = 67108864
 ++pkg syscall (linux-s390x-cgo), const CLONE_NEWUTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_PARENT = 32768
 ++pkg syscall (linux-s390x-cgo), const CLONE_PARENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_PARENT_SETTID = 1048576
 ++pkg syscall (linux-s390x-cgo), const CLONE_PARENT_SETTID ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_PTRACE = 8192
 ++pkg syscall (linux-s390x-cgo), const CLONE_PTRACE ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_SETTLS = 524288
 ++pkg syscall (linux-s390x-cgo), const CLONE_SETTLS ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_SIGHAND = 2048
 ++pkg syscall (linux-s390x-cgo), const CLONE_SIGHAND ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_SYSVSEM = 262144
 ++pkg syscall (linux-s390x-cgo), const CLONE_SYSVSEM ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_THREAD = 65536
 ++pkg syscall (linux-s390x-cgo), const CLONE_THREAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_UNTRACED = 8388608
 ++pkg syscall (linux-s390x-cgo), const CLONE_UNTRACED ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_VFORK = 16384
 ++pkg syscall (linux-s390x-cgo), const CLONE_VFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const CLONE_VM = 256
 ++pkg syscall (linux-s390x-cgo), const CLONE_VM ideal-int
 ++pkg syscall (linux-s390x-cgo), const CREAD = 128
 ++pkg syscall (linux-s390x-cgo), const CREAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const CS5 = 0
 ++pkg syscall (linux-s390x-cgo), const CS5 ideal-int
 ++pkg syscall (linux-s390x-cgo), const CS6 = 16
 ++pkg syscall (linux-s390x-cgo), const CS6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const CS7 = 32
 ++pkg syscall (linux-s390x-cgo), const CS7 ideal-int
 ++pkg syscall (linux-s390x-cgo), const CS8 = 48
 ++pkg syscall (linux-s390x-cgo), const CS8 ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSIGNAL = 255
 ++pkg syscall (linux-s390x-cgo), const CSIGNAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSIZE = 48
 ++pkg syscall (linux-s390x-cgo), const CSIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSTART = 17
 ++pkg syscall (linux-s390x-cgo), const CSTART ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSTATUS = 0
 ++pkg syscall (linux-s390x-cgo), const CSTATUS ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSTOP = 19
 ++pkg syscall (linux-s390x-cgo), const CSTOPB = 64
 ++pkg syscall (linux-s390x-cgo), const CSTOPB ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSTOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const CSUSP = 26
 ++pkg syscall (linux-s390x-cgo), const CSUSP ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_BLK = 6
 ++pkg syscall (linux-s390x-cgo), const DT_BLK ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_CHR = 2
 ++pkg syscall (linux-s390x-cgo), const DT_CHR ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_DIR = 4
 ++pkg syscall (linux-s390x-cgo), const DT_DIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_FIFO = 1
 ++pkg syscall (linux-s390x-cgo), const DT_FIFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_LNK = 10
 ++pkg syscall (linux-s390x-cgo), const DT_LNK ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_REG = 8
 ++pkg syscall (linux-s390x-cgo), const DT_REG ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_SOCK = 12
 ++pkg syscall (linux-s390x-cgo), const DT_SOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_UNKNOWN = 0
 ++pkg syscall (linux-s390x-cgo), const DT_UNKNOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const DT_WHT = 14
 ++pkg syscall (linux-s390x-cgo), const DT_WHT ideal-int
 ++pkg syscall (linux-s390x-cgo), const E2BIG = 7
 ++pkg syscall (linux-s390x-cgo), const EACCES = 13
 ++pkg syscall (linux-s390x-cgo), const EADDRINUSE = 98
 ++pkg syscall (linux-s390x-cgo), const EADDRNOTAVAIL = 99
 ++pkg syscall (linux-s390x-cgo), const EADV = 68
 ++pkg syscall (linux-s390x-cgo), const EADV Errno
 ++pkg syscall (linux-s390x-cgo), const EAFNOSUPPORT = 97
 ++pkg syscall (linux-s390x-cgo), const EAGAIN = 11
 ++pkg syscall (linux-s390x-cgo), const EALREADY = 114
 ++pkg syscall (linux-s390x-cgo), const EBADE = 52
 ++pkg syscall (linux-s390x-cgo), const EBADE Errno
 ++pkg syscall (linux-s390x-cgo), const EBADF = 9
 ++pkg syscall (linux-s390x-cgo), const EBADFD = 77
 ++pkg syscall (linux-s390x-cgo), const EBADFD Errno
 ++pkg syscall (linux-s390x-cgo), const EBADMSG = 74
 ++pkg syscall (linux-s390x-cgo), const EBADMSG Errno
 ++pkg syscall (linux-s390x-cgo), const EBADR = 53
 ++pkg syscall (linux-s390x-cgo), const EBADR Errno
 ++pkg syscall (linux-s390x-cgo), const EBADRQC = 56
 ++pkg syscall (linux-s390x-cgo), const EBADRQC Errno
 ++pkg syscall (linux-s390x-cgo), const EBADSLT = 57
 ++pkg syscall (linux-s390x-cgo), const EBADSLT Errno
 ++pkg syscall (linux-s390x-cgo), const EBFONT = 59
 ++pkg syscall (linux-s390x-cgo), const EBFONT Errno
 ++pkg syscall (linux-s390x-cgo), const EBUSY = 16
 ++pkg syscall (linux-s390x-cgo), const ECANCELED = 125
 ++pkg syscall (linux-s390x-cgo), const ECHILD = 10
 ++pkg syscall (linux-s390x-cgo), const ECHO = 8
 ++pkg syscall (linux-s390x-cgo), const ECHOCTL = 512
 ++pkg syscall (linux-s390x-cgo), const ECHOCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHOE = 16
 ++pkg syscall (linux-s390x-cgo), const ECHOE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHO ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHOK = 32
 ++pkg syscall (linux-s390x-cgo), const ECHOKE = 2048
 ++pkg syscall (linux-s390x-cgo), const ECHOKE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHOK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHONL = 64
 ++pkg syscall (linux-s390x-cgo), const ECHONL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHOPRT = 1024
 ++pkg syscall (linux-s390x-cgo), const ECHOPRT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ECHRNG = 44
 ++pkg syscall (linux-s390x-cgo), const ECHRNG Errno
 ++pkg syscall (linux-s390x-cgo), const ECOMM = 70
 ++pkg syscall (linux-s390x-cgo), const ECOMM Errno
 ++pkg syscall (linux-s390x-cgo), const ECONNABORTED = 103
 ++pkg syscall (linux-s390x-cgo), const ECONNREFUSED = 111
 ++pkg syscall (linux-s390x-cgo), const ECONNRESET = 104
 ++pkg syscall (linux-s390x-cgo), const EDEADLK = 35
 ++pkg syscall (linux-s390x-cgo), const EDEADLOCK = 35
 ++pkg syscall (linux-s390x-cgo), const EDEADLOCK Errno
 ++pkg syscall (linux-s390x-cgo), const EDESTADDRREQ = 89
 ++pkg syscall (linux-s390x-cgo), const EDOM = 33
 ++pkg syscall (linux-s390x-cgo), const EDOTDOT = 73
 ++pkg syscall (linux-s390x-cgo), const EDOTDOT Errno
 ++pkg syscall (linux-s390x-cgo), const EDQUOT = 122
 ++pkg syscall (linux-s390x-cgo), const EEXIST = 17
 ++pkg syscall (linux-s390x-cgo), const EFAULT = 14
 ++pkg syscall (linux-s390x-cgo), const EFBIG = 27
 ++pkg syscall (linux-s390x-cgo), const EHOSTDOWN = 112
 ++pkg syscall (linux-s390x-cgo), const EHOSTUNREACH = 113
 ++pkg syscall (linux-s390x-cgo), const EHWPOISON = 133
 ++pkg syscall (linux-s390x-cgo), const EHWPOISON Errno
 ++pkg syscall (linux-s390x-cgo), const EIDRM = 43
 ++pkg syscall (linux-s390x-cgo), const EILSEQ = 84
 ++pkg syscall (linux-s390x-cgo), const EINPROGRESS = 115
 ++pkg syscall (linux-s390x-cgo), const EINTR = 4
 ++pkg syscall (linux-s390x-cgo), const EINVAL = 22
 ++pkg syscall (linux-s390x-cgo), const EIO = 5
 ++pkg syscall (linux-s390x-cgo), const EISCONN = 106
 ++pkg syscall (linux-s390x-cgo), const EISDIR = 21
 ++pkg syscall (linux-s390x-cgo), const EISNAM = 120
 ++pkg syscall (linux-s390x-cgo), const EISNAM Errno
 ++pkg syscall (linux-s390x-cgo), const EKEYEXPIRED = 127
 ++pkg syscall (linux-s390x-cgo), const EKEYEXPIRED Errno
 ++pkg syscall (linux-s390x-cgo), const EKEYREJECTED = 129
 ++pkg syscall (linux-s390x-cgo), const EKEYREJECTED Errno
 ++pkg syscall (linux-s390x-cgo), const EKEYREVOKED = 128
 ++pkg syscall (linux-s390x-cgo), const EKEYREVOKED Errno
 ++pkg syscall (linux-s390x-cgo), const EL2HLT = 51
 ++pkg syscall (linux-s390x-cgo), const EL2HLT Errno
 ++pkg syscall (linux-s390x-cgo), const EL2NSYNC = 45
 ++pkg syscall (linux-s390x-cgo), const EL2NSYNC Errno
 ++pkg syscall (linux-s390x-cgo), const EL3HLT = 46
 ++pkg syscall (linux-s390x-cgo), const EL3HLT Errno
 ++pkg syscall (linux-s390x-cgo), const EL3RST = 47
 ++pkg syscall (linux-s390x-cgo), const EL3RST Errno
 ++pkg syscall (linux-s390x-cgo), const ELIBACC = 79
 ++pkg syscall (linux-s390x-cgo), const ELIBACC Errno
 ++pkg syscall (linux-s390x-cgo), const ELIBBAD = 80
 ++pkg syscall (linux-s390x-cgo), const ELIBBAD Errno
 ++pkg syscall (linux-s390x-cgo), const ELIBEXEC = 83
 ++pkg syscall (linux-s390x-cgo), const ELIBEXEC Errno
 ++pkg syscall (linux-s390x-cgo), const ELIBMAX = 82
 ++pkg syscall (linux-s390x-cgo), const ELIBMAX Errno
 ++pkg syscall (linux-s390x-cgo), const ELIBSCN = 81
 ++pkg syscall (linux-s390x-cgo), const ELIBSCN Errno
 ++pkg syscall (linux-s390x-cgo), const ELNRNG = 48
 ++pkg syscall (linux-s390x-cgo), const ELNRNG Errno
 ++pkg syscall (linux-s390x-cgo), const ELOOP = 40
 ++pkg syscall (linux-s390x-cgo), const EMEDIUMTYPE = 124
 ++pkg syscall (linux-s390x-cgo), const EMEDIUMTYPE Errno
 ++pkg syscall (linux-s390x-cgo), const EMFILE = 24
 ++pkg syscall (linux-s390x-cgo), const EMLINK = 31
 ++pkg syscall (linux-s390x-cgo), const EMSGSIZE = 90
 ++pkg syscall (linux-s390x-cgo), const EMULTIHOP = 72
 ++pkg syscall (linux-s390x-cgo), const EMULTIHOP Errno
 ++pkg syscall (linux-s390x-cgo), const ENAMETOOLONG = 36
 ++pkg syscall (linux-s390x-cgo), const ENAVAIL = 119
 ++pkg syscall (linux-s390x-cgo), const ENAVAIL Errno
 ++pkg syscall (linux-s390x-cgo), const ENCODING_DEFAULT = 0
 ++pkg syscall (linux-s390x-cgo), const ENCODING_DEFAULT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ENCODING_FM_MARK = 3
 ++pkg syscall (linux-s390x-cgo), const ENCODING_FM_MARK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ENCODING_FM_SPACE = 4
 ++pkg syscall (linux-s390x-cgo), const ENCODING_FM_SPACE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ENCODING_MANCHESTER = 5
 ++pkg syscall (linux-s390x-cgo), const ENCODING_MANCHESTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const ENCODING_NRZ = 1
 ++pkg syscall (linux-s390x-cgo), const ENCODING_NRZI = 2
 ++pkg syscall (linux-s390x-cgo), const ENCODING_NRZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const ENCODING_NRZI ideal-int
 ++pkg syscall (linux-s390x-cgo), const ENETDOWN = 100
 ++pkg syscall (linux-s390x-cgo), const ENETRESET = 102
 ++pkg syscall (linux-s390x-cgo), const ENETUNREACH = 101
 ++pkg syscall (linux-s390x-cgo), const ENFILE = 23
 ++pkg syscall (linux-s390x-cgo), const ENOANO = 55
 ++pkg syscall (linux-s390x-cgo), const ENOANO Errno
 ++pkg syscall (linux-s390x-cgo), const ENOBUFS = 105
 ++pkg syscall (linux-s390x-cgo), const ENOCSI = 50
 ++pkg syscall (linux-s390x-cgo), const ENOCSI Errno
 ++pkg syscall (linux-s390x-cgo), const ENODATA = 61
 ++pkg syscall (linux-s390x-cgo), const ENODATA Errno
 ++pkg syscall (linux-s390x-cgo), const ENODEV = 19
 ++pkg syscall (linux-s390x-cgo), const ENOEXEC = 8
 ++pkg syscall (linux-s390x-cgo), const ENOKEY = 126
 ++pkg syscall (linux-s390x-cgo), const ENOKEY Errno
 ++pkg syscall (linux-s390x-cgo), const ENOLCK = 37
 ++pkg syscall (linux-s390x-cgo), const ENOLINK = 67
 ++pkg syscall (linux-s390x-cgo), const ENOLINK Errno
 ++pkg syscall (linux-s390x-cgo), const ENOMEDIUM = 123
 ++pkg syscall (linux-s390x-cgo), const ENOMEDIUM Errno
 ++pkg syscall (linux-s390x-cgo), const ENOMEM = 12
 ++pkg syscall (linux-s390x-cgo), const ENOMSG = 42
 ++pkg syscall (linux-s390x-cgo), const ENONET = 64
 ++pkg syscall (linux-s390x-cgo), const ENONET Errno
 ++pkg syscall (linux-s390x-cgo), const ENOPKG = 65
 ++pkg syscall (linux-s390x-cgo), const ENOPKG Errno
 ++pkg syscall (linux-s390x-cgo), const ENOPROTOOPT = 92
 ++pkg syscall (linux-s390x-cgo), const ENOSPC = 28
 ++pkg syscall (linux-s390x-cgo), const ENOSR = 63
 ++pkg syscall (linux-s390x-cgo), const ENOSR Errno
 ++pkg syscall (linux-s390x-cgo), const ENOSTR = 60
 ++pkg syscall (linux-s390x-cgo), const ENOSTR Errno
 ++pkg syscall (linux-s390x-cgo), const ENOSYS = 38
 ++pkg syscall (linux-s390x-cgo), const ENOTBLK = 15
 ++pkg syscall (linux-s390x-cgo), const ENOTCONN = 107
 ++pkg syscall (linux-s390x-cgo), const ENOTDIR = 20
 ++pkg syscall (linux-s390x-cgo), const ENOTEMPTY = 39
 ++pkg syscall (linux-s390x-cgo), const ENOTNAM = 118
 ++pkg syscall (linux-s390x-cgo), const ENOTNAM Errno
 ++pkg syscall (linux-s390x-cgo), const ENOTRECOVERABLE = 131
 ++pkg syscall (linux-s390x-cgo), const ENOTRECOVERABLE Errno
 ++pkg syscall (linux-s390x-cgo), const ENOTSOCK = 88
 ++pkg syscall (linux-s390x-cgo), const ENOTSUP = 95
 ++pkg syscall (linux-s390x-cgo), const ENOTTY = 25
 ++pkg syscall (linux-s390x-cgo), const ENOTUNIQ = 76
 ++pkg syscall (linux-s390x-cgo), const ENOTUNIQ Errno
 ++pkg syscall (linux-s390x-cgo), const ENXIO = 6
 ++pkg syscall (linux-s390x-cgo), const EOPNOTSUPP = 95
 ++pkg syscall (linux-s390x-cgo), const EOVERFLOW = 75
 ++pkg syscall (linux-s390x-cgo), const EOWNERDEAD = 130
 ++pkg syscall (linux-s390x-cgo), const EOWNERDEAD Errno
 ++pkg syscall (linux-s390x-cgo), const EPERM = 1
 ++pkg syscall (linux-s390x-cgo), const EPFNOSUPPORT = 96
 ++pkg syscall (linux-s390x-cgo), const EPIPE = 32
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CLOEXEC = 524288
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_ADD = 1
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_ADD ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_DEL = 2
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_DEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_MOD = 3
 ++pkg syscall (linux-s390x-cgo), const EPOLL_CTL_MOD ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLERR = 8
 ++pkg syscall (linux-s390x-cgo), const EPOLLERR ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLET = 2147483648
 ++pkg syscall (linux-s390x-cgo), const EPOLLET ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLHUP = 16
 ++pkg syscall (linux-s390x-cgo), const EPOLLHUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLIN = 1
 ++pkg syscall (linux-s390x-cgo), const EPOLLIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLMSG = 1024
 ++pkg syscall (linux-s390x-cgo), const EPOLLMSG ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLL_NONBLOCK = 2048
 ++pkg syscall (linux-s390x-cgo), const EPOLL_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLONESHOT = 1073741824
 ++pkg syscall (linux-s390x-cgo), const EPOLLONESHOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLOUT = 4
 ++pkg syscall (linux-s390x-cgo), const EPOLLOUT ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLPRI = 2
 ++pkg syscall (linux-s390x-cgo), const EPOLLPRI ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLRDBAND = 128
 ++pkg syscall (linux-s390x-cgo), const EPOLLRDBAND ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLRDHUP = 8192
 ++pkg syscall (linux-s390x-cgo), const EPOLLRDHUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLRDNORM = 64
 ++pkg syscall (linux-s390x-cgo), const EPOLLRDNORM ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLWAKEUP = 536870912
 ++pkg syscall (linux-s390x-cgo), const EPOLLWAKEUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLWRBAND = 512
 ++pkg syscall (linux-s390x-cgo), const EPOLLWRBAND ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPOLLWRNORM = 256
 ++pkg syscall (linux-s390x-cgo), const EPOLLWRNORM ideal-int
 ++pkg syscall (linux-s390x-cgo), const EPROTO = 71
 ++pkg syscall (linux-s390x-cgo), const EPROTO Errno
 ++pkg syscall (linux-s390x-cgo), const EPROTONOSUPPORT = 93
 ++pkg syscall (linux-s390x-cgo), const EPROTOTYPE = 91
 ++pkg syscall (linux-s390x-cgo), const ERANGE = 34
 ++pkg syscall (linux-s390x-cgo), const EREMCHG = 78
 ++pkg syscall (linux-s390x-cgo), const EREMCHG Errno
 ++pkg syscall (linux-s390x-cgo), const EREMOTE = 66
 ++pkg syscall (linux-s390x-cgo), const EREMOTEIO = 121
 ++pkg syscall (linux-s390x-cgo), const EREMOTEIO Errno
 ++pkg syscall (linux-s390x-cgo), const ERESTART = 85
 ++pkg syscall (linux-s390x-cgo), const ERESTART Errno
 ++pkg syscall (linux-s390x-cgo), const ERFKILL = 132
 ++pkg syscall (linux-s390x-cgo), const ERFKILL Errno
 ++pkg syscall (linux-s390x-cgo), const EROFS = 30
 ++pkg syscall (linux-s390x-cgo), const ESHUTDOWN = 108
 ++pkg syscall (linux-s390x-cgo), const ESOCKTNOSUPPORT = 94
 ++pkg syscall (linux-s390x-cgo), const ESPIPE = 29
 ++pkg syscall (linux-s390x-cgo), const ESRCH = 3
 ++pkg syscall (linux-s390x-cgo), const ESRMNT = 69
 ++pkg syscall (linux-s390x-cgo), const ESRMNT Errno
 ++pkg syscall (linux-s390x-cgo), const ESTALE = 116
 ++pkg syscall (linux-s390x-cgo), const ESTRPIPE = 86
 ++pkg syscall (linux-s390x-cgo), const ESTRPIPE Errno
 ++pkg syscall (linux-s390x-cgo), const ETH_P_1588 = 35063
 ++pkg syscall (linux-s390x-cgo), const ETH_P_1588 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_8021AD = 34984
 ++pkg syscall (linux-s390x-cgo), const ETH_P_8021AD ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_8021AH = 35047
 ++pkg syscall (linux-s390x-cgo), const ETH_P_8021AH ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_8021Q = 33024
 ++pkg syscall (linux-s390x-cgo), const ETH_P_8021Q ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_80221 = 35095
 ++pkg syscall (linux-s390x-cgo), const ETH_P_80221 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_2 = 4
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_3 = 1
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_3 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_3_MIN = 1536
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_3_MIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_EX1 = 34997
 ++pkg syscall (linux-s390x-cgo), const ETH_P_802_EX1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AARP = 33011
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AF_IUCV = 64507
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AF_IUCV ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ALL = 3
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AOE = 34978
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AOE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ARCNET = 26
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ARCNET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ARP = 2054
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ATALK = 32923
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ATALK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ATMFATE = 34948
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ATMFATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ATMMPOA = 34892
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ATMMPOA ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AX25 = 2
 ++pkg syscall (linux-s390x-cgo), const ETH_P_AX25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_BATMAN = 17157
 ++pkg syscall (linux-s390x-cgo), const ETH_P_BATMAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_BPQ = 2303
 ++pkg syscall (linux-s390x-cgo), const ETH_P_BPQ ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CAIF = 247
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CAIF ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CAN = 12
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CANFD = 13
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CANFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CONTROL = 22
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CONTROL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CUST = 24582
 ++pkg syscall (linux-s390x-cgo), const ETH_P_CUST ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DDCMP = 6
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DDCMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DEC = 24576
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DIAG = 24581
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DIAG ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_DL = 24577
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_DL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RC = 24578
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RT = 24579
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DNA_RT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DSA = 27
 ++pkg syscall (linux-s390x-cgo), const ETH_P_DSA ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ECONET = 24
 ++pkg syscall (linux-s390x-cgo), const ETH_P_ECONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_EDSA = 56026
 ++pkg syscall (linux-s390x-cgo), const ETH_P_EDSA ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_FCOE = 35078
 ++pkg syscall (linux-s390x-cgo), const ETH_P_FCOE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_FIP = 35092
 ++pkg syscall (linux-s390x-cgo), const ETH_P_FIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_HDLC = 25
 ++pkg syscall (linux-s390x-cgo), const ETH_P_HDLC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IEEE802154 = 246
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IEEE802154 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUP = 2560
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUPAT = 2561
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUPAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IEEEPUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IP = 2048
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IPV6 = 34525
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IPV6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IPX = 33079
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IPX ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IRDA = 23
 ++pkg syscall (linux-s390x-cgo), const ETH_P_IRDA ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LAT = 24580
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LINK_CTL = 34924
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LINK_CTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LOCALTALK = 9
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LOCALTALK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LOOP = 96
 ++pkg syscall (linux-s390x-cgo), const ETH_P_LOOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MOBITEX = 21
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MOBITEX ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_MC = 34888
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_MC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_UC = 34887
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MPLS_UC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MVRP = 35061
 ++pkg syscall (linux-s390x-cgo), const ETH_P_MVRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PAE = 34958
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PAE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PAUSE = 34824
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PAUSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PHONET = 245
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PHONET ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_DISC = 34915
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_DISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_MP = 8
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_MP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_SES = 34916
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPP_SES ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPPTALK = 16
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PPPTALK ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PUP = 512
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PUPAT = 513
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PUPAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_PUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ1 = 37120
 ++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ2 = 37376
 ++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ3 = 37632
 ++pkg syscall (linux-s390x-cgo), const ETH_P_QINQ3 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_RARP = 32821
 ++pkg syscall (linux-s390x-cgo), const ETH_P_RARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_SCA = 24583
 ++pkg syscall (linux-s390x-cgo), const ETH_P_SCA ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_SLOW = 34825
 ++pkg syscall (linux-s390x-cgo), const ETH_P_SLOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_SNAP = 5
 ++pkg syscall (linux-s390x-cgo), const ETH_P_SNAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TDLS = 35085
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TDLS ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TEB = 25944
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TEB ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TIPC = 35018
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TIPC ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TR_802_2 = 17
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TR_802_2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TRAILER = 28
 ++pkg syscall (linux-s390x-cgo), const ETH_P_TRAILER ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_WAN_PPP = 7
 ++pkg syscall (linux-s390x-cgo), const ETH_P_WAN_PPP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_WCCP = 34878
 ++pkg syscall (linux-s390x-cgo), const ETH_P_WCCP ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETH_P_X25 = 2053
 ++pkg syscall (linux-s390x-cgo), const ETH_P_X25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const ETIME = 62
 ++pkg syscall (linux-s390x-cgo), const ETIMEDOUT = 110
 ++pkg syscall (linux-s390x-cgo), const ETIME Errno
 ++pkg syscall (linux-s390x-cgo), const ETOOMANYREFS = 109
 ++pkg syscall (linux-s390x-cgo), const ETXTBSY = 26
 ++pkg syscall (linux-s390x-cgo), const EUCLEAN = 117
 ++pkg syscall (linux-s390x-cgo), const EUCLEAN Errno
 ++pkg syscall (linux-s390x-cgo), const EUNATCH = 49
 ++pkg syscall (linux-s390x-cgo), const EUNATCH Errno
 ++pkg syscall (linux-s390x-cgo), const EUSERS = 87
 ++pkg syscall (linux-s390x-cgo), const EWOULDBLOCK = 11
 ++pkg syscall (linux-s390x-cgo), const EXDEV = 18
 ++pkg syscall (linux-s390x-cgo), const EXFULL = 54
 ++pkg syscall (linux-s390x-cgo), const EXFULL Errno
 ++pkg syscall (linux-s390x-cgo), const EXTA = 14
 ++pkg syscall (linux-s390x-cgo), const EXTA ideal-int
 ++pkg syscall (linux-s390x-cgo), const EXTB = 15
 ++pkg syscall (linux-s390x-cgo), const EXTB ideal-int
 ++pkg syscall (linux-s390x-cgo), const EXTPROC = 65536
 ++pkg syscall (linux-s390x-cgo), const EXTPROC ideal-int
 ++pkg syscall (linux-s390x-cgo), const FD_CLOEXEC = 1
 ++pkg syscall (linux-s390x-cgo), const FD_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const FD_SETSIZE = 1024
 ++pkg syscall (linux-s390x-cgo), const FD_SETSIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_DUPFD = 0
 ++pkg syscall (linux-s390x-cgo), const F_DUPFD_CLOEXEC = 1030
 ++pkg syscall (linux-s390x-cgo), const F_DUPFD_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_DUPFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_EXLCK = 4
 ++pkg syscall (linux-s390x-cgo), const F_EXLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETFD = 1
 ++pkg syscall (linux-s390x-cgo), const F_GETFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETFL = 3
 ++pkg syscall (linux-s390x-cgo), const F_GETFL ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETLEASE = 1025
 ++pkg syscall (linux-s390x-cgo), const F_GETLEASE ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETLK = 5
 ++pkg syscall (linux-s390x-cgo), const F_GETLK64 = 5
 ++pkg syscall (linux-s390x-cgo), const F_GETLK64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETLK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETOWN = 9
 ++pkg syscall (linux-s390x-cgo), const F_GETOWN_EX = 16
 ++pkg syscall (linux-s390x-cgo), const F_GETOWN_EX ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETPIPE_SZ = 1032
 ++pkg syscall (linux-s390x-cgo), const F_GETPIPE_SZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_GETSIG = 11
 ++pkg syscall (linux-s390x-cgo), const F_GETSIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_LOCK = 1
 ++pkg syscall (linux-s390x-cgo), const F_LOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const FLUSHO = 4096
 ++pkg syscall (linux-s390x-cgo), const FLUSHO ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_NOTIFY = 1026
 ++pkg syscall (linux-s390x-cgo), const F_NOTIFY ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_OK = 0
 ++pkg syscall (linux-s390x-cgo), const F_OK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_RDLCK = 0
 ++pkg syscall (linux-s390x-cgo), const F_RDLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETFD = 2
 ++pkg syscall (linux-s390x-cgo), const F_SETFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETFL = 4
 ++pkg syscall (linux-s390x-cgo), const F_SETFL ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETLEASE = 1024
 ++pkg syscall (linux-s390x-cgo), const F_SETLEASE ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETLK = 6
 ++pkg syscall (linux-s390x-cgo), const F_SETLK64 = 6
 ++pkg syscall (linux-s390x-cgo), const F_SETLK64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETLK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETLKW64 = 7
 ++pkg syscall (linux-s390x-cgo), const F_SETLKW64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETLKW = 7
 ++pkg syscall (linux-s390x-cgo), const F_SETLKW ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETOWN = 8
 ++pkg syscall (linux-s390x-cgo), const F_SETOWN_EX = 15
 ++pkg syscall (linux-s390x-cgo), const F_SETOWN_EX ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETPIPE_SZ = 1031
 ++pkg syscall (linux-s390x-cgo), const F_SETPIPE_SZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SETSIG = 10
 ++pkg syscall (linux-s390x-cgo), const F_SETSIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_SHLCK = 8
 ++pkg syscall (linux-s390x-cgo), const F_SHLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_TEST = 3
 ++pkg syscall (linux-s390x-cgo), const F_TEST ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_TLOCK = 2
 ++pkg syscall (linux-s390x-cgo), const F_TLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_ULOCK = 0
 ++pkg syscall (linux-s390x-cgo), const F_ULOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_UNLCK = 2
 ++pkg syscall (linux-s390x-cgo), const F_UNLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const F_WRLCK = 1
 ++pkg syscall (linux-s390x-cgo), const F_WRLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const HUPCL = 1024
 ++pkg syscall (linux-s390x-cgo), const HUPCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ICANON = 2
 ++pkg syscall (linux-s390x-cgo), const ICANON ideal-int
 ++pkg syscall (linux-s390x-cgo), const ICMPV6_FILTER = 1
 ++pkg syscall (linux-s390x-cgo), const ICMPV6_FILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const ICRNL = 256
 ++pkg syscall (linux-s390x-cgo), const ICRNL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IEXTEN = 32768
 ++pkg syscall (linux-s390x-cgo), const IEXTEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_ADDRESS = 1
 ++pkg syscall (linux-s390x-cgo), const IFA_ADDRESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_ANYCAST = 5
 ++pkg syscall (linux-s390x-cgo), const IFA_ANYCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_BROADCAST = 4
 ++pkg syscall (linux-s390x-cgo), const IFA_BROADCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_CACHEINFO = 6
 ++pkg syscall (linux-s390x-cgo), const IFA_CACHEINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_DADFAILED = 8
 ++pkg syscall (linux-s390x-cgo), const IFA_F_DADFAILED ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_DEPRECATED = 32
 ++pkg syscall (linux-s390x-cgo), const IFA_F_DEPRECATED ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_HOMEADDRESS = 16
 ++pkg syscall (linux-s390x-cgo), const IFA_F_HOMEADDRESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_MANAGETEMPADDR = 256
 ++pkg syscall (linux-s390x-cgo), const IFA_F_MANAGETEMPADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_NODAD = 2
 ++pkg syscall (linux-s390x-cgo), const IFA_F_NODAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_NOPREFIXROUTE = 512
 ++pkg syscall (linux-s390x-cgo), const IFA_F_NOPREFIXROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_OPTIMISTIC = 4
 ++pkg syscall (linux-s390x-cgo), const IFA_F_OPTIMISTIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_PERMANENT = 128
 ++pkg syscall (linux-s390x-cgo), const IFA_F_PERMANENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_SECONDARY = 1
 ++pkg syscall (linux-s390x-cgo), const IFA_F_SECONDARY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_TEMPORARY = 1
 ++pkg syscall (linux-s390x-cgo), const IFA_F_TEMPORARY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_F_TENTATIVE = 64
 ++pkg syscall (linux-s390x-cgo), const IFA_F_TENTATIVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_LABEL = 3
 ++pkg syscall (linux-s390x-cgo), const IFA_LABEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_LOCAL = 2
 ++pkg syscall (linux-s390x-cgo), const IFA_LOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_MAX = 8
 ++pkg syscall (linux-s390x-cgo), const IFA_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_MULTICAST = 7
 ++pkg syscall (linux-s390x-cgo), const IFA_MULTICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFA_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const IFA_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_802_1Q_VLAN = 1
 ++pkg syscall (linux-s390x-cgo), const IFF_802_1Q_VLAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_ALLMULTI = 512
 ++pkg syscall (linux-s390x-cgo), const IFF_ALLMULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_ATTACH_QUEUE = 512
 ++pkg syscall (linux-s390x-cgo), const IFF_ATTACH_QUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_AUTOMEDIA = 16384
 ++pkg syscall (linux-s390x-cgo), const IFF_AUTOMEDIA ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_BONDING = 32
 ++pkg syscall (linux-s390x-cgo), const IFF_BONDING ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_BRIDGE_PORT = 16384
 ++pkg syscall (linux-s390x-cgo), const IFF_BRIDGE_PORT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_DEBUG = 4
 ++pkg syscall (linux-s390x-cgo), const IFF_DEBUG ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_DETACH_QUEUE = 1024
 ++pkg syscall (linux-s390x-cgo), const IFF_DETACH_QUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_DISABLE_NETPOLL = 4096
 ++pkg syscall (linux-s390x-cgo), const IFF_DISABLE_NETPOLL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_DONT_BRIDGE = 2048
 ++pkg syscall (linux-s390x-cgo), const IFF_DONT_BRIDGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_DORMANT = 131072
 ++pkg syscall (linux-s390x-cgo), const IFF_DORMANT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_DYNAMIC = 32768
 ++pkg syscall (linux-s390x-cgo), const IFF_DYNAMIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_EBRIDGE = 2
 ++pkg syscall (linux-s390x-cgo), const IFF_EBRIDGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_ECHO = 262144
 ++pkg syscall (linux-s390x-cgo), const IFF_ECHO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_ISATAP = 128
 ++pkg syscall (linux-s390x-cgo), const IFF_ISATAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_LIVE_ADDR_CHANGE = 1048576
 ++pkg syscall (linux-s390x-cgo), const IFF_LIVE_ADDR_CHANGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_LOOPBACK = 8
 ++pkg syscall (linux-s390x-cgo), const IFF_LOWER_UP = 65536
 ++pkg syscall (linux-s390x-cgo), const IFF_LOWER_UP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_MACVLAN_PORT = 8192
 ++pkg syscall (linux-s390x-cgo), const IFF_MACVLAN_PORT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER = 1024
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER_8023AD = 8
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER_8023AD ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ALB = 16
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ALB ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ARPMON = 256
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER_ARPMON ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_MASTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_MULTICAST = 4096
 ++pkg syscall (linux-s390x-cgo), const IFF_MULTI_QUEUE = 256
 ++pkg syscall (linux-s390x-cgo), const IFF_MULTI_QUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_NOARP = 128
 ++pkg syscall (linux-s390x-cgo), const IFF_NOARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_NO_PI = 4096
 ++pkg syscall (linux-s390x-cgo), const IFF_NO_PI ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_NOTRAILERS = 32
 ++pkg syscall (linux-s390x-cgo), const IFF_NOTRAILERS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_ONE_QUEUE = 8192
 ++pkg syscall (linux-s390x-cgo), const IFF_ONE_QUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_OVS_DATAPATH = 32768
 ++pkg syscall (linux-s390x-cgo), const IFF_OVS_DATAPATH ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_POINTOPOINT = 16
 ++pkg syscall (linux-s390x-cgo), const IFF_POINTOPOINT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_PORTSEL = 8192
 ++pkg syscall (linux-s390x-cgo), const IFF_PORTSEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_PROMISC = 256
 ++pkg syscall (linux-s390x-cgo), const IFF_PROMISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_RUNNING = 64
 ++pkg syscall (linux-s390x-cgo), const IFF_RUNNING ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_SLAVE = 2048
 ++pkg syscall (linux-s390x-cgo), const IFF_SLAVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_INACTIVE = 4
 ++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_INACTIVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_NEEDARP = 64
 ++pkg syscall (linux-s390x-cgo), const IFF_SLAVE_NEEDARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_SUPP_NOFCS = 524288
 ++pkg syscall (linux-s390x-cgo), const IFF_SUPP_NOFCS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_TAP = 2
 ++pkg syscall (linux-s390x-cgo), const IFF_TAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_TEAM_PORT = 262144
 ++pkg syscall (linux-s390x-cgo), const IFF_TEAM_PORT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_TUN = 1
 ++pkg syscall (linux-s390x-cgo), const IFF_TUN_EXCL = 32768
 ++pkg syscall (linux-s390x-cgo), const IFF_TUN_EXCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_TUN ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_TX_SKB_SHARING = 65536
 ++pkg syscall (linux-s390x-cgo), const IFF_TX_SKB_SHARING ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_UNICAST_FLT = 131072
 ++pkg syscall (linux-s390x-cgo), const IFF_UNICAST_FLT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_VNET_HDR = 16384
 ++pkg syscall (linux-s390x-cgo), const IFF_VNET_HDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_VOLATILE = 461914
 ++pkg syscall (linux-s390x-cgo), const IFF_VOLATILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_WAN_HDLC = 512
 ++pkg syscall (linux-s390x-cgo), const IFF_WAN_HDLC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFF_XMIT_DST_RELEASE = 1024
 ++pkg syscall (linux-s390x-cgo), const IFF_XMIT_DST_RELEASE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_ADDRESS = 1
 ++pkg syscall (linux-s390x-cgo), const IFLA_ADDRESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_BROADCAST = 2
 ++pkg syscall (linux-s390x-cgo), const IFLA_BROADCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_COST = 8
 ++pkg syscall (linux-s390x-cgo), const IFLA_COST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_IFALIAS = 20
 ++pkg syscall (linux-s390x-cgo), const IFLA_IFALIAS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_IFNAME = 3
 ++pkg syscall (linux-s390x-cgo), const IFLA_IFNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_LINK = 5
 ++pkg syscall (linux-s390x-cgo), const IFLA_LINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_LINKINFO = 18
 ++pkg syscall (linux-s390x-cgo), const IFLA_LINKINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_LINKMODE = 17
 ++pkg syscall (linux-s390x-cgo), const IFLA_LINKMODE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_MAP = 14
 ++pkg syscall (linux-s390x-cgo), const IFLA_MAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_MASTER = 10
 ++pkg syscall (linux-s390x-cgo), const IFLA_MASTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_MAX = 34
 ++pkg syscall (linux-s390x-cgo), const IFLA_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_MTU = 4
 ++pkg syscall (linux-s390x-cgo), const IFLA_MTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_NET_NS_PID = 19
 ++pkg syscall (linux-s390x-cgo), const IFLA_NET_NS_PID ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_OPERSTATE = 16
 ++pkg syscall (linux-s390x-cgo), const IFLA_OPERSTATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_PRIORITY = 9
 ++pkg syscall (linux-s390x-cgo), const IFLA_PRIORITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_PROTINFO = 12
 ++pkg syscall (linux-s390x-cgo), const IFLA_PROTINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_QDISC = 6
 ++pkg syscall (linux-s390x-cgo), const IFLA_QDISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_STATS = 7
 ++pkg syscall (linux-s390x-cgo), const IFLA_STATS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_TXQLEN = 13
 ++pkg syscall (linux-s390x-cgo), const IFLA_TXQLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const IFLA_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_WEIGHT = 15
 ++pkg syscall (linux-s390x-cgo), const IFLA_WEIGHT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFLA_WIRELESS = 11
 ++pkg syscall (linux-s390x-cgo), const IFLA_WIRELESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IFNAMSIZ = 16
 ++pkg syscall (linux-s390x-cgo), const IFNAMSIZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const IGNBRK = 1
 ++pkg syscall (linux-s390x-cgo), const IGNBRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const IGNCR = 128
 ++pkg syscall (linux-s390x-cgo), const IGNCR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IGNPAR = 4
 ++pkg syscall (linux-s390x-cgo), const IGNPAR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IMAXBEL = 8192
 ++pkg syscall (linux-s390x-cgo), const IMAXBEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const ImplementsGetwd = true
 ++pkg syscall (linux-s390x-cgo), const IN_ACCESS = 1
 ++pkg syscall (linux-s390x-cgo), const IN_ACCESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_ALL_EVENTS = 4095
 ++pkg syscall (linux-s390x-cgo), const IN_ALL_EVENTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_ATTRIB = 4
 ++pkg syscall (linux-s390x-cgo), const IN_ATTRIB ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_HOST = 16777215
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_HOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_MAX = 128
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NET = 4278190080
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NET ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NSHIFT = 24
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSA_NSHIFT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_HOST = 65535
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_HOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_MAX = 65536
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NET = 4294901760
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NET ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NSHIFT = 16
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSB_NSHIFT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSC_HOST = 255
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSC_HOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NET = 4294967040
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NET ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NSHIFT = 8
 ++pkg syscall (linux-s390x-cgo), const IN_CLASSC_NSHIFT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLOEXEC = 524288
 ++pkg syscall (linux-s390x-cgo), const IN_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLOSE = 24
 ++pkg syscall (linux-s390x-cgo), const IN_CLOSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLOSE_NOWRITE = 16
 ++pkg syscall (linux-s390x-cgo), const IN_CLOSE_NOWRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CLOSE_WRITE = 8
 ++pkg syscall (linux-s390x-cgo), const IN_CLOSE_WRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_CREATE = 256
 ++pkg syscall (linux-s390x-cgo), const IN_CREATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_DELETE = 512
 ++pkg syscall (linux-s390x-cgo), const IN_DELETE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_DELETE_SELF = 1024
 ++pkg syscall (linux-s390x-cgo), const IN_DELETE_SELF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_DONT_FOLLOW = 33554432
 ++pkg syscall (linux-s390x-cgo), const IN_DONT_FOLLOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_EXCL_UNLINK = 67108864
 ++pkg syscall (linux-s390x-cgo), const IN_EXCL_UNLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_IGNORED = 32768
 ++pkg syscall (linux-s390x-cgo), const IN_IGNORED ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_ISDIR = 1073741824
 ++pkg syscall (linux-s390x-cgo), const IN_ISDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const INLCR = 64
 ++pkg syscall (linux-s390x-cgo), const INLCR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_LOOPBACKNET = 127
 ++pkg syscall (linux-s390x-cgo), const IN_LOOPBACKNET ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_MASK_ADD = 536870912
 ++pkg syscall (linux-s390x-cgo), const IN_MASK_ADD ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_MODIFY = 2
 ++pkg syscall (linux-s390x-cgo), const IN_MODIFY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_MOVE = 192
 ++pkg syscall (linux-s390x-cgo), const IN_MOVED_FROM = 64
 ++pkg syscall (linux-s390x-cgo), const IN_MOVED_FROM ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_MOVED_TO = 128
 ++pkg syscall (linux-s390x-cgo), const IN_MOVED_TO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_MOVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_MOVE_SELF = 2048
 ++pkg syscall (linux-s390x-cgo), const IN_MOVE_SELF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_NONBLOCK = 2048
 ++pkg syscall (linux-s390x-cgo), const IN_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_ONESHOT = 2147483648
 ++pkg syscall (linux-s390x-cgo), const IN_ONESHOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_ONLYDIR = 16777216
 ++pkg syscall (linux-s390x-cgo), const IN_ONLYDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_OPEN = 32
 ++pkg syscall (linux-s390x-cgo), const IN_OPEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const INPCK = 16
 ++pkg syscall (linux-s390x-cgo), const INPCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_Q_OVERFLOW = 16384
 ++pkg syscall (linux-s390x-cgo), const IN_Q_OVERFLOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const IN_UNMOUNT = 8192
 ++pkg syscall (linux-s390x-cgo), const IN_UNMOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_ADD_MEMBERSHIP = 35
 ++pkg syscall (linux-s390x-cgo), const IP_ADD_SOURCE_MEMBERSHIP = 39
 ++pkg syscall (linux-s390x-cgo), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_BLOCK_SOURCE = 38
 ++pkg syscall (linux-s390x-cgo), const IP_BLOCK_SOURCE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_LOOP = 1
 ++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_LOOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_TTL = 1
 ++pkg syscall (linux-s390x-cgo), const IP_DEFAULT_MULTICAST_TTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_DF = 16384
 ++pkg syscall (linux-s390x-cgo), const IP_DF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_DROP_MEMBERSHIP = 36
 ++pkg syscall (linux-s390x-cgo), const IP_DROP_SOURCE_MEMBERSHIP = 40
 ++pkg syscall (linux-s390x-cgo), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_FREEBIND = 15
 ++pkg syscall (linux-s390x-cgo), const IP_FREEBIND ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_HDRINCL = 3
 ++pkg syscall (linux-s390x-cgo), const IP_HDRINCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_IPSEC_POLICY = 16
 ++pkg syscall (linux-s390x-cgo), const IP_IPSEC_POLICY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MAX_MEMBERSHIPS = 20
 ++pkg syscall (linux-s390x-cgo), const IP_MAX_MEMBERSHIPS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MAXPACKET = 65535
 ++pkg syscall (linux-s390x-cgo), const IP_MAXPACKET ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MF = 8192
 ++pkg syscall (linux-s390x-cgo), const IP_MF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MINTTL = 21
 ++pkg syscall (linux-s390x-cgo), const IP_MINTTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MSFILTER = 41
 ++pkg syscall (linux-s390x-cgo), const IP_MSFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MSS = 576
 ++pkg syscall (linux-s390x-cgo), const IP_MSS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MTU = 14
 ++pkg syscall (linux-s390x-cgo), const IP_MTU_DISCOVER = 10
 ++pkg syscall (linux-s390x-cgo), const IP_MTU_DISCOVER ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_ALL = 49
 ++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_ALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_IF = 32
 ++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_LOOP = 34
 ++pkg syscall (linux-s390x-cgo), const IP_MULTICAST_TTL = 33
 ++pkg syscall (linux-s390x-cgo), const IP_OFFMASK = 8191
 ++pkg syscall (linux-s390x-cgo), const IP_OFFMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_OPTIONS = 4
 ++pkg syscall (linux-s390x-cgo), const IP_OPTIONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_ORIGDSTADDR = 20
 ++pkg syscall (linux-s390x-cgo), const IP_ORIGDSTADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PASSSEC = 18
 ++pkg syscall (linux-s390x-cgo), const IP_PASSSEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PKTINFO = 8
 ++pkg syscall (linux-s390x-cgo), const IP_PKTINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PKTOPTIONS = 9
 ++pkg syscall (linux-s390x-cgo), const IP_PKTOPTIONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC = 10
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DO = 2
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DONT = 0
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_DONT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_PROBE = 3
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_PROBE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_WANT = 1
 ++pkg syscall (linux-s390x-cgo), const IP_PMTUDISC_WANT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_AH = 51
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_AH ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_COMP = 108
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_COMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_DCCP = 33
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_DCCP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_DSTOPTS = 60
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_DSTOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_EGP = 8
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_EGP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ENCAP = 98
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ENCAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ESP = 50
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ESP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_FRAGMENT = 44
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_FRAGMENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_GRE = 47
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_GRE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_HOPOPTS = 0
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_HOPOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMP = 1
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMPV6 = 58
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ICMPV6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_IDP = 22
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_IDP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_IGMP = 2
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_IGMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_IPIP = 4
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_IPIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_MTP = 92
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_MTP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_NONE = 59
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_NONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_PIM = 103
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_PIM ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_PUP = 12
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_PUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_RAW = 255
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_RAW ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ROUTING = 43
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_ROUTING ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_RSVP = 46
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_RSVP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_SCTP = 132
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_SCTP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_TP = 29
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_TP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_UDPLITE = 136
 ++pkg syscall (linux-s390x-cgo), const IPPROTO_UDPLITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RECVERR = 11
 ++pkg syscall (linux-s390x-cgo), const IP_RECVERR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RECVOPTS = 6
 ++pkg syscall (linux-s390x-cgo), const IP_RECVOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RECVORIGDSTADDR = 20
 ++pkg syscall (linux-s390x-cgo), const IP_RECVORIGDSTADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RECVRETOPTS = 7
 ++pkg syscall (linux-s390x-cgo), const IP_RECVRETOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RECVTOS = 13
 ++pkg syscall (linux-s390x-cgo), const IP_RECVTOS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RECVTTL = 12
 ++pkg syscall (linux-s390x-cgo), const IP_RECVTTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RETOPTS = 7
 ++pkg syscall (linux-s390x-cgo), const IP_RETOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_RF = 32768
 ++pkg syscall (linux-s390x-cgo), const IP_RF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_ROUTER_ALERT = 5
 ++pkg syscall (linux-s390x-cgo), const IP_ROUTER_ALERT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_TOS = 1
 ++pkg syscall (linux-s390x-cgo), const IP_TRANSPARENT = 19
 ++pkg syscall (linux-s390x-cgo), const IP_TRANSPARENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_TTL = 2
 ++pkg syscall (linux-s390x-cgo), const IP_UNBLOCK_SOURCE = 37
 ++pkg syscall (linux-s390x-cgo), const IP_UNBLOCK_SOURCE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_UNICAST_IF = 50
 ++pkg syscall (linux-s390x-cgo), const IP_UNICAST_IF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292DSTOPTS = 4
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292DSTOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPLIMIT = 8
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPLIMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPOPTS = 3
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292HOPOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTINFO = 2
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTOPTIONS = 6
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292PKTOPTIONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292RTHDR = 5
 ++pkg syscall (linux-s390x-cgo), const IPV6_2292RTHDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_ADD_MEMBERSHIP = 20
 ++pkg syscall (linux-s390x-cgo), const IPV6_ADD_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_ADDRFORM = 1
 ++pkg syscall (linux-s390x-cgo), const IPV6_ADDRFORM ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_AUTHHDR = 10
 ++pkg syscall (linux-s390x-cgo), const IPV6_AUTHHDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_CHECKSUM = 7
 ++pkg syscall (linux-s390x-cgo), const IPV6_CHECKSUM ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_DROP_MEMBERSHIP = 21
 ++pkg syscall (linux-s390x-cgo), const IPV6_DROP_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_DSTOPTS = 59
 ++pkg syscall (linux-s390x-cgo), const IPV6_DSTOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_HOPLIMIT = 52
 ++pkg syscall (linux-s390x-cgo), const IPV6_HOPLIMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_HOPOPTS = 54
 ++pkg syscall (linux-s390x-cgo), const IPV6_HOPOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_IPSEC_POLICY = 34
 ++pkg syscall (linux-s390x-cgo), const IPV6_IPSEC_POLICY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_JOIN_ANYCAST = 27
 ++pkg syscall (linux-s390x-cgo), const IPV6_JOIN_ANYCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_JOIN_GROUP = 20
 ++pkg syscall (linux-s390x-cgo), const IPV6_LEAVE_ANYCAST = 28
 ++pkg syscall (linux-s390x-cgo), const IPV6_LEAVE_ANYCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_LEAVE_GROUP = 21
 ++pkg syscall (linux-s390x-cgo), const IPV6_MTU = 24
 ++pkg syscall (linux-s390x-cgo), const IPV6_MTU_DISCOVER = 23
 ++pkg syscall (linux-s390x-cgo), const IPV6_MTU_DISCOVER ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_MTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_MULTICAST_HOPS = 18
 ++pkg syscall (linux-s390x-cgo), const IPV6_MULTICAST_IF = 17
 ++pkg syscall (linux-s390x-cgo), const IPV6_MULTICAST_LOOP = 19
 ++pkg syscall (linux-s390x-cgo), const IPV6_NEXTHOP = 9
 ++pkg syscall (linux-s390x-cgo), const IPV6_NEXTHOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_PKTINFO = 50
 ++pkg syscall (linux-s390x-cgo), const IPV6_PKTINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DO = 2
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DONT = 0
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_DONT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_PROBE = 3
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_PROBE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_WANT = 1
 ++pkg syscall (linux-s390x-cgo), const IPV6_PMTUDISC_WANT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVDSTOPTS = 58
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVDSTOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVERR = 25
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVERR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPLIMIT = 51
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPLIMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPOPTS = 53
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVHOPOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVPKTINFO = 49
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVPKTINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVRTHDR = 56
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVRTHDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVTCLASS = 66
 ++pkg syscall (linux-s390x-cgo), const IPV6_RECVTCLASS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_ROUTER_ALERT = 22
 ++pkg syscall (linux-s390x-cgo), const IPV6_ROUTER_ALERT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR = 57
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDRDSTOPTS = 55
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDRDSTOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_LOOSE = 0
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_LOOSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_STRICT = 1
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_STRICT ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_TYPE_0 = 0
 ++pkg syscall (linux-s390x-cgo), const IPV6_RTHDR_TYPE_0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RXDSTOPTS = 59
 ++pkg syscall (linux-s390x-cgo), const IPV6_RXDSTOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_RXHOPOPTS = 54
 ++pkg syscall (linux-s390x-cgo), const IPV6_RXHOPOPTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_TCLASS = 67
 ++pkg syscall (linux-s390x-cgo), const IPV6_TCLASS ideal-int
 ++pkg syscall (linux-s390x-cgo), const IPV6_UNICAST_HOPS = 16
 ++pkg syscall (linux-s390x-cgo), const IPV6_V6ONLY = 26
 ++pkg syscall (linux-s390x-cgo), const IPV6_XFRM_POLICY = 35
 ++pkg syscall (linux-s390x-cgo), const IPV6_XFRM_POLICY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IP_XFRM_POLICY = 17
 ++pkg syscall (linux-s390x-cgo), const IP_XFRM_POLICY ideal-int
 ++pkg syscall (linux-s390x-cgo), const ISIG = 1
 ++pkg syscall (linux-s390x-cgo), const ISIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const ISTRIP = 32
 ++pkg syscall (linux-s390x-cgo), const ISTRIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const IUCLC = 512
 ++pkg syscall (linux-s390x-cgo), const IUCLC ideal-int
 ++pkg syscall (linux-s390x-cgo), const IUTF8 = 16384
 ++pkg syscall (linux-s390x-cgo), const IUTF8 ideal-int
 ++pkg syscall (linux-s390x-cgo), const IXANY = 2048
 ++pkg syscall (linux-s390x-cgo), const IXANY ideal-int
 ++pkg syscall (linux-s390x-cgo), const IXOFF = 4096
 ++pkg syscall (linux-s390x-cgo), const IXOFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const IXON = 1024
 ++pkg syscall (linux-s390x-cgo), const IXON ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_OFF = 0
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_OFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_ON = 2309737967
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_CAD_ON ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_HALT = 3454992675
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_HALT ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_KEXEC = 1163412803
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_KEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_POWER_OFF = 1126301404
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_POWER_OFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART = 19088743
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART2 = 2712847316
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_RESTART ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_SW_SUSPEND = 3489725666
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_CMD_SW_SUSPEND ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC1 = 4276215469
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC2 = 672274793
 ++pkg syscall (linux-s390x-cgo), const LINUX_REBOOT_MAGIC2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const LOCK_EX = 2
 ++pkg syscall (linux-s390x-cgo), const LOCK_EX ideal-int
 ++pkg syscall (linux-s390x-cgo), const LOCK_NB = 4
 ++pkg syscall (linux-s390x-cgo), const LOCK_NB ideal-int
 ++pkg syscall (linux-s390x-cgo), const LOCK_SH = 1
 ++pkg syscall (linux-s390x-cgo), const LOCK_SH ideal-int
 ++pkg syscall (linux-s390x-cgo), const LOCK_UN = 8
 ++pkg syscall (linux-s390x-cgo), const LOCK_UN ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_DODUMP = 17
 ++pkg syscall (linux-s390x-cgo), const MADV_DODUMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_DOFORK = 11
 ++pkg syscall (linux-s390x-cgo), const MADV_DOFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_DONTDUMP = 16
 ++pkg syscall (linux-s390x-cgo), const MADV_DONTDUMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_DONTFORK = 10
 ++pkg syscall (linux-s390x-cgo), const MADV_DONTFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_DONTNEED = 4
 ++pkg syscall (linux-s390x-cgo), const MADV_DONTNEED ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_HUGEPAGE = 14
 ++pkg syscall (linux-s390x-cgo), const MADV_HUGEPAGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_HWPOISON = 100
 ++pkg syscall (linux-s390x-cgo), const MADV_HWPOISON ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_MERGEABLE = 12
 ++pkg syscall (linux-s390x-cgo), const MADV_MERGEABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_NOHUGEPAGE = 15
 ++pkg syscall (linux-s390x-cgo), const MADV_NOHUGEPAGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_NORMAL = 0
 ++pkg syscall (linux-s390x-cgo), const MADV_NORMAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_RANDOM = 1
 ++pkg syscall (linux-s390x-cgo), const MADV_RANDOM ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_REMOVE = 9
 ++pkg syscall (linux-s390x-cgo), const MADV_REMOVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_SEQUENTIAL = 2
 ++pkg syscall (linux-s390x-cgo), const MADV_SEQUENTIAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_UNMERGEABLE = 13
 ++pkg syscall (linux-s390x-cgo), const MADV_UNMERGEABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MADV_WILLNEED = 3
 ++pkg syscall (linux-s390x-cgo), const MADV_WILLNEED ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_ANON = 32
 ++pkg syscall (linux-s390x-cgo), const MAP_ANON ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_ANONYMOUS = 32
 ++pkg syscall (linux-s390x-cgo), const MAP_ANONYMOUS ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_DENYWRITE = 2048
 ++pkg syscall (linux-s390x-cgo), const MAP_DENYWRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_EXECUTABLE = 4096
 ++pkg syscall (linux-s390x-cgo), const MAP_EXECUTABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_FILE = 0
 ++pkg syscall (linux-s390x-cgo), const MAP_FILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_FIXED = 16
 ++pkg syscall (linux-s390x-cgo), const MAP_FIXED ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_GROWSDOWN = 256
 ++pkg syscall (linux-s390x-cgo), const MAP_GROWSDOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_GROWSUP = 512
 ++pkg syscall (linux-s390x-cgo), const MAP_GROWSUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_HUGETLB = 262144
 ++pkg syscall (linux-s390x-cgo), const MAP_HUGETLB ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_LOCKED = 8192
 ++pkg syscall (linux-s390x-cgo), const MAP_LOCKED ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_NONBLOCK = 65536
 ++pkg syscall (linux-s390x-cgo), const MAP_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_NORESERVE = 16384
 ++pkg syscall (linux-s390x-cgo), const MAP_NORESERVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_POPULATE = 32768
 ++pkg syscall (linux-s390x-cgo), const MAP_POPULATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_PRIVATE = 2
 ++pkg syscall (linux-s390x-cgo), const MAP_PRIVATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_SHARED = 1
 ++pkg syscall (linux-s390x-cgo), const MAP_SHARED ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_STACK = 131072
 ++pkg syscall (linux-s390x-cgo), const MAP_STACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MAP_TYPE = 15
 ++pkg syscall (linux-s390x-cgo), const MAP_TYPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MCL_CURRENT = 1
 ++pkg syscall (linux-s390x-cgo), const MCL_CURRENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const MCL_FUTURE = 2
 ++pkg syscall (linux-s390x-cgo), const MCL_FUTURE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MNT_DETACH = 2
 ++pkg syscall (linux-s390x-cgo), const MNT_DETACH ideal-int
 ++pkg syscall (linux-s390x-cgo), const MNT_EXPIRE = 4
 ++pkg syscall (linux-s390x-cgo), const MNT_EXPIRE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MNT_FORCE = 1
 ++pkg syscall (linux-s390x-cgo), const MNT_FORCE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_ACTIVE = 1073741824
 ++pkg syscall (linux-s390x-cgo), const MS_ACTIVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_ASYNC = 1
 ++pkg syscall (linux-s390x-cgo), const MS_ASYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_BIND = 4096
 ++pkg syscall (linux-s390x-cgo), const MS_BIND ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_DIRSYNC = 128
 ++pkg syscall (linux-s390x-cgo), const MS_DIRSYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_CMSG_CLOEXEC = 1073741824
 ++pkg syscall (linux-s390x-cgo), const MSG_CMSG_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_CONFIRM = 2048
 ++pkg syscall (linux-s390x-cgo), const MSG_CONFIRM ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_CTRUNC = 8
 ++pkg syscall (linux-s390x-cgo), const MSG_CTRUNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_DONTROUTE = 4
 ++pkg syscall (linux-s390x-cgo), const MSG_DONTROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_DONTWAIT = 64
 ++pkg syscall (linux-s390x-cgo), const MSG_DONTWAIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_EOR = 128
 ++pkg syscall (linux-s390x-cgo), const MSG_EOR ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_ERRQUEUE = 8192
 ++pkg syscall (linux-s390x-cgo), const MSG_ERRQUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_FASTOPEN = 536870912
 ++pkg syscall (linux-s390x-cgo), const MSG_FASTOPEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_FIN = 512
 ++pkg syscall (linux-s390x-cgo), const MSG_FIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_MORE = 32768
 ++pkg syscall (linux-s390x-cgo), const MSG_MORE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_NOSIGNAL = 16384
 ++pkg syscall (linux-s390x-cgo), const MSG_NOSIGNAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_OOB = 1
 ++pkg syscall (linux-s390x-cgo), const MSG_OOB ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_PEEK = 2
 ++pkg syscall (linux-s390x-cgo), const MSG_PEEK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_PROXY = 16
 ++pkg syscall (linux-s390x-cgo), const MSG_PROXY ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_RST = 4096
 ++pkg syscall (linux-s390x-cgo), const MSG_RST ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_SYN = 1024
 ++pkg syscall (linux-s390x-cgo), const MSG_SYN ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_TRUNC = 32
 ++pkg syscall (linux-s390x-cgo), const MSG_TRUNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_TRYHARD = 4
 ++pkg syscall (linux-s390x-cgo), const MSG_TRYHARD ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_WAITALL = 256
 ++pkg syscall (linux-s390x-cgo), const MSG_WAITALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const MSG_WAITFORONE = 65536
 ++pkg syscall (linux-s390x-cgo), const MSG_WAITFORONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_INVALIDATE = 2
 ++pkg syscall (linux-s390x-cgo), const MS_INVALIDATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_I_VERSION = 8388608
 ++pkg syscall (linux-s390x-cgo), const MS_I_VERSION ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_KERNMOUNT = 4194304
 ++pkg syscall (linux-s390x-cgo), const MS_KERNMOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_MANDLOCK = 64
 ++pkg syscall (linux-s390x-cgo), const MS_MANDLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_MGC_MSK = 4294901760
 ++pkg syscall (linux-s390x-cgo), const MS_MGC_MSK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_MGC_VAL = 3236757504
 ++pkg syscall (linux-s390x-cgo), const MS_MGC_VAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_MOVE = 8192
 ++pkg syscall (linux-s390x-cgo), const MS_MOVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_NOATIME = 1024
 ++pkg syscall (linux-s390x-cgo), const MS_NOATIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_NODEV = 4
 ++pkg syscall (linux-s390x-cgo), const MS_NODEV ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_NODIRATIME = 2048
 ++pkg syscall (linux-s390x-cgo), const MS_NODIRATIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_NOEXEC = 8
 ++pkg syscall (linux-s390x-cgo), const MS_NOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_NOSUID = 2
 ++pkg syscall (linux-s390x-cgo), const MS_NOSUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_NOUSER = -2147483648
 ++pkg syscall (linux-s390x-cgo), const MS_NOUSER ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_POSIXACL = 65536
 ++pkg syscall (linux-s390x-cgo), const MS_POSIXACL ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_PRIVATE = 262144
 ++pkg syscall (linux-s390x-cgo), const MS_PRIVATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_RDONLY = 1
 ++pkg syscall (linux-s390x-cgo), const MS_RDONLY ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_REC = 16384
 ++pkg syscall (linux-s390x-cgo), const MS_REC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_RELATIME = 2097152
 ++pkg syscall (linux-s390x-cgo), const MS_RELATIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_REMOUNT = 32
 ++pkg syscall (linux-s390x-cgo), const MS_REMOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_RMT_MASK = 8388689
 ++pkg syscall (linux-s390x-cgo), const MS_RMT_MASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_SHARED = 1048576
 ++pkg syscall (linux-s390x-cgo), const MS_SHARED ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_SILENT = 32768
 ++pkg syscall (linux-s390x-cgo), const MS_SILENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_SLAVE = 524288
 ++pkg syscall (linux-s390x-cgo), const MS_SLAVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_STRICTATIME = 16777216
 ++pkg syscall (linux-s390x-cgo), const MS_STRICTATIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_SYNC = 4
 ++pkg syscall (linux-s390x-cgo), const MS_SYNCHRONOUS = 16
 ++pkg syscall (linux-s390x-cgo), const MS_SYNCHRONOUS ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_SYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const MS_UNBINDABLE = 131072
 ++pkg syscall (linux-s390x-cgo), const MS_UNBINDABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const NAME_MAX = 255
 ++pkg syscall (linux-s390x-cgo), const NAME_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ADD_MEMBERSHIP = 1
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ADD_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_AUDIT = 9
 ++pkg syscall (linux-s390x-cgo), const NETLINK_AUDIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_BROADCAST_ERROR = 4
 ++pkg syscall (linux-s390x-cgo), const NETLINK_BROADCAST_ERROR ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_CONNECTOR = 11
 ++pkg syscall (linux-s390x-cgo), const NETLINK_CONNECTOR ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_CRYPTO = 21
 ++pkg syscall (linux-s390x-cgo), const NETLINK_CRYPTO ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_DNRTMSG = 14
 ++pkg syscall (linux-s390x-cgo), const NETLINK_DNRTMSG ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_DROP_MEMBERSHIP = 2
 ++pkg syscall (linux-s390x-cgo), const NETLINK_DROP_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ECRYPTFS = 19
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ECRYPTFS ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_FIB_LOOKUP = 10
 ++pkg syscall (linux-s390x-cgo), const NETLINK_FIB_LOOKUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_FIREWALL = 3
 ++pkg syscall (linux-s390x-cgo), const NETLINK_FIREWALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_GENERIC = 16
 ++pkg syscall (linux-s390x-cgo), const NETLINK_GENERIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_INET_DIAG = 4
 ++pkg syscall (linux-s390x-cgo), const NETLINK_INET_DIAG ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_IP6_FW = 13
 ++pkg syscall (linux-s390x-cgo), const NETLINK_IP6_FW ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ISCSI = 8
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ISCSI ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_KOBJECT_UEVENT = 15
 ++pkg syscall (linux-s390x-cgo), const NETLINK_KOBJECT_UEVENT ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_NETFILTER = 12
 ++pkg syscall (linux-s390x-cgo), const NETLINK_NETFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_NFLOG = 5
 ++pkg syscall (linux-s390x-cgo), const NETLINK_NFLOG ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_NO_ENOBUFS = 5
 ++pkg syscall (linux-s390x-cgo), const NETLINK_NO_ENOBUFS ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_PKTINFO = 3
 ++pkg syscall (linux-s390x-cgo), const NETLINK_PKTINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_RDMA = 20
 ++pkg syscall (linux-s390x-cgo), const NETLINK_RDMA ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ROUTE = 0
 ++pkg syscall (linux-s390x-cgo), const NETLINK_ROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_RX_RING = 6
 ++pkg syscall (linux-s390x-cgo), const NETLINK_RX_RING ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_SCSITRANSPORT = 18
 ++pkg syscall (linux-s390x-cgo), const NETLINK_SCSITRANSPORT ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_SELINUX = 7
 ++pkg syscall (linux-s390x-cgo), const NETLINK_SELINUX ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_SOCK_DIAG = 4
 ++pkg syscall (linux-s390x-cgo), const NETLINK_SOCK_DIAG ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_TX_RING = 7
 ++pkg syscall (linux-s390x-cgo), const NETLINK_TX_RING ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_UNUSED = 1
 ++pkg syscall (linux-s390x-cgo), const NETLINK_UNUSED ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_USERSOCK = 2
 ++pkg syscall (linux-s390x-cgo), const NETLINK_USERSOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const NETLINK_XFRM = 6
 ++pkg syscall (linux-s390x-cgo), const NETLINK_XFRM ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLA_ALIGNTO = 4
 ++pkg syscall (linux-s390x-cgo), const NLA_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLA_F_NESTED = 32768
 ++pkg syscall (linux-s390x-cgo), const NLA_F_NESTED ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLA_F_NET_BYTEORDER = 16384
 ++pkg syscall (linux-s390x-cgo), const NLA_F_NET_BYTEORDER ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLA_HDRLEN = 4
 ++pkg syscall (linux-s390x-cgo), const NLA_HDRLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ACK = 4
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_APPEND = 2048
 ++pkg syscall (linux-s390x-cgo), const NLM_F_APPEND ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ATOMIC = 1024
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ATOMIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_CREATE = 1024
 ++pkg syscall (linux-s390x-cgo), const NLM_F_CREATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP = 768
 ++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP_INTR = 16
 ++pkg syscall (linux-s390x-cgo), const NLM_F_DUMP_INTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ECHO = 8
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ECHO ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_EXCL = 512
 ++pkg syscall (linux-s390x-cgo), const NLM_F_EXCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_MATCH = 512
 ++pkg syscall (linux-s390x-cgo), const NLM_F_MATCH ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_MULTI = 2
 ++pkg syscall (linux-s390x-cgo), const NLM_F_MULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_REPLACE = 256
 ++pkg syscall (linux-s390x-cgo), const NLM_F_REPLACE ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_REQUEST = 1
 ++pkg syscall (linux-s390x-cgo), const NLM_F_REQUEST ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ROOT = 256
 ++pkg syscall (linux-s390x-cgo), const NLM_F_ROOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_ALIGNTO = 4
 ++pkg syscall (linux-s390x-cgo), const NLMSG_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_DONE = 3
 ++pkg syscall (linux-s390x-cgo), const NLMSG_DONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_ERROR = 2
 ++pkg syscall (linux-s390x-cgo), const NLMSG_ERROR ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_HDRLEN = 16
 ++pkg syscall (linux-s390x-cgo), const NLMSG_HDRLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_MIN_TYPE = 16
 ++pkg syscall (linux-s390x-cgo), const NLMSG_MIN_TYPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_NOOP = 1
 ++pkg syscall (linux-s390x-cgo), const NLMSG_NOOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const NLMSG_OVERRUN = 4
 ++pkg syscall (linux-s390x-cgo), const NLMSG_OVERRUN ideal-int
 ++pkg syscall (linux-s390x-cgo), const NOFLSH = 128
 ++pkg syscall (linux-s390x-cgo), const NOFLSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_ACCMODE = 3
 ++pkg syscall (linux-s390x-cgo), const O_ACCMODE ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_APPEND = 1024
 ++pkg syscall (linux-s390x-cgo), const O_ASYNC = 8192
 ++pkg syscall (linux-s390x-cgo), const O_CLOEXEC = 524288
 ++pkg syscall (linux-s390x-cgo), const O_CREAT = 64
 ++pkg syscall (linux-s390x-cgo), const OCRNL = 8
 ++pkg syscall (linux-s390x-cgo), const OCRNL ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_DIRECT = 16384
 ++pkg syscall (linux-s390x-cgo), const O_DIRECT ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_DIRECTORY = 65536
 ++pkg syscall (linux-s390x-cgo), const O_DIRECTORY ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_DSYNC = 4096
 ++pkg syscall (linux-s390x-cgo), const O_DSYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_EXCL = 128
 ++pkg syscall (linux-s390x-cgo), const OFDEL = 128
 ++pkg syscall (linux-s390x-cgo), const OFDEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const OFILL = 64
 ++pkg syscall (linux-s390x-cgo), const OFILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_FSYNC = 1052672
 ++pkg syscall (linux-s390x-cgo), const O_FSYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_LARGEFILE = 0
 ++pkg syscall (linux-s390x-cgo), const O_LARGEFILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const OLCUC = 2
 ++pkg syscall (linux-s390x-cgo), const OLCUC ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_NDELAY = 2048
 ++pkg syscall (linux-s390x-cgo), const O_NDELAY ideal-int
 ++pkg syscall (linux-s390x-cgo), const ONLCR = 4
 ++pkg syscall (linux-s390x-cgo), const ONLCR ideal-int
 ++pkg syscall (linux-s390x-cgo), const ONLRET = 32
 ++pkg syscall (linux-s390x-cgo), const ONLRET ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_NOATIME = 262144
 ++pkg syscall (linux-s390x-cgo), const O_NOATIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const ONOCR = 16
 ++pkg syscall (linux-s390x-cgo), const ONOCR ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_NOCTTY = 256
 ++pkg syscall (linux-s390x-cgo), const O_NOFOLLOW = 131072
 ++pkg syscall (linux-s390x-cgo), const O_NOFOLLOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_NONBLOCK = 2048
 ++pkg syscall (linux-s390x-cgo), const O_PATH = 2097152
 ++pkg syscall (linux-s390x-cgo), const O_PATH ideal-int
 ++pkg syscall (linux-s390x-cgo), const OPOST = 1
 ++pkg syscall (linux-s390x-cgo), const OPOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_RSYNC = 1052672
 ++pkg syscall (linux-s390x-cgo), const O_RSYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const O_SYNC = 1052672
 ++pkg syscall (linux-s390x-cgo), const O_TRUNC = 512
 ++pkg syscall (linux-s390x-cgo), const PACKET_ADD_MEMBERSHIP = 1
 ++pkg syscall (linux-s390x-cgo), const PACKET_ADD_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_AUXDATA = 8
 ++pkg syscall (linux-s390x-cgo), const PACKET_AUXDATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_BROADCAST = 1
 ++pkg syscall (linux-s390x-cgo), const PACKET_BROADCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_COPY_THRESH = 7
 ++pkg syscall (linux-s390x-cgo), const PACKET_COPY_THRESH ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_DROP_MEMBERSHIP = 2
 ++pkg syscall (linux-s390x-cgo), const PACKET_DROP_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT = 18
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_CPU = 2
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_CPU ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_DEFRAG = 32768
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_DEFRAG ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_ROLLOVER = 4096
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_FLAG_ROLLOVER ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_HASH = 0
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_HASH ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_LB = 1
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_LB ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_RND = 4
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_RND ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_ROLLOVER = 3
 ++pkg syscall (linux-s390x-cgo), const PACKET_FANOUT_ROLLOVER ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_FASTROUTE = 6
 ++pkg syscall (linux-s390x-cgo), const PACKET_FASTROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_HDRLEN = 11
 ++pkg syscall (linux-s390x-cgo), const PACKET_HDRLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_HOST = 0
 ++pkg syscall (linux-s390x-cgo), const PACKET_HOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_LOOPBACK = 5
 ++pkg syscall (linux-s390x-cgo), const PACKET_LOOPBACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_LOSS = 14
 ++pkg syscall (linux-s390x-cgo), const PACKET_LOSS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_ALLMULTI = 2
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_ALLMULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_MULTICAST = 0
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_MULTICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_PROMISC = 1
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_PROMISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_UNICAST = 3
 ++pkg syscall (linux-s390x-cgo), const PACKET_MR_UNICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_MULTICAST = 2
 ++pkg syscall (linux-s390x-cgo), const PACKET_MULTICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_ORIGDEV = 9
 ++pkg syscall (linux-s390x-cgo), const PACKET_ORIGDEV ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_OTHERHOST = 3
 ++pkg syscall (linux-s390x-cgo), const PACKET_OTHERHOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_OUTGOING = 4
 ++pkg syscall (linux-s390x-cgo), const PACKET_OUTGOING ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_RECV_OUTPUT = 3
 ++pkg syscall (linux-s390x-cgo), const PACKET_RECV_OUTPUT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_RESERVE = 12
 ++pkg syscall (linux-s390x-cgo), const PACKET_RESERVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_RX_RING = 5
 ++pkg syscall (linux-s390x-cgo), const PACKET_RX_RING ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_STATISTICS = 6
 ++pkg syscall (linux-s390x-cgo), const PACKET_STATISTICS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_TIMESTAMP = 17
 ++pkg syscall (linux-s390x-cgo), const PACKET_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_TX_HAS_OFF = 19
 ++pkg syscall (linux-s390x-cgo), const PACKET_TX_HAS_OFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_TX_RING = 13
 ++pkg syscall (linux-s390x-cgo), const PACKET_TX_RING ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_TX_TIMESTAMP = 16
 ++pkg syscall (linux-s390x-cgo), const PACKET_TX_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_VERSION = 10
 ++pkg syscall (linux-s390x-cgo), const PACKET_VERSION ideal-int
 ++pkg syscall (linux-s390x-cgo), const PACKET_VNET_HDR = 15
 ++pkg syscall (linux-s390x-cgo), const PACKET_VNET_HDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARENB = 256
 ++pkg syscall (linux-s390x-cgo), const PARENB ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0 = 2
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0_CCITT = 4
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0_CCITT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1 = 3
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1_CCITT = 5
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1_CCITT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC16_PR1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR0_CCITT = 6
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR0_CCITT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR1_CCITT = 7
 ++pkg syscall (linux-s390x-cgo), const PARITY_CRC32_PR1_CCITT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_DEFAULT = 0
 ++pkg syscall (linux-s390x-cgo), const PARITY_DEFAULT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARITY_NONE = 1
 ++pkg syscall (linux-s390x-cgo), const PARITY_NONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARMRK = 8
 ++pkg syscall (linux-s390x-cgo), const PARMRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PARODD = 512
 ++pkg syscall (linux-s390x-cgo), const PARODD ideal-int
 ++pkg syscall (linux-s390x-cgo), const PathMax = 4096
 ++pkg syscall (linux-s390x-cgo), const PathMax ideal-int
 ++pkg syscall (linux-s390x-cgo), const PENDIN = 16384
 ++pkg syscall (linux-s390x-cgo), const PENDIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_DROP = 24
 ++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_DROP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_READ = 23
 ++pkg syscall (linux-s390x-cgo), const PR_CAPBSET_READ ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_BIG = 0
 ++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_BIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_LITTLE = 1
 ++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_LITTLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_PPC_LITTLE = 2
 ++pkg syscall (linux-s390x-cgo), const PR_ENDIAN_PPC_LITTLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FPEMU_NOPRINT = 1
 ++pkg syscall (linux-s390x-cgo), const PR_FPEMU_NOPRINT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FPEMU_SIGFPE = 2
 ++pkg syscall (linux-s390x-cgo), const PR_FPEMU_SIGFPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_ASYNC = 2
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_ASYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DISABLED = 0
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DISABLED ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DIV = 65536
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_DIV ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_INV = 1048576
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_INV ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_NONRECOV = 1
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_NONRECOV ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_OVF = 131072
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_OVF ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_PRECISE = 3
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_PRECISE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_RES = 524288
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_RES ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_SW_ENABLE = 128
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_SW_ENABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_UND = 262144
 ++pkg syscall (linux-s390x-cgo), const PR_FP_EXC_UND ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_CHILD_SUBREAPER = 37
 ++pkg syscall (linux-s390x-cgo), const PR_GET_CHILD_SUBREAPER ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_DUMPABLE = 3
 ++pkg syscall (linux-s390x-cgo), const PR_GET_DUMPABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_ENDIAN = 19
 ++pkg syscall (linux-s390x-cgo), const PR_GET_ENDIAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_FPEMU = 9
 ++pkg syscall (linux-s390x-cgo), const PR_GET_FPEMU ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_FPEXC = 11
 ++pkg syscall (linux-s390x-cgo), const PR_GET_FPEXC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_KEEPCAPS = 7
 ++pkg syscall (linux-s390x-cgo), const PR_GET_KEEPCAPS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_NAME = 16
 ++pkg syscall (linux-s390x-cgo), const PR_GET_NAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_NO_NEW_PRIVS = 39
 ++pkg syscall (linux-s390x-cgo), const PR_GET_NO_NEW_PRIVS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_PDEATHSIG = 2
 ++pkg syscall (linux-s390x-cgo), const PR_GET_PDEATHSIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_SECCOMP = 21
 ++pkg syscall (linux-s390x-cgo), const PR_GET_SECCOMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_SECUREBITS = 27
 ++pkg syscall (linux-s390x-cgo), const PR_GET_SECUREBITS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_THP_DISABLE = 42
 ++pkg syscall (linux-s390x-cgo), const PR_GET_THP_DISABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TID_ADDRESS = 40
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TID_ADDRESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TIMERSLACK = 30
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TIMERSLACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TIMING = 13
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TIMING ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TSC = 25
 ++pkg syscall (linux-s390x-cgo), const PR_GET_TSC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_GET_UNALIGN = 5
 ++pkg syscall (linux-s390x-cgo), const PR_GET_UNALIGN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PRIO_PGRP = 1
 ++pkg syscall (linux-s390x-cgo), const PRIO_PGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PRIO_PROCESS = 0
 ++pkg syscall (linux-s390x-cgo), const PRIO_PROCESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PRIO_USER = 2
 ++pkg syscall (linux-s390x-cgo), const PRIO_USER ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL = 33
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_CLEAR = 0
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_CLEAR ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_DEFAULT = 2
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_DEFAULT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_EARLY = 1
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_EARLY ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_GET = 34
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_GET ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_LATE = 0
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_LATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_SET = 1
 ++pkg syscall (linux-s390x-cgo), const PR_MCE_KILL_SET ideal-int
 ++pkg syscall (linux-s390x-cgo), const PROT_EXEC = 4
 ++pkg syscall (linux-s390x-cgo), const PROT_EXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PROT_GROWSDOWN = 16777216
 ++pkg syscall (linux-s390x-cgo), const PROT_GROWSDOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PROT_GROWSUP = 33554432
 ++pkg syscall (linux-s390x-cgo), const PROT_GROWSUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PROT_NONE = 0
 ++pkg syscall (linux-s390x-cgo), const PROT_NONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PROT_READ = 1
 ++pkg syscall (linux-s390x-cgo), const PROT_READ ideal-int
 ++pkg syscall (linux-s390x-cgo), const PROT_WRITE = 2
 ++pkg syscall (linux-s390x-cgo), const PROT_WRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_CHILD_SUBREAPER = 36
 ++pkg syscall (linux-s390x-cgo), const PR_SET_CHILD_SUBREAPER ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_DUMPABLE = 4
 ++pkg syscall (linux-s390x-cgo), const PR_SET_DUMPABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_ENDIAN = 20
 ++pkg syscall (linux-s390x-cgo), const PR_SET_ENDIAN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_FPEMU = 10
 ++pkg syscall (linux-s390x-cgo), const PR_SET_FPEMU ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_FPEXC = 12
 ++pkg syscall (linux-s390x-cgo), const PR_SET_FPEXC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_KEEPCAPS = 8
 ++pkg syscall (linux-s390x-cgo), const PR_SET_KEEPCAPS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM = 35
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_END = 9
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_END ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_START = 8
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ARG_START ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_AUXV = 12
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_AUXV ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_BRK = 7
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_BRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_CODE = 2
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_CODE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_DATA = 4
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_END_DATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_END = 11
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_END ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_START = 10
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_ENV_START ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_EXE_FILE = 13
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_EXE_FILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_BRK = 6
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_BRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_CODE = 1
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_CODE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_DATA = 3
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_DATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_STACK = 5
 ++pkg syscall (linux-s390x-cgo), const PR_SET_MM_START_STACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_NAME = 15
 ++pkg syscall (linux-s390x-cgo), const PR_SET_NAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_NO_NEW_PRIVS = 38
 ++pkg syscall (linux-s390x-cgo), const PR_SET_NO_NEW_PRIVS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_PDEATHSIG = 1
 ++pkg syscall (linux-s390x-cgo), const PR_SET_PDEATHSIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER = 1499557217
 ++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER_ANY = -1
 ++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER_ANY ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_PTRACER ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_SECCOMP = 22
 ++pkg syscall (linux-s390x-cgo), const PR_SET_SECCOMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_SECUREBITS = 28
 ++pkg syscall (linux-s390x-cgo), const PR_SET_SECUREBITS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_THP_DISABLE = 41
 ++pkg syscall (linux-s390x-cgo), const PR_SET_THP_DISABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_TIMERSLACK = 29
 ++pkg syscall (linux-s390x-cgo), const PR_SET_TIMERSLACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_TIMING = 14
 ++pkg syscall (linux-s390x-cgo), const PR_SET_TIMING ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_TSC = 26
 ++pkg syscall (linux-s390x-cgo), const PR_SET_TSC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_SET_UNALIGN = 6
 ++pkg syscall (linux-s390x-cgo), const PR_SET_UNALIGN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_DISABLE = 31
 ++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_DISABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_ENABLE = 32
 ++pkg syscall (linux-s390x-cgo), const PR_TASK_PERF_EVENTS_ENABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_TIMING_STATISTICAL = 0
 ++pkg syscall (linux-s390x-cgo), const PR_TIMING_STATISTICAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_TIMING_TIMESTAMP = 1
 ++pkg syscall (linux-s390x-cgo), const PR_TIMING_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_TSC_ENABLE = 1
 ++pkg syscall (linux-s390x-cgo), const PR_TSC_ENABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_TSC_SIGSEGV = 2
 ++pkg syscall (linux-s390x-cgo), const PR_TSC_SIGSEGV ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_NOPRINT = 1
 ++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_NOPRINT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_SIGBUS = 2
 ++pkg syscall (linux-s390x-cgo), const PR_UNALIGN_SIGBUS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR0 = 144
 ++pkg syscall (linux-s390x-cgo), const PT_ACR0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR10 = 184
 ++pkg syscall (linux-s390x-cgo), const PT_ACR10 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR11 = 188
 ++pkg syscall (linux-s390x-cgo), const PT_ACR1 = 148
 ++pkg syscall (linux-s390x-cgo), const PT_ACR11 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR12 = 192
 ++pkg syscall (linux-s390x-cgo), const PT_ACR12 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR13 = 196
 ++pkg syscall (linux-s390x-cgo), const PT_ACR13 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR14 = 200
 ++pkg syscall (linux-s390x-cgo), const PT_ACR14 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR15 = 204
 ++pkg syscall (linux-s390x-cgo), const PT_ACR15 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR2 = 152
 ++pkg syscall (linux-s390x-cgo), const PT_ACR2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR3 = 156
 ++pkg syscall (linux-s390x-cgo), const PT_ACR3 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR4 = 160
 ++pkg syscall (linux-s390x-cgo), const PT_ACR4 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR5 = 164
 ++pkg syscall (linux-s390x-cgo), const PT_ACR5 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR6 = 168
 ++pkg syscall (linux-s390x-cgo), const PT_ACR6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR7 = 172
 ++pkg syscall (linux-s390x-cgo), const PT_ACR7 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR8 = 176
 ++pkg syscall (linux-s390x-cgo), const PT_ACR8 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ACR9 = 180
 ++pkg syscall (linux-s390x-cgo), const PT_ACR9 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_CR_10 = 360
 ++pkg syscall (linux-s390x-cgo), const PT_CR_10 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_CR_11 = 368
 ++pkg syscall (linux-s390x-cgo), const PT_CR_11 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_CR_9 = 352
 ++pkg syscall (linux-s390x-cgo), const PT_CR_9 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ENDREGS = 431
 ++pkg syscall (linux-s390x-cgo), const PT_ENDREGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPC = 216
 ++pkg syscall (linux-s390x-cgo), const PT_FPC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR0 = 224
 ++pkg syscall (linux-s390x-cgo), const PT_FPR0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR10 = 304
 ++pkg syscall (linux-s390x-cgo), const PT_FPR10 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR11 = 312
 ++pkg syscall (linux-s390x-cgo), const PT_FPR11 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR1 = 232
 ++pkg syscall (linux-s390x-cgo), const PT_FPR12 = 320
 ++pkg syscall (linux-s390x-cgo), const PT_FPR12 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR13 = 328
 ++pkg syscall (linux-s390x-cgo), const PT_FPR13 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR14 = 336
 ++pkg syscall (linux-s390x-cgo), const PT_FPR14 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR15 = 344
 ++pkg syscall (linux-s390x-cgo), const PT_FPR15 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR2 = 240
 ++pkg syscall (linux-s390x-cgo), const PT_FPR2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR3 = 248
 ++pkg syscall (linux-s390x-cgo), const PT_FPR3 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR4 = 256
 ++pkg syscall (linux-s390x-cgo), const PT_FPR4 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR5 = 264
 ++pkg syscall (linux-s390x-cgo), const PT_FPR5 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR6 = 272
 ++pkg syscall (linux-s390x-cgo), const PT_FPR6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR7 = 280
 ++pkg syscall (linux-s390x-cgo), const PT_FPR7 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR8 = 288
 ++pkg syscall (linux-s390x-cgo), const PT_FPR8 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_FPR9 = 296
 ++pkg syscall (linux-s390x-cgo), const PT_FPR9 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR0 = 16
 ++pkg syscall (linux-s390x-cgo), const PT_GPR0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR10 = 96
 ++pkg syscall (linux-s390x-cgo), const PT_GPR10 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR11 = 104
 ++pkg syscall (linux-s390x-cgo), const PT_GPR11 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR12 = 112
 ++pkg syscall (linux-s390x-cgo), const PT_GPR1 = 24
 ++pkg syscall (linux-s390x-cgo), const PT_GPR12 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR13 = 120
 ++pkg syscall (linux-s390x-cgo), const PT_GPR13 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR14 = 128
 ++pkg syscall (linux-s390x-cgo), const PT_GPR14 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR15 = 136
 ++pkg syscall (linux-s390x-cgo), const PT_GPR15 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR2 = 32
 ++pkg syscall (linux-s390x-cgo), const PT_GPR2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR3 = 40
 ++pkg syscall (linux-s390x-cgo), const PT_GPR3 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR4 = 48
 ++pkg syscall (linux-s390x-cgo), const PT_GPR4 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR5 = 56
 ++pkg syscall (linux-s390x-cgo), const PT_GPR5 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR6 = 64
 ++pkg syscall (linux-s390x-cgo), const PT_GPR6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR7 = 72
 ++pkg syscall (linux-s390x-cgo), const PT_GPR7 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR8 = 80
 ++pkg syscall (linux-s390x-cgo), const PT_GPR8 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_GPR9 = 88
 ++pkg syscall (linux-s390x-cgo), const PT_GPR9 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_IEEE_IP = 424
 ++pkg syscall (linux-s390x-cgo), const PT_IEEE_IP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_LASTOFF = 424
 ++pkg syscall (linux-s390x-cgo), const PT_LASTOFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_ORIGGPR2 = 208
 ++pkg syscall (linux-s390x-cgo), const PT_ORIGGPR2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_PSWADDR = 8
 ++pkg syscall (linux-s390x-cgo), const PT_PSWADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const PT_PSWMASK = 0
 ++pkg syscall (linux-s390x-cgo), const PT_PSWMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_ATTACH = 16
 ++pkg syscall (linux-s390x-cgo), const PTRACE_ATTACH ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_CONT = 7
 ++pkg syscall (linux-s390x-cgo), const PTRACE_CONT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_DETACH = 17
 ++pkg syscall (linux-s390x-cgo), const PTRACE_DETACH ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_DISABLE_TE = 20496
 ++pkg syscall (linux-s390x-cgo), const PTRACE_DISABLE_TE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_ENABLE_TE = 20489
 ++pkg syscall (linux-s390x-cgo), const PTRACE_ENABLE_TE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_CLONE = 3
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_CLONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXEC = 4
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXIT = 6
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_EXIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_FORK = 1
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_FORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_SECCOMP = 7
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_SECCOMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_STOP = 128
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_STOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK = 2
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK_DONE = 5
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK_DONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_EVENT_VFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETEVENTMSG = 16897
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETEVENTMSG ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GET_LAST_BREAK = 20486
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GET_LAST_BREAK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGS = 12
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGSET = 16900
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGSET ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETREGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETSIGINFO = 16898
 ++pkg syscall (linux-s390x-cgo), const PTRACE_GETSIGINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_INTERRUPT = 16903
 ++pkg syscall (linux-s390x-cgo), const PTRACE_INTERRUPT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_KILL = 8
 ++pkg syscall (linux-s390x-cgo), const PTRACE_KILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_LISTEN = 16904
 ++pkg syscall (linux-s390x-cgo), const PTRACE_LISTEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_EXITKILL = 1048576
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_EXITKILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_OLDSETOPTIONS = 21
 ++pkg syscall (linux-s390x-cgo), const PTRACE_OLDSETOPTIONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_MASK = 1048831
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_MASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACECLONE = 8
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACECLONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXEC = 16
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXIT = 64
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEEXIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEFORK = 2
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESECCOMP = 128
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESECCOMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESYSGOOD = 1
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACESYSGOOD ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORK = 4
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORKDONE = 32
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORKDONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_O_TRACEVFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA = 2
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA_AREA = 20483
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA_AREA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKDATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO = 16905
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO_SHARED = 1
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKSIGINFO_SHARED ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEK_SYSTEM_CALL = 20487
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEK_SYSTEM_CALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT = 1
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT_AREA = 20482
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT_AREA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKTEXT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR = 3
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR_AREA = 20480
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR_AREA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PEEKUSR ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA = 5
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA_AREA = 20485
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA_AREA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEDATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKE_SYSTEM_CALL = 20488
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKE_SYSTEM_CALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT = 4
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT_AREA = 20484
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT_AREA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKETEXT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR = 6
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR_AREA = 20481
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR_AREA ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_POKEUSR ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PROT = 21
 ++pkg syscall (linux-s390x-cgo), const PTRACE_PROT ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SEIZE = 16902
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SEIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETOPTIONS = 16896
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETOPTIONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGS = 13
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGSET = 16901
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGSET ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETREGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETSIGINFO = 16899
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SETSIGINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SINGLESTEP = 9
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SINGLESTEP ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SYSCALL = 24
 ++pkg syscall (linux-s390x-cgo), const PTRACE_SYSCALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const PTRACE_TRACEME = 0
 ++pkg syscall (linux-s390x-cgo), const PTRACE_TRACEME ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIM_INFINITY = -1
 ++pkg syscall (linux-s390x-cgo), const RLIM_INFINITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_AS = 9
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_AS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_CORE = 4
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_CORE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_CPU = 0
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_CPU ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_DATA = 2
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_DATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_FSIZE = 1
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_FSIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_NOFILE = 7
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_NOFILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_STACK = 3
 ++pkg syscall (linux-s390x-cgo), const RLIMIT_STACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_ALIGNTO = 4
 ++pkg syscall (linux-s390x-cgo), const RTA_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_CACHEINFO = 12
 ++pkg syscall (linux-s390x-cgo), const RTA_CACHEINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_DST = 1
 ++pkg syscall (linux-s390x-cgo), const RTA_DST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_FLOW = 11
 ++pkg syscall (linux-s390x-cgo), const RTA_FLOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_GATEWAY = 5
 ++pkg syscall (linux-s390x-cgo), const RTA_GATEWAY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_IIF = 3
 ++pkg syscall (linux-s390x-cgo), const RTA_IIF ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_MAX = 17
 ++pkg syscall (linux-s390x-cgo), const RTA_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_METRICS = 8
 ++pkg syscall (linux-s390x-cgo), const RTA_METRICS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_MULTIPATH = 9
 ++pkg syscall (linux-s390x-cgo), const RTA_MULTIPATH ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_OIF = 4
 ++pkg syscall (linux-s390x-cgo), const RTA_OIF ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_PREFSRC = 7
 ++pkg syscall (linux-s390x-cgo), const RTA_PREFSRC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_PRIORITY = 6
 ++pkg syscall (linux-s390x-cgo), const RTA_PRIORITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_SRC = 2
 ++pkg syscall (linux-s390x-cgo), const RTA_SRC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_TABLE = 15
 ++pkg syscall (linux-s390x-cgo), const RTA_TABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTA_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const RTA_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_ADVMSS = 8
 ++pkg syscall (linux-s390x-cgo), const RTAX_ADVMSS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_CWND = 7
 ++pkg syscall (linux-s390x-cgo), const RTAX_CWND ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ALLFRAG = 8
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ALLFRAG ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ECN = 1
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_ECN ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURES = 12
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_SACK = 2
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_SACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURES ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_TIMESTAMP = 4
 ++pkg syscall (linux-s390x-cgo), const RTAX_FEATURE_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_HOPLIMIT = 10
 ++pkg syscall (linux-s390x-cgo), const RTAX_HOPLIMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_INITCWND = 11
 ++pkg syscall (linux-s390x-cgo), const RTAX_INITCWND ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_INITRWND = 14
 ++pkg syscall (linux-s390x-cgo), const RTAX_INITRWND ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_LOCK = 1
 ++pkg syscall (linux-s390x-cgo), const RTAX_LOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_MAX = 23
 ++pkg syscall (linux-s390x-cgo), const RTAX_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_MTU = 2
 ++pkg syscall (linux-s390x-cgo), const RTAX_MTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_QUICKACK = 15
 ++pkg syscall (linux-s390x-cgo), const RTAX_QUICKACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_REORDERING = 9
 ++pkg syscall (linux-s390x-cgo), const RTAX_REORDERING ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_RTO_MIN = 13
 ++pkg syscall (linux-s390x-cgo), const RTAX_RTO_MIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_RTT = 4
 ++pkg syscall (linux-s390x-cgo), const RTAX_RTT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_RTTVAR = 5
 ++pkg syscall (linux-s390x-cgo), const RTAX_RTTVAR ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_SSTHRESH = 6
 ++pkg syscall (linux-s390x-cgo), const RTAX_SSTHRESH ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const RTAX_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTAX_WINDOW = 3
 ++pkg syscall (linux-s390x-cgo), const RTAX_WINDOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTCF_DIRECTSRC = 67108864
 ++pkg syscall (linux-s390x-cgo), const RTCF_DIRECTSRC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTCF_DOREDIRECT = 16777216
 ++pkg syscall (linux-s390x-cgo), const RTCF_DOREDIRECT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTCF_LOG = 33554432
 ++pkg syscall (linux-s390x-cgo), const RTCF_LOG ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTCF_MASQ = 4194304
 ++pkg syscall (linux-s390x-cgo), const RTCF_MASQ ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTCF_NAT = 8388608
 ++pkg syscall (linux-s390x-cgo), const RTCF_NAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTCF_VALVE = 2097152
 ++pkg syscall (linux-s390x-cgo), const RTCF_VALVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_DEFAULT = 253
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_DEFAULT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_LOCAL = 255
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_LOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAIN = 254
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAX = 255
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const RT_CLASS_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_ADDRCLASSMASK = 4160749568
 ++pkg syscall (linux-s390x-cgo), const RTF_ADDRCLASSMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_ADDRCONF = 262144
 ++pkg syscall (linux-s390x-cgo), const RTF_ADDRCONF ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_ALLONLINK = 131072
 ++pkg syscall (linux-s390x-cgo), const RTF_ALLONLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_BROADCAST = 268435456
 ++pkg syscall (linux-s390x-cgo), const RTF_BROADCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_CACHE = 16777216
 ++pkg syscall (linux-s390x-cgo), const RTF_CACHE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_DEFAULT = 65536
 ++pkg syscall (linux-s390x-cgo), const RTF_DEFAULT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_DYNAMIC = 16
 ++pkg syscall (linux-s390x-cgo), const RTF_DYNAMIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_FLOW = 33554432
 ++pkg syscall (linux-s390x-cgo), const RTF_FLOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_GATEWAY = 2
 ++pkg syscall (linux-s390x-cgo), const RTF_GATEWAY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_HOST = 4
 ++pkg syscall (linux-s390x-cgo), const RTF_HOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_INTERFACE = 1073741824
 ++pkg syscall (linux-s390x-cgo), const RTF_INTERFACE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_IRTT = 256
 ++pkg syscall (linux-s390x-cgo), const RTF_IRTT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_LINKRT = 1048576
 ++pkg syscall (linux-s390x-cgo), const RTF_LINKRT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_LOCAL = 2147483648
 ++pkg syscall (linux-s390x-cgo), const RTF_LOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_MODIFIED = 32
 ++pkg syscall (linux-s390x-cgo), const RTF_MODIFIED ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_MSS = 64
 ++pkg syscall (linux-s390x-cgo), const RTF_MSS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_MTU = 64
 ++pkg syscall (linux-s390x-cgo), const RTF_MTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_MULTICAST = 536870912
 ++pkg syscall (linux-s390x-cgo), const RTF_MULTICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_NAT = 134217728
 ++pkg syscall (linux-s390x-cgo), const RTF_NAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_NOFORWARD = 4096
 ++pkg syscall (linux-s390x-cgo), const RTF_NOFORWARD ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_NONEXTHOP = 2097152
 ++pkg syscall (linux-s390x-cgo), const RTF_NONEXTHOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_NOPMTUDISC = 16384
 ++pkg syscall (linux-s390x-cgo), const RTF_NOPMTUDISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_POLICY = 67108864
 ++pkg syscall (linux-s390x-cgo), const RTF_POLICY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_REINSTATE = 8
 ++pkg syscall (linux-s390x-cgo), const RTF_REINSTATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_REJECT = 512
 ++pkg syscall (linux-s390x-cgo), const RTF_REJECT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_STATIC = 1024
 ++pkg syscall (linux-s390x-cgo), const RTF_STATIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_THROW = 8192
 ++pkg syscall (linux-s390x-cgo), const RTF_THROW ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_UP = 1
 ++pkg syscall (linux-s390x-cgo), const RTF_UP ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_WINDOW = 128
 ++pkg syscall (linux-s390x-cgo), const RTF_WINDOW ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTF_XRESOLVE = 2048
 ++pkg syscall (linux-s390x-cgo), const RTF_XRESOLVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_BASE = 16
 ++pkg syscall (linux-s390x-cgo), const RTM_BASE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELACTION = 49
 ++pkg syscall (linux-s390x-cgo), const RTM_DELACTION ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELADDR = 21
 ++pkg syscall (linux-s390x-cgo), const RTM_DELADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELADDRLABEL = 73
 ++pkg syscall (linux-s390x-cgo), const RTM_DELADDRLABEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELLINK = 17
 ++pkg syscall (linux-s390x-cgo), const RTM_DELLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELMDB = 85
 ++pkg syscall (linux-s390x-cgo), const RTM_DELMDB ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELNEIGH = 29
 ++pkg syscall (linux-s390x-cgo), const RTM_DELNEIGH ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELQDISC = 37
 ++pkg syscall (linux-s390x-cgo), const RTM_DELQDISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELROUTE = 25
 ++pkg syscall (linux-s390x-cgo), const RTM_DELROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELRULE = 33
 ++pkg syscall (linux-s390x-cgo), const RTM_DELRULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELTCLASS = 41
 ++pkg syscall (linux-s390x-cgo), const RTM_DELTCLASS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_DELTFILTER = 45
 ++pkg syscall (linux-s390x-cgo), const RTM_DELTFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_F_CLONED = 512
 ++pkg syscall (linux-s390x-cgo), const RTM_F_CLONED ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_F_EQUALIZE = 1024
 ++pkg syscall (linux-s390x-cgo), const RTM_F_EQUALIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_F_NOTIFY = 256
 ++pkg syscall (linux-s390x-cgo), const RTM_F_NOTIFY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_F_PREFIX = 2048
 ++pkg syscall (linux-s390x-cgo), const RTM_F_PREFIX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETACTION = 50
 ++pkg syscall (linux-s390x-cgo), const RTM_GETACTION ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETADDR = 22
 ++pkg syscall (linux-s390x-cgo), const RTM_GETADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETADDRLABEL = 74
 ++pkg syscall (linux-s390x-cgo), const RTM_GETADDRLABEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETANYCAST = 62
 ++pkg syscall (linux-s390x-cgo), const RTM_GETANYCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETDCB = 78
 ++pkg syscall (linux-s390x-cgo), const RTM_GETDCB ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETLINK = 18
 ++pkg syscall (linux-s390x-cgo), const RTM_GETLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETMDB = 86
 ++pkg syscall (linux-s390x-cgo), const RTM_GETMDB ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETMULTICAST = 58
 ++pkg syscall (linux-s390x-cgo), const RTM_GETMULTICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGH = 30
 ++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGH ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGHTBL = 66
 ++pkg syscall (linux-s390x-cgo), const RTM_GETNEIGHTBL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETNETCONF = 82
 ++pkg syscall (linux-s390x-cgo), const RTM_GETNETCONF ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETQDISC = 38
 ++pkg syscall (linux-s390x-cgo), const RTM_GETQDISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETROUTE = 26
 ++pkg syscall (linux-s390x-cgo), const RTM_GETROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETRULE = 34
 ++pkg syscall (linux-s390x-cgo), const RTM_GETRULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETTCLASS = 42
 ++pkg syscall (linux-s390x-cgo), const RTM_GETTCLASS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_GETTFILTER = 46
 ++pkg syscall (linux-s390x-cgo), const RTM_GETTFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_MAX = 87
 ++pkg syscall (linux-s390x-cgo), const RTM_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWACTION = 48
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWACTION ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWADDR = 20
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWADDRLABEL = 72
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWADDRLABEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWLINK = 16
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWMDB = 84
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWMDB ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNDUSEROPT = 68
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNDUSEROPT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGH = 28
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGH ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGHTBL = 64
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNEIGHTBL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNETCONF = 80
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWNETCONF ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWPREFIX = 52
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWPREFIX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWQDISC = 36
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWQDISC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWROUTE = 24
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWRULE = 32
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWRULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWTCLASS = 40
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWTCLASS ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWTFILTER = 44
 ++pkg syscall (linux-s390x-cgo), const RTM_NEWTFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NR_FAMILIES = 18
 ++pkg syscall (linux-s390x-cgo), const RTM_NR_FAMILIES ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_NR_MSGTYPES = 72
 ++pkg syscall (linux-s390x-cgo), const RTM_NR_MSGTYPES ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_SETDCB = 79
 ++pkg syscall (linux-s390x-cgo), const RTM_SETDCB ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_SETLINK = 19
 ++pkg syscall (linux-s390x-cgo), const RTM_SETLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTM_SETNEIGHTBL = 67
 ++pkg syscall (linux-s390x-cgo), const RTM_SETNEIGHTBL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_ANYCAST = 4
 ++pkg syscall (linux-s390x-cgo), const RTN_ANYCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_BLACKHOLE = 6
 ++pkg syscall (linux-s390x-cgo), const RTN_BLACKHOLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_BROADCAST = 3
 ++pkg syscall (linux-s390x-cgo), const RTN_BROADCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNH_ALIGNTO = 4
 ++pkg syscall (linux-s390x-cgo), const RTNH_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNH_F_DEAD = 1
 ++pkg syscall (linux-s390x-cgo), const RTNH_F_DEAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNH_F_ONLINK = 4
 ++pkg syscall (linux-s390x-cgo), const RTNH_F_ONLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNH_F_PERVASIVE = 2
 ++pkg syscall (linux-s390x-cgo), const RTNH_F_PERVASIVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_IFADDR = 5
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_IFADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_MROUTE = 6
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_MROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_ROUTE = 7
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_ROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_RULE = 8
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV4_RULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFADDR = 9
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFINFO = 12
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_IFINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_MROUTE = 10
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_MROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_PREFIX = 18
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_PREFIX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_ROUTE = 11
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_ROUTE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_RULE = 19
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_IPV6_RULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_LINK = 1
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_LINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_ND_USEROPT = 20
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_ND_USEROPT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_NEIGH = 3
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_NEIGH ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_NONE = 0
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_NONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_NOTIFY = 2
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_NOTIFY ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_TC = 4
 ++pkg syscall (linux-s390x-cgo), const RTNLGRP_TC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_LOCAL = 2
 ++pkg syscall (linux-s390x-cgo), const RTN_LOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_MAX = 11
 ++pkg syscall (linux-s390x-cgo), const RTN_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_MULTICAST = 5
 ++pkg syscall (linux-s390x-cgo), const RTN_MULTICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_NAT = 10
 ++pkg syscall (linux-s390x-cgo), const RTN_NAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_PROHIBIT = 8
 ++pkg syscall (linux-s390x-cgo), const RTN_PROHIBIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_THROW = 9
 ++pkg syscall (linux-s390x-cgo), const RTN_THROW ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_UNICAST = 1
 ++pkg syscall (linux-s390x-cgo), const RTN_UNICAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_UNREACHABLE = 7
 ++pkg syscall (linux-s390x-cgo), const RTN_UNREACHABLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const RTN_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTN_XRESOLVE = 11
 ++pkg syscall (linux-s390x-cgo), const RTN_XRESOLVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_BIRD = 12
 ++pkg syscall (linux-s390x-cgo), const RTPROT_BIRD ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_BOOT = 3
 ++pkg syscall (linux-s390x-cgo), const RTPROT_BOOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_DHCP = 16
 ++pkg syscall (linux-s390x-cgo), const RTPROT_DHCP ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_DNROUTED = 13
 ++pkg syscall (linux-s390x-cgo), const RTPROT_DNROUTED ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_GATED = 8
 ++pkg syscall (linux-s390x-cgo), const RTPROT_GATED ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_KERNEL = 2
 ++pkg syscall (linux-s390x-cgo), const RTPROT_KERNEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_MROUTED = 17
 ++pkg syscall (linux-s390x-cgo), const RTPROT_MROUTED ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_MRT = 10
 ++pkg syscall (linux-s390x-cgo), const RTPROT_MRT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_NTK = 15
 ++pkg syscall (linux-s390x-cgo), const RTPROT_NTK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_RA = 9
 ++pkg syscall (linux-s390x-cgo), const RTPROT_RA ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_REDIRECT = 1
 ++pkg syscall (linux-s390x-cgo), const RTPROT_REDIRECT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_STATIC = 4
 ++pkg syscall (linux-s390x-cgo), const RTPROT_STATIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const RTPROT_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_XORP = 14
 ++pkg syscall (linux-s390x-cgo), const RTPROT_XORP ideal-int
 ++pkg syscall (linux-s390x-cgo), const RTPROT_ZEBRA = 11
 ++pkg syscall (linux-s390x-cgo), const RTPROT_ZEBRA ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_HOST = 254
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_HOST ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_LINK = 253
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_LINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_NOWHERE = 255
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_NOWHERE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_SITE = 200
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_SITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_UNIVERSE = 0
 ++pkg syscall (linux-s390x-cgo), const RT_SCOPE_UNIVERSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_COMPAT = 252
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_COMPAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_DEFAULT = 253
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_DEFAULT ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_LOCAL = 255
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_LOCAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAIN = 254
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAX = 4294967295
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_UNSPEC = 0
 ++pkg syscall (linux-s390x-cgo), const RT_TABLE_UNSPEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const RUSAGE_CHILDREN = -1
 ++pkg syscall (linux-s390x-cgo), const RUSAGE_CHILDREN ideal-int
 ++pkg syscall (linux-s390x-cgo), const RUSAGE_SELF = 0
 ++pkg syscall (linux-s390x-cgo), const RUSAGE_SELF ideal-int
 ++pkg syscall (linux-s390x-cgo), const RUSAGE_THREAD = 1
 ++pkg syscall (linux-s390x-cgo), const RUSAGE_THREAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_BLKSIZE = 512
 ++pkg syscall (linux-s390x-cgo), const S_BLKSIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SCM_CREDENTIALS = 2
 ++pkg syscall (linux-s390x-cgo), const SCM_CREDENTIALS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SCM_RIGHTS = 1
 ++pkg syscall (linux-s390x-cgo), const SCM_RIGHTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMP = 29
 ++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPING = 37
 ++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPING ideal-int
 ++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPNS = 35
 ++pkg syscall (linux-s390x-cgo), const SCM_TIMESTAMPNS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SCM_WIFI_STATUS = 41
 ++pkg syscall (linux-s390x-cgo), const SCM_WIFI_STATUS ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IEXEC = 64
 ++pkg syscall (linux-s390x-cgo), const S_IEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IFMT = 61440
 ++pkg syscall (linux-s390x-cgo), const SIGBUS = 7
 ++pkg syscall (linux-s390x-cgo), const SIGCHLD = 17
 ++pkg syscall (linux-s390x-cgo), const SIGCHLD Signal
 ++pkg syscall (linux-s390x-cgo), const SIGCLD = 17
 ++pkg syscall (linux-s390x-cgo), const SIGCLD Signal
 ++pkg syscall (linux-s390x-cgo), const SIGCONT = 18
 ++pkg syscall (linux-s390x-cgo), const SIGCONT Signal
 ++pkg syscall (linux-s390x-cgo), const SIGIO = 29
 ++pkg syscall (linux-s390x-cgo), const SIGIO Signal
 ++pkg syscall (linux-s390x-cgo), const SIGIOT = 6
 ++pkg syscall (linux-s390x-cgo), const SIGIOT Signal
 ++pkg syscall (linux-s390x-cgo), const SIGPOLL = 29
 ++pkg syscall (linux-s390x-cgo), const SIGPOLL Signal
 ++pkg syscall (linux-s390x-cgo), const SIGPROF = 27
 ++pkg syscall (linux-s390x-cgo), const SIGPROF Signal
 ++pkg syscall (linux-s390x-cgo), const SIGPWR = 30
 ++pkg syscall (linux-s390x-cgo), const SIGPWR Signal
 ++pkg syscall (linux-s390x-cgo), const SIGSTKFLT = 16
 ++pkg syscall (linux-s390x-cgo), const SIGSTKFLT Signal
 ++pkg syscall (linux-s390x-cgo), const SIGSTOP = 19
 ++pkg syscall (linux-s390x-cgo), const SIGSTOP Signal
 ++pkg syscall (linux-s390x-cgo), const SIGSYS = 31
 ++pkg syscall (linux-s390x-cgo), const SIGSYS Signal
 ++pkg syscall (linux-s390x-cgo), const SIGTSTP = 20
 ++pkg syscall (linux-s390x-cgo), const SIGTSTP Signal
 ++pkg syscall (linux-s390x-cgo), const SIGTTIN = 21
 ++pkg syscall (linux-s390x-cgo), const SIGTTIN Signal
 ++pkg syscall (linux-s390x-cgo), const SIGTTOU = 22
 ++pkg syscall (linux-s390x-cgo), const SIGTTOU Signal
 ++pkg syscall (linux-s390x-cgo), const SIGUNUSED = 31
 ++pkg syscall (linux-s390x-cgo), const SIGUNUSED Signal
 ++pkg syscall (linux-s390x-cgo), const SIGURG = 23
 ++pkg syscall (linux-s390x-cgo), const SIGURG Signal
 ++pkg syscall (linux-s390x-cgo), const SIGUSR1 = 10
 ++pkg syscall (linux-s390x-cgo), const SIGUSR1 Signal
 ++pkg syscall (linux-s390x-cgo), const SIGUSR2 = 12
 ++pkg syscall (linux-s390x-cgo), const SIGUSR2 Signal
 ++pkg syscall (linux-s390x-cgo), const SIGVTALRM = 26
 ++pkg syscall (linux-s390x-cgo), const SIGVTALRM Signal
 ++pkg syscall (linux-s390x-cgo), const SIGWINCH = 28
 ++pkg syscall (linux-s390x-cgo), const SIGWINCH Signal
 ++pkg syscall (linux-s390x-cgo), const SIGXCPU = 24
 ++pkg syscall (linux-s390x-cgo), const SIGXCPU Signal
 ++pkg syscall (linux-s390x-cgo), const SIGXFSZ = 25
 ++pkg syscall (linux-s390x-cgo), const SIGXFSZ Signal
 ++pkg syscall (linux-s390x-cgo), const SIOCADDDLCI = 35200
 ++pkg syscall (linux-s390x-cgo), const SIOCADDDLCI ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCADDMULTI = 35121
 ++pkg syscall (linux-s390x-cgo), const SIOCADDMULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCADDRT = 35083
 ++pkg syscall (linux-s390x-cgo), const SIOCADDRT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCATMARK = 35077
 ++pkg syscall (linux-s390x-cgo), const SIOCATMARK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDARP = 35155
 ++pkg syscall (linux-s390x-cgo), const SIOCDARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDELDLCI = 35201
 ++pkg syscall (linux-s390x-cgo), const SIOCDELDLCI ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDELMULTI = 35122
 ++pkg syscall (linux-s390x-cgo), const SIOCDELMULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDELRT = 35084
 ++pkg syscall (linux-s390x-cgo), const SIOCDELRT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDEVPRIVATE = 35312
 ++pkg syscall (linux-s390x-cgo), const SIOCDEVPRIVATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDIFADDR = 35126
 ++pkg syscall (linux-s390x-cgo), const SIOCDIFADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCDRARP = 35168
 ++pkg syscall (linux-s390x-cgo), const SIOCDRARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGARP = 35156
 ++pkg syscall (linux-s390x-cgo), const SIOCGARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFADDR = 35093
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFBR = 35136
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFBRDADDR = 35097
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFBRDADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFBR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFCONF = 35090
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFCONF ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFCOUNT = 35128
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFCOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFDSTADDR = 35095
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFDSTADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFENCAP = 35109
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFENCAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFFLAGS = 35091
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFFLAGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFHWADDR = 35111
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFHWADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFINDEX = 35123
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFINDEX ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMAP = 35184
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMEM = 35103
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMEM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMETRIC = 35101
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMETRIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMTU = 35105
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFMTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFNAME = 35088
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFNETMASK = 35099
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFNETMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFPFLAGS = 35125
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFPFLAGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFSLAVE = 35113
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFSLAVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFTXQLEN = 35138
 ++pkg syscall (linux-s390x-cgo), const SIOCGIFTXQLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGPGRP = 35076
 ++pkg syscall (linux-s390x-cgo), const SIOCGPGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGRARP = 35169
 ++pkg syscall (linux-s390x-cgo), const SIOCGRARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGSTAMP = 35078
 ++pkg syscall (linux-s390x-cgo), const SIOCGSTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCGSTAMPNS = 35079
 ++pkg syscall (linux-s390x-cgo), const SIOCGSTAMPNS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCPROTOPRIVATE = 35296
 ++pkg syscall (linux-s390x-cgo), const SIOCPROTOPRIVATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCRTMSG = 35085
 ++pkg syscall (linux-s390x-cgo), const SIOCRTMSG ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSARP = 35157
 ++pkg syscall (linux-s390x-cgo), const SIOCSARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFADDR = 35094
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFBR = 35137
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFBRDADDR = 35098
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFBRDADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFBR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFDSTADDR = 35096
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFDSTADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFENCAP = 35110
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFENCAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFFLAGS = 35092
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFFLAGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFHWADDR = 35108
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFHWADDR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFHWBROADCAST = 35127
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFHWBROADCAST ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFLINK = 35089
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMAP = 35185
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMEM = 35104
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMEM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMETRIC = 35102
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMETRIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMTU = 35106
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFMTU ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFNAME = 35107
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFNETMASK = 35100
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFNETMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFPFLAGS = 35124
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFPFLAGS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFSLAVE = 35120
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFSLAVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFTXQLEN = 35139
 ++pkg syscall (linux-s390x-cgo), const SIOCSIFTXQLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSPGRP = 35074
 ++pkg syscall (linux-s390x-cgo), const SIOCSPGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SIOCSRARP = 35170
 ++pkg syscall (linux-s390x-cgo), const SIOCSRARP ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IREAD = 256
 ++pkg syscall (linux-s390x-cgo), const S_IREAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IRGRP = 32
 ++pkg syscall (linux-s390x-cgo), const S_IRGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IROTH = 4
 ++pkg syscall (linux-s390x-cgo), const S_IROTH ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IRWXG = 56
 ++pkg syscall (linux-s390x-cgo), const S_IRWXG ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IRWXO = 7
 ++pkg syscall (linux-s390x-cgo), const S_IRWXO ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IRWXU = 448
 ++pkg syscall (linux-s390x-cgo), const S_IRWXU ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IWGRP = 16
 ++pkg syscall (linux-s390x-cgo), const S_IWGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IWOTH = 2
 ++pkg syscall (linux-s390x-cgo), const S_IWOTH ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IWRITE = 128
 ++pkg syscall (linux-s390x-cgo), const S_IWRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IXGRP = 8
 ++pkg syscall (linux-s390x-cgo), const S_IXGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const S_IXOTH = 1
 ++pkg syscall (linux-s390x-cgo), const S_IXOTH ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofCmsghdr = 16
 ++pkg syscall (linux-s390x-cgo), const SizeofCmsghdr ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofICMPv6Filter = 32
 ++pkg syscall (linux-s390x-cgo), const SizeofICMPv6Filter ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofIfAddrmsg = 8
 ++pkg syscall (linux-s390x-cgo), const SizeofIfAddrmsg ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofIfInfomsg = 16
 ++pkg syscall (linux-s390x-cgo), const SizeofIfInfomsg ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofInet4Pktinfo = 12
 ++pkg syscall (linux-s390x-cgo), const SizeofInet4Pktinfo ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofInet6Pktinfo = 20
 ++pkg syscall (linux-s390x-cgo), const SizeofInet6Pktinfo ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofInotifyEvent = 16
 ++pkg syscall (linux-s390x-cgo), const SizeofInotifyEvent ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofIPMreq = 8
 ++pkg syscall (linux-s390x-cgo), const SizeofIPMreq ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofIPMreqn = 12
 ++pkg syscall (linux-s390x-cgo), const SizeofIPMreqn ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofIPv6Mreq = 20
 ++pkg syscall (linux-s390x-cgo), const SizeofIPv6Mreq ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofIPv6MTUInfo = 32
 ++pkg syscall (linux-s390x-cgo), const SizeofIPv6MTUInfo ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofLinger = 8
 ++pkg syscall (linux-s390x-cgo), const SizeofLinger ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofMsghdr = 56
 ++pkg syscall (linux-s390x-cgo), const SizeofMsghdr ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofNlAttr = 4
 ++pkg syscall (linux-s390x-cgo), const SizeofNlAttr ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofNlMsgerr = 20
 ++pkg syscall (linux-s390x-cgo), const SizeofNlMsgerr ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofNlMsghdr = 16
 ++pkg syscall (linux-s390x-cgo), const SizeofNlMsghdr ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofRtAttr = 4
 ++pkg syscall (linux-s390x-cgo), const SizeofRtAttr ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofRtGenmsg = 1
 ++pkg syscall (linux-s390x-cgo), const SizeofRtGenmsg ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofRtMsg = 12
 ++pkg syscall (linux-s390x-cgo), const SizeofRtMsg ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofRtNexthop = 8
 ++pkg syscall (linux-s390x-cgo), const SizeofRtNexthop ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrAny = 112
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrAny ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet4 = 16
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet4 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet6 = 28
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrInet6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrLinklayer = 20
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrLinklayer ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrNetlink = 12
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrNetlink ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrUnix = 110
 ++pkg syscall (linux-s390x-cgo), const SizeofSockaddrUnix ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockFilter = 8
 ++pkg syscall (linux-s390x-cgo), const SizeofSockFilter ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofSockFprog = 16
 ++pkg syscall (linux-s390x-cgo), const SizeofSockFprog ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofTCPInfo = 104
 ++pkg syscall (linux-s390x-cgo), const SizeofTCPInfo ideal-int
 ++pkg syscall (linux-s390x-cgo), const SizeofUcred = 12
 ++pkg syscall (linux-s390x-cgo), const SizeofUcred ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_ACCEPTCONN = 30
 ++pkg syscall (linux-s390x-cgo), const SO_ACCEPTCONN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_ATTACH_FILTER = 26
 ++pkg syscall (linux-s390x-cgo), const SO_ATTACH_FILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_BINDTODEVICE = 25
 ++pkg syscall (linux-s390x-cgo), const SO_BINDTODEVICE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_BPF_EXTENSIONS = 48
 ++pkg syscall (linux-s390x-cgo), const SO_BPF_EXTENSIONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_BROADCAST = 6
 ++pkg syscall (linux-s390x-cgo), const SO_BSDCOMPAT = 14
 ++pkg syscall (linux-s390x-cgo), const SO_BSDCOMPAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_BUSY_POLL = 46
 ++pkg syscall (linux-s390x-cgo), const SO_BUSY_POLL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOCK_CLOEXEC = 524288
 ++pkg syscall (linux-s390x-cgo), const SOCK_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOCK_DCCP = 6
 ++pkg syscall (linux-s390x-cgo), const SOCK_DCCP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOCK_NONBLOCK = 2048
 ++pkg syscall (linux-s390x-cgo), const SOCK_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOCK_PACKET = 10
 ++pkg syscall (linux-s390x-cgo), const SOCK_PACKET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOCK_RDM = 4
 ++pkg syscall (linux-s390x-cgo), const SOCK_RDM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_DEBUG = 1
 ++pkg syscall (linux-s390x-cgo), const SO_DEBUG ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_DETACH_FILTER = 27
 ++pkg syscall (linux-s390x-cgo), const SO_DETACH_FILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_DOMAIN = 39
 ++pkg syscall (linux-s390x-cgo), const SO_DOMAIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_DONTROUTE = 5
 ++pkg syscall (linux-s390x-cgo), const SO_ERROR = 4
 ++pkg syscall (linux-s390x-cgo), const SO_ERROR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_GET_FILTER = 26
 ++pkg syscall (linux-s390x-cgo), const SO_GET_FILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_KEEPALIVE = 9
 ++pkg syscall (linux-s390x-cgo), const SOL_AAL = 265
 ++pkg syscall (linux-s390x-cgo), const SOL_AAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_ATM = 264
 ++pkg syscall (linux-s390x-cgo), const SOL_ATM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_DECNET = 261
 ++pkg syscall (linux-s390x-cgo), const SOL_DECNET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_ICMPV6 = 58
 ++pkg syscall (linux-s390x-cgo), const SOL_ICMPV6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_LINGER = 13
 ++pkg syscall (linux-s390x-cgo), const SOL_IP = 0
 ++pkg syscall (linux-s390x-cgo), const SOL_IP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_IPV6 = 41
 ++pkg syscall (linux-s390x-cgo), const SOL_IPV6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_IRDA = 266
 ++pkg syscall (linux-s390x-cgo), const SOL_IRDA ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_LOCK_FILTER = 44
 ++pkg syscall (linux-s390x-cgo), const SO_LOCK_FILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_PACKET = 263
 ++pkg syscall (linux-s390x-cgo), const SOL_PACKET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_RAW = 255
 ++pkg syscall (linux-s390x-cgo), const SOL_RAW ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_SOCKET = 1
 ++pkg syscall (linux-s390x-cgo), const SOL_TCP = 6
 ++pkg syscall (linux-s390x-cgo), const SOL_TCP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOL_X25 = 262
 ++pkg syscall (linux-s390x-cgo), const SOL_X25 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_MARK = 36
 ++pkg syscall (linux-s390x-cgo), const SO_MARK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SOMAXCONN = 128
 ++pkg syscall (linux-s390x-cgo), const SO_NO_CHECK = 11
 ++pkg syscall (linux-s390x-cgo), const SO_NO_CHECK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_NOFCS = 43
 ++pkg syscall (linux-s390x-cgo), const SO_NOFCS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_OOBINLINE = 10
 ++pkg syscall (linux-s390x-cgo), const SO_OOBINLINE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PASSCRED = 16
 ++pkg syscall (linux-s390x-cgo), const SO_PASSCRED ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PASSSEC = 34
 ++pkg syscall (linux-s390x-cgo), const SO_PASSSEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PEEK_OFF = 42
 ++pkg syscall (linux-s390x-cgo), const SO_PEEK_OFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PEERCRED = 17
 ++pkg syscall (linux-s390x-cgo), const SO_PEERCRED ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PEERNAME = 28
 ++pkg syscall (linux-s390x-cgo), const SO_PEERNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PEERSEC = 31
 ++pkg syscall (linux-s390x-cgo), const SO_PEERSEC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PRIORITY = 12
 ++pkg syscall (linux-s390x-cgo), const SO_PRIORITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_PROTOCOL = 38
 ++pkg syscall (linux-s390x-cgo), const SO_PROTOCOL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_RCVBUF = 8
 ++pkg syscall (linux-s390x-cgo), const SO_RCVBUFFORCE = 33
 ++pkg syscall (linux-s390x-cgo), const SO_RCVBUFFORCE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_RCVLOWAT = 18
 ++pkg syscall (linux-s390x-cgo), const SO_RCVLOWAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_RCVTIMEO = 20
 ++pkg syscall (linux-s390x-cgo), const SO_RCVTIMEO ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_REUSEADDR = 2
 ++pkg syscall (linux-s390x-cgo), const SO_REUSEPORT = 15
 ++pkg syscall (linux-s390x-cgo), const SO_REUSEPORT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_RXQ_OVFL = 40
 ++pkg syscall (linux-s390x-cgo), const SO_RXQ_OVFL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SECURITY_AUTHENTICATION = 22
 ++pkg syscall (linux-s390x-cgo), const SO_SECURITY_AUTHENTICATION ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_NETWORK = 24
 ++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_NETWORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_TRANSPORT = 23
 ++pkg syscall (linux-s390x-cgo), const SO_SECURITY_ENCRYPTION_TRANSPORT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SELECT_ERR_QUEUE = 45
 ++pkg syscall (linux-s390x-cgo), const SO_SELECT_ERR_QUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SNDBUF = 7
 ++pkg syscall (linux-s390x-cgo), const SO_SNDBUFFORCE = 32
 ++pkg syscall (linux-s390x-cgo), const SO_SNDBUFFORCE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SNDLOWAT = 19
 ++pkg syscall (linux-s390x-cgo), const SO_SNDLOWAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_SNDTIMEO = 21
 ++pkg syscall (linux-s390x-cgo), const SO_SNDTIMEO ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMP = 29
 ++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPING = 37
 ++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPING ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPNS = 35
 ++pkg syscall (linux-s390x-cgo), const SO_TIMESTAMPNS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_TYPE = 3
 ++pkg syscall (linux-s390x-cgo), const SO_TYPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SO_WIFI_STATUS = 41
 ++pkg syscall (linux-s390x-cgo), const SO_WIFI_STATUS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_ACCESS = 33
 ++pkg syscall (linux-s390x-cgo), const SYS_ACCESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_ACCT = 51
 ++pkg syscall (linux-s390x-cgo), const SYS_ACCT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_ADD_KEY = 278
 ++pkg syscall (linux-s390x-cgo), const SYS_ADD_KEY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_ADJTIMEX = 124
 ++pkg syscall (linux-s390x-cgo), const SYS_ADJTIMEX ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_AFS_SYSCALL = 137
 ++pkg syscall (linux-s390x-cgo), const SYS_AFS_SYSCALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_ALARM = 27
 ++pkg syscall (linux-s390x-cgo), const SYS_ALARM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_BDFLUSH = 134
 ++pkg syscall (linux-s390x-cgo), const SYS_BDFLUSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_BRK = 45
 ++pkg syscall (linux-s390x-cgo), const SYS_BRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CAPGET = 184
 ++pkg syscall (linux-s390x-cgo), const SYS_CAPGET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CAPSET = 185
 ++pkg syscall (linux-s390x-cgo), const SYS_CAPSET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CHDIR = 12
 ++pkg syscall (linux-s390x-cgo), const SYS_CHDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CHMOD = 15
 ++pkg syscall (linux-s390x-cgo), const SYS_CHMOD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CHOWN = 212
 ++pkg syscall (linux-s390x-cgo), const SYS_CHOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CHROOT = 61
 ++pkg syscall (linux-s390x-cgo), const SYS_CHROOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_ADJTIME = 337
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_ADJTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETRES = 261
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETRES ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETTIME = 260
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_GETTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_NANOSLEEP = 262
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_NANOSLEEP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_SETTIME = 259
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOCK_SETTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLONE = 120
 ++pkg syscall (linux-s390x-cgo), const SYS_CLONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOSE = 6
 ++pkg syscall (linux-s390x-cgo), const SYS_CLOSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CREAT = 8
 ++pkg syscall (linux-s390x-cgo), const SYS_CREATE_MODULE = 127
 ++pkg syscall (linux-s390x-cgo), const SYS_CREATE_MODULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_CREAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_DELETE_MODULE = 129
 ++pkg syscall (linux-s390x-cgo), const SYS_DELETE_MODULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_DUP2 = 63
 ++pkg syscall (linux-s390x-cgo), const SYS_DUP2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_DUP3 = 326
 ++pkg syscall (linux-s390x-cgo), const SYS_DUP3 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_DUP = 41
 ++pkg syscall (linux-s390x-cgo), const SYS_DUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE1 = 327
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE = 249
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CREATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CTL = 250
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_CTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_PWAIT = 312
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_PWAIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_WAIT = 251
 ++pkg syscall (linux-s390x-cgo), const SYS_EPOLL_WAIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD2 = 323
 ++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD = 318
 ++pkg syscall (linux-s390x-cgo), const SYS_EVENTFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EXECVE = 11
 ++pkg syscall (linux-s390x-cgo), const SYS_EXECVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EXIT = 1
 ++pkg syscall (linux-s390x-cgo), const SYS_EXIT_GROUP = 248
 ++pkg syscall (linux-s390x-cgo), const SYS_EXIT_GROUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_EXIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FACCESSAT = 300
 ++pkg syscall (linux-s390x-cgo), const SYS_FACCESSAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FADVISE64 = 253
 ++pkg syscall (linux-s390x-cgo), const SYS_FADVISE64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FALLOCATE = 314
 ++pkg syscall (linux-s390x-cgo), const SYS_FALLOCATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_INIT = 332
 ++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_INIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_MARK = 333
 ++pkg syscall (linux-s390x-cgo), const SYS_FANOTIFY_MARK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHDIR = 133
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHMOD = 94
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHMODAT = 299
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHMODAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHMOD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHOWN = 207
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHOWNAT = 291
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHOWNAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FCHOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FCNTL = 55
 ++pkg syscall (linux-s390x-cgo), const SYS_FCNTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FDATASYNC = 148
 ++pkg syscall (linux-s390x-cgo), const SYS_FDATASYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FGETXATTR = 229
 ++pkg syscall (linux-s390x-cgo), const SYS_FGETXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FINIT_MODULE = 344
 ++pkg syscall (linux-s390x-cgo), const SYS_FINIT_MODULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FLISTXATTR = 232
 ++pkg syscall (linux-s390x-cgo), const SYS_FLISTXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FLOCK = 143
 ++pkg syscall (linux-s390x-cgo), const SYS_FLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FORK = 2
 ++pkg syscall (linux-s390x-cgo), const SYS_FORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FREMOVEXATTR = 235
 ++pkg syscall (linux-s390x-cgo), const SYS_FREMOVEXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FSETXATTR = 226
 ++pkg syscall (linux-s390x-cgo), const SYS_FSETXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FSTAT = 108
 ++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS = 100
 ++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS64 = 266
 ++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FSTATFS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FSTAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FSYNC = 118
 ++pkg syscall (linux-s390x-cgo), const SYS_FSYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FTRUNCATE = 93
 ++pkg syscall (linux-s390x-cgo), const SYS_FTRUNCATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FUTEX = 238
 ++pkg syscall (linux-s390x-cgo), const SYS_FUTEX ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_FUTIMESAT = 292
 ++pkg syscall (linux-s390x-cgo), const SYS_FUTIMESAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETCPU = 311
 ++pkg syscall (linux-s390x-cgo), const SYS_GETCPU ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETCWD = 183
 ++pkg syscall (linux-s390x-cgo), const SYS_GETCWD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS = 141
 ++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS64 = 220
 ++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETDENTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETEGID = 202
 ++pkg syscall (linux-s390x-cgo), const SYS_GETEGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETEUID = 201
 ++pkg syscall (linux-s390x-cgo), const SYS_GETEUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETGID = 200
 ++pkg syscall (linux-s390x-cgo), const SYS_GETGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETGROUPS = 205
 ++pkg syscall (linux-s390x-cgo), const SYS_GETGROUPS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETITIMER = 105
 ++pkg syscall (linux-s390x-cgo), const SYS_GETITIMER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GET_KERNEL_SYMS = 130
 ++pkg syscall (linux-s390x-cgo), const SYS_GET_KERNEL_SYMS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPGID = 132
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPGRP = 65
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPID = 20
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPMSG = 188
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPMSG ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPPID = 64
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPPID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPRIORITY = 96
 ++pkg syscall (linux-s390x-cgo), const SYS_GETPRIORITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRESGID = 211
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRESGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRESUID = 209
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRESUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRLIMIT = 191
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRLIMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GET_ROBUST_LIST = 305
 ++pkg syscall (linux-s390x-cgo), const SYS_GET_ROBUST_LIST ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRUSAGE = 77
 ++pkg syscall (linux-s390x-cgo), const SYS_GETRUSAGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETSID = 147
 ++pkg syscall (linux-s390x-cgo), const SYS_GETSID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETTID = 236
 ++pkg syscall (linux-s390x-cgo), const SYS_GETTID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETTIMEOFDAY = 78
 ++pkg syscall (linux-s390x-cgo), const SYS_GETTIMEOFDAY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETUID = 199
 ++pkg syscall (linux-s390x-cgo), const SYS_GETUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_GETXATTR = 227
 ++pkg syscall (linux-s390x-cgo), const SYS_GETXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IDLE = 112
 ++pkg syscall (linux-s390x-cgo), const SYS_IDLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_INIT_MODULE = 128
 ++pkg syscall (linux-s390x-cgo), const SYS_INIT_MODULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_ADD_WATCH = 285
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_ADD_WATCH ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT1 = 324
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT = 284
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_INIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_RM_WATCH = 286
 ++pkg syscall (linux-s390x-cgo), const SYS_INOTIFY_RM_WATCH ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_CANCEL = 247
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_CANCEL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IOCTL = 54
 ++pkg syscall (linux-s390x-cgo), const SYS_IOCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_DESTROY = 244
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_DESTROY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_GETEVENTS = 245
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_GETEVENTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_GET = 283
 ++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_GET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_SET = 282
 ++pkg syscall (linux-s390x-cgo), const SYS_IOPRIO_SET ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_SETUP = 243
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_SETUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_SUBMIT = 246
 ++pkg syscall (linux-s390x-cgo), const SYS_IO_SUBMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_IPC = 117
 ++pkg syscall (linux-s390x-cgo), const SYS_IPC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_KCMP = 343
 ++pkg syscall (linux-s390x-cgo), const SYS_KCMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_KEXEC_LOAD = 277
 ++pkg syscall (linux-s390x-cgo), const SYS_KEXEC_LOAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_KEYCTL = 280
 ++pkg syscall (linux-s390x-cgo), const SYS_KEYCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_KILL = 37
 ++pkg syscall (linux-s390x-cgo), const SYS_KILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LCHOWN = 198
 ++pkg syscall (linux-s390x-cgo), const SYS_LCHOWN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LGETXATTR = 228
 ++pkg syscall (linux-s390x-cgo), const SYS_LGETXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LINK = 9
 ++pkg syscall (linux-s390x-cgo), const SYS_LINKAT = 296
 ++pkg syscall (linux-s390x-cgo), const SYS_LINKAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LISTXATTR = 230
 ++pkg syscall (linux-s390x-cgo), const SYS_LISTXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LLISTXATTR = 231
 ++pkg syscall (linux-s390x-cgo), const SYS_LLISTXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LOOKUP_DCOOKIE = 110
 ++pkg syscall (linux-s390x-cgo), const SYS_LOOKUP_DCOOKIE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LREMOVEXATTR = 234
 ++pkg syscall (linux-s390x-cgo), const SYS_LREMOVEXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LSEEK = 19
 ++pkg syscall (linux-s390x-cgo), const SYS_LSEEK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LSETXATTR = 225
 ++pkg syscall (linux-s390x-cgo), const SYS_LSETXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_LSTAT = 107
 ++pkg syscall (linux-s390x-cgo), const SYS_LSTAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MADVISE = 219
 ++pkg syscall (linux-s390x-cgo), const SYS_MADVISE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MINCORE = 218
 ++pkg syscall (linux-s390x-cgo), const SYS_MINCORE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MKDIR = 39
 ++pkg syscall (linux-s390x-cgo), const SYS_MKDIRAT = 289
 ++pkg syscall (linux-s390x-cgo), const SYS_MKDIRAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MKDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MKNOD = 14
 ++pkg syscall (linux-s390x-cgo), const SYS_MKNODAT = 290
 ++pkg syscall (linux-s390x-cgo), const SYS_MKNODAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MKNOD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MLOCK = 150
 ++pkg syscall (linux-s390x-cgo), const SYS_MLOCKALL = 152
 ++pkg syscall (linux-s390x-cgo), const SYS_MLOCKALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MMAP = 90
 ++pkg syscall (linux-s390x-cgo), const SYS_MMAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MOUNT = 21
 ++pkg syscall (linux-s390x-cgo), const SYS_MOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MPROTECT = 125
 ++pkg syscall (linux-s390x-cgo), const SYS_MPROTECT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_GETSETATTR = 276
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_GETSETATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_NOTIFY = 275
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_NOTIFY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_OPEN = 271
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_OPEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDRECEIVE = 274
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDRECEIVE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDSEND = 273
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_TIMEDSEND ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_UNLINK = 272
 ++pkg syscall (linux-s390x-cgo), const SYS_MQ_UNLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MREMAP = 163
 ++pkg syscall (linux-s390x-cgo), const SYS_MREMAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MSYNC = 144
 ++pkg syscall (linux-s390x-cgo), const SYS_MSYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCK = 151
 ++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCKALL = 153
 ++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCKALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MUNLOCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_MUNMAP = 91
 ++pkg syscall (linux-s390x-cgo), const SYS_MUNMAP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_NAME_TO_HANDLE_AT = 335
 ++pkg syscall (linux-s390x-cgo), const SYS_NAME_TO_HANDLE_AT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_NANOSLEEP = 162
 ++pkg syscall (linux-s390x-cgo), const SYS_NANOSLEEP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_NEWFSTATAT = 293
 ++pkg syscall (linux-s390x-cgo), const SYS_NEWFSTATAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_NFSSERVCTL = 169
 ++pkg syscall (linux-s390x-cgo), const SYS_NFSSERVCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_NICE = 34
 ++pkg syscall (linux-s390x-cgo), const SYS_NICE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_OPEN = 5
 ++pkg syscall (linux-s390x-cgo), const SYS_OPENAT = 288
 ++pkg syscall (linux-s390x-cgo), const SYS_OPENAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_OPEN_BY_HANDLE_AT = 336
 ++pkg syscall (linux-s390x-cgo), const SYS_OPEN_BY_HANDLE_AT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_OPEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PAUSE = 29
 ++pkg syscall (linux-s390x-cgo), const SYS_PAUSE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PERF_EVENT_OPEN = 331
 ++pkg syscall (linux-s390x-cgo), const SYS_PERF_EVENT_OPEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PERSONALITY = 136
 ++pkg syscall (linux-s390x-cgo), const SYS_PERSONALITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PIPE2 = 325
 ++pkg syscall (linux-s390x-cgo), const SYS_PIPE2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PIPE = 42
 ++pkg syscall (linux-s390x-cgo), const SYS_PIPE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PIVOT_ROOT = 217
 ++pkg syscall (linux-s390x-cgo), const SYS_PIVOT_ROOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_POLL = 168
 ++pkg syscall (linux-s390x-cgo), const SYS_POLL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PPOLL = 302
 ++pkg syscall (linux-s390x-cgo), const SYS_PPOLL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PRCTL = 172
 ++pkg syscall (linux-s390x-cgo), const SYS_PRCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PREAD64 = 180
 ++pkg syscall (linux-s390x-cgo), const SYS_PREAD64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PREADV = 328
 ++pkg syscall (linux-s390x-cgo), const SYS_PREADV ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PRLIMIT64 = 334
 ++pkg syscall (linux-s390x-cgo), const SYS_PRLIMIT64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_READV = 340
 ++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_READV ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_WRITEV = 341
 ++pkg syscall (linux-s390x-cgo), const SYS_PROCESS_VM_WRITEV ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PSELECT6 = 301
 ++pkg syscall (linux-s390x-cgo), const SYS_PSELECT6 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PTRACE = 26
 ++pkg syscall (linux-s390x-cgo), const SYS_PTRACE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PUTPMSG = 189
 ++pkg syscall (linux-s390x-cgo), const SYS_PUTPMSG ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PWRITE64 = 181
 ++pkg syscall (linux-s390x-cgo), const SYS_PWRITE64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_PWRITEV = 329
 ++pkg syscall (linux-s390x-cgo), const SYS_PWRITEV ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_QUERY_MODULE = 167
 ++pkg syscall (linux-s390x-cgo), const SYS_QUERY_MODULE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_QUOTACTL = 131
 ++pkg syscall (linux-s390x-cgo), const SYS_QUOTACTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_READ = 3
 ++pkg syscall (linux-s390x-cgo), const SYS_READAHEAD = 222
 ++pkg syscall (linux-s390x-cgo), const SYS_READAHEAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_READDIR = 89
 ++pkg syscall (linux-s390x-cgo), const SYS_READDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_READ ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_READLINK = 85
 ++pkg syscall (linux-s390x-cgo), const SYS_READLINKAT = 298
 ++pkg syscall (linux-s390x-cgo), const SYS_READLINKAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_READLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_READV = 145
 ++pkg syscall (linux-s390x-cgo), const SYS_READV ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_REBOOT = 88
 ++pkg syscall (linux-s390x-cgo), const SYS_REBOOT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_REMAP_FILE_PAGES = 267
 ++pkg syscall (linux-s390x-cgo), const SYS_REMAP_FILE_PAGES ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_REMOVEXATTR = 233
 ++pkg syscall (linux-s390x-cgo), const SYS_REMOVEXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RENAME = 38
 ++pkg syscall (linux-s390x-cgo), const SYS_RENAMEAT = 295
 ++pkg syscall (linux-s390x-cgo), const SYS_RENAMEAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RENAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_REQUEST_KEY = 279
 ++pkg syscall (linux-s390x-cgo), const SYS_REQUEST_KEY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RESTART_SYSCALL = 7
 ++pkg syscall (linux-s390x-cgo), const SYS_RESTART_SYSCALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RMDIR = 40
 ++pkg syscall (linux-s390x-cgo), const SYS_RMDIR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGACTION = 174
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGACTION ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPENDING = 176
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPENDING ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPROCMASK = 175
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGPROCMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGQUEUEINFO = 178
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGQUEUEINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGRETURN = 173
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGRETURN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGSUSPEND = 179
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGSUSPEND ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGTIMEDWAIT = 177
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_SIGTIMEDWAIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_TGSIGQUEUEINFO = 330
 ++pkg syscall (linux-s390x-cgo), const SYS_RT_TGSIGQUEUEINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_S390_RUNTIME_INSTR = 342
 ++pkg syscall (linux-s390x-cgo), const SYS_S390_RUNTIME_INSTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETAFFINITY = 240
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETAFFINITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETPARAM = 155
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETPARAM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MAX = 159
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MIN = 160
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETSCHEDULER = 157
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_GETSCHEDULER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_RR_GET_INTERVAL = 161
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_RR_GET_INTERVAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETAFFINITY = 239
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETAFFINITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETPARAM = 154
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETPARAM ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETSCHEDULER = 156
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_SETSCHEDULER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_YIELD = 158
 ++pkg syscall (linux-s390x-cgo), const SYS_SCHED_YIELD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SELECT = 142
 ++pkg syscall (linux-s390x-cgo), const SYS_SELECT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SENDFILE = 187
 ++pkg syscall (linux-s390x-cgo), const SYS_SENDFILE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETDOMAINNAME = 121
 ++pkg syscall (linux-s390x-cgo), const SYS_SETDOMAINNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETFSGID = 216
 ++pkg syscall (linux-s390x-cgo), const SYS_SETFSGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETFSUID = 215
 ++pkg syscall (linux-s390x-cgo), const SYS_SETFSUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETGID = 214
 ++pkg syscall (linux-s390x-cgo), const SYS_SETGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETGROUPS = 206
 ++pkg syscall (linux-s390x-cgo), const SYS_SETGROUPS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETHOSTNAME = 74
 ++pkg syscall (linux-s390x-cgo), const SYS_SETHOSTNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETITIMER = 104
 ++pkg syscall (linux-s390x-cgo), const SYS_SETITIMER ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETNS = 339
 ++pkg syscall (linux-s390x-cgo), const SYS_SETNS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETPGID = 57
 ++pkg syscall (linux-s390x-cgo), const SYS_SETPGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETPRIORITY = 97
 ++pkg syscall (linux-s390x-cgo), const SYS_SETPRIORITY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETREGID = 204
 ++pkg syscall (linux-s390x-cgo), const SYS_SETREGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETRESGID = 210
 ++pkg syscall (linux-s390x-cgo), const SYS_SETRESGID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETRESUID = 208
 ++pkg syscall (linux-s390x-cgo), const SYS_SETRESUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETREUID = 203
 ++pkg syscall (linux-s390x-cgo), const SYS_SETREUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETRLIMIT = 75
 ++pkg syscall (linux-s390x-cgo), const SYS_SETRLIMIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SET_ROBUST_LIST = 304
 ++pkg syscall (linux-s390x-cgo), const SYS_SET_ROBUST_LIST ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETSID = 66
 ++pkg syscall (linux-s390x-cgo), const SYS_SETSID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SET_TID_ADDRESS = 252
 ++pkg syscall (linux-s390x-cgo), const SYS_SET_TID_ADDRESS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETTIMEOFDAY = 79
 ++pkg syscall (linux-s390x-cgo), const SYS_SETTIMEOFDAY ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETUID = 213
 ++pkg syscall (linux-s390x-cgo), const SYS_SETUID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SETXATTR = 224
 ++pkg syscall (linux-s390x-cgo), const SYS_SETXATTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGACTION = 67
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGACTION ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGALTSTACK = 186
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGALTSTACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGNAL = 48
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD = 316
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD4 = 322
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD4 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGNALFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGNAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGPENDING = 73
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGPENDING ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGPROCMASK = 126
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGPROCMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGRETURN = 119
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGRETURN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGSUSPEND = 72
 ++pkg syscall (linux-s390x-cgo), const SYS_SIGSUSPEND ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SOCKETCALL = 102
 ++pkg syscall (linux-s390x-cgo), const SYS_SOCKETCALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SPLICE = 306
 ++pkg syscall (linux-s390x-cgo), const SYS_SPLICE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_STAT = 106
 ++pkg syscall (linux-s390x-cgo), const SYS_STATFS64 = 265
 ++pkg syscall (linux-s390x-cgo), const SYS_STATFS64 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_STATFS = 99
 ++pkg syscall (linux-s390x-cgo), const SYS_STATFS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_STAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SWAPOFF = 115
 ++pkg syscall (linux-s390x-cgo), const SYS_SWAPOFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SWAPON = 87
 ++pkg syscall (linux-s390x-cgo), const SYS_SWAPON ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYMLINK = 83
 ++pkg syscall (linux-s390x-cgo), const SYS_SYMLINKAT = 297
 ++pkg syscall (linux-s390x-cgo), const SYS_SYMLINKAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYMLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYNC = 36
 ++pkg syscall (linux-s390x-cgo), const SYS_SYNC_FILE_RANGE = 307
 ++pkg syscall (linux-s390x-cgo), const SYS_SYNC_FILE_RANGE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYNCFS = 338
 ++pkg syscall (linux-s390x-cgo), const SYS_SYNCFS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYNC ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS__SYSCTL = 149
 ++pkg syscall (linux-s390x-cgo), const SYS__SYSCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYSFS = 135
 ++pkg syscall (linux-s390x-cgo), const SYS_SYSFS ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYSINFO = 116
 ++pkg syscall (linux-s390x-cgo), const SYS_SYSINFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_SYSLOG = 103
 ++pkg syscall (linux-s390x-cgo), const SYS_SYSLOG ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TEE = 308
 ++pkg syscall (linux-s390x-cgo), const SYS_TEE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TGKILL = 241
 ++pkg syscall (linux-s390x-cgo), const SYS_TGKILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_CREATE = 254
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_CREATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_DELETE = 258
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_DELETE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD = 317
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_CREATE = 319
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_CREATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_GETTIME = 321
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_GETTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_SETTIME = 320
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMERFD_SETTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETOVERRUN = 257
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETOVERRUN ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETTIME = 256
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_GETTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_SETTIME = 255
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMER_SETTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMES = 43
 ++pkg syscall (linux-s390x-cgo), const SYS_TIMES ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TKILL = 237
 ++pkg syscall (linux-s390x-cgo), const SYS_TKILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_TRUNCATE = 92
 ++pkg syscall (linux-s390x-cgo), const SYS_TRUNCATE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UMASK = 60
 ++pkg syscall (linux-s390x-cgo), const SYS_UMASK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT = 22
 ++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT2 = 52
 ++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UMOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UNAME = 122
 ++pkg syscall (linux-s390x-cgo), const SYS_UNAME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UNLINK = 10
 ++pkg syscall (linux-s390x-cgo), const SYS_UNLINKAT = 294
 ++pkg syscall (linux-s390x-cgo), const SYS_UNLINKAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UNLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UNSHARE = 303
 ++pkg syscall (linux-s390x-cgo), const SYS_UNSHARE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_USELIB = 86
 ++pkg syscall (linux-s390x-cgo), const SYS_USELIB ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_USTAT = 62
 ++pkg syscall (linux-s390x-cgo), const SYS_USTAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UTIME = 30
 ++pkg syscall (linux-s390x-cgo), const SYS_UTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UTIMENSAT = 315
 ++pkg syscall (linux-s390x-cgo), const SYS_UTIMENSAT ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_UTIMES = 313
 ++pkg syscall (linux-s390x-cgo), const SYS_UTIMES ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_VFORK = 190
 ++pkg syscall (linux-s390x-cgo), const SYS_VFORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_VHANGUP = 111
 ++pkg syscall (linux-s390x-cgo), const SYS_VHANGUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_VMSPLICE = 309
 ++pkg syscall (linux-s390x-cgo), const SYS_VMSPLICE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_WAIT4 = 114
 ++pkg syscall (linux-s390x-cgo), const SYS_WAIT4 ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_WAITID = 281
 ++pkg syscall (linux-s390x-cgo), const SYS_WAITID ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_WRITE = 4
 ++pkg syscall (linux-s390x-cgo), const SYS_WRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const SYS_WRITEV = 146
 ++pkg syscall (linux-s390x-cgo), const SYS_WRITEV ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCFLSH = 21515
 ++pkg syscall (linux-s390x-cgo), const TCFLSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCGETS = 21505
 ++pkg syscall (linux-s390x-cgo), const TCGETS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCIFLUSH = 0
 ++pkg syscall (linux-s390x-cgo), const TCIFLUSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCIOFLUSH = 2
 ++pkg syscall (linux-s390x-cgo), const TCIOFLUSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCOFLUSH = 1
 ++pkg syscall (linux-s390x-cgo), const TCOFLUSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_CONGESTION = 13
 ++pkg syscall (linux-s390x-cgo), const TCP_CONGESTION ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_CORK = 3
 ++pkg syscall (linux-s390x-cgo), const TCP_CORK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_DEFER_ACCEPT = 9
 ++pkg syscall (linux-s390x-cgo), const TCP_DEFER_ACCEPT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_INFO = 11
 ++pkg syscall (linux-s390x-cgo), const TCP_INFO ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_KEEPCNT = 6
 ++pkg syscall (linux-s390x-cgo), const TCP_KEEPCNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_KEEPIDLE = 4
 ++pkg syscall (linux-s390x-cgo), const TCP_KEEPIDLE ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_KEEPINTVL = 5
 ++pkg syscall (linux-s390x-cgo), const TCP_KEEPINTVL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_LINGER2 = 8
 ++pkg syscall (linux-s390x-cgo), const TCP_LINGER2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_MAXSEG = 2
 ++pkg syscall (linux-s390x-cgo), const TCP_MAXSEG ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_MAXWIN = 65535
 ++pkg syscall (linux-s390x-cgo), const TCP_MAXWIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_MAX_WINSHIFT = 14
 ++pkg syscall (linux-s390x-cgo), const TCP_MAX_WINSHIFT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG = 14
 ++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG_MAXKEYLEN = 80
 ++pkg syscall (linux-s390x-cgo), const TCP_MD5SIG_MAXKEYLEN ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_MSS = 512
 ++pkg syscall (linux-s390x-cgo), const TCP_MSS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_QUICKACK = 12
 ++pkg syscall (linux-s390x-cgo), const TCP_QUICKACK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_SYNCNT = 7
 ++pkg syscall (linux-s390x-cgo), const TCP_SYNCNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCP_WINDOW_CLAMP = 10
 ++pkg syscall (linux-s390x-cgo), const TCP_WINDOW_CLAMP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCSAFLUSH = 2
 ++pkg syscall (linux-s390x-cgo), const TCSAFLUSH ideal-int
 ++pkg syscall (linux-s390x-cgo), const TCSETS = 21506
 ++pkg syscall (linux-s390x-cgo), const TCSETS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCCBRK = 21544
 ++pkg syscall (linux-s390x-cgo), const TIOCCBRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCCONS = 21533
 ++pkg syscall (linux-s390x-cgo), const TIOCCONS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCEXCL = 21516
 ++pkg syscall (linux-s390x-cgo), const TIOCEXCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGDEV = 2147767346
 ++pkg syscall (linux-s390x-cgo), const TIOCGDEV ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGETD = 21540
 ++pkg syscall (linux-s390x-cgo), const TIOCGETD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGEXCL = 2147767360
 ++pkg syscall (linux-s390x-cgo), const TIOCGEXCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGICOUNT = 21597
 ++pkg syscall (linux-s390x-cgo), const TIOCGICOUNT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGLCKTRMIOS = 21590
 ++pkg syscall (linux-s390x-cgo), const TIOCGLCKTRMIOS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGPGRP = 21519
 ++pkg syscall (linux-s390x-cgo), const TIOCGPGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGPKT = 2147767352
 ++pkg syscall (linux-s390x-cgo), const TIOCGPKT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGPTLCK = 2147767353
 ++pkg syscall (linux-s390x-cgo), const TIOCGPTLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGPTN = 2147767344
 ++pkg syscall (linux-s390x-cgo), const TIOCGPTN ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGRS485 = 21550
 ++pkg syscall (linux-s390x-cgo), const TIOCGRS485 ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGSERIAL = 21534
 ++pkg syscall (linux-s390x-cgo), const TIOCGSERIAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGSID = 21545
 ++pkg syscall (linux-s390x-cgo), const TIOCGSID ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGSOFTCAR = 21529
 ++pkg syscall (linux-s390x-cgo), const TIOCGSOFTCAR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCGWINSZ = 21523
 ++pkg syscall (linux-s390x-cgo), const TIOCGWINSZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCINQ = 21531
 ++pkg syscall (linux-s390x-cgo), const TIOCINQ ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCLINUX = 21532
 ++pkg syscall (linux-s390x-cgo), const TIOCLINUX ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCMBIC = 21527
 ++pkg syscall (linux-s390x-cgo), const TIOCMBIC ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCMBIS = 21526
 ++pkg syscall (linux-s390x-cgo), const TIOCMBIS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_CAR = 64
 ++pkg syscall (linux-s390x-cgo), const TIOCM_CAR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_CD = 64
 ++pkg syscall (linux-s390x-cgo), const TIOCM_CD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_CTS = 32
 ++pkg syscall (linux-s390x-cgo), const TIOCM_CTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_DSR = 256
 ++pkg syscall (linux-s390x-cgo), const TIOCM_DSR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_DTR = 2
 ++pkg syscall (linux-s390x-cgo), const TIOCM_DTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCMGET = 21525
 ++pkg syscall (linux-s390x-cgo), const TIOCMGET ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCMIWAIT = 21596
 ++pkg syscall (linux-s390x-cgo), const TIOCMIWAIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_LE = 1
 ++pkg syscall (linux-s390x-cgo), const TIOCM_LE ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_RI = 128
 ++pkg syscall (linux-s390x-cgo), const TIOCM_RI ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_RNG = 128
 ++pkg syscall (linux-s390x-cgo), const TIOCM_RNG ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_RTS = 4
 ++pkg syscall (linux-s390x-cgo), const TIOCM_RTS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCMSET = 21528
 ++pkg syscall (linux-s390x-cgo), const TIOCMSET ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_SR = 16
 ++pkg syscall (linux-s390x-cgo), const TIOCM_SR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCM_ST = 8
 ++pkg syscall (linux-s390x-cgo), const TIOCM_ST ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCNOTTY = 21538
 ++pkg syscall (linux-s390x-cgo), const TIOCNOTTY ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCNXCL = 21517
 ++pkg syscall (linux-s390x-cgo), const TIOCNXCL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCOUTQ = 21521
 ++pkg syscall (linux-s390x-cgo), const TIOCOUTQ ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT = 21536
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_DATA = 0
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_DATA ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_DOSTOP = 32
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_DOSTOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHREAD = 1
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHREAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHWRITE = 2
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_FLUSHWRITE ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_IOCTL = 64
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_IOCTL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_NOSTOP = 16
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_NOSTOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_START = 8
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_START ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_STOP = 4
 ++pkg syscall (linux-s390x-cgo), const TIOCPKT_STOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSBRK = 21543
 ++pkg syscall (linux-s390x-cgo), const TIOCSBRK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSCTTY = 21518
 ++pkg syscall (linux-s390x-cgo), const TIOCSCTTY ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERCONFIG = 21587
 ++pkg syscall (linux-s390x-cgo), const TIOCSERCONFIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGETLSR = 21593
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGETLSR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGETMULTI = 21594
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGETMULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGSTRUCT = 21592
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGSTRUCT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGWILD = 21588
 ++pkg syscall (linux-s390x-cgo), const TIOCSERGWILD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERSETMULTI = 21595
 ++pkg syscall (linux-s390x-cgo), const TIOCSERSETMULTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSERSWILD = 21589
 ++pkg syscall (linux-s390x-cgo), const TIOCSERSWILD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSER_TEMT = 1
 ++pkg syscall (linux-s390x-cgo), const TIOCSER_TEMT ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSETD = 21539
 ++pkg syscall (linux-s390x-cgo), const TIOCSETD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSIG = 1074025526
 ++pkg syscall (linux-s390x-cgo), const TIOCSIG ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSLCKTRMIOS = 21591
 ++pkg syscall (linux-s390x-cgo), const TIOCSLCKTRMIOS ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSPGRP = 21520
 ++pkg syscall (linux-s390x-cgo), const TIOCSPGRP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSPTLCK = 1074025521
 ++pkg syscall (linux-s390x-cgo), const TIOCSPTLCK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSRS485 = 21551
 ++pkg syscall (linux-s390x-cgo), const TIOCSRS485 ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSSERIAL = 21535
 ++pkg syscall (linux-s390x-cgo), const TIOCSSERIAL ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSSOFTCAR = 21530
 ++pkg syscall (linux-s390x-cgo), const TIOCSSOFTCAR ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSTI = 21522
 ++pkg syscall (linux-s390x-cgo), const TIOCSTI ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCSWINSZ = 21524
 ++pkg syscall (linux-s390x-cgo), const TIOCSWINSZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const TIOCVHANGUP = 21559
 ++pkg syscall (linux-s390x-cgo), const TIOCVHANGUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TOSTOP = 256
 ++pkg syscall (linux-s390x-cgo), const TOSTOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNATTACHFILTER = 1074812117
 ++pkg syscall (linux-s390x-cgo), const TUNATTACHFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNDETACHFILTER = 1074812118
 ++pkg syscall (linux-s390x-cgo), const TUNDETACHFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNGETFEATURES = 2147767503
 ++pkg syscall (linux-s390x-cgo), const TUNGETFEATURES ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNGETIFF = 2147767506
 ++pkg syscall (linux-s390x-cgo), const TUNGETIFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNGETSNDBUF = 2147767507
 ++pkg syscall (linux-s390x-cgo), const TUNGETSNDBUF ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNGETVNETHDRSZ = 2147767511
 ++pkg syscall (linux-s390x-cgo), const TUNGETVNETHDRSZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETDEBUG = 1074025673
 ++pkg syscall (linux-s390x-cgo), const TUNSETDEBUG ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETGROUP = 1074025678
 ++pkg syscall (linux-s390x-cgo), const TUNSETGROUP ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETIFF = 1074025674
 ++pkg syscall (linux-s390x-cgo), const TUNSETIFF ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETLINK = 1074025677
 ++pkg syscall (linux-s390x-cgo), const TUNSETLINK ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETNOCSUM = 1074025672
 ++pkg syscall (linux-s390x-cgo), const TUNSETNOCSUM ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETOFFLOAD = 1074025680
 ++pkg syscall (linux-s390x-cgo), const TUNSETOFFLOAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETOWNER = 1074025676
 ++pkg syscall (linux-s390x-cgo), const TUNSETOWNER ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETPERSIST = 1074025675
 ++pkg syscall (linux-s390x-cgo), const TUNSETPERSIST ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETQUEUE = 1074025689
 ++pkg syscall (linux-s390x-cgo), const TUNSETQUEUE ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETSNDBUF = 1074025684
 ++pkg syscall (linux-s390x-cgo), const TUNSETSNDBUF ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETTXFILTER = 1074025681
 ++pkg syscall (linux-s390x-cgo), const TUNSETTXFILTER ideal-int
 ++pkg syscall (linux-s390x-cgo), const TUNSETVNETHDRSZ = 1074025688
 ++pkg syscall (linux-s390x-cgo), const TUNSETVNETHDRSZ ideal-int
 ++pkg syscall (linux-s390x-cgo), const VDISCARD = 13
 ++pkg syscall (linux-s390x-cgo), const VDISCARD ideal-int
 ++pkg syscall (linux-s390x-cgo), const VEOF = 4
 ++pkg syscall (linux-s390x-cgo), const VEOF ideal-int
 ++pkg syscall (linux-s390x-cgo), const VEOL = 11
 ++pkg syscall (linux-s390x-cgo), const VEOL2 = 16
 ++pkg syscall (linux-s390x-cgo), const VEOL2 ideal-int
 ++pkg syscall (linux-s390x-cgo), const VEOL ideal-int
 ++pkg syscall (linux-s390x-cgo), const VERASE = 2
 ++pkg syscall (linux-s390x-cgo), const VERASE ideal-int
 ++pkg syscall (linux-s390x-cgo), const VINTR = 0
 ++pkg syscall (linux-s390x-cgo), const VINTR ideal-int
 ++pkg syscall (linux-s390x-cgo), const VKILL = 3
 ++pkg syscall (linux-s390x-cgo), const VKILL ideal-int
 ++pkg syscall (linux-s390x-cgo), const VLNEXT = 15
 ++pkg syscall (linux-s390x-cgo), const VLNEXT ideal-int
 ++pkg syscall (linux-s390x-cgo), const VMIN = 6
 ++pkg syscall (linux-s390x-cgo), const VMIN ideal-int
 ++pkg syscall (linux-s390x-cgo), const VQUIT = 1
 ++pkg syscall (linux-s390x-cgo), const VQUIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const VREPRINT = 12
 ++pkg syscall (linux-s390x-cgo), const VREPRINT ideal-int
 ++pkg syscall (linux-s390x-cgo), const VSTART = 8
 ++pkg syscall (linux-s390x-cgo), const VSTART ideal-int
 ++pkg syscall (linux-s390x-cgo), const VSTOP = 9
 ++pkg syscall (linux-s390x-cgo), const VSTOP ideal-int
 ++pkg syscall (linux-s390x-cgo), const VSUSP = 10
 ++pkg syscall (linux-s390x-cgo), const VSUSP ideal-int
 ++pkg syscall (linux-s390x-cgo), const VSWTC = 7
 ++pkg syscall (linux-s390x-cgo), const VSWTC ideal-int
 ++pkg syscall (linux-s390x-cgo), const VT0 = 0
 ++pkg syscall (linux-s390x-cgo), const VT0 ideal-int
 ++pkg syscall (linux-s390x-cgo), const VT1 = 16384
 ++pkg syscall (linux-s390x-cgo), const VT1 ideal-int
 ++pkg syscall (linux-s390x-cgo), const VTDLY = 16384
 ++pkg syscall (linux-s390x-cgo), const VTDLY ideal-int
 ++pkg syscall (linux-s390x-cgo), const VTIME = 5
 ++pkg syscall (linux-s390x-cgo), const VTIME ideal-int
 ++pkg syscall (linux-s390x-cgo), const VWERASE = 14
 ++pkg syscall (linux-s390x-cgo), const VWERASE ideal-int
 ++pkg syscall (linux-s390x-cgo), const WALL = 1073741824
 ++pkg syscall (linux-s390x-cgo), const WALL ideal-int
 ++pkg syscall (linux-s390x-cgo), const WCLONE = 2147483648
 ++pkg syscall (linux-s390x-cgo), const WCLONE ideal-int
 ++pkg syscall (linux-s390x-cgo), const WCONTINUED = 8
 ++pkg syscall (linux-s390x-cgo), const WCONTINUED ideal-int
 ++pkg syscall (linux-s390x-cgo), const WEXITED = 4
 ++pkg syscall (linux-s390x-cgo), const WEXITED ideal-int
 ++pkg syscall (linux-s390x-cgo), const WNOHANG = 1
 ++pkg syscall (linux-s390x-cgo), const WNOHANG ideal-int
 ++pkg syscall (linux-s390x-cgo), const WNOTHREAD = 536870912
 ++pkg syscall (linux-s390x-cgo), const WNOTHREAD ideal-int
 ++pkg syscall (linux-s390x-cgo), const WNOWAIT = 16777216
 ++pkg syscall (linux-s390x-cgo), const WNOWAIT ideal-int
 ++pkg syscall (linux-s390x-cgo), const WORDSIZE = 64
 ++pkg syscall (linux-s390x-cgo), const WORDSIZE ideal-int
 ++pkg syscall (linux-s390x-cgo), const WSTOPPED = 2
 ++pkg syscall (linux-s390x-cgo), const WSTOPPED ideal-int
 ++pkg syscall (linux-s390x-cgo), const WUNTRACED = 2
 ++pkg syscall (linux-s390x-cgo), const WUNTRACED ideal-int
 ++pkg syscall (linux-s390x-cgo), const XCASE = 4
 ++pkg syscall (linux-s390x-cgo), const XCASE ideal-int
 ++pkg syscall (linux-s390x-cgo), func Accept4(int, int) (int, Sockaddr, error)
 ++pkg syscall (linux-s390x-cgo), func Accept(int) (int, Sockaddr, error)
 ++pkg syscall (linux-s390x-cgo), func Access(string, uint32) error
 ++pkg syscall (linux-s390x-cgo), func Acct(string) error
 ++pkg syscall (linux-s390x-cgo), func Adjtimex(*Timex) (int, error)
 ++pkg syscall (linux-s390x-cgo), func AttachLsf(int, []SockFilter) error
 ++pkg syscall (linux-s390x-cgo), func Bind(int, Sockaddr) error
 ++pkg syscall (linux-s390x-cgo), func BindToDevice(int, string) error
 ++pkg syscall (linux-s390x-cgo), func Chroot(string) error
 ++pkg syscall (linux-s390x-cgo), func Close(int) error
 ++pkg syscall (linux-s390x-cgo), func CloseOnExec(int)
 ++pkg syscall (linux-s390x-cgo), func CmsgLen(int) int
 ++pkg syscall (linux-s390x-cgo), func CmsgSpace(int) int
 ++pkg syscall (linux-s390x-cgo), func Connect(int, Sockaddr) error
 ++pkg syscall (linux-s390x-cgo), func Creat(string, uint32) (int, error)
 ++pkg syscall (linux-s390x-cgo), func DetachLsf(int) error
 ++pkg syscall (linux-s390x-cgo), func Dup2(int, int) error
 ++pkg syscall (linux-s390x-cgo), func Dup3(int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func Dup(int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func EpollCreate1(int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func EpollCreate(int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func EpollCtl(int, int, int, *EpollEvent) error
 ++pkg syscall (linux-s390x-cgo), func EpollWait(int, []EpollEvent, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Faccessat(int, string, uint32, int) error
 ++pkg syscall (linux-s390x-cgo), func Fallocate(int, uint32, int64, int64) error
 ++pkg syscall (linux-s390x-cgo), func Fchdir(int) error
 ++pkg syscall (linux-s390x-cgo), func Fchmodat(int, string, uint32, int) error
 ++pkg syscall (linux-s390x-cgo), func Fchmod(int, uint32) error
 ++pkg syscall (linux-s390x-cgo), func Fchownat(int, string, int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func Fchown(int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func FcntlFlock(uintptr, int, *Flock_t) error
 ++pkg syscall (linux-s390x-cgo), func Fdatasync(int) error
 ++pkg syscall (linux-s390x-cgo), func Flock(int, int) error
 ++pkg syscall (linux-s390x-cgo), func ForkExec(string, []string, *ProcAttr) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Fstatfs(int, *Statfs_t) error
 ++pkg syscall (linux-s390x-cgo), func Fstat(int, *Stat_t) error
 ++pkg syscall (linux-s390x-cgo), func Fsync(int) error
 ++pkg syscall (linux-s390x-cgo), func Ftruncate(int, int64) error
 ++pkg syscall (linux-s390x-cgo), func Futimesat(int, string, []Timeval) error
 ++pkg syscall (linux-s390x-cgo), func Futimes(int, []Timeval) error
 ++pkg syscall (linux-s390x-cgo), func Getcwd([]uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Getdents(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Getpeername(int) (Sockaddr, error)
 ++pkg syscall (linux-s390x-cgo), func Getpgid(int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Getpgrp() int
 ++pkg syscall (linux-s390x-cgo), func Getpriority(int, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Getrlimit(int, *Rlimit) error
 ++pkg syscall (linux-s390x-cgo), func Getrusage(int, *Rusage) error
 ++pkg syscall (linux-s390x-cgo), func Getsockname(int) (Sockaddr, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptICMPv6Filter(int, int, int) (*ICMPv6Filter, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptInet4Addr(int, int, int) ([4]uint8, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptInt(int, int, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptIPMreq(int, int, int) (*IPMreq, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptIPMreqn(int, int, int) (*IPMreqn, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptIPv6Mreq(int, int, int) (*IPv6Mreq, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptIPv6MTUInfo(int, int, int) (*IPv6MTUInfo, error)
 ++pkg syscall (linux-s390x-cgo), func GetsockoptUcred(int, int, int) (*Ucred, error)
 ++pkg syscall (linux-s390x-cgo), func Gettid() int
 ++pkg syscall (linux-s390x-cgo), func Getxattr(string, string, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func InotifyAddWatch(int, string, uint32) (int, error)
 ++pkg syscall (linux-s390x-cgo), func InotifyInit1(int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func InotifyInit() (int, error)
 ++pkg syscall (linux-s390x-cgo), func InotifyRmWatch(int, uint32) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Kill(int, Signal) error
 ++pkg syscall (linux-s390x-cgo), func Klogctl(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Listen(int, int) error
 ++pkg syscall (linux-s390x-cgo), func Listxattr(string, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func LsfJump(int, int, int, int) *SockFilter
 ++pkg syscall (linux-s390x-cgo), func LsfSocket(int, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func LsfStmt(int, int) *SockFilter
 ++pkg syscall (linux-s390x-cgo), func Lstat(string, *Stat_t) error
 ++pkg syscall (linux-s390x-cgo), func Madvise([]uint8, int) error
 ++pkg syscall (linux-s390x-cgo), func Mkdirat(int, string, uint32) error
 ++pkg syscall (linux-s390x-cgo), func Mkfifo(string, uint32) error
 ++pkg syscall (linux-s390x-cgo), func Mknodat(int, string, uint32, int) error
 ++pkg syscall (linux-s390x-cgo), func Mknod(string, uint32, int) error
 ++pkg syscall (linux-s390x-cgo), func Mlockall(int) error
 ++pkg syscall (linux-s390x-cgo), func Mlock([]uint8) error
 ++pkg syscall (linux-s390x-cgo), func Mmap(int, int64, int, int, int) ([]uint8, error)
 ++pkg syscall (linux-s390x-cgo), func Mount(string, string, string, uintptr, string) error
 ++pkg syscall (linux-s390x-cgo), func Mprotect([]uint8, int) error
 ++pkg syscall (linux-s390x-cgo), func Munlockall() error
 ++pkg syscall (linux-s390x-cgo), func Munlock([]uint8) error
 ++pkg syscall (linux-s390x-cgo), func Munmap([]uint8) error
 ++pkg syscall (linux-s390x-cgo), func Nanosleep(*Timespec, *Timespec) error
 ++pkg syscall (linux-s390x-cgo), func NetlinkRIB(int, int) ([]uint8, error)
 ++pkg syscall (linux-s390x-cgo), func Openat(int, string, int, uint32) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Open(string, int, uint32) (int, error)
 ++pkg syscall (linux-s390x-cgo), func ParseDirent([]uint8, int, []string) (int, int, []string)
 ++pkg syscall (linux-s390x-cgo), func ParseNetlinkMessage([]uint8) ([]NetlinkMessage, error)
 ++pkg syscall (linux-s390x-cgo), func ParseNetlinkRouteAttr(*NetlinkMessage) ([]NetlinkRouteAttr, error)
 ++pkg syscall (linux-s390x-cgo), func ParseSocketControlMessage([]uint8) ([]SocketControlMessage, error)
 ++pkg syscall (linux-s390x-cgo), func ParseUnixCredentials(*SocketControlMessage) (*Ucred, error)
 ++pkg syscall (linux-s390x-cgo), func ParseUnixRights(*SocketControlMessage) ([]int, error)
 ++pkg syscall (linux-s390x-cgo), func Pause() error
 ++pkg syscall (linux-s390x-cgo), func Pipe2([]int, int) error
 ++pkg syscall (linux-s390x-cgo), func Pipe([]int) error
 ++pkg syscall (linux-s390x-cgo), func PivotRoot(string, string) error
 ++pkg syscall (linux-s390x-cgo), func Pread(int, []uint8, int64) (int, error)
 ++pkg syscall (linux-s390x-cgo), func PtraceAttach(int) error
 ++pkg syscall (linux-s390x-cgo), func PtraceCont(int, int) error
 ++pkg syscall (linux-s390x-cgo), func PtraceDetach(int) error
 ++pkg syscall (linux-s390x-cgo), func PtraceGetEventMsg(int) (uint, error)
 ++pkg syscall (linux-s390x-cgo), func PtraceGetRegs(int, *PtraceRegs) error
 ++pkg syscall (linux-s390x-cgo), func PtracePeekData(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func PtracePeekText(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func PtracePokeData(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func PtracePokeText(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func PtraceSetOptions(int, int) error
 ++pkg syscall (linux-s390x-cgo), func PtraceSetRegs(int, *PtraceRegs) error
 ++pkg syscall (linux-s390x-cgo), func PtraceSingleStep(int) error
 ++pkg syscall (linux-s390x-cgo), func PtraceSyscall(int, int) error
 ++pkg syscall (linux-s390x-cgo), func Pwrite(int, []uint8, int64) (int, error)
 ++pkg syscall (linux-s390x-cgo), func RawSyscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x-cgo), func RawSyscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x-cgo), func ReadDirent(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Read(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Reboot(int) error
 ++pkg syscall (linux-s390x-cgo), func Recvfrom(int, []uint8, int) (int, Sockaddr, error)
 ++pkg syscall (linux-s390x-cgo), func Recvmsg(int, []uint8, []uint8, int) (int, int, int, Sockaddr, error)
 ++pkg syscall (linux-s390x-cgo), func Removexattr(string, string) error
 ++pkg syscall (linux-s390x-cgo), func Renameat(int, string, int, string) error
 ++pkg syscall (linux-s390x-cgo), func Seek(int, int64, int) (int64, error)
 ++pkg syscall (linux-s390x-cgo), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Sendfile(int, int, *int64, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Sendmsg(int, []uint8, []uint8, Sockaddr, int) error
 ++pkg syscall (linux-s390x-cgo), func SendmsgN(int, []uint8, []uint8, Sockaddr, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Sendto(int, []uint8, int, Sockaddr) error
 ++pkg syscall (linux-s390x-cgo), func Setdomainname([]uint8) error
 ++pkg syscall (linux-s390x-cgo), func Setfsgid(int) error
 ++pkg syscall (linux-s390x-cgo), func Setfsuid(int) error
 ++pkg syscall (linux-s390x-cgo), func Setgid(int) error
 ++pkg syscall (linux-s390x-cgo), func Setgroups([]int) error
 ++pkg syscall (linux-s390x-cgo), func Sethostname([]uint8) error
 ++pkg syscall (linux-s390x-cgo), func SetLsfPromisc(string, bool) error
 ++pkg syscall (linux-s390x-cgo), func SetNonblock(int, bool) error
 ++pkg syscall (linux-s390x-cgo), func Setpgid(int, int) error
 ++pkg syscall (linux-s390x-cgo), func Setpriority(int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func Setregid(int, int) error
 ++pkg syscall (linux-s390x-cgo), func Setresgid(int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func Setresuid(int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func Setreuid(int, int) error
 ++pkg syscall (linux-s390x-cgo), func Setrlimit(int, *Rlimit) error
 ++pkg syscall (linux-s390x-cgo), func Setsid() (int, error)
 ++pkg syscall (linux-s390x-cgo), func SetsockoptByte(int, int, int, uint8) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptICMPv6Filter(int, int, int, *ICMPv6Filter) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptInet4Addr(int, int, int, [4]uint8) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptInt(int, int, int, int) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptIPMreq(int, int, int, *IPMreq) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptIPMreqn(int, int, int, *IPMreqn) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptIPv6Mreq(int, int, int, *IPv6Mreq) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptLinger(int, int, int, *Linger) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptString(int, int, int, string) error
 ++pkg syscall (linux-s390x-cgo), func SetsockoptTimeval(int, int, int, *Timeval) error
 ++pkg syscall (linux-s390x-cgo), func Settimeofday(*Timeval) error
 ++pkg syscall (linux-s390x-cgo), func Setuid(int) error
 ++pkg syscall (linux-s390x-cgo), func Setxattr(string, string, []uint8, int) error
 ++pkg syscall (linux-s390x-cgo), func Shutdown(int, int) error
 ++pkg syscall (linux-s390x-cgo), func SlicePtrFromStrings([]string) ([]*uint8, error)
 ++pkg syscall (linux-s390x-cgo), func Socket(int, int, int) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Socketpair(int, int, int) ([2]int, error)
 ++pkg syscall (linux-s390x-cgo), func Splice(int, *int64, int, *int64, int, int) (int64, error)
 ++pkg syscall (linux-s390x-cgo), func Statfs(string, *Statfs_t) error
 ++pkg syscall (linux-s390x-cgo), func Stat(string, *Stat_t) error
 ++pkg syscall (linux-s390x-cgo), func StringSlicePtr([]string) []*uint8
 ++pkg syscall (linux-s390x-cgo), func Sync()
 ++pkg syscall (linux-s390x-cgo), func SyncFileRange(int, int64, int64, int) error
 ++pkg syscall (linux-s390x-cgo), func Syscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x-cgo), func Syscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x-cgo), func Sysinfo(*Sysinfo_t) error
 ++pkg syscall (linux-s390x-cgo), func Tee(int, int, int, int) (int64, error)
 ++pkg syscall (linux-s390x-cgo), func Tgkill(int, int, Signal) error
 ++pkg syscall (linux-s390x-cgo), func Times(*Tms) (uintptr, error)
 ++pkg syscall (linux-s390x-cgo), func Time(*Time_t) (Time_t, error)
 ++pkg syscall (linux-s390x-cgo), func TimevalToNsec(Timeval) int64
 ++pkg syscall (linux-s390x-cgo), func Truncate(string, int64) error
 ++pkg syscall (linux-s390x-cgo), func Umask(int) int
 ++pkg syscall (linux-s390x-cgo), func Uname(*Utsname) error
 ++pkg syscall (linux-s390x-cgo), func UnixCredentials(*Ucred) []uint8
 ++pkg syscall (linux-s390x-cgo), func UnixRights(...int) []uint8
 ++pkg syscall (linux-s390x-cgo), func Unlinkat(int, string) error
 ++pkg syscall (linux-s390x-cgo), func Unmount(string, int) error
 ++pkg syscall (linux-s390x-cgo), func Unshare(int) error
 ++pkg syscall (linux-s390x-cgo), func Ustat(int, *Ustat_t) error
 ++pkg syscall (linux-s390x-cgo), func Utime(string, *Utimbuf) error
 ++pkg syscall (linux-s390x-cgo), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
 ++pkg syscall (linux-s390x-cgo), func Write(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x-cgo), method (*Cmsghdr) SetLen(int)
 ++pkg syscall (linux-s390x-cgo), method (*Iovec) SetLen(int)
 ++pkg syscall (linux-s390x-cgo), method (*Msghdr) SetControllen(int)
 ++pkg syscall (linux-s390x-cgo), method (*PtraceRegs) PC() uint64
 ++pkg syscall (linux-s390x-cgo), method (*PtraceRegs) SetPC(uint64)
 ++pkg syscall (linux-s390x-cgo), type Cmsghdr struct
 ++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, Len uint64
 ++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, Level int32
 ++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, Type int32
 ++pkg syscall (linux-s390x-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
 ++pkg syscall (linux-s390x-cgo), type Credential struct
 ++pkg syscall (linux-s390x-cgo), type Credential struct, Gid uint32
 ++pkg syscall (linux-s390x-cgo), type Credential struct, Groups []uint32
 ++pkg syscall (linux-s390x-cgo), type Credential struct, Uid uint32
 ++pkg syscall (linux-s390x-cgo), type Dirent struct
 ++pkg syscall (linux-s390x-cgo), type Dirent struct, Ino uint64
 ++pkg syscall (linux-s390x-cgo), type Dirent struct, Name [256]uint8
 ++pkg syscall (linux-s390x-cgo), type Dirent struct, Off int64
 ++pkg syscall (linux-s390x-cgo), type Dirent struct, Pad_cgo_0 [5]uint8
 ++pkg syscall (linux-s390x-cgo), type Dirent struct, Reclen uint16
 ++pkg syscall (linux-s390x-cgo), type Dirent struct, Type uint8
 ++pkg syscall (linux-s390x-cgo), type EpollEvent struct
 ++pkg syscall (linux-s390x-cgo), type EpollEvent struct, Events uint32
 ++pkg syscall (linux-s390x-cgo), type EpollEvent struct, Fd int32
 ++pkg syscall (linux-s390x-cgo), type EpollEvent struct, Pad int32
 ++pkg syscall (linux-s390x-cgo), type FdSet struct
 ++pkg syscall (linux-s390x-cgo), type FdSet struct, Bits [16]int64
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Len int64
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Pid int32
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Start int64
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Type int16
 ++pkg syscall (linux-s390x-cgo), type Flock_t struct, Whence int16
 ++pkg syscall (linux-s390x-cgo), type Fsid struct
 ++pkg syscall (linux-s390x-cgo), type Fsid struct, X__val [2]int32
 ++pkg syscall (linux-s390x-cgo), type ICMPv6Filter struct
 ++pkg syscall (linux-s390x-cgo), type ICMPv6Filter struct, Data [8]uint32
 ++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct
 ++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Family uint8
 ++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Flags uint8
 ++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Index uint32
 ++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Prefixlen uint8
 ++pkg syscall (linux-s390x-cgo), type IfAddrmsg struct, Scope uint8
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Change uint32
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Family uint8
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Flags uint32
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Index int32
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, Type uint16
 ++pkg syscall (linux-s390x-cgo), type IfInfomsg struct, X__ifi_pad uint8
 ++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct
 ++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct, Addr [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct, Ifindex int32
 ++pkg syscall (linux-s390x-cgo), type Inet4Pktinfo struct, Spec_dst [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Inet6Pktinfo struct
 ++pkg syscall (linux-s390x-cgo), type Inet6Pktinfo struct, Addr [16]uint8
 ++pkg syscall (linux-s390x-cgo), type Inet6Pktinfo struct, Ifindex uint32
 ++pkg syscall (linux-s390x-cgo), type InotifyEvent struct
 ++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Cookie uint32
 ++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Len uint32
 ++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Mask uint32
 ++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Name [0]uint8
 ++pkg syscall (linux-s390x-cgo), type InotifyEvent struct, Wd int32
 ++pkg syscall (linux-s390x-cgo), type Iovec struct
 ++pkg syscall (linux-s390x-cgo), type Iovec struct, Base *uint8
 ++pkg syscall (linux-s390x-cgo), type Iovec struct, Len uint64
 ++pkg syscall (linux-s390x-cgo), type IPMreqn struct
 ++pkg syscall (linux-s390x-cgo), type IPMreqn struct, Address [4]uint8
 ++pkg syscall (linux-s390x-cgo), type IPMreqn struct, Ifindex int32
 ++pkg syscall (linux-s390x-cgo), type IPMreqn struct, Multiaddr [4]uint8
 ++pkg syscall (linux-s390x-cgo), type IPv6MTUInfo struct
 ++pkg syscall (linux-s390x-cgo), type IPv6MTUInfo struct, Addr RawSockaddrInet6
 ++pkg syscall (linux-s390x-cgo), type IPv6MTUInfo struct, Mtu uint32
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Controllen uint64
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Control *uint8
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Flags int32
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Iov *Iovec
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Iovlen uint64
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Namelen uint32
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Name *uint8
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Msghdr struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type NetlinkMessage struct
 ++pkg syscall (linux-s390x-cgo), type NetlinkMessage struct, Data []uint8
 ++pkg syscall (linux-s390x-cgo), type NetlinkMessage struct, Header NlMsghdr
 ++pkg syscall (linux-s390x-cgo), type NetlinkRouteAttr struct
 ++pkg syscall (linux-s390x-cgo), type NetlinkRouteAttr struct, Attr RtAttr
 ++pkg syscall (linux-s390x-cgo), type NetlinkRouteAttr struct, Value []uint8
 ++pkg syscall (linux-s390x-cgo), type NetlinkRouteRequest struct
 ++pkg syscall (linux-s390x-cgo), type NetlinkRouteRequest struct, Data RtGenmsg
 ++pkg syscall (linux-s390x-cgo), type NetlinkRouteRequest struct, Header NlMsghdr
 ++pkg syscall (linux-s390x-cgo), type NlAttr struct
 ++pkg syscall (linux-s390x-cgo), type NlAttr struct, Len uint16
 ++pkg syscall (linux-s390x-cgo), type NlAttr struct, Type uint16
 ++pkg syscall (linux-s390x-cgo), type NlMsgerr struct
 ++pkg syscall (linux-s390x-cgo), type NlMsgerr struct, Error int32
 ++pkg syscall (linux-s390x-cgo), type NlMsgerr struct, Msg NlMsghdr
 ++pkg syscall (linux-s390x-cgo), type NlMsghdr struct
 ++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Flags uint16
 ++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Len uint32
 ++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Pid uint32
 ++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Seq uint32
 ++pkg syscall (linux-s390x-cgo), type NlMsghdr struct, Type uint16
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct, Fpc uint32
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct, Fprs [16]float64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsFp struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Access_id uint8
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Address uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Control_regs [0]uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Ending_addr uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_0 [24]uint8
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_1 [8]uint8
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_2 [6]uint8
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Pad_cgo_3 [7]uint8
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Perc_atmid uint16
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPer struct, Starting_addr uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPsw struct
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPsw struct, Addr uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegsPsw struct, Mask uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Acrs [16]uint32
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Fp_regs PtraceRegsFp
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Gprs [16]uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Ieee_instruction_pointer uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Orig_gpr2 uint64
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Per_info PtraceRegsPer
 ++pkg syscall (linux-s390x-cgo), type PtraceRegs struct, Psw PtraceRegsPsw
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrAny struct, Pad [96]uint8
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrInet4 struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrInet4 struct, Zero [8]uint8
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrInet6 struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Addr [8]uint8
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Halen uint8
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Hatype uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Ifindex int32
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Pkttype uint8
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrLinklayer struct, Protocol uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Groups uint32
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Pad uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrNetlink struct, Pid uint32
 ++pkg syscall (linux-s390x-cgo), type RawSockaddr struct, Data [14]uint8
 ++pkg syscall (linux-s390x-cgo), type RawSockaddr struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrUnix struct
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrUnix struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type RawSockaddrUnix struct, Path [108]int8
 ++pkg syscall (linux-s390x-cgo), type Rlimit struct
 ++pkg syscall (linux-s390x-cgo), type Rlimit struct, Cur uint64
 ++pkg syscall (linux-s390x-cgo), type Rlimit struct, Max uint64
 ++pkg syscall (linux-s390x-cgo), type RtAttr struct
 ++pkg syscall (linux-s390x-cgo), type RtAttr struct, Len uint16
 ++pkg syscall (linux-s390x-cgo), type RtAttr struct, Type uint16
 ++pkg syscall (linux-s390x-cgo), type RtGenmsg struct
 ++pkg syscall (linux-s390x-cgo), type RtGenmsg struct, Family uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Dst_len uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Family uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Flags uint32
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Protocol uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Scope uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Src_len uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Table uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Tos uint8
 ++pkg syscall (linux-s390x-cgo), type RtMsg struct, Type uint8
 ++pkg syscall (linux-s390x-cgo), type RtNexthop struct
 ++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Flags uint8
 ++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Hops uint8
 ++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Ifindex int32
 ++pkg syscall (linux-s390x-cgo), type RtNexthop struct, Len uint16
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Idrss int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Inblock int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Isrss int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Ixrss int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Majflt int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Maxrss int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Minflt int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Msgrcv int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Msgsnd int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Nivcsw int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Nsignals int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Nswap int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Nvcsw int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Oublock int64
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Stime Timeval
 ++pkg syscall (linux-s390x-cgo), type Rusage struct, Utime Timeval
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Addr [8]uint8
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Halen uint8
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Hatype uint16
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Ifindex int
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Pkttype uint8
 ++pkg syscall (linux-s390x-cgo), type SockaddrLinklayer struct, Protocol uint16
 ++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct
 ++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Family uint16
 ++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Groups uint32
 ++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Pad uint16
 ++pkg syscall (linux-s390x-cgo), type SockaddrNetlink struct, Pid uint32
 ++pkg syscall (linux-s390x-cgo), type SocketControlMessage struct
 ++pkg syscall (linux-s390x-cgo), type SocketControlMessage struct, Data []uint8
 ++pkg syscall (linux-s390x-cgo), type SocketControlMessage struct, Header Cmsghdr
 ++pkg syscall (linux-s390x-cgo), type SockFilter struct
 ++pkg syscall (linux-s390x-cgo), type SockFilter struct, Code uint16
 ++pkg syscall (linux-s390x-cgo), type SockFilter struct, Jf uint8
 ++pkg syscall (linux-s390x-cgo), type SockFilter struct, Jt uint8
 ++pkg syscall (linux-s390x-cgo), type SockFilter struct, K uint32
 ++pkg syscall (linux-s390x-cgo), type SockFprog struct
 ++pkg syscall (linux-s390x-cgo), type SockFprog struct, Filter *SockFilter
 ++pkg syscall (linux-s390x-cgo), type SockFprog struct, Len uint16
 ++pkg syscall (linux-s390x-cgo), type SockFprog struct, Pad_cgo_0 [6]uint8
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Bavail uint64
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Bfree uint64
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Blocks uint64
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Bsize uint32
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Ffree uint64
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Files uint64
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Flags uint32
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Frsize uint32
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Fsid Fsid
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Namelen uint32
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Spare [4]uint32
 ++pkg syscall (linux-s390x-cgo), type Statfs_t struct, Type uint32
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Atim Timespec
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Blksize int64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Blocks int64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Ctim Timespec
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Dev uint64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Gid uint32
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Ino uint64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Mode uint32
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Mtim Timespec
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Nlink uint64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Pad0 int32
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Rdev uint64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Size int64
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, Uid uint32
 ++pkg syscall (linux-s390x-cgo), type Stat_t struct, X__unused [3]int64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Bufferram uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Freehigh uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Freeram uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Freeswap uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Loads [3]uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Pad uint16
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Procs uint16
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Sharedram uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Totalhigh uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Totalram uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Totalswap uint64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Unit uint32
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, Uptime int64
 ++pkg syscall (linux-s390x-cgo), type Sysinfo_t struct, X_f [0]uint8
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Chroot string
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Cloneflags uintptr
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Credential *Credential
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Ctty int
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Foreground bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, GidMappingsEnableSetgroups bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, GidMappings []SysProcIDMap
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Noctty bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Pdeathsig Signal
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Pgid int
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Ptrace bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Setctty bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Setpgid bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, Setsid bool
 ++pkg syscall (linux-s390x-cgo), type SysProcAttr struct, UidMappings []SysProcIDMap
 ++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct
 ++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct, ContainerID int
 ++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct, HostID int
 ++pkg syscall (linux-s390x-cgo), type SysProcIDMap struct, Size int
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Advmss uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Ato uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Backoff uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Ca_state uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Fackets uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_ack_recv uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_ack_sent uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_data_recv uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Last_data_sent uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Lost uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Options uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Pad_cgo_0 [2]uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Pmtu uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Probes uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_mss uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_rtt uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_space uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rcv_ssthresh uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Reordering uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Retransmits uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Retrans uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rto uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rtt uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Rttvar uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Sacked uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Snd_cwnd uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Snd_mss uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Snd_ssthresh uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, State uint8
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Total_retrans uint32
 ++pkg syscall (linux-s390x-cgo), type TCPInfo struct, Unacked uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Cc [32]uint8
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Cflag uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Iflag uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Ispeed uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Lflag uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Line uint8
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Oflag uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Ospeed uint32
 ++pkg syscall (linux-s390x-cgo), type Termios struct, Pad_cgo_0 [3]uint8
 ++pkg syscall (linux-s390x-cgo), type Timespec struct, Nsec int64
 ++pkg syscall (linux-s390x-cgo), type Timespec struct, Sec int64
 ++pkg syscall (linux-s390x-cgo), type Time_t int64
 ++pkg syscall (linux-s390x-cgo), type Timeval struct, Sec int64
 ++pkg syscall (linux-s390x-cgo), type Timeval struct, Usec int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Calcnt int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Constant int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Errcnt int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Esterror int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Freq int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Jitcnt int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Jitter int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Maxerror int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Modes uint32
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Offset int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_2 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Pad_cgo_3 [44]uint8
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Ppsfreq int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Precision int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Shift int32
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Stabil int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Status int32
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Stbcnt int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Tai int32
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Tick int64
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Time Timeval
 ++pkg syscall (linux-s390x-cgo), type Timex struct, Tolerance int64
 ++pkg syscall (linux-s390x-cgo), type Tms struct
 ++pkg syscall (linux-s390x-cgo), type Tms struct, Cstime int64
 ++pkg syscall (linux-s390x-cgo), type Tms struct, Cutime int64
 ++pkg syscall (linux-s390x-cgo), type Tms struct, Stime int64
 ++pkg syscall (linux-s390x-cgo), type Tms struct, Utime int64
 ++pkg syscall (linux-s390x-cgo), type Ucred struct
 ++pkg syscall (linux-s390x-cgo), type Ucred struct, Gid uint32
 ++pkg syscall (linux-s390x-cgo), type Ucred struct, Pid int32
 ++pkg syscall (linux-s390x-cgo), type Ucred struct, Uid uint32
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Fname [6]uint8
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Fpack [6]uint8
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Tfree int32
 ++pkg syscall (linux-s390x-cgo), type Ustat_t struct, Tinode uint64
 ++pkg syscall (linux-s390x-cgo), type Utimbuf struct
 ++pkg syscall (linux-s390x-cgo), type Utimbuf struct, Actime int64
 ++pkg syscall (linux-s390x-cgo), type Utimbuf struct, Modtime int64
 ++pkg syscall (linux-s390x-cgo), type Utsname struct
 ++pkg syscall (linux-s390x-cgo), type Utsname struct, Domainname [65]uint8
 ++pkg syscall (linux-s390x-cgo), type Utsname struct, Machine [65]uint8
 ++pkg syscall (linux-s390x-cgo), type Utsname struct, Nodename [65]uint8
 ++pkg syscall (linux-s390x-cgo), type Utsname struct, Release [65]uint8
 ++pkg syscall (linux-s390x-cgo), type Utsname struct, Sysname [65]uint8
 ++pkg syscall (linux-s390x-cgo), type Utsname struct, Version [65]uint8
 ++pkg syscall (linux-s390x-cgo), type WaitStatus uint32
 ++pkg syscall (linux-s390x-cgo), var Stderr int
 ++pkg syscall (linux-s390x-cgo), var Stdin int
 ++pkg syscall (linux-s390x-cgo), var Stdout int
 ++pkg syscall (linux-s390x), const AF_ALG = 38
 ++pkg syscall (linux-s390x), const AF_ALG ideal-int
 ++pkg syscall (linux-s390x), const AF_APPLETALK = 5
 ++pkg syscall (linux-s390x), const AF_APPLETALK ideal-int
 ++pkg syscall (linux-s390x), const AF_ASH = 18
 ++pkg syscall (linux-s390x), const AF_ASH ideal-int
 ++pkg syscall (linux-s390x), const AF_ATMPVC = 8
 ++pkg syscall (linux-s390x), const AF_ATMPVC ideal-int
 ++pkg syscall (linux-s390x), const AF_ATMSVC = 20
 ++pkg syscall (linux-s390x), const AF_ATMSVC ideal-int
 ++pkg syscall (linux-s390x), const AF_AX25 = 3
 ++pkg syscall (linux-s390x), const AF_AX25 ideal-int
 ++pkg syscall (linux-s390x), const AF_BLUETOOTH = 31
 ++pkg syscall (linux-s390x), const AF_BLUETOOTH ideal-int
 ++pkg syscall (linux-s390x), const AF_BRIDGE = 7
 ++pkg syscall (linux-s390x), const AF_BRIDGE ideal-int
 ++pkg syscall (linux-s390x), const AF_CAIF = 37
 ++pkg syscall (linux-s390x), const AF_CAIF ideal-int
 ++pkg syscall (linux-s390x), const AF_CAN = 29
 ++pkg syscall (linux-s390x), const AF_CAN ideal-int
 ++pkg syscall (linux-s390x), const AF_DECnet = 12
 ++pkg syscall (linux-s390x), const AF_DECnet ideal-int
 ++pkg syscall (linux-s390x), const AF_ECONET = 19
 ++pkg syscall (linux-s390x), const AF_ECONET ideal-int
 ++pkg syscall (linux-s390x), const AF_FILE = 1
 ++pkg syscall (linux-s390x), const AF_FILE ideal-int
 ++pkg syscall (linux-s390x), const AF_IEEE802154 = 36
 ++pkg syscall (linux-s390x), const AF_IEEE802154 ideal-int
 ++pkg syscall (linux-s390x), const AF_INET6 = 10
 ++pkg syscall (linux-s390x), const AF_IPX = 4
 ++pkg syscall (linux-s390x), const AF_IPX ideal-int
 ++pkg syscall (linux-s390x), const AF_IRDA = 23
 ++pkg syscall (linux-s390x), const AF_IRDA ideal-int
 ++pkg syscall (linux-s390x), const AF_ISDN = 34
 ++pkg syscall (linux-s390x), const AF_ISDN ideal-int
 ++pkg syscall (linux-s390x), const AF_IUCV = 32
 ++pkg syscall (linux-s390x), const AF_IUCV ideal-int
 ++pkg syscall (linux-s390x), const AF_KEY = 15
 ++pkg syscall (linux-s390x), const AF_KEY ideal-int
 ++pkg syscall (linux-s390x), const AF_LLC = 26
 ++pkg syscall (linux-s390x), const AF_LLC ideal-int
 ++pkg syscall (linux-s390x), const AF_LOCAL = 1
 ++pkg syscall (linux-s390x), const AF_LOCAL ideal-int
 ++pkg syscall (linux-s390x), const AF_MAX = 40
 ++pkg syscall (linux-s390x), const AF_MAX ideal-int
 ++pkg syscall (linux-s390x), const AF_NETBEUI = 13
 ++pkg syscall (linux-s390x), const AF_NETBEUI ideal-int
 ++pkg syscall (linux-s390x), const AF_NETLINK = 16
 ++pkg syscall (linux-s390x), const AF_NETLINK ideal-int
 ++pkg syscall (linux-s390x), const AF_NETROM = 6
 ++pkg syscall (linux-s390x), const AF_NETROM ideal-int
 ++pkg syscall (linux-s390x), const AF_NFC = 39
 ++pkg syscall (linux-s390x), const AF_NFC ideal-int
 ++pkg syscall (linux-s390x), const AF_PACKET = 17
 ++pkg syscall (linux-s390x), const AF_PACKET ideal-int
 ++pkg syscall (linux-s390x), const AF_PHONET = 35
 ++pkg syscall (linux-s390x), const AF_PHONET ideal-int
 ++pkg syscall (linux-s390x), const AF_PPPOX = 24
 ++pkg syscall (linux-s390x), const AF_PPPOX ideal-int
 ++pkg syscall (linux-s390x), const AF_RDS = 21
 ++pkg syscall (linux-s390x), const AF_RDS ideal-int
 ++pkg syscall (linux-s390x), const AF_ROSE = 11
 ++pkg syscall (linux-s390x), const AF_ROSE ideal-int
 ++pkg syscall (linux-s390x), const AF_ROUTE = 16
 ++pkg syscall (linux-s390x), const AF_ROUTE ideal-int
 ++pkg syscall (linux-s390x), const AF_RXRPC = 33
 ++pkg syscall (linux-s390x), const AF_RXRPC ideal-int
 ++pkg syscall (linux-s390x), const AF_SECURITY = 14
 ++pkg syscall (linux-s390x), const AF_SECURITY ideal-int
 ++pkg syscall (linux-s390x), const AF_SNA = 22
 ++pkg syscall (linux-s390x), const AF_SNA ideal-int
 ++pkg syscall (linux-s390x), const AF_TIPC = 30
 ++pkg syscall (linux-s390x), const AF_TIPC ideal-int
 ++pkg syscall (linux-s390x), const AF_WANPIPE = 25
 ++pkg syscall (linux-s390x), const AF_WANPIPE ideal-int
 ++pkg syscall (linux-s390x), const AF_X25 = 9
 ++pkg syscall (linux-s390x), const AF_X25 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ADAPT = 264
 ++pkg syscall (linux-s390x), const ARPHRD_ADAPT ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_APPLETLK = 8
 ++pkg syscall (linux-s390x), const ARPHRD_APPLETLK ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ARCNET = 7
 ++pkg syscall (linux-s390x), const ARPHRD_ARCNET ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ASH = 781
 ++pkg syscall (linux-s390x), const ARPHRD_ASH ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ATM = 19
 ++pkg syscall (linux-s390x), const ARPHRD_ATM ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_AX25 = 3
 ++pkg syscall (linux-s390x), const ARPHRD_AX25 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_BIF = 775
 ++pkg syscall (linux-s390x), const ARPHRD_BIF ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_CAIF = 822
 ++pkg syscall (linux-s390x), const ARPHRD_CAIF ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_CAN = 280
 ++pkg syscall (linux-s390x), const ARPHRD_CAN ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_CHAOS = 5
 ++pkg syscall (linux-s390x), const ARPHRD_CHAOS ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_CISCO = 513
 ++pkg syscall (linux-s390x), const ARPHRD_CISCO ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_CSLIP = 257
 ++pkg syscall (linux-s390x), const ARPHRD_CSLIP6 = 259
 ++pkg syscall (linux-s390x), const ARPHRD_CSLIP6 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_CSLIP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_DDCMP = 517
 ++pkg syscall (linux-s390x), const ARPHRD_DDCMP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_DLCI = 15
 ++pkg syscall (linux-s390x), const ARPHRD_DLCI ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ECONET = 782
 ++pkg syscall (linux-s390x), const ARPHRD_ECONET ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_EETHER = 2
 ++pkg syscall (linux-s390x), const ARPHRD_EETHER ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ETHER = 1
 ++pkg syscall (linux-s390x), const ARPHRD_ETHER ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_EUI64 = 27
 ++pkg syscall (linux-s390x), const ARPHRD_EUI64 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_FCAL = 785
 ++pkg syscall (linux-s390x), const ARPHRD_FCAL ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_FCFABRIC = 787
 ++pkg syscall (linux-s390x), const ARPHRD_FCFABRIC ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_FCPL = 786
 ++pkg syscall (linux-s390x), const ARPHRD_FCPL ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_FCPP = 784
 ++pkg syscall (linux-s390x), const ARPHRD_FCPP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_FDDI = 774
 ++pkg syscall (linux-s390x), const ARPHRD_FDDI ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_FRAD = 770
 ++pkg syscall (linux-s390x), const ARPHRD_FRAD ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_HDLC = 513
 ++pkg syscall (linux-s390x), const ARPHRD_HDLC ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_HIPPI = 780
 ++pkg syscall (linux-s390x), const ARPHRD_HIPPI ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_HWX25 = 272
 ++pkg syscall (linux-s390x), const ARPHRD_HWX25 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE1394 = 24
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE1394 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE80211 = 801
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE80211 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_PRISM = 802
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_PRISM ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_RADIOTAP = 803
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE80211_RADIOTAP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802154 = 804
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802154 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802154_MONITOR = 805
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802154_MONITOR ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802 = 6
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802_TR = 800
 ++pkg syscall (linux-s390x), const ARPHRD_IEEE802_TR ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_INFINIBAND = 32
 ++pkg syscall (linux-s390x), const ARPHRD_INFINIBAND ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IP6GRE = 823
 ++pkg syscall (linux-s390x), const ARPHRD_IP6GRE ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IPDDP = 777
 ++pkg syscall (linux-s390x), const ARPHRD_IPDDP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IPGRE = 778
 ++pkg syscall (linux-s390x), const ARPHRD_IPGRE ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_IRDA = 783
 ++pkg syscall (linux-s390x), const ARPHRD_IRDA ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_LAPB = 516
 ++pkg syscall (linux-s390x), const ARPHRD_LAPB ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_LOCALTLK = 773
 ++pkg syscall (linux-s390x), const ARPHRD_LOCALTLK ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_LOOPBACK = 772
 ++pkg syscall (linux-s390x), const ARPHRD_LOOPBACK ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_METRICOM = 23
 ++pkg syscall (linux-s390x), const ARPHRD_METRICOM ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_NETLINK = 824
 ++pkg syscall (linux-s390x), const ARPHRD_NETLINK ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_NETROM = 0
 ++pkg syscall (linux-s390x), const ARPHRD_NETROM ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_NONE = 65534
 ++pkg syscall (linux-s390x), const ARPHRD_NONE ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_PHONET = 820
 ++pkg syscall (linux-s390x), const ARPHRD_PHONET ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_PHONET_PIPE = 821
 ++pkg syscall (linux-s390x), const ARPHRD_PHONET_PIPE ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_PIMREG = 779
 ++pkg syscall (linux-s390x), const ARPHRD_PIMREG ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_PPP = 512
 ++pkg syscall (linux-s390x), const ARPHRD_PPP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_PRONET = 4
 ++pkg syscall (linux-s390x), const ARPHRD_PRONET ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_RAWHDLC = 518
 ++pkg syscall (linux-s390x), const ARPHRD_RAWHDLC ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_ROSE = 270
 ++pkg syscall (linux-s390x), const ARPHRD_ROSE ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_RSRVD = 260
 ++pkg syscall (linux-s390x), const ARPHRD_RSRVD ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_SIT = 776
 ++pkg syscall (linux-s390x), const ARPHRD_SIT ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_SKIP = 771
 ++pkg syscall (linux-s390x), const ARPHRD_SKIP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_SLIP = 256
 ++pkg syscall (linux-s390x), const ARPHRD_SLIP6 = 258
 ++pkg syscall (linux-s390x), const ARPHRD_SLIP6 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_SLIP ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_TUNNEL6 = 769
 ++pkg syscall (linux-s390x), const ARPHRD_TUNNEL6 ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_TUNNEL = 768
 ++pkg syscall (linux-s390x), const ARPHRD_TUNNEL ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_VOID = 65535
 ++pkg syscall (linux-s390x), const ARPHRD_VOID ideal-int
 ++pkg syscall (linux-s390x), const ARPHRD_X25 = 271
 ++pkg syscall (linux-s390x), const ARPHRD_X25 ideal-int
 ++pkg syscall (linux-s390x), const B0 = 0
 ++pkg syscall (linux-s390x), const B0 ideal-int
 ++pkg syscall (linux-s390x), const B1000000 = 4104
 ++pkg syscall (linux-s390x), const B1000000 ideal-int
 ++pkg syscall (linux-s390x), const B110 = 3
 ++pkg syscall (linux-s390x), const B110 ideal-int
 ++pkg syscall (linux-s390x), const B1152000 = 4105
 ++pkg syscall (linux-s390x), const B1152000 ideal-int
 ++pkg syscall (linux-s390x), const B115200 = 4098
 ++pkg syscall (linux-s390x), const B115200 ideal-int
 ++pkg syscall (linux-s390x), const B1200 = 9
 ++pkg syscall (linux-s390x), const B1200 ideal-int
 ++pkg syscall (linux-s390x), const B134 = 4
 ++pkg syscall (linux-s390x), const B134 ideal-int
 ++pkg syscall (linux-s390x), const B1500000 = 4106
 ++pkg syscall (linux-s390x), const B1500000 ideal-int
 ++pkg syscall (linux-s390x), const B150 = 5
 ++pkg syscall (linux-s390x), const B150 ideal-int
 ++pkg syscall (linux-s390x), const B1800 = 10
 ++pkg syscall (linux-s390x), const B1800 ideal-int
 ++pkg syscall (linux-s390x), const B19200 = 14
 ++pkg syscall (linux-s390x), const B19200 ideal-int
 ++pkg syscall (linux-s390x), const B2000000 = 4107
 ++pkg syscall (linux-s390x), const B2000000 ideal-int
 ++pkg syscall (linux-s390x), const B200 = 6
 ++pkg syscall (linux-s390x), const B200 ideal-int
 ++pkg syscall (linux-s390x), const B230400 = 4099
 ++pkg syscall (linux-s390x), const B230400 ideal-int
 ++pkg syscall (linux-s390x), const B2400 = 11
 ++pkg syscall (linux-s390x), const B2400 ideal-int
 ++pkg syscall (linux-s390x), const B2500000 = 4108
 ++pkg syscall (linux-s390x), const B2500000 ideal-int
 ++pkg syscall (linux-s390x), const B3000000 = 4109
 ++pkg syscall (linux-s390x), const B3000000 ideal-int
 ++pkg syscall (linux-s390x), const B300 = 7
 ++pkg syscall (linux-s390x), const B300 ideal-int
 ++pkg syscall (linux-s390x), const B3500000 = 4110
 ++pkg syscall (linux-s390x), const B3500000 ideal-int
 ++pkg syscall (linux-s390x), const B38400 = 15
 ++pkg syscall (linux-s390x), const B38400 ideal-int
 ++pkg syscall (linux-s390x), const B4000000 = 4111
 ++pkg syscall (linux-s390x), const B4000000 ideal-int
 ++pkg syscall (linux-s390x), const B460800 = 4100
 ++pkg syscall (linux-s390x), const B460800 ideal-int
 ++pkg syscall (linux-s390x), const B4800 = 12
 ++pkg syscall (linux-s390x), const B4800 ideal-int
 ++pkg syscall (linux-s390x), const B500000 = 4101
 ++pkg syscall (linux-s390x), const B500000 ideal-int
 ++pkg syscall (linux-s390x), const B50 = 1
 ++pkg syscall (linux-s390x), const B50 ideal-int
 ++pkg syscall (linux-s390x), const B576000 = 4102
 ++pkg syscall (linux-s390x), const B576000 ideal-int
 ++pkg syscall (linux-s390x), const B57600 = 4097
 ++pkg syscall (linux-s390x), const B57600 ideal-int
 ++pkg syscall (linux-s390x), const B600 = 8
 ++pkg syscall (linux-s390x), const B600 ideal-int
 ++pkg syscall (linux-s390x), const B75 = 2
 ++pkg syscall (linux-s390x), const B75 ideal-int
 ++pkg syscall (linux-s390x), const B921600 = 4103
 ++pkg syscall (linux-s390x), const B921600 ideal-int
 ++pkg syscall (linux-s390x), const B9600 = 13
 ++pkg syscall (linux-s390x), const B9600 ideal-int
 ++pkg syscall (linux-s390x), const BPF_A = 16
 ++pkg syscall (linux-s390x), const BPF_ABS = 32
 ++pkg syscall (linux-s390x), const BPF_ABS ideal-int
 ++pkg syscall (linux-s390x), const BPF_ADD = 0
 ++pkg syscall (linux-s390x), const BPF_ADD ideal-int
 ++pkg syscall (linux-s390x), const BPF_A ideal-int
 ++pkg syscall (linux-s390x), const BPF_ALU = 4
 ++pkg syscall (linux-s390x), const BPF_ALU ideal-int
 ++pkg syscall (linux-s390x), const BPF_AND = 80
 ++pkg syscall (linux-s390x), const BPF_AND ideal-int
 ++pkg syscall (linux-s390x), const BPF_B = 16
 ++pkg syscall (linux-s390x), const BPF_B ideal-int
 ++pkg syscall (linux-s390x), const BPF_DIV = 48
 ++pkg syscall (linux-s390x), const BPF_DIV ideal-int
 ++pkg syscall (linux-s390x), const BPF_H = 8
 ++pkg syscall (linux-s390x), const BPF_H ideal-int
 ++pkg syscall (linux-s390x), const BPF_IMM = 0
 ++pkg syscall (linux-s390x), const BPF_IMM ideal-int
 ++pkg syscall (linux-s390x), const BPF_IND = 64
 ++pkg syscall (linux-s390x), const BPF_IND ideal-int
 ++pkg syscall (linux-s390x), const BPF_JA = 0
 ++pkg syscall (linux-s390x), const BPF_JA ideal-int
 ++pkg syscall (linux-s390x), const BPF_JEQ = 16
 ++pkg syscall (linux-s390x), const BPF_JEQ ideal-int
 ++pkg syscall (linux-s390x), const BPF_JGE = 48
 ++pkg syscall (linux-s390x), const BPF_JGE ideal-int
 ++pkg syscall (linux-s390x), const BPF_JGT = 32
 ++pkg syscall (linux-s390x), const BPF_JGT ideal-int
 ++pkg syscall (linux-s390x), const BPF_JMP = 5
 ++pkg syscall (linux-s390x), const BPF_JMP ideal-int
 ++pkg syscall (linux-s390x), const BPF_JSET = 64
 ++pkg syscall (linux-s390x), const BPF_JSET ideal-int
 ++pkg syscall (linux-s390x), const BPF_K = 0
 ++pkg syscall (linux-s390x), const BPF_K ideal-int
 ++pkg syscall (linux-s390x), const BPF_LD = 0
 ++pkg syscall (linux-s390x), const BPF_LD ideal-int
 ++pkg syscall (linux-s390x), const BPF_LDX = 1
 ++pkg syscall (linux-s390x), const BPF_LDX ideal-int
 ++pkg syscall (linux-s390x), const BPF_LEN = 128
 ++pkg syscall (linux-s390x), const BPF_LEN ideal-int
 ++pkg syscall (linux-s390x), const BPF_LSH = 96
 ++pkg syscall (linux-s390x), const BPF_LSH ideal-int
 ++pkg syscall (linux-s390x), const BPF_MAJOR_VERSION = 1
 ++pkg syscall (linux-s390x), const BPF_MAJOR_VERSION ideal-int
 ++pkg syscall (linux-s390x), const BPF_MAXINSNS = 4096
 ++pkg syscall (linux-s390x), const BPF_MAXINSNS ideal-int
 ++pkg syscall (linux-s390x), const BPF_MEM = 96
 ++pkg syscall (linux-s390x), const BPF_MEM ideal-int
 ++pkg syscall (linux-s390x), const BPF_MEMWORDS = 16
 ++pkg syscall (linux-s390x), const BPF_MEMWORDS ideal-int
 ++pkg syscall (linux-s390x), const BPF_MINOR_VERSION = 1
 ++pkg syscall (linux-s390x), const BPF_MINOR_VERSION ideal-int
 ++pkg syscall (linux-s390x), const BPF_MISC = 7
 ++pkg syscall (linux-s390x), const BPF_MISC ideal-int
 ++pkg syscall (linux-s390x), const BPF_MOD = 144
 ++pkg syscall (linux-s390x), const BPF_MOD ideal-int
 ++pkg syscall (linux-s390x), const BPF_MSH = 160
 ++pkg syscall (linux-s390x), const BPF_MSH ideal-int
 ++pkg syscall (linux-s390x), const BPF_MUL = 32
 ++pkg syscall (linux-s390x), const BPF_MUL ideal-int
 ++pkg syscall (linux-s390x), const BPF_NEG = 128
 ++pkg syscall (linux-s390x), const BPF_NEG ideal-int
 ++pkg syscall (linux-s390x), const BPF_OR = 64
 ++pkg syscall (linux-s390x), const BPF_OR ideal-int
 ++pkg syscall (linux-s390x), const BPF_RET = 6
 ++pkg syscall (linux-s390x), const BPF_RET ideal-int
 ++pkg syscall (linux-s390x), const BPF_RSH = 112
 ++pkg syscall (linux-s390x), const BPF_RSH ideal-int
 ++pkg syscall (linux-s390x), const BPF_ST = 2
 ++pkg syscall (linux-s390x), const BPF_ST ideal-int
 ++pkg syscall (linux-s390x), const BPF_STX = 3
 ++pkg syscall (linux-s390x), const BPF_STX ideal-int
 ++pkg syscall (linux-s390x), const BPF_SUB = 16
 ++pkg syscall (linux-s390x), const BPF_SUB ideal-int
 ++pkg syscall (linux-s390x), const BPF_TAX = 0
 ++pkg syscall (linux-s390x), const BPF_TAX ideal-int
 ++pkg syscall (linux-s390x), const BPF_TXA = 128
 ++pkg syscall (linux-s390x), const BPF_TXA ideal-int
 ++pkg syscall (linux-s390x), const BPF_W = 0
 ++pkg syscall (linux-s390x), const BPF_W ideal-int
 ++pkg syscall (linux-s390x), const BPF_X = 8
 ++pkg syscall (linux-s390x), const BPF_X ideal-int
 ++pkg syscall (linux-s390x), const BPF_XOR = 160
 ++pkg syscall (linux-s390x), const BPF_XOR ideal-int
 ++pkg syscall (linux-s390x), const BRKINT = 2
 ++pkg syscall (linux-s390x), const BRKINT ideal-int
 ++pkg syscall (linux-s390x), const CFLUSH = 15
 ++pkg syscall (linux-s390x), const CFLUSH ideal-int
 ++pkg syscall (linux-s390x), const CLOCAL = 2048
 ++pkg syscall (linux-s390x), const CLOCAL ideal-int
 ++pkg syscall (linux-s390x), const CLONE_CHILD_CLEARTID = 2097152
 ++pkg syscall (linux-s390x), const CLONE_CHILD_CLEARTID ideal-int
 ++pkg syscall (linux-s390x), const CLONE_CHILD_SETTID = 16777216
 ++pkg syscall (linux-s390x), const CLONE_CHILD_SETTID ideal-int
 ++pkg syscall (linux-s390x), const CLONE_DETACHED = 4194304
 ++pkg syscall (linux-s390x), const CLONE_DETACHED ideal-int
 ++pkg syscall (linux-s390x), const CLONE_FILES = 1024
 ++pkg syscall (linux-s390x), const CLONE_FILES ideal-int
 ++pkg syscall (linux-s390x), const CLONE_FS = 512
 ++pkg syscall (linux-s390x), const CLONE_FS ideal-int
 ++pkg syscall (linux-s390x), const CLONE_IO = 2147483648
 ++pkg syscall (linux-s390x), const CLONE_IO ideal-int
 ++pkg syscall (linux-s390x), const CLONE_NEWIPC = 134217728
 ++pkg syscall (linux-s390x), const CLONE_NEWIPC ideal-int
 ++pkg syscall (linux-s390x), const CLONE_NEWNET = 1073741824
 ++pkg syscall (linux-s390x), const CLONE_NEWNET ideal-int
 ++pkg syscall (linux-s390x), const CLONE_NEWNS = 131072
 ++pkg syscall (linux-s390x), const CLONE_NEWNS ideal-int
 ++pkg syscall (linux-s390x), const CLONE_NEWPID = 536870912
 ++pkg syscall (linux-s390x), const CLONE_NEWPID ideal-int
 ++pkg syscall (linux-s390x), const CLONE_NEWUSER = 268435456
 ++pkg syscall (linux-s390x), const CLONE_NEWUSER ideal-int
 ++pkg syscall (linux-s390x), const CLONE_NEWUTS = 67108864
 ++pkg syscall (linux-s390x), const CLONE_NEWUTS ideal-int
 ++pkg syscall (linux-s390x), const CLONE_PARENT = 32768
 ++pkg syscall (linux-s390x), const CLONE_PARENT ideal-int
 ++pkg syscall (linux-s390x), const CLONE_PARENT_SETTID = 1048576
 ++pkg syscall (linux-s390x), const CLONE_PARENT_SETTID ideal-int
 ++pkg syscall (linux-s390x), const CLONE_PTRACE = 8192
 ++pkg syscall (linux-s390x), const CLONE_PTRACE ideal-int
 ++pkg syscall (linux-s390x), const CLONE_SETTLS = 524288
 ++pkg syscall (linux-s390x), const CLONE_SETTLS ideal-int
 ++pkg syscall (linux-s390x), const CLONE_SIGHAND = 2048
 ++pkg syscall (linux-s390x), const CLONE_SIGHAND ideal-int
 ++pkg syscall (linux-s390x), const CLONE_SYSVSEM = 262144
 ++pkg syscall (linux-s390x), const CLONE_SYSVSEM ideal-int
 ++pkg syscall (linux-s390x), const CLONE_THREAD = 65536
 ++pkg syscall (linux-s390x), const CLONE_THREAD ideal-int
 ++pkg syscall (linux-s390x), const CLONE_UNTRACED = 8388608
 ++pkg syscall (linux-s390x), const CLONE_UNTRACED ideal-int
 ++pkg syscall (linux-s390x), const CLONE_VFORK = 16384
 ++pkg syscall (linux-s390x), const CLONE_VFORK ideal-int
 ++pkg syscall (linux-s390x), const CLONE_VM = 256
 ++pkg syscall (linux-s390x), const CLONE_VM ideal-int
 ++pkg syscall (linux-s390x), const CREAD = 128
 ++pkg syscall (linux-s390x), const CREAD ideal-int
 ++pkg syscall (linux-s390x), const CS5 = 0
 ++pkg syscall (linux-s390x), const CS5 ideal-int
 ++pkg syscall (linux-s390x), const CS6 = 16
 ++pkg syscall (linux-s390x), const CS6 ideal-int
 ++pkg syscall (linux-s390x), const CS7 = 32
 ++pkg syscall (linux-s390x), const CS7 ideal-int
 ++pkg syscall (linux-s390x), const CS8 = 48
 ++pkg syscall (linux-s390x), const CS8 ideal-int
 ++pkg syscall (linux-s390x), const CSIGNAL = 255
 ++pkg syscall (linux-s390x), const CSIGNAL ideal-int
 ++pkg syscall (linux-s390x), const CSIZE = 48
 ++pkg syscall (linux-s390x), const CSIZE ideal-int
 ++pkg syscall (linux-s390x), const CSTART = 17
 ++pkg syscall (linux-s390x), const CSTART ideal-int
 ++pkg syscall (linux-s390x), const CSTATUS = 0
 ++pkg syscall (linux-s390x), const CSTATUS ideal-int
 ++pkg syscall (linux-s390x), const CSTOP = 19
 ++pkg syscall (linux-s390x), const CSTOPB = 64
 ++pkg syscall (linux-s390x), const CSTOPB ideal-int
 ++pkg syscall (linux-s390x), const CSTOP ideal-int
 ++pkg syscall (linux-s390x), const CSUSP = 26
 ++pkg syscall (linux-s390x), const CSUSP ideal-int
 ++pkg syscall (linux-s390x), const DT_BLK = 6
 ++pkg syscall (linux-s390x), const DT_BLK ideal-int
 ++pkg syscall (linux-s390x), const DT_CHR = 2
 ++pkg syscall (linux-s390x), const DT_CHR ideal-int
 ++pkg syscall (linux-s390x), const DT_DIR = 4
 ++pkg syscall (linux-s390x), const DT_DIR ideal-int
 ++pkg syscall (linux-s390x), const DT_FIFO = 1
 ++pkg syscall (linux-s390x), const DT_FIFO ideal-int
 ++pkg syscall (linux-s390x), const DT_LNK = 10
 ++pkg syscall (linux-s390x), const DT_LNK ideal-int
 ++pkg syscall (linux-s390x), const DT_REG = 8
 ++pkg syscall (linux-s390x), const DT_REG ideal-int
 ++pkg syscall (linux-s390x), const DT_SOCK = 12
 ++pkg syscall (linux-s390x), const DT_SOCK ideal-int
 ++pkg syscall (linux-s390x), const DT_UNKNOWN = 0
 ++pkg syscall (linux-s390x), const DT_UNKNOWN ideal-int
 ++pkg syscall (linux-s390x), const DT_WHT = 14
 ++pkg syscall (linux-s390x), const DT_WHT ideal-int
 ++pkg syscall (linux-s390x), const E2BIG = 7
 ++pkg syscall (linux-s390x), const EACCES = 13
 ++pkg syscall (linux-s390x), const EADDRINUSE = 98
 ++pkg syscall (linux-s390x), const EADDRNOTAVAIL = 99
 ++pkg syscall (linux-s390x), const EADV = 68
 ++pkg syscall (linux-s390x), const EADV Errno
 ++pkg syscall (linux-s390x), const EAFNOSUPPORT = 97
 ++pkg syscall (linux-s390x), const EAGAIN = 11
 ++pkg syscall (linux-s390x), const EALREADY = 114
 ++pkg syscall (linux-s390x), const EBADE = 52
 ++pkg syscall (linux-s390x), const EBADE Errno
 ++pkg syscall (linux-s390x), const EBADF = 9
 ++pkg syscall (linux-s390x), const EBADFD = 77
 ++pkg syscall (linux-s390x), const EBADFD Errno
 ++pkg syscall (linux-s390x), const EBADMSG = 74
 ++pkg syscall (linux-s390x), const EBADMSG Errno
 ++pkg syscall (linux-s390x), const EBADR = 53
 ++pkg syscall (linux-s390x), const EBADR Errno
 ++pkg syscall (linux-s390x), const EBADRQC = 56
 ++pkg syscall (linux-s390x), const EBADRQC Errno
 ++pkg syscall (linux-s390x), const EBADSLT = 57
 ++pkg syscall (linux-s390x), const EBADSLT Errno
 ++pkg syscall (linux-s390x), const EBFONT = 59
 ++pkg syscall (linux-s390x), const EBFONT Errno
 ++pkg syscall (linux-s390x), const EBUSY = 16
 ++pkg syscall (linux-s390x), const ECANCELED = 125
 ++pkg syscall (linux-s390x), const ECHILD = 10
 ++pkg syscall (linux-s390x), const ECHO = 8
 ++pkg syscall (linux-s390x), const ECHOCTL = 512
 ++pkg syscall (linux-s390x), const ECHOCTL ideal-int
 ++pkg syscall (linux-s390x), const ECHOE = 16
 ++pkg syscall (linux-s390x), const ECHOE ideal-int
 ++pkg syscall (linux-s390x), const ECHO ideal-int
 ++pkg syscall (linux-s390x), const ECHOK = 32
 ++pkg syscall (linux-s390x), const ECHOKE = 2048
 ++pkg syscall (linux-s390x), const ECHOKE ideal-int
 ++pkg syscall (linux-s390x), const ECHOK ideal-int
 ++pkg syscall (linux-s390x), const ECHONL = 64
 ++pkg syscall (linux-s390x), const ECHONL ideal-int
 ++pkg syscall (linux-s390x), const ECHOPRT = 1024
 ++pkg syscall (linux-s390x), const ECHOPRT ideal-int
 ++pkg syscall (linux-s390x), const ECHRNG = 44
 ++pkg syscall (linux-s390x), const ECHRNG Errno
 ++pkg syscall (linux-s390x), const ECOMM = 70
 ++pkg syscall (linux-s390x), const ECOMM Errno
 ++pkg syscall (linux-s390x), const ECONNABORTED = 103
 ++pkg syscall (linux-s390x), const ECONNREFUSED = 111
 ++pkg syscall (linux-s390x), const ECONNRESET = 104
 ++pkg syscall (linux-s390x), const EDEADLK = 35
 ++pkg syscall (linux-s390x), const EDEADLOCK = 35
 ++pkg syscall (linux-s390x), const EDEADLOCK Errno
 ++pkg syscall (linux-s390x), const EDESTADDRREQ = 89
 ++pkg syscall (linux-s390x), const EDOM = 33
 ++pkg syscall (linux-s390x), const EDOTDOT = 73
 ++pkg syscall (linux-s390x), const EDOTDOT Errno
 ++pkg syscall (linux-s390x), const EDQUOT = 122
 ++pkg syscall (linux-s390x), const EEXIST = 17
 ++pkg syscall (linux-s390x), const EFAULT = 14
 ++pkg syscall (linux-s390x), const EFBIG = 27
 ++pkg syscall (linux-s390x), const EHOSTDOWN = 112
 ++pkg syscall (linux-s390x), const EHOSTUNREACH = 113
 ++pkg syscall (linux-s390x), const EHWPOISON = 133
 ++pkg syscall (linux-s390x), const EHWPOISON Errno
 ++pkg syscall (linux-s390x), const EIDRM = 43
 ++pkg syscall (linux-s390x), const EILSEQ = 84
 ++pkg syscall (linux-s390x), const EINPROGRESS = 115
 ++pkg syscall (linux-s390x), const EINTR = 4
 ++pkg syscall (linux-s390x), const EINVAL = 22
 ++pkg syscall (linux-s390x), const EIO = 5
 ++pkg syscall (linux-s390x), const EISCONN = 106
 ++pkg syscall (linux-s390x), const EISDIR = 21
 ++pkg syscall (linux-s390x), const EISNAM = 120
 ++pkg syscall (linux-s390x), const EISNAM Errno
 ++pkg syscall (linux-s390x), const EKEYEXPIRED = 127
 ++pkg syscall (linux-s390x), const EKEYEXPIRED Errno
 ++pkg syscall (linux-s390x), const EKEYREJECTED = 129
 ++pkg syscall (linux-s390x), const EKEYREJECTED Errno
 ++pkg syscall (linux-s390x), const EKEYREVOKED = 128
 ++pkg syscall (linux-s390x), const EKEYREVOKED Errno
 ++pkg syscall (linux-s390x), const EL2HLT = 51
 ++pkg syscall (linux-s390x), const EL2HLT Errno
 ++pkg syscall (linux-s390x), const EL2NSYNC = 45
 ++pkg syscall (linux-s390x), const EL2NSYNC Errno
 ++pkg syscall (linux-s390x), const EL3HLT = 46
 ++pkg syscall (linux-s390x), const EL3HLT Errno
 ++pkg syscall (linux-s390x), const EL3RST = 47
 ++pkg syscall (linux-s390x), const EL3RST Errno
 ++pkg syscall (linux-s390x), const ELIBACC = 79
 ++pkg syscall (linux-s390x), const ELIBACC Errno
 ++pkg syscall (linux-s390x), const ELIBBAD = 80
 ++pkg syscall (linux-s390x), const ELIBBAD Errno
 ++pkg syscall (linux-s390x), const ELIBEXEC = 83
 ++pkg syscall (linux-s390x), const ELIBEXEC Errno
 ++pkg syscall (linux-s390x), const ELIBMAX = 82
 ++pkg syscall (linux-s390x), const ELIBMAX Errno
 ++pkg syscall (linux-s390x), const ELIBSCN = 81
 ++pkg syscall (linux-s390x), const ELIBSCN Errno
 ++pkg syscall (linux-s390x), const ELNRNG = 48
 ++pkg syscall (linux-s390x), const ELNRNG Errno
 ++pkg syscall (linux-s390x), const ELOOP = 40
 ++pkg syscall (linux-s390x), const EMEDIUMTYPE = 124
 ++pkg syscall (linux-s390x), const EMEDIUMTYPE Errno
 ++pkg syscall (linux-s390x), const EMFILE = 24
 ++pkg syscall (linux-s390x), const EMLINK = 31
 ++pkg syscall (linux-s390x), const EMSGSIZE = 90
 ++pkg syscall (linux-s390x), const EMULTIHOP = 72
 ++pkg syscall (linux-s390x), const EMULTIHOP Errno
 ++pkg syscall (linux-s390x), const ENAMETOOLONG = 36
 ++pkg syscall (linux-s390x), const ENAVAIL = 119
 ++pkg syscall (linux-s390x), const ENAVAIL Errno
 ++pkg syscall (linux-s390x), const ENCODING_DEFAULT = 0
 ++pkg syscall (linux-s390x), const ENCODING_DEFAULT ideal-int
 ++pkg syscall (linux-s390x), const ENCODING_FM_MARK = 3
 ++pkg syscall (linux-s390x), const ENCODING_FM_MARK ideal-int
 ++pkg syscall (linux-s390x), const ENCODING_FM_SPACE = 4
 ++pkg syscall (linux-s390x), const ENCODING_FM_SPACE ideal-int
 ++pkg syscall (linux-s390x), const ENCODING_MANCHESTER = 5
 ++pkg syscall (linux-s390x), const ENCODING_MANCHESTER ideal-int
 ++pkg syscall (linux-s390x), const ENCODING_NRZ = 1
 ++pkg syscall (linux-s390x), const ENCODING_NRZI = 2
 ++pkg syscall (linux-s390x), const ENCODING_NRZ ideal-int
 ++pkg syscall (linux-s390x), const ENCODING_NRZI ideal-int
 ++pkg syscall (linux-s390x), const ENETDOWN = 100
 ++pkg syscall (linux-s390x), const ENETRESET = 102
 ++pkg syscall (linux-s390x), const ENETUNREACH = 101
 ++pkg syscall (linux-s390x), const ENFILE = 23
 ++pkg syscall (linux-s390x), const ENOANO = 55
 ++pkg syscall (linux-s390x), const ENOANO Errno
 ++pkg syscall (linux-s390x), const ENOBUFS = 105
 ++pkg syscall (linux-s390x), const ENOCSI = 50
 ++pkg syscall (linux-s390x), const ENOCSI Errno
 ++pkg syscall (linux-s390x), const ENODATA = 61
 ++pkg syscall (linux-s390x), const ENODATA Errno
 ++pkg syscall (linux-s390x), const ENODEV = 19
 ++pkg syscall (linux-s390x), const ENOEXEC = 8
 ++pkg syscall (linux-s390x), const ENOKEY = 126
 ++pkg syscall (linux-s390x), const ENOKEY Errno
 ++pkg syscall (linux-s390x), const ENOLCK = 37
 ++pkg syscall (linux-s390x), const ENOLINK = 67
 ++pkg syscall (linux-s390x), const ENOLINK Errno
 ++pkg syscall (linux-s390x), const ENOMEDIUM = 123
 ++pkg syscall (linux-s390x), const ENOMEDIUM Errno
 ++pkg syscall (linux-s390x), const ENOMEM = 12
 ++pkg syscall (linux-s390x), const ENOMSG = 42
 ++pkg syscall (linux-s390x), const ENONET = 64
 ++pkg syscall (linux-s390x), const ENONET Errno
 ++pkg syscall (linux-s390x), const ENOPKG = 65
 ++pkg syscall (linux-s390x), const ENOPKG Errno
 ++pkg syscall (linux-s390x), const ENOPROTOOPT = 92
 ++pkg syscall (linux-s390x), const ENOSPC = 28
 ++pkg syscall (linux-s390x), const ENOSR = 63
 ++pkg syscall (linux-s390x), const ENOSR Errno
 ++pkg syscall (linux-s390x), const ENOSTR = 60
 ++pkg syscall (linux-s390x), const ENOSTR Errno
 ++pkg syscall (linux-s390x), const ENOSYS = 38
 ++pkg syscall (linux-s390x), const ENOTBLK = 15
 ++pkg syscall (linux-s390x), const ENOTCONN = 107
 ++pkg syscall (linux-s390x), const ENOTDIR = 20
 ++pkg syscall (linux-s390x), const ENOTEMPTY = 39
 ++pkg syscall (linux-s390x), const ENOTNAM = 118
 ++pkg syscall (linux-s390x), const ENOTNAM Errno
 ++pkg syscall (linux-s390x), const ENOTRECOVERABLE = 131
 ++pkg syscall (linux-s390x), const ENOTRECOVERABLE Errno
 ++pkg syscall (linux-s390x), const ENOTSOCK = 88
 ++pkg syscall (linux-s390x), const ENOTSUP = 95
 ++pkg syscall (linux-s390x), const ENOTTY = 25
 ++pkg syscall (linux-s390x), const ENOTUNIQ = 76
 ++pkg syscall (linux-s390x), const ENOTUNIQ Errno
 ++pkg syscall (linux-s390x), const ENXIO = 6
 ++pkg syscall (linux-s390x), const EOPNOTSUPP = 95
 ++pkg syscall (linux-s390x), const EOVERFLOW = 75
 ++pkg syscall (linux-s390x), const EOWNERDEAD = 130
 ++pkg syscall (linux-s390x), const EOWNERDEAD Errno
 ++pkg syscall (linux-s390x), const EPERM = 1
 ++pkg syscall (linux-s390x), const EPFNOSUPPORT = 96
 ++pkg syscall (linux-s390x), const EPIPE = 32
 ++pkg syscall (linux-s390x), const EPOLL_CLOEXEC = 524288
 ++pkg syscall (linux-s390x), const EPOLL_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x), const EPOLL_CTL_ADD = 1
 ++pkg syscall (linux-s390x), const EPOLL_CTL_ADD ideal-int
 ++pkg syscall (linux-s390x), const EPOLL_CTL_DEL = 2
 ++pkg syscall (linux-s390x), const EPOLL_CTL_DEL ideal-int
 ++pkg syscall (linux-s390x), const EPOLL_CTL_MOD = 3
 ++pkg syscall (linux-s390x), const EPOLL_CTL_MOD ideal-int
 ++pkg syscall (linux-s390x), const EPOLLERR = 8
 ++pkg syscall (linux-s390x), const EPOLLERR ideal-int
 ++pkg syscall (linux-s390x), const EPOLLET = 2147483648
 ++pkg syscall (linux-s390x), const EPOLLET ideal-int
 ++pkg syscall (linux-s390x), const EPOLLHUP = 16
 ++pkg syscall (linux-s390x), const EPOLLHUP ideal-int
 ++pkg syscall (linux-s390x), const EPOLLIN = 1
 ++pkg syscall (linux-s390x), const EPOLLIN ideal-int
 ++pkg syscall (linux-s390x), const EPOLLMSG = 1024
 ++pkg syscall (linux-s390x), const EPOLLMSG ideal-int
 ++pkg syscall (linux-s390x), const EPOLL_NONBLOCK = 2048
 ++pkg syscall (linux-s390x), const EPOLL_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x), const EPOLLONESHOT = 1073741824
 ++pkg syscall (linux-s390x), const EPOLLONESHOT ideal-int
 ++pkg syscall (linux-s390x), const EPOLLOUT = 4
 ++pkg syscall (linux-s390x), const EPOLLOUT ideal-int
 ++pkg syscall (linux-s390x), const EPOLLPRI = 2
 ++pkg syscall (linux-s390x), const EPOLLPRI ideal-int
 ++pkg syscall (linux-s390x), const EPOLLRDBAND = 128
 ++pkg syscall (linux-s390x), const EPOLLRDBAND ideal-int
 ++pkg syscall (linux-s390x), const EPOLLRDHUP = 8192
 ++pkg syscall (linux-s390x), const EPOLLRDHUP ideal-int
 ++pkg syscall (linux-s390x), const EPOLLRDNORM = 64
 ++pkg syscall (linux-s390x), const EPOLLRDNORM ideal-int
 ++pkg syscall (linux-s390x), const EPOLLWAKEUP = 536870912
 ++pkg syscall (linux-s390x), const EPOLLWAKEUP ideal-int
 ++pkg syscall (linux-s390x), const EPOLLWRBAND = 512
 ++pkg syscall (linux-s390x), const EPOLLWRBAND ideal-int
 ++pkg syscall (linux-s390x), const EPOLLWRNORM = 256
 ++pkg syscall (linux-s390x), const EPOLLWRNORM ideal-int
 ++pkg syscall (linux-s390x), const EPROTO = 71
 ++pkg syscall (linux-s390x), const EPROTO Errno
 ++pkg syscall (linux-s390x), const EPROTONOSUPPORT = 93
 ++pkg syscall (linux-s390x), const EPROTOTYPE = 91
 ++pkg syscall (linux-s390x), const ERANGE = 34
 ++pkg syscall (linux-s390x), const EREMCHG = 78
 ++pkg syscall (linux-s390x), const EREMCHG Errno
 ++pkg syscall (linux-s390x), const EREMOTE = 66
 ++pkg syscall (linux-s390x), const EREMOTEIO = 121
 ++pkg syscall (linux-s390x), const EREMOTEIO Errno
 ++pkg syscall (linux-s390x), const ERESTART = 85
 ++pkg syscall (linux-s390x), const ERESTART Errno
 ++pkg syscall (linux-s390x), const ERFKILL = 132
 ++pkg syscall (linux-s390x), const ERFKILL Errno
 ++pkg syscall (linux-s390x), const EROFS = 30
 ++pkg syscall (linux-s390x), const ESHUTDOWN = 108
 ++pkg syscall (linux-s390x), const ESOCKTNOSUPPORT = 94
 ++pkg syscall (linux-s390x), const ESPIPE = 29
 ++pkg syscall (linux-s390x), const ESRCH = 3
 ++pkg syscall (linux-s390x), const ESRMNT = 69
 ++pkg syscall (linux-s390x), const ESRMNT Errno
 ++pkg syscall (linux-s390x), const ESTALE = 116
 ++pkg syscall (linux-s390x), const ESTRPIPE = 86
 ++pkg syscall (linux-s390x), const ESTRPIPE Errno
 ++pkg syscall (linux-s390x), const ETH_P_1588 = 35063
 ++pkg syscall (linux-s390x), const ETH_P_1588 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_8021AD = 34984
 ++pkg syscall (linux-s390x), const ETH_P_8021AD ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_8021AH = 35047
 ++pkg syscall (linux-s390x), const ETH_P_8021AH ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_8021Q = 33024
 ++pkg syscall (linux-s390x), const ETH_P_8021Q ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_80221 = 35095
 ++pkg syscall (linux-s390x), const ETH_P_80221 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_802_2 = 4
 ++pkg syscall (linux-s390x), const ETH_P_802_2 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_802_3 = 1
 ++pkg syscall (linux-s390x), const ETH_P_802_3 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_802_3_MIN = 1536
 ++pkg syscall (linux-s390x), const ETH_P_802_3_MIN ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_802_EX1 = 34997
 ++pkg syscall (linux-s390x), const ETH_P_802_EX1 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_AARP = 33011
 ++pkg syscall (linux-s390x), const ETH_P_AARP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_AF_IUCV = 64507
 ++pkg syscall (linux-s390x), const ETH_P_AF_IUCV ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ALL = 3
 ++pkg syscall (linux-s390x), const ETH_P_ALL ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_AOE = 34978
 ++pkg syscall (linux-s390x), const ETH_P_AOE ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ARCNET = 26
 ++pkg syscall (linux-s390x), const ETH_P_ARCNET ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ARP = 2054
 ++pkg syscall (linux-s390x), const ETH_P_ARP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ATALK = 32923
 ++pkg syscall (linux-s390x), const ETH_P_ATALK ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ATMFATE = 34948
 ++pkg syscall (linux-s390x), const ETH_P_ATMFATE ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ATMMPOA = 34892
 ++pkg syscall (linux-s390x), const ETH_P_ATMMPOA ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_AX25 = 2
 ++pkg syscall (linux-s390x), const ETH_P_AX25 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_BATMAN = 17157
 ++pkg syscall (linux-s390x), const ETH_P_BATMAN ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_BPQ = 2303
 ++pkg syscall (linux-s390x), const ETH_P_BPQ ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_CAIF = 247
 ++pkg syscall (linux-s390x), const ETH_P_CAIF ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_CAN = 12
 ++pkg syscall (linux-s390x), const ETH_P_CANFD = 13
 ++pkg syscall (linux-s390x), const ETH_P_CANFD ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_CAN ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_CONTROL = 22
 ++pkg syscall (linux-s390x), const ETH_P_CONTROL ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_CUST = 24582
 ++pkg syscall (linux-s390x), const ETH_P_CUST ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DDCMP = 6
 ++pkg syscall (linux-s390x), const ETH_P_DDCMP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DEC = 24576
 ++pkg syscall (linux-s390x), const ETH_P_DEC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DIAG = 24581
 ++pkg syscall (linux-s390x), const ETH_P_DIAG ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DNA_DL = 24577
 ++pkg syscall (linux-s390x), const ETH_P_DNA_DL ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DNA_RC = 24578
 ++pkg syscall (linux-s390x), const ETH_P_DNA_RC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DNA_RT = 24579
 ++pkg syscall (linux-s390x), const ETH_P_DNA_RT ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_DSA = 27
 ++pkg syscall (linux-s390x), const ETH_P_DSA ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_ECONET = 24
 ++pkg syscall (linux-s390x), const ETH_P_ECONET ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_EDSA = 56026
 ++pkg syscall (linux-s390x), const ETH_P_EDSA ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_FCOE = 35078
 ++pkg syscall (linux-s390x), const ETH_P_FCOE ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_FIP = 35092
 ++pkg syscall (linux-s390x), const ETH_P_FIP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_HDLC = 25
 ++pkg syscall (linux-s390x), const ETH_P_HDLC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IEEE802154 = 246
 ++pkg syscall (linux-s390x), const ETH_P_IEEE802154 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IEEEPUP = 2560
 ++pkg syscall (linux-s390x), const ETH_P_IEEEPUPAT = 2561
 ++pkg syscall (linux-s390x), const ETH_P_IEEEPUPAT ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IEEEPUP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IP = 2048
 ++pkg syscall (linux-s390x), const ETH_P_IP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IPV6 = 34525
 ++pkg syscall (linux-s390x), const ETH_P_IPV6 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IPX = 33079
 ++pkg syscall (linux-s390x), const ETH_P_IPX ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_IRDA = 23
 ++pkg syscall (linux-s390x), const ETH_P_IRDA ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_LAT = 24580
 ++pkg syscall (linux-s390x), const ETH_P_LAT ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_LINK_CTL = 34924
 ++pkg syscall (linux-s390x), const ETH_P_LINK_CTL ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_LOCALTALK = 9
 ++pkg syscall (linux-s390x), const ETH_P_LOCALTALK ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_LOOP = 96
 ++pkg syscall (linux-s390x), const ETH_P_LOOP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_MOBITEX = 21
 ++pkg syscall (linux-s390x), const ETH_P_MOBITEX ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_MPLS_MC = 34888
 ++pkg syscall (linux-s390x), const ETH_P_MPLS_MC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_MPLS_UC = 34887
 ++pkg syscall (linux-s390x), const ETH_P_MPLS_UC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_MVRP = 35061
 ++pkg syscall (linux-s390x), const ETH_P_MVRP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PAE = 34958
 ++pkg syscall (linux-s390x), const ETH_P_PAE ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PAUSE = 34824
 ++pkg syscall (linux-s390x), const ETH_P_PAUSE ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PHONET = 245
 ++pkg syscall (linux-s390x), const ETH_P_PHONET ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PPP_DISC = 34915
 ++pkg syscall (linux-s390x), const ETH_P_PPP_DISC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PPP_MP = 8
 ++pkg syscall (linux-s390x), const ETH_P_PPP_MP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PPP_SES = 34916
 ++pkg syscall (linux-s390x), const ETH_P_PPP_SES ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PPPTALK = 16
 ++pkg syscall (linux-s390x), const ETH_P_PPPTALK ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PUP = 512
 ++pkg syscall (linux-s390x), const ETH_P_PUPAT = 513
 ++pkg syscall (linux-s390x), const ETH_P_PUPAT ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_PUP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_QINQ1 = 37120
 ++pkg syscall (linux-s390x), const ETH_P_QINQ1 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_QINQ2 = 37376
 ++pkg syscall (linux-s390x), const ETH_P_QINQ2 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_QINQ3 = 37632
 ++pkg syscall (linux-s390x), const ETH_P_QINQ3 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_RARP = 32821
 ++pkg syscall (linux-s390x), const ETH_P_RARP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_SCA = 24583
 ++pkg syscall (linux-s390x), const ETH_P_SCA ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_SLOW = 34825
 ++pkg syscall (linux-s390x), const ETH_P_SLOW ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_SNAP = 5
 ++pkg syscall (linux-s390x), const ETH_P_SNAP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_TDLS = 35085
 ++pkg syscall (linux-s390x), const ETH_P_TDLS ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_TEB = 25944
 ++pkg syscall (linux-s390x), const ETH_P_TEB ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_TIPC = 35018
 ++pkg syscall (linux-s390x), const ETH_P_TIPC ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_TR_802_2 = 17
 ++pkg syscall (linux-s390x), const ETH_P_TR_802_2 ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_TRAILER = 28
 ++pkg syscall (linux-s390x), const ETH_P_TRAILER ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_WAN_PPP = 7
 ++pkg syscall (linux-s390x), const ETH_P_WAN_PPP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_WCCP = 34878
 ++pkg syscall (linux-s390x), const ETH_P_WCCP ideal-int
 ++pkg syscall (linux-s390x), const ETH_P_X25 = 2053
 ++pkg syscall (linux-s390x), const ETH_P_X25 ideal-int
 ++pkg syscall (linux-s390x), const ETIME = 62
 ++pkg syscall (linux-s390x), const ETIMEDOUT = 110
 ++pkg syscall (linux-s390x), const ETIME Errno
 ++pkg syscall (linux-s390x), const ETOOMANYREFS = 109
 ++pkg syscall (linux-s390x), const ETXTBSY = 26
 ++pkg syscall (linux-s390x), const EUCLEAN = 117
 ++pkg syscall (linux-s390x), const EUCLEAN Errno
 ++pkg syscall (linux-s390x), const EUNATCH = 49
 ++pkg syscall (linux-s390x), const EUNATCH Errno
 ++pkg syscall (linux-s390x), const EUSERS = 87
 ++pkg syscall (linux-s390x), const EWOULDBLOCK = 11
 ++pkg syscall (linux-s390x), const EXDEV = 18
 ++pkg syscall (linux-s390x), const EXFULL = 54
 ++pkg syscall (linux-s390x), const EXFULL Errno
 ++pkg syscall (linux-s390x), const EXTA = 14
 ++pkg syscall (linux-s390x), const EXTA ideal-int
 ++pkg syscall (linux-s390x), const EXTB = 15
 ++pkg syscall (linux-s390x), const EXTB ideal-int
 ++pkg syscall (linux-s390x), const EXTPROC = 65536
 ++pkg syscall (linux-s390x), const EXTPROC ideal-int
 ++pkg syscall (linux-s390x), const FD_CLOEXEC = 1
 ++pkg syscall (linux-s390x), const FD_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x), const FD_SETSIZE = 1024
 ++pkg syscall (linux-s390x), const FD_SETSIZE ideal-int
 ++pkg syscall (linux-s390x), const F_DUPFD = 0
 ++pkg syscall (linux-s390x), const F_DUPFD_CLOEXEC = 1030
 ++pkg syscall (linux-s390x), const F_DUPFD_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x), const F_DUPFD ideal-int
 ++pkg syscall (linux-s390x), const F_EXLCK = 4
 ++pkg syscall (linux-s390x), const F_EXLCK ideal-int
 ++pkg syscall (linux-s390x), const F_GETFD = 1
 ++pkg syscall (linux-s390x), const F_GETFD ideal-int
 ++pkg syscall (linux-s390x), const F_GETFL = 3
 ++pkg syscall (linux-s390x), const F_GETFL ideal-int
 ++pkg syscall (linux-s390x), const F_GETLEASE = 1025
 ++pkg syscall (linux-s390x), const F_GETLEASE ideal-int
 ++pkg syscall (linux-s390x), const F_GETLK = 5
 ++pkg syscall (linux-s390x), const F_GETLK64 = 5
 ++pkg syscall (linux-s390x), const F_GETLK64 ideal-int
 ++pkg syscall (linux-s390x), const F_GETLK ideal-int
 ++pkg syscall (linux-s390x), const F_GETOWN = 9
 ++pkg syscall (linux-s390x), const F_GETOWN_EX = 16
 ++pkg syscall (linux-s390x), const F_GETOWN_EX ideal-int
 ++pkg syscall (linux-s390x), const F_GETOWN ideal-int
 ++pkg syscall (linux-s390x), const F_GETPIPE_SZ = 1032
 ++pkg syscall (linux-s390x), const F_GETPIPE_SZ ideal-int
 ++pkg syscall (linux-s390x), const F_GETSIG = 11
 ++pkg syscall (linux-s390x), const F_GETSIG ideal-int
 ++pkg syscall (linux-s390x), const F_LOCK = 1
 ++pkg syscall (linux-s390x), const F_LOCK ideal-int
 ++pkg syscall (linux-s390x), const FLUSHO = 4096
 ++pkg syscall (linux-s390x), const FLUSHO ideal-int
 ++pkg syscall (linux-s390x), const F_NOTIFY = 1026
 ++pkg syscall (linux-s390x), const F_NOTIFY ideal-int
 ++pkg syscall (linux-s390x), const F_OK = 0
 ++pkg syscall (linux-s390x), const F_OK ideal-int
 ++pkg syscall (linux-s390x), const F_RDLCK = 0
 ++pkg syscall (linux-s390x), const F_RDLCK ideal-int
 ++pkg syscall (linux-s390x), const F_SETFD = 2
 ++pkg syscall (linux-s390x), const F_SETFD ideal-int
 ++pkg syscall (linux-s390x), const F_SETFL = 4
 ++pkg syscall (linux-s390x), const F_SETFL ideal-int
 ++pkg syscall (linux-s390x), const F_SETLEASE = 1024
 ++pkg syscall (linux-s390x), const F_SETLEASE ideal-int
 ++pkg syscall (linux-s390x), const F_SETLK = 6
 ++pkg syscall (linux-s390x), const F_SETLK64 = 6
 ++pkg syscall (linux-s390x), const F_SETLK64 ideal-int
 ++pkg syscall (linux-s390x), const F_SETLK ideal-int
 ++pkg syscall (linux-s390x), const F_SETLKW64 = 7
 ++pkg syscall (linux-s390x), const F_SETLKW64 ideal-int
 ++pkg syscall (linux-s390x), const F_SETLKW = 7
 ++pkg syscall (linux-s390x), const F_SETLKW ideal-int
 ++pkg syscall (linux-s390x), const F_SETOWN = 8
 ++pkg syscall (linux-s390x), const F_SETOWN_EX = 15
 ++pkg syscall (linux-s390x), const F_SETOWN_EX ideal-int
 ++pkg syscall (linux-s390x), const F_SETOWN ideal-int
 ++pkg syscall (linux-s390x), const F_SETPIPE_SZ = 1031
 ++pkg syscall (linux-s390x), const F_SETPIPE_SZ ideal-int
 ++pkg syscall (linux-s390x), const F_SETSIG = 10
 ++pkg syscall (linux-s390x), const F_SETSIG ideal-int
 ++pkg syscall (linux-s390x), const F_SHLCK = 8
 ++pkg syscall (linux-s390x), const F_SHLCK ideal-int
 ++pkg syscall (linux-s390x), const F_TEST = 3
 ++pkg syscall (linux-s390x), const F_TEST ideal-int
 ++pkg syscall (linux-s390x), const F_TLOCK = 2
 ++pkg syscall (linux-s390x), const F_TLOCK ideal-int
 ++pkg syscall (linux-s390x), const F_ULOCK = 0
 ++pkg syscall (linux-s390x), const F_ULOCK ideal-int
 ++pkg syscall (linux-s390x), const F_UNLCK = 2
 ++pkg syscall (linux-s390x), const F_UNLCK ideal-int
 ++pkg syscall (linux-s390x), const F_WRLCK = 1
 ++pkg syscall (linux-s390x), const F_WRLCK ideal-int
 ++pkg syscall (linux-s390x), const HUPCL = 1024
 ++pkg syscall (linux-s390x), const HUPCL ideal-int
 ++pkg syscall (linux-s390x), const ICANON = 2
 ++pkg syscall (linux-s390x), const ICANON ideal-int
 ++pkg syscall (linux-s390x), const ICMPV6_FILTER = 1
 ++pkg syscall (linux-s390x), const ICMPV6_FILTER ideal-int
 ++pkg syscall (linux-s390x), const ICRNL = 256
 ++pkg syscall (linux-s390x), const ICRNL ideal-int
 ++pkg syscall (linux-s390x), const IEXTEN = 32768
 ++pkg syscall (linux-s390x), const IEXTEN ideal-int
 ++pkg syscall (linux-s390x), const IFA_ADDRESS = 1
 ++pkg syscall (linux-s390x), const IFA_ADDRESS ideal-int
 ++pkg syscall (linux-s390x), const IFA_ANYCAST = 5
 ++pkg syscall (linux-s390x), const IFA_ANYCAST ideal-int
 ++pkg syscall (linux-s390x), const IFA_BROADCAST = 4
 ++pkg syscall (linux-s390x), const IFA_BROADCAST ideal-int
 ++pkg syscall (linux-s390x), const IFA_CACHEINFO = 6
 ++pkg syscall (linux-s390x), const IFA_CACHEINFO ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_DADFAILED = 8
 ++pkg syscall (linux-s390x), const IFA_F_DADFAILED ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_DEPRECATED = 32
 ++pkg syscall (linux-s390x), const IFA_F_DEPRECATED ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_HOMEADDRESS = 16
 ++pkg syscall (linux-s390x), const IFA_F_HOMEADDRESS ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_MANAGETEMPADDR = 256
 ++pkg syscall (linux-s390x), const IFA_F_MANAGETEMPADDR ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_NODAD = 2
 ++pkg syscall (linux-s390x), const IFA_F_NODAD ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_NOPREFIXROUTE = 512
 ++pkg syscall (linux-s390x), const IFA_F_NOPREFIXROUTE ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_OPTIMISTIC = 4
 ++pkg syscall (linux-s390x), const IFA_F_OPTIMISTIC ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_PERMANENT = 128
 ++pkg syscall (linux-s390x), const IFA_F_PERMANENT ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_SECONDARY = 1
 ++pkg syscall (linux-s390x), const IFA_F_SECONDARY ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_TEMPORARY = 1
 ++pkg syscall (linux-s390x), const IFA_F_TEMPORARY ideal-int
 ++pkg syscall (linux-s390x), const IFA_F_TENTATIVE = 64
 ++pkg syscall (linux-s390x), const IFA_F_TENTATIVE ideal-int
 ++pkg syscall (linux-s390x), const IFA_LABEL = 3
 ++pkg syscall (linux-s390x), const IFA_LABEL ideal-int
 ++pkg syscall (linux-s390x), const IFA_LOCAL = 2
 ++pkg syscall (linux-s390x), const IFA_LOCAL ideal-int
 ++pkg syscall (linux-s390x), const IFA_MAX = 8
 ++pkg syscall (linux-s390x), const IFA_MAX ideal-int
 ++pkg syscall (linux-s390x), const IFA_MULTICAST = 7
 ++pkg syscall (linux-s390x), const IFA_MULTICAST ideal-int
 ++pkg syscall (linux-s390x), const IFA_UNSPEC = 0
 ++pkg syscall (linux-s390x), const IFA_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const IFF_802_1Q_VLAN = 1
 ++pkg syscall (linux-s390x), const IFF_802_1Q_VLAN ideal-int
 ++pkg syscall (linux-s390x), const IFF_ALLMULTI = 512
 ++pkg syscall (linux-s390x), const IFF_ALLMULTI ideal-int
 ++pkg syscall (linux-s390x), const IFF_ATTACH_QUEUE = 512
 ++pkg syscall (linux-s390x), const IFF_ATTACH_QUEUE ideal-int
 ++pkg syscall (linux-s390x), const IFF_AUTOMEDIA = 16384
 ++pkg syscall (linux-s390x), const IFF_AUTOMEDIA ideal-int
 ++pkg syscall (linux-s390x), const IFF_BONDING = 32
 ++pkg syscall (linux-s390x), const IFF_BONDING ideal-int
 ++pkg syscall (linux-s390x), const IFF_BRIDGE_PORT = 16384
 ++pkg syscall (linux-s390x), const IFF_BRIDGE_PORT ideal-int
 ++pkg syscall (linux-s390x), const IFF_DEBUG = 4
 ++pkg syscall (linux-s390x), const IFF_DEBUG ideal-int
 ++pkg syscall (linux-s390x), const IFF_DETACH_QUEUE = 1024
 ++pkg syscall (linux-s390x), const IFF_DETACH_QUEUE ideal-int
 ++pkg syscall (linux-s390x), const IFF_DISABLE_NETPOLL = 4096
 ++pkg syscall (linux-s390x), const IFF_DISABLE_NETPOLL ideal-int
 ++pkg syscall (linux-s390x), const IFF_DONT_BRIDGE = 2048
 ++pkg syscall (linux-s390x), const IFF_DONT_BRIDGE ideal-int
 ++pkg syscall (linux-s390x), const IFF_DORMANT = 131072
 ++pkg syscall (linux-s390x), const IFF_DORMANT ideal-int
 ++pkg syscall (linux-s390x), const IFF_DYNAMIC = 32768
 ++pkg syscall (linux-s390x), const IFF_DYNAMIC ideal-int
 ++pkg syscall (linux-s390x), const IFF_EBRIDGE = 2
 ++pkg syscall (linux-s390x), const IFF_EBRIDGE ideal-int
 ++pkg syscall (linux-s390x), const IFF_ECHO = 262144
 ++pkg syscall (linux-s390x), const IFF_ECHO ideal-int
 ++pkg syscall (linux-s390x), const IFF_ISATAP = 128
 ++pkg syscall (linux-s390x), const IFF_ISATAP ideal-int
 ++pkg syscall (linux-s390x), const IFF_LIVE_ADDR_CHANGE = 1048576
 ++pkg syscall (linux-s390x), const IFF_LIVE_ADDR_CHANGE ideal-int
 ++pkg syscall (linux-s390x), const IFF_LOOPBACK = 8
 ++pkg syscall (linux-s390x), const IFF_LOWER_UP = 65536
 ++pkg syscall (linux-s390x), const IFF_LOWER_UP ideal-int
 ++pkg syscall (linux-s390x), const IFF_MACVLAN_PORT = 8192
 ++pkg syscall (linux-s390x), const IFF_MACVLAN_PORT ideal-int
 ++pkg syscall (linux-s390x), const IFF_MASTER = 1024
 ++pkg syscall (linux-s390x), const IFF_MASTER_8023AD = 8
 ++pkg syscall (linux-s390x), const IFF_MASTER_8023AD ideal-int
 ++pkg syscall (linux-s390x), const IFF_MASTER_ALB = 16
 ++pkg syscall (linux-s390x), const IFF_MASTER_ALB ideal-int
 ++pkg syscall (linux-s390x), const IFF_MASTER_ARPMON = 256
 ++pkg syscall (linux-s390x), const IFF_MASTER_ARPMON ideal-int
 ++pkg syscall (linux-s390x), const IFF_MASTER ideal-int
 ++pkg syscall (linux-s390x), const IFF_MULTICAST = 4096
 ++pkg syscall (linux-s390x), const IFF_MULTI_QUEUE = 256
 ++pkg syscall (linux-s390x), const IFF_MULTI_QUEUE ideal-int
 ++pkg syscall (linux-s390x), const IFF_NOARP = 128
 ++pkg syscall (linux-s390x), const IFF_NOARP ideal-int
 ++pkg syscall (linux-s390x), const IFF_NO_PI = 4096
 ++pkg syscall (linux-s390x), const IFF_NO_PI ideal-int
 ++pkg syscall (linux-s390x), const IFF_NOTRAILERS = 32
 ++pkg syscall (linux-s390x), const IFF_NOTRAILERS ideal-int
 ++pkg syscall (linux-s390x), const IFF_ONE_QUEUE = 8192
 ++pkg syscall (linux-s390x), const IFF_ONE_QUEUE ideal-int
 ++pkg syscall (linux-s390x), const IFF_OVS_DATAPATH = 32768
 ++pkg syscall (linux-s390x), const IFF_OVS_DATAPATH ideal-int
 ++pkg syscall (linux-s390x), const IFF_POINTOPOINT = 16
 ++pkg syscall (linux-s390x), const IFF_POINTOPOINT ideal-int
 ++pkg syscall (linux-s390x), const IFF_PORTSEL = 8192
 ++pkg syscall (linux-s390x), const IFF_PORTSEL ideal-int
 ++pkg syscall (linux-s390x), const IFF_PROMISC = 256
 ++pkg syscall (linux-s390x), const IFF_PROMISC ideal-int
 ++pkg syscall (linux-s390x), const IFF_RUNNING = 64
 ++pkg syscall (linux-s390x), const IFF_RUNNING ideal-int
 ++pkg syscall (linux-s390x), const IFF_SLAVE = 2048
 ++pkg syscall (linux-s390x), const IFF_SLAVE ideal-int
 ++pkg syscall (linux-s390x), const IFF_SLAVE_INACTIVE = 4
 ++pkg syscall (linux-s390x), const IFF_SLAVE_INACTIVE ideal-int
 ++pkg syscall (linux-s390x), const IFF_SLAVE_NEEDARP = 64
 ++pkg syscall (linux-s390x), const IFF_SLAVE_NEEDARP ideal-int
 ++pkg syscall (linux-s390x), const IFF_SUPP_NOFCS = 524288
 ++pkg syscall (linux-s390x), const IFF_SUPP_NOFCS ideal-int
 ++pkg syscall (linux-s390x), const IFF_TAP = 2
 ++pkg syscall (linux-s390x), const IFF_TAP ideal-int
 ++pkg syscall (linux-s390x), const IFF_TEAM_PORT = 262144
 ++pkg syscall (linux-s390x), const IFF_TEAM_PORT ideal-int
 ++pkg syscall (linux-s390x), const IFF_TUN = 1
 ++pkg syscall (linux-s390x), const IFF_TUN_EXCL = 32768
 ++pkg syscall (linux-s390x), const IFF_TUN_EXCL ideal-int
 ++pkg syscall (linux-s390x), const IFF_TUN ideal-int
 ++pkg syscall (linux-s390x), const IFF_TX_SKB_SHARING = 65536
 ++pkg syscall (linux-s390x), const IFF_TX_SKB_SHARING ideal-int
 ++pkg syscall (linux-s390x), const IFF_UNICAST_FLT = 131072
 ++pkg syscall (linux-s390x), const IFF_UNICAST_FLT ideal-int
 ++pkg syscall (linux-s390x), const IFF_VNET_HDR = 16384
 ++pkg syscall (linux-s390x), const IFF_VNET_HDR ideal-int
 ++pkg syscall (linux-s390x), const IFF_VOLATILE = 461914
 ++pkg syscall (linux-s390x), const IFF_VOLATILE ideal-int
 ++pkg syscall (linux-s390x), const IFF_WAN_HDLC = 512
 ++pkg syscall (linux-s390x), const IFF_WAN_HDLC ideal-int
 ++pkg syscall (linux-s390x), const IFF_XMIT_DST_RELEASE = 1024
 ++pkg syscall (linux-s390x), const IFF_XMIT_DST_RELEASE ideal-int
 ++pkg syscall (linux-s390x), const IFLA_ADDRESS = 1
 ++pkg syscall (linux-s390x), const IFLA_ADDRESS ideal-int
 ++pkg syscall (linux-s390x), const IFLA_BROADCAST = 2
 ++pkg syscall (linux-s390x), const IFLA_BROADCAST ideal-int
 ++pkg syscall (linux-s390x), const IFLA_COST = 8
 ++pkg syscall (linux-s390x), const IFLA_COST ideal-int
 ++pkg syscall (linux-s390x), const IFLA_IFALIAS = 20
 ++pkg syscall (linux-s390x), const IFLA_IFALIAS ideal-int
 ++pkg syscall (linux-s390x), const IFLA_IFNAME = 3
 ++pkg syscall (linux-s390x), const IFLA_IFNAME ideal-int
 ++pkg syscall (linux-s390x), const IFLA_LINK = 5
 ++pkg syscall (linux-s390x), const IFLA_LINK ideal-int
 ++pkg syscall (linux-s390x), const IFLA_LINKINFO = 18
 ++pkg syscall (linux-s390x), const IFLA_LINKINFO ideal-int
 ++pkg syscall (linux-s390x), const IFLA_LINKMODE = 17
 ++pkg syscall (linux-s390x), const IFLA_LINKMODE ideal-int
 ++pkg syscall (linux-s390x), const IFLA_MAP = 14
 ++pkg syscall (linux-s390x), const IFLA_MAP ideal-int
 ++pkg syscall (linux-s390x), const IFLA_MASTER = 10
 ++pkg syscall (linux-s390x), const IFLA_MASTER ideal-int
 ++pkg syscall (linux-s390x), const IFLA_MAX = 34
 ++pkg syscall (linux-s390x), const IFLA_MAX ideal-int
 ++pkg syscall (linux-s390x), const IFLA_MTU = 4
 ++pkg syscall (linux-s390x), const IFLA_MTU ideal-int
 ++pkg syscall (linux-s390x), const IFLA_NET_NS_PID = 19
 ++pkg syscall (linux-s390x), const IFLA_NET_NS_PID ideal-int
 ++pkg syscall (linux-s390x), const IFLA_OPERSTATE = 16
 ++pkg syscall (linux-s390x), const IFLA_OPERSTATE ideal-int
 ++pkg syscall (linux-s390x), const IFLA_PRIORITY = 9
 ++pkg syscall (linux-s390x), const IFLA_PRIORITY ideal-int
 ++pkg syscall (linux-s390x), const IFLA_PROTINFO = 12
 ++pkg syscall (linux-s390x), const IFLA_PROTINFO ideal-int
 ++pkg syscall (linux-s390x), const IFLA_QDISC = 6
 ++pkg syscall (linux-s390x), const IFLA_QDISC ideal-int
 ++pkg syscall (linux-s390x), const IFLA_STATS = 7
 ++pkg syscall (linux-s390x), const IFLA_STATS ideal-int
 ++pkg syscall (linux-s390x), const IFLA_TXQLEN = 13
 ++pkg syscall (linux-s390x), const IFLA_TXQLEN ideal-int
 ++pkg syscall (linux-s390x), const IFLA_UNSPEC = 0
 ++pkg syscall (linux-s390x), const IFLA_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const IFLA_WEIGHT = 15
 ++pkg syscall (linux-s390x), const IFLA_WEIGHT ideal-int
 ++pkg syscall (linux-s390x), const IFLA_WIRELESS = 11
 ++pkg syscall (linux-s390x), const IFLA_WIRELESS ideal-int
 ++pkg syscall (linux-s390x), const IFNAMSIZ = 16
 ++pkg syscall (linux-s390x), const IFNAMSIZ ideal-int
 ++pkg syscall (linux-s390x), const IGNBRK = 1
 ++pkg syscall (linux-s390x), const IGNBRK ideal-int
 ++pkg syscall (linux-s390x), const IGNCR = 128
 ++pkg syscall (linux-s390x), const IGNCR ideal-int
 ++pkg syscall (linux-s390x), const IGNPAR = 4
 ++pkg syscall (linux-s390x), const IGNPAR ideal-int
 ++pkg syscall (linux-s390x), const IMAXBEL = 8192
 ++pkg syscall (linux-s390x), const IMAXBEL ideal-int
 ++pkg syscall (linux-s390x), const ImplementsGetwd = true
 ++pkg syscall (linux-s390x), const IN_ACCESS = 1
 ++pkg syscall (linux-s390x), const IN_ACCESS ideal-int
 ++pkg syscall (linux-s390x), const IN_ALL_EVENTS = 4095
 ++pkg syscall (linux-s390x), const IN_ALL_EVENTS ideal-int
 ++pkg syscall (linux-s390x), const IN_ATTRIB = 4
 ++pkg syscall (linux-s390x), const IN_ATTRIB ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSA_HOST = 16777215
 ++pkg syscall (linux-s390x), const IN_CLASSA_HOST ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSA_MAX = 128
 ++pkg syscall (linux-s390x), const IN_CLASSA_MAX ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSA_NET = 4278190080
 ++pkg syscall (linux-s390x), const IN_CLASSA_NET ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSA_NSHIFT = 24
 ++pkg syscall (linux-s390x), const IN_CLASSA_NSHIFT ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSB_HOST = 65535
 ++pkg syscall (linux-s390x), const IN_CLASSB_HOST ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSB_MAX = 65536
 ++pkg syscall (linux-s390x), const IN_CLASSB_MAX ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSB_NET = 4294901760
 ++pkg syscall (linux-s390x), const IN_CLASSB_NET ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSB_NSHIFT = 16
 ++pkg syscall (linux-s390x), const IN_CLASSB_NSHIFT ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSC_HOST = 255
 ++pkg syscall (linux-s390x), const IN_CLASSC_HOST ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSC_NET = 4294967040
 ++pkg syscall (linux-s390x), const IN_CLASSC_NET ideal-int
 ++pkg syscall (linux-s390x), const IN_CLASSC_NSHIFT = 8
 ++pkg syscall (linux-s390x), const IN_CLASSC_NSHIFT ideal-int
 ++pkg syscall (linux-s390x), const IN_CLOEXEC = 524288
 ++pkg syscall (linux-s390x), const IN_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x), const IN_CLOSE = 24
 ++pkg syscall (linux-s390x), const IN_CLOSE ideal-int
 ++pkg syscall (linux-s390x), const IN_CLOSE_NOWRITE = 16
 ++pkg syscall (linux-s390x), const IN_CLOSE_NOWRITE ideal-int
 ++pkg syscall (linux-s390x), const IN_CLOSE_WRITE = 8
 ++pkg syscall (linux-s390x), const IN_CLOSE_WRITE ideal-int
 ++pkg syscall (linux-s390x), const IN_CREATE = 256
 ++pkg syscall (linux-s390x), const IN_CREATE ideal-int
 ++pkg syscall (linux-s390x), const IN_DELETE = 512
 ++pkg syscall (linux-s390x), const IN_DELETE ideal-int
 ++pkg syscall (linux-s390x), const IN_DELETE_SELF = 1024
 ++pkg syscall (linux-s390x), const IN_DELETE_SELF ideal-int
 ++pkg syscall (linux-s390x), const IN_DONT_FOLLOW = 33554432
 ++pkg syscall (linux-s390x), const IN_DONT_FOLLOW ideal-int
 ++pkg syscall (linux-s390x), const IN_EXCL_UNLINK = 67108864
 ++pkg syscall (linux-s390x), const IN_EXCL_UNLINK ideal-int
 ++pkg syscall (linux-s390x), const IN_IGNORED = 32768
 ++pkg syscall (linux-s390x), const IN_IGNORED ideal-int
 ++pkg syscall (linux-s390x), const IN_ISDIR = 1073741824
 ++pkg syscall (linux-s390x), const IN_ISDIR ideal-int
 ++pkg syscall (linux-s390x), const INLCR = 64
 ++pkg syscall (linux-s390x), const INLCR ideal-int
 ++pkg syscall (linux-s390x), const IN_LOOPBACKNET = 127
 ++pkg syscall (linux-s390x), const IN_LOOPBACKNET ideal-int
 ++pkg syscall (linux-s390x), const IN_MASK_ADD = 536870912
 ++pkg syscall (linux-s390x), const IN_MASK_ADD ideal-int
 ++pkg syscall (linux-s390x), const IN_MODIFY = 2
 ++pkg syscall (linux-s390x), const IN_MODIFY ideal-int
 ++pkg syscall (linux-s390x), const IN_MOVE = 192
 ++pkg syscall (linux-s390x), const IN_MOVED_FROM = 64
 ++pkg syscall (linux-s390x), const IN_MOVED_FROM ideal-int
 ++pkg syscall (linux-s390x), const IN_MOVED_TO = 128
 ++pkg syscall (linux-s390x), const IN_MOVED_TO ideal-int
 ++pkg syscall (linux-s390x), const IN_MOVE ideal-int
 ++pkg syscall (linux-s390x), const IN_MOVE_SELF = 2048
 ++pkg syscall (linux-s390x), const IN_MOVE_SELF ideal-int
 ++pkg syscall (linux-s390x), const IN_NONBLOCK = 2048
 ++pkg syscall (linux-s390x), const IN_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x), const IN_ONESHOT = 2147483648
 ++pkg syscall (linux-s390x), const IN_ONESHOT ideal-int
 ++pkg syscall (linux-s390x), const IN_ONLYDIR = 16777216
 ++pkg syscall (linux-s390x), const IN_ONLYDIR ideal-int
 ++pkg syscall (linux-s390x), const IN_OPEN = 32
 ++pkg syscall (linux-s390x), const IN_OPEN ideal-int
 ++pkg syscall (linux-s390x), const INPCK = 16
 ++pkg syscall (linux-s390x), const INPCK ideal-int
 ++pkg syscall (linux-s390x), const IN_Q_OVERFLOW = 16384
 ++pkg syscall (linux-s390x), const IN_Q_OVERFLOW ideal-int
 ++pkg syscall (linux-s390x), const IN_UNMOUNT = 8192
 ++pkg syscall (linux-s390x), const IN_UNMOUNT ideal-int
 ++pkg syscall (linux-s390x), const IP_ADD_MEMBERSHIP = 35
 ++pkg syscall (linux-s390x), const IP_ADD_SOURCE_MEMBERSHIP = 39
 ++pkg syscall (linux-s390x), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const IP_BLOCK_SOURCE = 38
 ++pkg syscall (linux-s390x), const IP_BLOCK_SOURCE ideal-int
 ++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_LOOP = 1
 ++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_LOOP ideal-int
 ++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_TTL = 1
 ++pkg syscall (linux-s390x), const IP_DEFAULT_MULTICAST_TTL ideal-int
 ++pkg syscall (linux-s390x), const IP_DF = 16384
 ++pkg syscall (linux-s390x), const IP_DF ideal-int
 ++pkg syscall (linux-s390x), const IP_DROP_MEMBERSHIP = 36
 ++pkg syscall (linux-s390x), const IP_DROP_SOURCE_MEMBERSHIP = 40
 ++pkg syscall (linux-s390x), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const IP_FREEBIND = 15
 ++pkg syscall (linux-s390x), const IP_FREEBIND ideal-int
 ++pkg syscall (linux-s390x), const IP_HDRINCL = 3
 ++pkg syscall (linux-s390x), const IP_HDRINCL ideal-int
 ++pkg syscall (linux-s390x), const IP_IPSEC_POLICY = 16
 ++pkg syscall (linux-s390x), const IP_IPSEC_POLICY ideal-int
 ++pkg syscall (linux-s390x), const IP_MAX_MEMBERSHIPS = 20
 ++pkg syscall (linux-s390x), const IP_MAX_MEMBERSHIPS ideal-int
 ++pkg syscall (linux-s390x), const IP_MAXPACKET = 65535
 ++pkg syscall (linux-s390x), const IP_MAXPACKET ideal-int
 ++pkg syscall (linux-s390x), const IP_MF = 8192
 ++pkg syscall (linux-s390x), const IP_MF ideal-int
 ++pkg syscall (linux-s390x), const IP_MINTTL = 21
 ++pkg syscall (linux-s390x), const IP_MINTTL ideal-int
 ++pkg syscall (linux-s390x), const IP_MSFILTER = 41
 ++pkg syscall (linux-s390x), const IP_MSFILTER ideal-int
 ++pkg syscall (linux-s390x), const IP_MSS = 576
 ++pkg syscall (linux-s390x), const IP_MSS ideal-int
 ++pkg syscall (linux-s390x), const IP_MTU = 14
 ++pkg syscall (linux-s390x), const IP_MTU_DISCOVER = 10
 ++pkg syscall (linux-s390x), const IP_MTU_DISCOVER ideal-int
 ++pkg syscall (linux-s390x), const IP_MTU ideal-int
 ++pkg syscall (linux-s390x), const IP_MULTICAST_ALL = 49
 ++pkg syscall (linux-s390x), const IP_MULTICAST_ALL ideal-int
 ++pkg syscall (linux-s390x), const IP_MULTICAST_IF = 32
 ++pkg syscall (linux-s390x), const IP_MULTICAST_LOOP = 34
 ++pkg syscall (linux-s390x), const IP_MULTICAST_TTL = 33
 ++pkg syscall (linux-s390x), const IP_OFFMASK = 8191
 ++pkg syscall (linux-s390x), const IP_OFFMASK ideal-int
 ++pkg syscall (linux-s390x), const IP_OPTIONS = 4
 ++pkg syscall (linux-s390x), const IP_OPTIONS ideal-int
 ++pkg syscall (linux-s390x), const IP_ORIGDSTADDR = 20
 ++pkg syscall (linux-s390x), const IP_ORIGDSTADDR ideal-int
 ++pkg syscall (linux-s390x), const IP_PASSSEC = 18
 ++pkg syscall (linux-s390x), const IP_PASSSEC ideal-int
 ++pkg syscall (linux-s390x), const IP_PKTINFO = 8
 ++pkg syscall (linux-s390x), const IP_PKTINFO ideal-int
 ++pkg syscall (linux-s390x), const IP_PKTOPTIONS = 9
 ++pkg syscall (linux-s390x), const IP_PKTOPTIONS ideal-int
 ++pkg syscall (linux-s390x), const IP_PMTUDISC = 10
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_DO = 2
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_DO ideal-int
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_DONT = 0
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_DONT ideal-int
 ++pkg syscall (linux-s390x), const IP_PMTUDISC ideal-int
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_PROBE = 3
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_PROBE ideal-int
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_WANT = 1
 ++pkg syscall (linux-s390x), const IP_PMTUDISC_WANT ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_AH = 51
 ++pkg syscall (linux-s390x), const IPPROTO_AH ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_COMP = 108
 ++pkg syscall (linux-s390x), const IPPROTO_COMP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_DCCP = 33
 ++pkg syscall (linux-s390x), const IPPROTO_DCCP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_DSTOPTS = 60
 ++pkg syscall (linux-s390x), const IPPROTO_DSTOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_EGP = 8
 ++pkg syscall (linux-s390x), const IPPROTO_EGP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_ENCAP = 98
 ++pkg syscall (linux-s390x), const IPPROTO_ENCAP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_ESP = 50
 ++pkg syscall (linux-s390x), const IPPROTO_ESP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_FRAGMENT = 44
 ++pkg syscall (linux-s390x), const IPPROTO_FRAGMENT ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_GRE = 47
 ++pkg syscall (linux-s390x), const IPPROTO_GRE ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_HOPOPTS = 0
 ++pkg syscall (linux-s390x), const IPPROTO_HOPOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_ICMP = 1
 ++pkg syscall (linux-s390x), const IPPROTO_ICMP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_ICMPV6 = 58
 ++pkg syscall (linux-s390x), const IPPROTO_ICMPV6 ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_IDP = 22
 ++pkg syscall (linux-s390x), const IPPROTO_IDP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_IGMP = 2
 ++pkg syscall (linux-s390x), const IPPROTO_IGMP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_IPIP = 4
 ++pkg syscall (linux-s390x), const IPPROTO_IPIP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_MTP = 92
 ++pkg syscall (linux-s390x), const IPPROTO_MTP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_NONE = 59
 ++pkg syscall (linux-s390x), const IPPROTO_NONE ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_PIM = 103
 ++pkg syscall (linux-s390x), const IPPROTO_PIM ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_PUP = 12
 ++pkg syscall (linux-s390x), const IPPROTO_PUP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_RAW = 255
 ++pkg syscall (linux-s390x), const IPPROTO_RAW ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_ROUTING = 43
 ++pkg syscall (linux-s390x), const IPPROTO_ROUTING ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_RSVP = 46
 ++pkg syscall (linux-s390x), const IPPROTO_RSVP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_SCTP = 132
 ++pkg syscall (linux-s390x), const IPPROTO_SCTP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_TP = 29
 ++pkg syscall (linux-s390x), const IPPROTO_TP ideal-int
 ++pkg syscall (linux-s390x), const IPPROTO_UDPLITE = 136
 ++pkg syscall (linux-s390x), const IPPROTO_UDPLITE ideal-int
 ++pkg syscall (linux-s390x), const IP_RECVERR = 11
 ++pkg syscall (linux-s390x), const IP_RECVERR ideal-int
 ++pkg syscall (linux-s390x), const IP_RECVOPTS = 6
 ++pkg syscall (linux-s390x), const IP_RECVOPTS ideal-int
 ++pkg syscall (linux-s390x), const IP_RECVORIGDSTADDR = 20
 ++pkg syscall (linux-s390x), const IP_RECVORIGDSTADDR ideal-int
 ++pkg syscall (linux-s390x), const IP_RECVRETOPTS = 7
 ++pkg syscall (linux-s390x), const IP_RECVRETOPTS ideal-int
 ++pkg syscall (linux-s390x), const IP_RECVTOS = 13
 ++pkg syscall (linux-s390x), const IP_RECVTOS ideal-int
 ++pkg syscall (linux-s390x), const IP_RECVTTL = 12
 ++pkg syscall (linux-s390x), const IP_RECVTTL ideal-int
 ++pkg syscall (linux-s390x), const IP_RETOPTS = 7
 ++pkg syscall (linux-s390x), const IP_RETOPTS ideal-int
 ++pkg syscall (linux-s390x), const IP_RF = 32768
 ++pkg syscall (linux-s390x), const IP_RF ideal-int
 ++pkg syscall (linux-s390x), const IP_ROUTER_ALERT = 5
 ++pkg syscall (linux-s390x), const IP_ROUTER_ALERT ideal-int
 ++pkg syscall (linux-s390x), const IP_TOS = 1
 ++pkg syscall (linux-s390x), const IP_TRANSPARENT = 19
 ++pkg syscall (linux-s390x), const IP_TRANSPARENT ideal-int
 ++pkg syscall (linux-s390x), const IP_TTL = 2
 ++pkg syscall (linux-s390x), const IP_UNBLOCK_SOURCE = 37
 ++pkg syscall (linux-s390x), const IP_UNBLOCK_SOURCE ideal-int
 ++pkg syscall (linux-s390x), const IP_UNICAST_IF = 50
 ++pkg syscall (linux-s390x), const IP_UNICAST_IF ideal-int
 ++pkg syscall (linux-s390x), const IPV6_2292DSTOPTS = 4
 ++pkg syscall (linux-s390x), const IPV6_2292DSTOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_2292HOPLIMIT = 8
 ++pkg syscall (linux-s390x), const IPV6_2292HOPLIMIT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_2292HOPOPTS = 3
 ++pkg syscall (linux-s390x), const IPV6_2292HOPOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_2292PKTINFO = 2
 ++pkg syscall (linux-s390x), const IPV6_2292PKTINFO ideal-int
 ++pkg syscall (linux-s390x), const IPV6_2292PKTOPTIONS = 6
 ++pkg syscall (linux-s390x), const IPV6_2292PKTOPTIONS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_2292RTHDR = 5
 ++pkg syscall (linux-s390x), const IPV6_2292RTHDR ideal-int
 ++pkg syscall (linux-s390x), const IPV6_ADD_MEMBERSHIP = 20
 ++pkg syscall (linux-s390x), const IPV6_ADD_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const IPV6_ADDRFORM = 1
 ++pkg syscall (linux-s390x), const IPV6_ADDRFORM ideal-int
 ++pkg syscall (linux-s390x), const IPV6_AUTHHDR = 10
 ++pkg syscall (linux-s390x), const IPV6_AUTHHDR ideal-int
 ++pkg syscall (linux-s390x), const IPV6_CHECKSUM = 7
 ++pkg syscall (linux-s390x), const IPV6_CHECKSUM ideal-int
 ++pkg syscall (linux-s390x), const IPV6_DROP_MEMBERSHIP = 21
 ++pkg syscall (linux-s390x), const IPV6_DROP_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const IPV6_DSTOPTS = 59
 ++pkg syscall (linux-s390x), const IPV6_DSTOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_HOPLIMIT = 52
 ++pkg syscall (linux-s390x), const IPV6_HOPLIMIT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_HOPOPTS = 54
 ++pkg syscall (linux-s390x), const IPV6_HOPOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_IPSEC_POLICY = 34
 ++pkg syscall (linux-s390x), const IPV6_IPSEC_POLICY ideal-int
 ++pkg syscall (linux-s390x), const IPV6_JOIN_ANYCAST = 27
 ++pkg syscall (linux-s390x), const IPV6_JOIN_ANYCAST ideal-int
 ++pkg syscall (linux-s390x), const IPV6_JOIN_GROUP = 20
 ++pkg syscall (linux-s390x), const IPV6_LEAVE_ANYCAST = 28
 ++pkg syscall (linux-s390x), const IPV6_LEAVE_ANYCAST ideal-int
 ++pkg syscall (linux-s390x), const IPV6_LEAVE_GROUP = 21
 ++pkg syscall (linux-s390x), const IPV6_MTU = 24
 ++pkg syscall (linux-s390x), const IPV6_MTU_DISCOVER = 23
 ++pkg syscall (linux-s390x), const IPV6_MTU_DISCOVER ideal-int
 ++pkg syscall (linux-s390x), const IPV6_MTU ideal-int
 ++pkg syscall (linux-s390x), const IPV6_MULTICAST_HOPS = 18
 ++pkg syscall (linux-s390x), const IPV6_MULTICAST_IF = 17
 ++pkg syscall (linux-s390x), const IPV6_MULTICAST_LOOP = 19
 ++pkg syscall (linux-s390x), const IPV6_NEXTHOP = 9
 ++pkg syscall (linux-s390x), const IPV6_NEXTHOP ideal-int
 ++pkg syscall (linux-s390x), const IPV6_PKTINFO = 50
 ++pkg syscall (linux-s390x), const IPV6_PKTINFO ideal-int
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DO = 2
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DO ideal-int
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DONT = 0
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_DONT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_PROBE = 3
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_PROBE ideal-int
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_WANT = 1
 ++pkg syscall (linux-s390x), const IPV6_PMTUDISC_WANT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVDSTOPTS = 58
 ++pkg syscall (linux-s390x), const IPV6_RECVDSTOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVERR = 25
 ++pkg syscall (linux-s390x), const IPV6_RECVERR ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVHOPLIMIT = 51
 ++pkg syscall (linux-s390x), const IPV6_RECVHOPLIMIT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVHOPOPTS = 53
 ++pkg syscall (linux-s390x), const IPV6_RECVHOPOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVPKTINFO = 49
 ++pkg syscall (linux-s390x), const IPV6_RECVPKTINFO ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVRTHDR = 56
 ++pkg syscall (linux-s390x), const IPV6_RECVRTHDR ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RECVTCLASS = 66
 ++pkg syscall (linux-s390x), const IPV6_RECVTCLASS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_ROUTER_ALERT = 22
 ++pkg syscall (linux-s390x), const IPV6_ROUTER_ALERT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RTHDR = 57
 ++pkg syscall (linux-s390x), const IPV6_RTHDRDSTOPTS = 55
 ++pkg syscall (linux-s390x), const IPV6_RTHDRDSTOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RTHDR ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RTHDR_LOOSE = 0
 ++pkg syscall (linux-s390x), const IPV6_RTHDR_LOOSE ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RTHDR_STRICT = 1
 ++pkg syscall (linux-s390x), const IPV6_RTHDR_STRICT ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RTHDR_TYPE_0 = 0
 ++pkg syscall (linux-s390x), const IPV6_RTHDR_TYPE_0 ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RXDSTOPTS = 59
 ++pkg syscall (linux-s390x), const IPV6_RXDSTOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_RXHOPOPTS = 54
 ++pkg syscall (linux-s390x), const IPV6_RXHOPOPTS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_TCLASS = 67
 ++pkg syscall (linux-s390x), const IPV6_TCLASS ideal-int
 ++pkg syscall (linux-s390x), const IPV6_UNICAST_HOPS = 16
 ++pkg syscall (linux-s390x), const IPV6_V6ONLY = 26
 ++pkg syscall (linux-s390x), const IPV6_XFRM_POLICY = 35
 ++pkg syscall (linux-s390x), const IPV6_XFRM_POLICY ideal-int
 ++pkg syscall (linux-s390x), const IP_XFRM_POLICY = 17
 ++pkg syscall (linux-s390x), const IP_XFRM_POLICY ideal-int
 ++pkg syscall (linux-s390x), const ISIG = 1
 ++pkg syscall (linux-s390x), const ISIG ideal-int
 ++pkg syscall (linux-s390x), const ISTRIP = 32
 ++pkg syscall (linux-s390x), const ISTRIP ideal-int
 ++pkg syscall (linux-s390x), const IUCLC = 512
 ++pkg syscall (linux-s390x), const IUCLC ideal-int
 ++pkg syscall (linux-s390x), const IUTF8 = 16384
 ++pkg syscall (linux-s390x), const IUTF8 ideal-int
 ++pkg syscall (linux-s390x), const IXANY = 2048
 ++pkg syscall (linux-s390x), const IXANY ideal-int
 ++pkg syscall (linux-s390x), const IXOFF = 4096
 ++pkg syscall (linux-s390x), const IXOFF ideal-int
 ++pkg syscall (linux-s390x), const IXON = 1024
 ++pkg syscall (linux-s390x), const IXON ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_OFF = 0
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_OFF ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_ON = 2309737967
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_CAD_ON ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_HALT = 3454992675
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_HALT ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_KEXEC = 1163412803
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_KEXEC ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_POWER_OFF = 1126301404
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_POWER_OFF ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART = 19088743
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART2 = 2712847316
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART2 ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_RESTART ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_SW_SUSPEND = 3489725666
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_CMD_SW_SUSPEND ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC1 = 4276215469
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC1 ideal-int
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC2 = 672274793
 ++pkg syscall (linux-s390x), const LINUX_REBOOT_MAGIC2 ideal-int
 ++pkg syscall (linux-s390x), const LOCK_EX = 2
 ++pkg syscall (linux-s390x), const LOCK_EX ideal-int
 ++pkg syscall (linux-s390x), const LOCK_NB = 4
 ++pkg syscall (linux-s390x), const LOCK_NB ideal-int
 ++pkg syscall (linux-s390x), const LOCK_SH = 1
 ++pkg syscall (linux-s390x), const LOCK_SH ideal-int
 ++pkg syscall (linux-s390x), const LOCK_UN = 8
 ++pkg syscall (linux-s390x), const LOCK_UN ideal-int
 ++pkg syscall (linux-s390x), const MADV_DODUMP = 17
 ++pkg syscall (linux-s390x), const MADV_DODUMP ideal-int
 ++pkg syscall (linux-s390x), const MADV_DOFORK = 11
 ++pkg syscall (linux-s390x), const MADV_DOFORK ideal-int
 ++pkg syscall (linux-s390x), const MADV_DONTDUMP = 16
 ++pkg syscall (linux-s390x), const MADV_DONTDUMP ideal-int
 ++pkg syscall (linux-s390x), const MADV_DONTFORK = 10
 ++pkg syscall (linux-s390x), const MADV_DONTFORK ideal-int
 ++pkg syscall (linux-s390x), const MADV_DONTNEED = 4
 ++pkg syscall (linux-s390x), const MADV_DONTNEED ideal-int
 ++pkg syscall (linux-s390x), const MADV_HUGEPAGE = 14
 ++pkg syscall (linux-s390x), const MADV_HUGEPAGE ideal-int
 ++pkg syscall (linux-s390x), const MADV_HWPOISON = 100
 ++pkg syscall (linux-s390x), const MADV_HWPOISON ideal-int
 ++pkg syscall (linux-s390x), const MADV_MERGEABLE = 12
 ++pkg syscall (linux-s390x), const MADV_MERGEABLE ideal-int
 ++pkg syscall (linux-s390x), const MADV_NOHUGEPAGE = 15
 ++pkg syscall (linux-s390x), const MADV_NOHUGEPAGE ideal-int
 ++pkg syscall (linux-s390x), const MADV_NORMAL = 0
 ++pkg syscall (linux-s390x), const MADV_NORMAL ideal-int
 ++pkg syscall (linux-s390x), const MADV_RANDOM = 1
 ++pkg syscall (linux-s390x), const MADV_RANDOM ideal-int
 ++pkg syscall (linux-s390x), const MADV_REMOVE = 9
 ++pkg syscall (linux-s390x), const MADV_REMOVE ideal-int
 ++pkg syscall (linux-s390x), const MADV_SEQUENTIAL = 2
 ++pkg syscall (linux-s390x), const MADV_SEQUENTIAL ideal-int
 ++pkg syscall (linux-s390x), const MADV_UNMERGEABLE = 13
 ++pkg syscall (linux-s390x), const MADV_UNMERGEABLE ideal-int
 ++pkg syscall (linux-s390x), const MADV_WILLNEED = 3
 ++pkg syscall (linux-s390x), const MADV_WILLNEED ideal-int
 ++pkg syscall (linux-s390x), const MAP_ANON = 32
 ++pkg syscall (linux-s390x), const MAP_ANON ideal-int
 ++pkg syscall (linux-s390x), const MAP_ANONYMOUS = 32
 ++pkg syscall (linux-s390x), const MAP_ANONYMOUS ideal-int
 ++pkg syscall (linux-s390x), const MAP_DENYWRITE = 2048
 ++pkg syscall (linux-s390x), const MAP_DENYWRITE ideal-int
 ++pkg syscall (linux-s390x), const MAP_EXECUTABLE = 4096
 ++pkg syscall (linux-s390x), const MAP_EXECUTABLE ideal-int
 ++pkg syscall (linux-s390x), const MAP_FILE = 0
 ++pkg syscall (linux-s390x), const MAP_FILE ideal-int
 ++pkg syscall (linux-s390x), const MAP_FIXED = 16
 ++pkg syscall (linux-s390x), const MAP_FIXED ideal-int
 ++pkg syscall (linux-s390x), const MAP_GROWSDOWN = 256
 ++pkg syscall (linux-s390x), const MAP_GROWSDOWN ideal-int
 ++pkg syscall (linux-s390x), const MAP_GROWSUP = 512
 ++pkg syscall (linux-s390x), const MAP_GROWSUP ideal-int
 ++pkg syscall (linux-s390x), const MAP_HUGETLB = 262144
 ++pkg syscall (linux-s390x), const MAP_HUGETLB ideal-int
 ++pkg syscall (linux-s390x), const MAP_LOCKED = 8192
 ++pkg syscall (linux-s390x), const MAP_LOCKED ideal-int
 ++pkg syscall (linux-s390x), const MAP_NONBLOCK = 65536
 ++pkg syscall (linux-s390x), const MAP_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x), const MAP_NORESERVE = 16384
 ++pkg syscall (linux-s390x), const MAP_NORESERVE ideal-int
 ++pkg syscall (linux-s390x), const MAP_POPULATE = 32768
 ++pkg syscall (linux-s390x), const MAP_POPULATE ideal-int
 ++pkg syscall (linux-s390x), const MAP_PRIVATE = 2
 ++pkg syscall (linux-s390x), const MAP_PRIVATE ideal-int
 ++pkg syscall (linux-s390x), const MAP_SHARED = 1
 ++pkg syscall (linux-s390x), const MAP_SHARED ideal-int
 ++pkg syscall (linux-s390x), const MAP_STACK = 131072
 ++pkg syscall (linux-s390x), const MAP_STACK ideal-int
 ++pkg syscall (linux-s390x), const MAP_TYPE = 15
 ++pkg syscall (linux-s390x), const MAP_TYPE ideal-int
 ++pkg syscall (linux-s390x), const MCL_CURRENT = 1
 ++pkg syscall (linux-s390x), const MCL_CURRENT ideal-int
 ++pkg syscall (linux-s390x), const MCL_FUTURE = 2
 ++pkg syscall (linux-s390x), const MCL_FUTURE ideal-int
 ++pkg syscall (linux-s390x), const MNT_DETACH = 2
 ++pkg syscall (linux-s390x), const MNT_DETACH ideal-int
 ++pkg syscall (linux-s390x), const MNT_EXPIRE = 4
 ++pkg syscall (linux-s390x), const MNT_EXPIRE ideal-int
 ++pkg syscall (linux-s390x), const MNT_FORCE = 1
 ++pkg syscall (linux-s390x), const MNT_FORCE ideal-int
 ++pkg syscall (linux-s390x), const MS_ACTIVE = 1073741824
 ++pkg syscall (linux-s390x), const MS_ACTIVE ideal-int
 ++pkg syscall (linux-s390x), const MS_ASYNC = 1
 ++pkg syscall (linux-s390x), const MS_ASYNC ideal-int
 ++pkg syscall (linux-s390x), const MS_BIND = 4096
 ++pkg syscall (linux-s390x), const MS_BIND ideal-int
 ++pkg syscall (linux-s390x), const MS_DIRSYNC = 128
 ++pkg syscall (linux-s390x), const MS_DIRSYNC ideal-int
 ++pkg syscall (linux-s390x), const MSG_CMSG_CLOEXEC = 1073741824
 ++pkg syscall (linux-s390x), const MSG_CMSG_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x), const MSG_CONFIRM = 2048
 ++pkg syscall (linux-s390x), const MSG_CONFIRM ideal-int
 ++pkg syscall (linux-s390x), const MSG_CTRUNC = 8
 ++pkg syscall (linux-s390x), const MSG_CTRUNC ideal-int
 ++pkg syscall (linux-s390x), const MSG_DONTROUTE = 4
 ++pkg syscall (linux-s390x), const MSG_DONTROUTE ideal-int
 ++pkg syscall (linux-s390x), const MSG_DONTWAIT = 64
 ++pkg syscall (linux-s390x), const MSG_DONTWAIT ideal-int
 ++pkg syscall (linux-s390x), const MSG_EOR = 128
 ++pkg syscall (linux-s390x), const MSG_EOR ideal-int
 ++pkg syscall (linux-s390x), const MSG_ERRQUEUE = 8192
 ++pkg syscall (linux-s390x), const MSG_ERRQUEUE ideal-int
 ++pkg syscall (linux-s390x), const MSG_FASTOPEN = 536870912
 ++pkg syscall (linux-s390x), const MSG_FASTOPEN ideal-int
 ++pkg syscall (linux-s390x), const MSG_FIN = 512
 ++pkg syscall (linux-s390x), const MSG_FIN ideal-int
 ++pkg syscall (linux-s390x), const MSG_MORE = 32768
 ++pkg syscall (linux-s390x), const MSG_MORE ideal-int
 ++pkg syscall (linux-s390x), const MSG_NOSIGNAL = 16384
 ++pkg syscall (linux-s390x), const MSG_NOSIGNAL ideal-int
 ++pkg syscall (linux-s390x), const MSG_OOB = 1
 ++pkg syscall (linux-s390x), const MSG_OOB ideal-int
 ++pkg syscall (linux-s390x), const MSG_PEEK = 2
 ++pkg syscall (linux-s390x), const MSG_PEEK ideal-int
 ++pkg syscall (linux-s390x), const MSG_PROXY = 16
 ++pkg syscall (linux-s390x), const MSG_PROXY ideal-int
 ++pkg syscall (linux-s390x), const MSG_RST = 4096
 ++pkg syscall (linux-s390x), const MSG_RST ideal-int
 ++pkg syscall (linux-s390x), const MSG_SYN = 1024
 ++pkg syscall (linux-s390x), const MSG_SYN ideal-int
 ++pkg syscall (linux-s390x), const MSG_TRUNC = 32
 ++pkg syscall (linux-s390x), const MSG_TRUNC ideal-int
 ++pkg syscall (linux-s390x), const MSG_TRYHARD = 4
 ++pkg syscall (linux-s390x), const MSG_TRYHARD ideal-int
 ++pkg syscall (linux-s390x), const MSG_WAITALL = 256
 ++pkg syscall (linux-s390x), const MSG_WAITALL ideal-int
 ++pkg syscall (linux-s390x), const MSG_WAITFORONE = 65536
 ++pkg syscall (linux-s390x), const MSG_WAITFORONE ideal-int
 ++pkg syscall (linux-s390x), const MS_INVALIDATE = 2
 ++pkg syscall (linux-s390x), const MS_INVALIDATE ideal-int
 ++pkg syscall (linux-s390x), const MS_I_VERSION = 8388608
 ++pkg syscall (linux-s390x), const MS_I_VERSION ideal-int
 ++pkg syscall (linux-s390x), const MS_KERNMOUNT = 4194304
 ++pkg syscall (linux-s390x), const MS_KERNMOUNT ideal-int
 ++pkg syscall (linux-s390x), const MS_MANDLOCK = 64
 ++pkg syscall (linux-s390x), const MS_MANDLOCK ideal-int
 ++pkg syscall (linux-s390x), const MS_MGC_MSK = 4294901760
 ++pkg syscall (linux-s390x), const MS_MGC_MSK ideal-int
 ++pkg syscall (linux-s390x), const MS_MGC_VAL = 3236757504
 ++pkg syscall (linux-s390x), const MS_MGC_VAL ideal-int
 ++pkg syscall (linux-s390x), const MS_MOVE = 8192
 ++pkg syscall (linux-s390x), const MS_MOVE ideal-int
 ++pkg syscall (linux-s390x), const MS_NOATIME = 1024
 ++pkg syscall (linux-s390x), const MS_NOATIME ideal-int
 ++pkg syscall (linux-s390x), const MS_NODEV = 4
 ++pkg syscall (linux-s390x), const MS_NODEV ideal-int
 ++pkg syscall (linux-s390x), const MS_NODIRATIME = 2048
 ++pkg syscall (linux-s390x), const MS_NODIRATIME ideal-int
 ++pkg syscall (linux-s390x), const MS_NOEXEC = 8
 ++pkg syscall (linux-s390x), const MS_NOEXEC ideal-int
 ++pkg syscall (linux-s390x), const MS_NOSUID = 2
 ++pkg syscall (linux-s390x), const MS_NOSUID ideal-int
 ++pkg syscall (linux-s390x), const MS_NOUSER = -2147483648
 ++pkg syscall (linux-s390x), const MS_NOUSER ideal-int
 ++pkg syscall (linux-s390x), const MS_POSIXACL = 65536
 ++pkg syscall (linux-s390x), const MS_POSIXACL ideal-int
 ++pkg syscall (linux-s390x), const MS_PRIVATE = 262144
 ++pkg syscall (linux-s390x), const MS_PRIVATE ideal-int
 ++pkg syscall (linux-s390x), const MS_RDONLY = 1
 ++pkg syscall (linux-s390x), const MS_RDONLY ideal-int
 ++pkg syscall (linux-s390x), const MS_REC = 16384
 ++pkg syscall (linux-s390x), const MS_REC ideal-int
 ++pkg syscall (linux-s390x), const MS_RELATIME = 2097152
 ++pkg syscall (linux-s390x), const MS_RELATIME ideal-int
 ++pkg syscall (linux-s390x), const MS_REMOUNT = 32
 ++pkg syscall (linux-s390x), const MS_REMOUNT ideal-int
 ++pkg syscall (linux-s390x), const MS_RMT_MASK = 8388689
 ++pkg syscall (linux-s390x), const MS_RMT_MASK ideal-int
 ++pkg syscall (linux-s390x), const MS_SHARED = 1048576
 ++pkg syscall (linux-s390x), const MS_SHARED ideal-int
 ++pkg syscall (linux-s390x), const MS_SILENT = 32768
 ++pkg syscall (linux-s390x), const MS_SILENT ideal-int
 ++pkg syscall (linux-s390x), const MS_SLAVE = 524288
 ++pkg syscall (linux-s390x), const MS_SLAVE ideal-int
 ++pkg syscall (linux-s390x), const MS_STRICTATIME = 16777216
 ++pkg syscall (linux-s390x), const MS_STRICTATIME ideal-int
 ++pkg syscall (linux-s390x), const MS_SYNC = 4
 ++pkg syscall (linux-s390x), const MS_SYNCHRONOUS = 16
 ++pkg syscall (linux-s390x), const MS_SYNCHRONOUS ideal-int
 ++pkg syscall (linux-s390x), const MS_SYNC ideal-int
 ++pkg syscall (linux-s390x), const MS_UNBINDABLE = 131072
 ++pkg syscall (linux-s390x), const MS_UNBINDABLE ideal-int
 ++pkg syscall (linux-s390x), const NAME_MAX = 255
 ++pkg syscall (linux-s390x), const NAME_MAX ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_ADD_MEMBERSHIP = 1
 ++pkg syscall (linux-s390x), const NETLINK_ADD_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_AUDIT = 9
 ++pkg syscall (linux-s390x), const NETLINK_AUDIT ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_BROADCAST_ERROR = 4
 ++pkg syscall (linux-s390x), const NETLINK_BROADCAST_ERROR ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_CONNECTOR = 11
 ++pkg syscall (linux-s390x), const NETLINK_CONNECTOR ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_CRYPTO = 21
 ++pkg syscall (linux-s390x), const NETLINK_CRYPTO ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_DNRTMSG = 14
 ++pkg syscall (linux-s390x), const NETLINK_DNRTMSG ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_DROP_MEMBERSHIP = 2
 ++pkg syscall (linux-s390x), const NETLINK_DROP_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_ECRYPTFS = 19
 ++pkg syscall (linux-s390x), const NETLINK_ECRYPTFS ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_FIB_LOOKUP = 10
 ++pkg syscall (linux-s390x), const NETLINK_FIB_LOOKUP ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_FIREWALL = 3
 ++pkg syscall (linux-s390x), const NETLINK_FIREWALL ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_GENERIC = 16
 ++pkg syscall (linux-s390x), const NETLINK_GENERIC ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_INET_DIAG = 4
 ++pkg syscall (linux-s390x), const NETLINK_INET_DIAG ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_IP6_FW = 13
 ++pkg syscall (linux-s390x), const NETLINK_IP6_FW ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_ISCSI = 8
 ++pkg syscall (linux-s390x), const NETLINK_ISCSI ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_KOBJECT_UEVENT = 15
 ++pkg syscall (linux-s390x), const NETLINK_KOBJECT_UEVENT ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_NETFILTER = 12
 ++pkg syscall (linux-s390x), const NETLINK_NETFILTER ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_NFLOG = 5
 ++pkg syscall (linux-s390x), const NETLINK_NFLOG ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_NO_ENOBUFS = 5
 ++pkg syscall (linux-s390x), const NETLINK_NO_ENOBUFS ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_PKTINFO = 3
 ++pkg syscall (linux-s390x), const NETLINK_PKTINFO ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_RDMA = 20
 ++pkg syscall (linux-s390x), const NETLINK_RDMA ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_ROUTE = 0
 ++pkg syscall (linux-s390x), const NETLINK_ROUTE ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_RX_RING = 6
 ++pkg syscall (linux-s390x), const NETLINK_RX_RING ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_SCSITRANSPORT = 18
 ++pkg syscall (linux-s390x), const NETLINK_SCSITRANSPORT ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_SELINUX = 7
 ++pkg syscall (linux-s390x), const NETLINK_SELINUX ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_SOCK_DIAG = 4
 ++pkg syscall (linux-s390x), const NETLINK_SOCK_DIAG ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_TX_RING = 7
 ++pkg syscall (linux-s390x), const NETLINK_TX_RING ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_UNUSED = 1
 ++pkg syscall (linux-s390x), const NETLINK_UNUSED ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_USERSOCK = 2
 ++pkg syscall (linux-s390x), const NETLINK_USERSOCK ideal-int
 ++pkg syscall (linux-s390x), const NETLINK_XFRM = 6
 ++pkg syscall (linux-s390x), const NETLINK_XFRM ideal-int
 ++pkg syscall (linux-s390x), const NLA_ALIGNTO = 4
 ++pkg syscall (linux-s390x), const NLA_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x), const NLA_F_NESTED = 32768
 ++pkg syscall (linux-s390x), const NLA_F_NESTED ideal-int
 ++pkg syscall (linux-s390x), const NLA_F_NET_BYTEORDER = 16384
 ++pkg syscall (linux-s390x), const NLA_F_NET_BYTEORDER ideal-int
 ++pkg syscall (linux-s390x), const NLA_HDRLEN = 4
 ++pkg syscall (linux-s390x), const NLA_HDRLEN ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_ACK = 4
 ++pkg syscall (linux-s390x), const NLM_F_ACK ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_APPEND = 2048
 ++pkg syscall (linux-s390x), const NLM_F_APPEND ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_ATOMIC = 1024
 ++pkg syscall (linux-s390x), const NLM_F_ATOMIC ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_CREATE = 1024
 ++pkg syscall (linux-s390x), const NLM_F_CREATE ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_DUMP = 768
 ++pkg syscall (linux-s390x), const NLM_F_DUMP ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_DUMP_INTR = 16
 ++pkg syscall (linux-s390x), const NLM_F_DUMP_INTR ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_ECHO = 8
 ++pkg syscall (linux-s390x), const NLM_F_ECHO ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_EXCL = 512
 ++pkg syscall (linux-s390x), const NLM_F_EXCL ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_MATCH = 512
 ++pkg syscall (linux-s390x), const NLM_F_MATCH ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_MULTI = 2
 ++pkg syscall (linux-s390x), const NLM_F_MULTI ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_REPLACE = 256
 ++pkg syscall (linux-s390x), const NLM_F_REPLACE ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_REQUEST = 1
 ++pkg syscall (linux-s390x), const NLM_F_REQUEST ideal-int
 ++pkg syscall (linux-s390x), const NLM_F_ROOT = 256
 ++pkg syscall (linux-s390x), const NLM_F_ROOT ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_ALIGNTO = 4
 ++pkg syscall (linux-s390x), const NLMSG_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_DONE = 3
 ++pkg syscall (linux-s390x), const NLMSG_DONE ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_ERROR = 2
 ++pkg syscall (linux-s390x), const NLMSG_ERROR ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_HDRLEN = 16
 ++pkg syscall (linux-s390x), const NLMSG_HDRLEN ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_MIN_TYPE = 16
 ++pkg syscall (linux-s390x), const NLMSG_MIN_TYPE ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_NOOP = 1
 ++pkg syscall (linux-s390x), const NLMSG_NOOP ideal-int
 ++pkg syscall (linux-s390x), const NLMSG_OVERRUN = 4
 ++pkg syscall (linux-s390x), const NLMSG_OVERRUN ideal-int
 ++pkg syscall (linux-s390x), const NOFLSH = 128
 ++pkg syscall (linux-s390x), const NOFLSH ideal-int
 ++pkg syscall (linux-s390x), const O_ACCMODE = 3
 ++pkg syscall (linux-s390x), const O_ACCMODE ideal-int
 ++pkg syscall (linux-s390x), const O_APPEND = 1024
 ++pkg syscall (linux-s390x), const O_ASYNC = 8192
 ++pkg syscall (linux-s390x), const O_CLOEXEC = 524288
 ++pkg syscall (linux-s390x), const O_CREAT = 64
 ++pkg syscall (linux-s390x), const OCRNL = 8
 ++pkg syscall (linux-s390x), const OCRNL ideal-int
 ++pkg syscall (linux-s390x), const O_DIRECT = 16384
 ++pkg syscall (linux-s390x), const O_DIRECT ideal-int
 ++pkg syscall (linux-s390x), const O_DIRECTORY = 65536
 ++pkg syscall (linux-s390x), const O_DIRECTORY ideal-int
 ++pkg syscall (linux-s390x), const O_DSYNC = 4096
 ++pkg syscall (linux-s390x), const O_DSYNC ideal-int
 ++pkg syscall (linux-s390x), const O_EXCL = 128
 ++pkg syscall (linux-s390x), const OFDEL = 128
 ++pkg syscall (linux-s390x), const OFDEL ideal-int
 ++pkg syscall (linux-s390x), const OFILL = 64
 ++pkg syscall (linux-s390x), const OFILL ideal-int
 ++pkg syscall (linux-s390x), const O_FSYNC = 1052672
 ++pkg syscall (linux-s390x), const O_FSYNC ideal-int
 ++pkg syscall (linux-s390x), const O_LARGEFILE = 0
 ++pkg syscall (linux-s390x), const O_LARGEFILE ideal-int
 ++pkg syscall (linux-s390x), const OLCUC = 2
 ++pkg syscall (linux-s390x), const OLCUC ideal-int
 ++pkg syscall (linux-s390x), const O_NDELAY = 2048
 ++pkg syscall (linux-s390x), const O_NDELAY ideal-int
 ++pkg syscall (linux-s390x), const ONLCR = 4
 ++pkg syscall (linux-s390x), const ONLCR ideal-int
 ++pkg syscall (linux-s390x), const ONLRET = 32
 ++pkg syscall (linux-s390x), const ONLRET ideal-int
 ++pkg syscall (linux-s390x), const O_NOATIME = 262144
 ++pkg syscall (linux-s390x), const O_NOATIME ideal-int
 ++pkg syscall (linux-s390x), const ONOCR = 16
 ++pkg syscall (linux-s390x), const ONOCR ideal-int
 ++pkg syscall (linux-s390x), const O_NOCTTY = 256
 ++pkg syscall (linux-s390x), const O_NOFOLLOW = 131072
 ++pkg syscall (linux-s390x), const O_NOFOLLOW ideal-int
 ++pkg syscall (linux-s390x), const O_NONBLOCK = 2048
 ++pkg syscall (linux-s390x), const O_PATH = 2097152
 ++pkg syscall (linux-s390x), const O_PATH ideal-int
 ++pkg syscall (linux-s390x), const OPOST = 1
 ++pkg syscall (linux-s390x), const OPOST ideal-int
 ++pkg syscall (linux-s390x), const O_RSYNC = 1052672
 ++pkg syscall (linux-s390x), const O_RSYNC ideal-int
 ++pkg syscall (linux-s390x), const O_SYNC = 1052672
 ++pkg syscall (linux-s390x), const O_TRUNC = 512
 ++pkg syscall (linux-s390x), const PACKET_ADD_MEMBERSHIP = 1
 ++pkg syscall (linux-s390x), const PACKET_ADD_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const PACKET_AUXDATA = 8
 ++pkg syscall (linux-s390x), const PACKET_AUXDATA ideal-int
 ++pkg syscall (linux-s390x), const PACKET_BROADCAST = 1
 ++pkg syscall (linux-s390x), const PACKET_BROADCAST ideal-int
 ++pkg syscall (linux-s390x), const PACKET_COPY_THRESH = 7
 ++pkg syscall (linux-s390x), const PACKET_COPY_THRESH ideal-int
 ++pkg syscall (linux-s390x), const PACKET_DROP_MEMBERSHIP = 2
 ++pkg syscall (linux-s390x), const PACKET_DROP_MEMBERSHIP ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT = 18
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_CPU = 2
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_CPU ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_DEFRAG = 32768
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_DEFRAG ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_ROLLOVER = 4096
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_FLAG_ROLLOVER ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_HASH = 0
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_HASH ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_LB = 1
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_LB ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_RND = 4
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_RND ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_ROLLOVER = 3
 ++pkg syscall (linux-s390x), const PACKET_FANOUT_ROLLOVER ideal-int
 ++pkg syscall (linux-s390x), const PACKET_FASTROUTE = 6
 ++pkg syscall (linux-s390x), const PACKET_FASTROUTE ideal-int
 ++pkg syscall (linux-s390x), const PACKET_HDRLEN = 11
 ++pkg syscall (linux-s390x), const PACKET_HDRLEN ideal-int
 ++pkg syscall (linux-s390x), const PACKET_HOST = 0
 ++pkg syscall (linux-s390x), const PACKET_HOST ideal-int
 ++pkg syscall (linux-s390x), const PACKET_LOOPBACK = 5
 ++pkg syscall (linux-s390x), const PACKET_LOOPBACK ideal-int
 ++pkg syscall (linux-s390x), const PACKET_LOSS = 14
 ++pkg syscall (linux-s390x), const PACKET_LOSS ideal-int
 ++pkg syscall (linux-s390x), const PACKET_MR_ALLMULTI = 2
 ++pkg syscall (linux-s390x), const PACKET_MR_ALLMULTI ideal-int
 ++pkg syscall (linux-s390x), const PACKET_MR_MULTICAST = 0
 ++pkg syscall (linux-s390x), const PACKET_MR_MULTICAST ideal-int
 ++pkg syscall (linux-s390x), const PACKET_MR_PROMISC = 1
 ++pkg syscall (linux-s390x), const PACKET_MR_PROMISC ideal-int
 ++pkg syscall (linux-s390x), const PACKET_MR_UNICAST = 3
 ++pkg syscall (linux-s390x), const PACKET_MR_UNICAST ideal-int
 ++pkg syscall (linux-s390x), const PACKET_MULTICAST = 2
 ++pkg syscall (linux-s390x), const PACKET_MULTICAST ideal-int
 ++pkg syscall (linux-s390x), const PACKET_ORIGDEV = 9
 ++pkg syscall (linux-s390x), const PACKET_ORIGDEV ideal-int
 ++pkg syscall (linux-s390x), const PACKET_OTHERHOST = 3
 ++pkg syscall (linux-s390x), const PACKET_OTHERHOST ideal-int
 ++pkg syscall (linux-s390x), const PACKET_OUTGOING = 4
 ++pkg syscall (linux-s390x), const PACKET_OUTGOING ideal-int
 ++pkg syscall (linux-s390x), const PACKET_RECV_OUTPUT = 3
 ++pkg syscall (linux-s390x), const PACKET_RECV_OUTPUT ideal-int
 ++pkg syscall (linux-s390x), const PACKET_RESERVE = 12
 ++pkg syscall (linux-s390x), const PACKET_RESERVE ideal-int
 ++pkg syscall (linux-s390x), const PACKET_RX_RING = 5
 ++pkg syscall (linux-s390x), const PACKET_RX_RING ideal-int
 ++pkg syscall (linux-s390x), const PACKET_STATISTICS = 6
 ++pkg syscall (linux-s390x), const PACKET_STATISTICS ideal-int
 ++pkg syscall (linux-s390x), const PACKET_TIMESTAMP = 17
 ++pkg syscall (linux-s390x), const PACKET_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x), const PACKET_TX_HAS_OFF = 19
 ++pkg syscall (linux-s390x), const PACKET_TX_HAS_OFF ideal-int
 ++pkg syscall (linux-s390x), const PACKET_TX_RING = 13
 ++pkg syscall (linux-s390x), const PACKET_TX_RING ideal-int
 ++pkg syscall (linux-s390x), const PACKET_TX_TIMESTAMP = 16
 ++pkg syscall (linux-s390x), const PACKET_TX_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x), const PACKET_VERSION = 10
 ++pkg syscall (linux-s390x), const PACKET_VERSION ideal-int
 ++pkg syscall (linux-s390x), const PACKET_VNET_HDR = 15
 ++pkg syscall (linux-s390x), const PACKET_VNET_HDR ideal-int
 ++pkg syscall (linux-s390x), const PARENB = 256
 ++pkg syscall (linux-s390x), const PARENB ideal-int
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR0 = 2
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR0_CCITT = 4
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR0_CCITT ideal-int
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR0 ideal-int
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR1 = 3
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR1_CCITT = 5
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR1_CCITT ideal-int
 ++pkg syscall (linux-s390x), const PARITY_CRC16_PR1 ideal-int
 ++pkg syscall (linux-s390x), const PARITY_CRC32_PR0_CCITT = 6
 ++pkg syscall (linux-s390x), const PARITY_CRC32_PR0_CCITT ideal-int
 ++pkg syscall (linux-s390x), const PARITY_CRC32_PR1_CCITT = 7
 ++pkg syscall (linux-s390x), const PARITY_CRC32_PR1_CCITT ideal-int
 ++pkg syscall (linux-s390x), const PARITY_DEFAULT = 0
 ++pkg syscall (linux-s390x), const PARITY_DEFAULT ideal-int
 ++pkg syscall (linux-s390x), const PARITY_NONE = 1
 ++pkg syscall (linux-s390x), const PARITY_NONE ideal-int
 ++pkg syscall (linux-s390x), const PARMRK = 8
 ++pkg syscall (linux-s390x), const PARMRK ideal-int
 ++pkg syscall (linux-s390x), const PARODD = 512
 ++pkg syscall (linux-s390x), const PARODD ideal-int
 ++pkg syscall (linux-s390x), const PathMax = 4096
 ++pkg syscall (linux-s390x), const PathMax ideal-int
 ++pkg syscall (linux-s390x), const PENDIN = 16384
 ++pkg syscall (linux-s390x), const PENDIN ideal-int
 ++pkg syscall (linux-s390x), const PR_CAPBSET_DROP = 24
 ++pkg syscall (linux-s390x), const PR_CAPBSET_DROP ideal-int
 ++pkg syscall (linux-s390x), const PR_CAPBSET_READ = 23
 ++pkg syscall (linux-s390x), const PR_CAPBSET_READ ideal-int
 ++pkg syscall (linux-s390x), const PR_ENDIAN_BIG = 0
 ++pkg syscall (linux-s390x), const PR_ENDIAN_BIG ideal-int
 ++pkg syscall (linux-s390x), const PR_ENDIAN_LITTLE = 1
 ++pkg syscall (linux-s390x), const PR_ENDIAN_LITTLE ideal-int
 ++pkg syscall (linux-s390x), const PR_ENDIAN_PPC_LITTLE = 2
 ++pkg syscall (linux-s390x), const PR_ENDIAN_PPC_LITTLE ideal-int
 ++pkg syscall (linux-s390x), const PR_FPEMU_NOPRINT = 1
 ++pkg syscall (linux-s390x), const PR_FPEMU_NOPRINT ideal-int
 ++pkg syscall (linux-s390x), const PR_FPEMU_SIGFPE = 2
 ++pkg syscall (linux-s390x), const PR_FPEMU_SIGFPE ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_ASYNC = 2
 ++pkg syscall (linux-s390x), const PR_FP_EXC_ASYNC ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_DISABLED = 0
 ++pkg syscall (linux-s390x), const PR_FP_EXC_DISABLED ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_DIV = 65536
 ++pkg syscall (linux-s390x), const PR_FP_EXC_DIV ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_INV = 1048576
 ++pkg syscall (linux-s390x), const PR_FP_EXC_INV ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_NONRECOV = 1
 ++pkg syscall (linux-s390x), const PR_FP_EXC_NONRECOV ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_OVF = 131072
 ++pkg syscall (linux-s390x), const PR_FP_EXC_OVF ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_PRECISE = 3
 ++pkg syscall (linux-s390x), const PR_FP_EXC_PRECISE ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_RES = 524288
 ++pkg syscall (linux-s390x), const PR_FP_EXC_RES ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_SW_ENABLE = 128
 ++pkg syscall (linux-s390x), const PR_FP_EXC_SW_ENABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_FP_EXC_UND = 262144
 ++pkg syscall (linux-s390x), const PR_FP_EXC_UND ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_CHILD_SUBREAPER = 37
 ++pkg syscall (linux-s390x), const PR_GET_CHILD_SUBREAPER ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_DUMPABLE = 3
 ++pkg syscall (linux-s390x), const PR_GET_DUMPABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_ENDIAN = 19
 ++pkg syscall (linux-s390x), const PR_GET_ENDIAN ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_FPEMU = 9
 ++pkg syscall (linux-s390x), const PR_GET_FPEMU ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_FPEXC = 11
 ++pkg syscall (linux-s390x), const PR_GET_FPEXC ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_KEEPCAPS = 7
 ++pkg syscall (linux-s390x), const PR_GET_KEEPCAPS ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_NAME = 16
 ++pkg syscall (linux-s390x), const PR_GET_NAME ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_NO_NEW_PRIVS = 39
 ++pkg syscall (linux-s390x), const PR_GET_NO_NEW_PRIVS ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_PDEATHSIG = 2
 ++pkg syscall (linux-s390x), const PR_GET_PDEATHSIG ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_SECCOMP = 21
 ++pkg syscall (linux-s390x), const PR_GET_SECCOMP ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_SECUREBITS = 27
 ++pkg syscall (linux-s390x), const PR_GET_SECUREBITS ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_THP_DISABLE = 42
 ++pkg syscall (linux-s390x), const PR_GET_THP_DISABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_TID_ADDRESS = 40
 ++pkg syscall (linux-s390x), const PR_GET_TID_ADDRESS ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_TIMERSLACK = 30
 ++pkg syscall (linux-s390x), const PR_GET_TIMERSLACK ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_TIMING = 13
 ++pkg syscall (linux-s390x), const PR_GET_TIMING ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_TSC = 25
 ++pkg syscall (linux-s390x), const PR_GET_TSC ideal-int
 ++pkg syscall (linux-s390x), const PR_GET_UNALIGN = 5
 ++pkg syscall (linux-s390x), const PR_GET_UNALIGN ideal-int
 ++pkg syscall (linux-s390x), const PRIO_PGRP = 1
 ++pkg syscall (linux-s390x), const PRIO_PGRP ideal-int
 ++pkg syscall (linux-s390x), const PRIO_PROCESS = 0
 ++pkg syscall (linux-s390x), const PRIO_PROCESS ideal-int
 ++pkg syscall (linux-s390x), const PRIO_USER = 2
 ++pkg syscall (linux-s390x), const PRIO_USER ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL = 33
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_CLEAR = 0
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_CLEAR ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_DEFAULT = 2
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_DEFAULT ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_EARLY = 1
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_EARLY ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_GET = 34
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_GET ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_LATE = 0
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_LATE ideal-int
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_SET = 1
 ++pkg syscall (linux-s390x), const PR_MCE_KILL_SET ideal-int
 ++pkg syscall (linux-s390x), const PROT_EXEC = 4
 ++pkg syscall (linux-s390x), const PROT_EXEC ideal-int
 ++pkg syscall (linux-s390x), const PROT_GROWSDOWN = 16777216
 ++pkg syscall (linux-s390x), const PROT_GROWSDOWN ideal-int
 ++pkg syscall (linux-s390x), const PROT_GROWSUP = 33554432
 ++pkg syscall (linux-s390x), const PROT_GROWSUP ideal-int
 ++pkg syscall (linux-s390x), const PROT_NONE = 0
 ++pkg syscall (linux-s390x), const PROT_NONE ideal-int
 ++pkg syscall (linux-s390x), const PROT_READ = 1
 ++pkg syscall (linux-s390x), const PROT_READ ideal-int
 ++pkg syscall (linux-s390x), const PROT_WRITE = 2
 ++pkg syscall (linux-s390x), const PROT_WRITE ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_CHILD_SUBREAPER = 36
 ++pkg syscall (linux-s390x), const PR_SET_CHILD_SUBREAPER ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_DUMPABLE = 4
 ++pkg syscall (linux-s390x), const PR_SET_DUMPABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_ENDIAN = 20
 ++pkg syscall (linux-s390x), const PR_SET_ENDIAN ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_FPEMU = 10
 ++pkg syscall (linux-s390x), const PR_SET_FPEMU ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_FPEXC = 12
 ++pkg syscall (linux-s390x), const PR_SET_FPEXC ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_KEEPCAPS = 8
 ++pkg syscall (linux-s390x), const PR_SET_KEEPCAPS ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM = 35
 ++pkg syscall (linux-s390x), const PR_SET_MM_ARG_END = 9
 ++pkg syscall (linux-s390x), const PR_SET_MM_ARG_END ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_ARG_START = 8
 ++pkg syscall (linux-s390x), const PR_SET_MM_ARG_START ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_AUXV = 12
 ++pkg syscall (linux-s390x), const PR_SET_MM_AUXV ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_BRK = 7
 ++pkg syscall (linux-s390x), const PR_SET_MM_BRK ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_END_CODE = 2
 ++pkg syscall (linux-s390x), const PR_SET_MM_END_CODE ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_END_DATA = 4
 ++pkg syscall (linux-s390x), const PR_SET_MM_END_DATA ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_ENV_END = 11
 ++pkg syscall (linux-s390x), const PR_SET_MM_ENV_END ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_ENV_START = 10
 ++pkg syscall (linux-s390x), const PR_SET_MM_ENV_START ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_EXE_FILE = 13
 ++pkg syscall (linux-s390x), const PR_SET_MM_EXE_FILE ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_BRK = 6
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_BRK ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_CODE = 1
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_CODE ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_DATA = 3
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_DATA ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_STACK = 5
 ++pkg syscall (linux-s390x), const PR_SET_MM_START_STACK ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_NAME = 15
 ++pkg syscall (linux-s390x), const PR_SET_NAME ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_NO_NEW_PRIVS = 38
 ++pkg syscall (linux-s390x), const PR_SET_NO_NEW_PRIVS ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_PDEATHSIG = 1
 ++pkg syscall (linux-s390x), const PR_SET_PDEATHSIG ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_PTRACER = 1499557217
 ++pkg syscall (linux-s390x), const PR_SET_PTRACER_ANY = -1
 ++pkg syscall (linux-s390x), const PR_SET_PTRACER_ANY ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_PTRACER ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_SECCOMP = 22
 ++pkg syscall (linux-s390x), const PR_SET_SECCOMP ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_SECUREBITS = 28
 ++pkg syscall (linux-s390x), const PR_SET_SECUREBITS ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_THP_DISABLE = 41
 ++pkg syscall (linux-s390x), const PR_SET_THP_DISABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_TIMERSLACK = 29
 ++pkg syscall (linux-s390x), const PR_SET_TIMERSLACK ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_TIMING = 14
 ++pkg syscall (linux-s390x), const PR_SET_TIMING ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_TSC = 26
 ++pkg syscall (linux-s390x), const PR_SET_TSC ideal-int
 ++pkg syscall (linux-s390x), const PR_SET_UNALIGN = 6
 ++pkg syscall (linux-s390x), const PR_SET_UNALIGN ideal-int
 ++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_DISABLE = 31
 ++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_DISABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_ENABLE = 32
 ++pkg syscall (linux-s390x), const PR_TASK_PERF_EVENTS_ENABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_TIMING_STATISTICAL = 0
 ++pkg syscall (linux-s390x), const PR_TIMING_STATISTICAL ideal-int
 ++pkg syscall (linux-s390x), const PR_TIMING_TIMESTAMP = 1
 ++pkg syscall (linux-s390x), const PR_TIMING_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x), const PR_TSC_ENABLE = 1
 ++pkg syscall (linux-s390x), const PR_TSC_ENABLE ideal-int
 ++pkg syscall (linux-s390x), const PR_TSC_SIGSEGV = 2
 ++pkg syscall (linux-s390x), const PR_TSC_SIGSEGV ideal-int
 ++pkg syscall (linux-s390x), const PR_UNALIGN_NOPRINT = 1
 ++pkg syscall (linux-s390x), const PR_UNALIGN_NOPRINT ideal-int
 ++pkg syscall (linux-s390x), const PR_UNALIGN_SIGBUS = 2
 ++pkg syscall (linux-s390x), const PR_UNALIGN_SIGBUS ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR0 = 144
 ++pkg syscall (linux-s390x), const PT_ACR0 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR10 = 184
 ++pkg syscall (linux-s390x), const PT_ACR10 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR11 = 188
 ++pkg syscall (linux-s390x), const PT_ACR1 = 148
 ++pkg syscall (linux-s390x), const PT_ACR11 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR12 = 192
 ++pkg syscall (linux-s390x), const PT_ACR12 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR13 = 196
 ++pkg syscall (linux-s390x), const PT_ACR13 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR14 = 200
 ++pkg syscall (linux-s390x), const PT_ACR14 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR15 = 204
 ++pkg syscall (linux-s390x), const PT_ACR15 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR1 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR2 = 152
 ++pkg syscall (linux-s390x), const PT_ACR2 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR3 = 156
 ++pkg syscall (linux-s390x), const PT_ACR3 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR4 = 160
 ++pkg syscall (linux-s390x), const PT_ACR4 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR5 = 164
 ++pkg syscall (linux-s390x), const PT_ACR5 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR6 = 168
 ++pkg syscall (linux-s390x), const PT_ACR6 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR7 = 172
 ++pkg syscall (linux-s390x), const PT_ACR7 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR8 = 176
 ++pkg syscall (linux-s390x), const PT_ACR8 ideal-int
 ++pkg syscall (linux-s390x), const PT_ACR9 = 180
 ++pkg syscall (linux-s390x), const PT_ACR9 ideal-int
 ++pkg syscall (linux-s390x), const PT_CR_10 = 360
 ++pkg syscall (linux-s390x), const PT_CR_10 ideal-int
 ++pkg syscall (linux-s390x), const PT_CR_11 = 368
 ++pkg syscall (linux-s390x), const PT_CR_11 ideal-int
 ++pkg syscall (linux-s390x), const PT_CR_9 = 352
 ++pkg syscall (linux-s390x), const PT_CR_9 ideal-int
 ++pkg syscall (linux-s390x), const PT_ENDREGS = 431
 ++pkg syscall (linux-s390x), const PT_ENDREGS ideal-int
 ++pkg syscall (linux-s390x), const PT_FPC = 216
 ++pkg syscall (linux-s390x), const PT_FPC ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR0 = 224
 ++pkg syscall (linux-s390x), const PT_FPR0 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR10 = 304
 ++pkg syscall (linux-s390x), const PT_FPR10 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR11 = 312
 ++pkg syscall (linux-s390x), const PT_FPR11 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR1 = 232
 ++pkg syscall (linux-s390x), const PT_FPR12 = 320
 ++pkg syscall (linux-s390x), const PT_FPR12 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR13 = 328
 ++pkg syscall (linux-s390x), const PT_FPR13 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR14 = 336
 ++pkg syscall (linux-s390x), const PT_FPR14 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR15 = 344
 ++pkg syscall (linux-s390x), const PT_FPR15 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR1 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR2 = 240
 ++pkg syscall (linux-s390x), const PT_FPR2 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR3 = 248
 ++pkg syscall (linux-s390x), const PT_FPR3 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR4 = 256
 ++pkg syscall (linux-s390x), const PT_FPR4 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR5 = 264
 ++pkg syscall (linux-s390x), const PT_FPR5 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR6 = 272
 ++pkg syscall (linux-s390x), const PT_FPR6 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR7 = 280
 ++pkg syscall (linux-s390x), const PT_FPR7 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR8 = 288
 ++pkg syscall (linux-s390x), const PT_FPR8 ideal-int
 ++pkg syscall (linux-s390x), const PT_FPR9 = 296
 ++pkg syscall (linux-s390x), const PT_FPR9 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR0 = 16
 ++pkg syscall (linux-s390x), const PT_GPR0 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR10 = 96
 ++pkg syscall (linux-s390x), const PT_GPR10 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR11 = 104
 ++pkg syscall (linux-s390x), const PT_GPR11 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR12 = 112
 ++pkg syscall (linux-s390x), const PT_GPR1 = 24
 ++pkg syscall (linux-s390x), const PT_GPR12 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR13 = 120
 ++pkg syscall (linux-s390x), const PT_GPR13 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR14 = 128
 ++pkg syscall (linux-s390x), const PT_GPR14 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR15 = 136
 ++pkg syscall (linux-s390x), const PT_GPR15 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR1 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR2 = 32
 ++pkg syscall (linux-s390x), const PT_GPR2 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR3 = 40
 ++pkg syscall (linux-s390x), const PT_GPR3 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR4 = 48
 ++pkg syscall (linux-s390x), const PT_GPR4 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR5 = 56
 ++pkg syscall (linux-s390x), const PT_GPR5 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR6 = 64
 ++pkg syscall (linux-s390x), const PT_GPR6 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR7 = 72
 ++pkg syscall (linux-s390x), const PT_GPR7 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR8 = 80
 ++pkg syscall (linux-s390x), const PT_GPR8 ideal-int
 ++pkg syscall (linux-s390x), const PT_GPR9 = 88
 ++pkg syscall (linux-s390x), const PT_GPR9 ideal-int
 ++pkg syscall (linux-s390x), const PT_IEEE_IP = 424
 ++pkg syscall (linux-s390x), const PT_IEEE_IP ideal-int
 ++pkg syscall (linux-s390x), const PT_LASTOFF = 424
 ++pkg syscall (linux-s390x), const PT_LASTOFF ideal-int
 ++pkg syscall (linux-s390x), const PT_ORIGGPR2 = 208
 ++pkg syscall (linux-s390x), const PT_ORIGGPR2 ideal-int
 ++pkg syscall (linux-s390x), const PT_PSWADDR = 8
 ++pkg syscall (linux-s390x), const PT_PSWADDR ideal-int
 ++pkg syscall (linux-s390x), const PT_PSWMASK = 0
 ++pkg syscall (linux-s390x), const PT_PSWMASK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_ATTACH = 16
 ++pkg syscall (linux-s390x), const PTRACE_ATTACH ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_CONT = 7
 ++pkg syscall (linux-s390x), const PTRACE_CONT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_DETACH = 17
 ++pkg syscall (linux-s390x), const PTRACE_DETACH ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_DISABLE_TE = 20496
 ++pkg syscall (linux-s390x), const PTRACE_DISABLE_TE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_ENABLE_TE = 20489
 ++pkg syscall (linux-s390x), const PTRACE_ENABLE_TE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_CLONE = 3
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_CLONE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_EXEC = 4
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_EXEC ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_EXIT = 6
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_EXIT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_FORK = 1
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_FORK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_SECCOMP = 7
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_SECCOMP ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_STOP = 128
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_STOP ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK = 2
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK_DONE = 5
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK_DONE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_EVENT_VFORK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_GETEVENTMSG = 16897
 ++pkg syscall (linux-s390x), const PTRACE_GETEVENTMSG ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_GET_LAST_BREAK = 20486
 ++pkg syscall (linux-s390x), const PTRACE_GET_LAST_BREAK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_GETREGS = 12
 ++pkg syscall (linux-s390x), const PTRACE_GETREGSET = 16900
 ++pkg syscall (linux-s390x), const PTRACE_GETREGSET ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_GETREGS ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_GETSIGINFO = 16898
 ++pkg syscall (linux-s390x), const PTRACE_GETSIGINFO ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_INTERRUPT = 16903
 ++pkg syscall (linux-s390x), const PTRACE_INTERRUPT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_KILL = 8
 ++pkg syscall (linux-s390x), const PTRACE_KILL ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_LISTEN = 16904
 ++pkg syscall (linux-s390x), const PTRACE_LISTEN ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_EXITKILL = 1048576
 ++pkg syscall (linux-s390x), const PTRACE_O_EXITKILL ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_OLDSETOPTIONS = 21
 ++pkg syscall (linux-s390x), const PTRACE_OLDSETOPTIONS ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_MASK = 1048831
 ++pkg syscall (linux-s390x), const PTRACE_O_MASK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACECLONE = 8
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACECLONE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXEC = 16
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXEC ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXIT = 64
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEEXIT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEFORK = 2
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEFORK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACESECCOMP = 128
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACESECCOMP ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACESYSGOOD = 1
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACESYSGOOD ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORK = 4
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORKDONE = 32
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORKDONE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_O_TRACEVFORK ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKDATA = 2
 ++pkg syscall (linux-s390x), const PTRACE_PEEKDATA_AREA = 20483
 ++pkg syscall (linux-s390x), const PTRACE_PEEKDATA_AREA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKDATA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO = 16905
 ++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO_SHARED = 1
 ++pkg syscall (linux-s390x), const PTRACE_PEEKSIGINFO_SHARED ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEK_SYSTEM_CALL = 20487
 ++pkg syscall (linux-s390x), const PTRACE_PEEK_SYSTEM_CALL ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT = 1
 ++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT_AREA = 20482
 ++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT_AREA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKTEXT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKUSR = 3
 ++pkg syscall (linux-s390x), const PTRACE_PEEKUSR_AREA = 20480
 ++pkg syscall (linux-s390x), const PTRACE_PEEKUSR_AREA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PEEKUSR ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKEDATA = 5
 ++pkg syscall (linux-s390x), const PTRACE_POKEDATA_AREA = 20485
 ++pkg syscall (linux-s390x), const PTRACE_POKEDATA_AREA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKEDATA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKE_SYSTEM_CALL = 20488
 ++pkg syscall (linux-s390x), const PTRACE_POKE_SYSTEM_CALL ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKETEXT = 4
 ++pkg syscall (linux-s390x), const PTRACE_POKETEXT_AREA = 20484
 ++pkg syscall (linux-s390x), const PTRACE_POKETEXT_AREA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKETEXT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKEUSR = 6
 ++pkg syscall (linux-s390x), const PTRACE_POKEUSR_AREA = 20481
 ++pkg syscall (linux-s390x), const PTRACE_POKEUSR_AREA ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_POKEUSR ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_PROT = 21
 ++pkg syscall (linux-s390x), const PTRACE_PROT ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SEIZE = 16902
 ++pkg syscall (linux-s390x), const PTRACE_SEIZE ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SETOPTIONS = 16896
 ++pkg syscall (linux-s390x), const PTRACE_SETOPTIONS ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SETREGS = 13
 ++pkg syscall (linux-s390x), const PTRACE_SETREGSET = 16901
 ++pkg syscall (linux-s390x), const PTRACE_SETREGSET ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SETREGS ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SETSIGINFO = 16899
 ++pkg syscall (linux-s390x), const PTRACE_SETSIGINFO ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SINGLESTEP = 9
 ++pkg syscall (linux-s390x), const PTRACE_SINGLESTEP ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_SYSCALL = 24
 ++pkg syscall (linux-s390x), const PTRACE_SYSCALL ideal-int
 ++pkg syscall (linux-s390x), const PTRACE_TRACEME = 0
 ++pkg syscall (linux-s390x), const PTRACE_TRACEME ideal-int
 ++pkg syscall (linux-s390x), const RLIM_INFINITY = -1
 ++pkg syscall (linux-s390x), const RLIM_INFINITY ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_AS = 9
 ++pkg syscall (linux-s390x), const RLIMIT_AS ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_CORE = 4
 ++pkg syscall (linux-s390x), const RLIMIT_CORE ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_CPU = 0
 ++pkg syscall (linux-s390x), const RLIMIT_CPU ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_DATA = 2
 ++pkg syscall (linux-s390x), const RLIMIT_DATA ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_FSIZE = 1
 ++pkg syscall (linux-s390x), const RLIMIT_FSIZE ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_NOFILE = 7
 ++pkg syscall (linux-s390x), const RLIMIT_NOFILE ideal-int
 ++pkg syscall (linux-s390x), const RLIMIT_STACK = 3
 ++pkg syscall (linux-s390x), const RLIMIT_STACK ideal-int
 ++pkg syscall (linux-s390x), const RTA_ALIGNTO = 4
 ++pkg syscall (linux-s390x), const RTA_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x), const RTA_CACHEINFO = 12
 ++pkg syscall (linux-s390x), const RTA_CACHEINFO ideal-int
 ++pkg syscall (linux-s390x), const RTA_DST = 1
 ++pkg syscall (linux-s390x), const RTA_DST ideal-int
 ++pkg syscall (linux-s390x), const RTA_FLOW = 11
 ++pkg syscall (linux-s390x), const RTA_FLOW ideal-int
 ++pkg syscall (linux-s390x), const RTA_GATEWAY = 5
 ++pkg syscall (linux-s390x), const RTA_GATEWAY ideal-int
 ++pkg syscall (linux-s390x), const RTA_IIF = 3
 ++pkg syscall (linux-s390x), const RTA_IIF ideal-int
 ++pkg syscall (linux-s390x), const RTA_MAX = 17
 ++pkg syscall (linux-s390x), const RTA_MAX ideal-int
 ++pkg syscall (linux-s390x), const RTA_METRICS = 8
 ++pkg syscall (linux-s390x), const RTA_METRICS ideal-int
 ++pkg syscall (linux-s390x), const RTA_MULTIPATH = 9
 ++pkg syscall (linux-s390x), const RTA_MULTIPATH ideal-int
 ++pkg syscall (linux-s390x), const RTA_OIF = 4
 ++pkg syscall (linux-s390x), const RTA_OIF ideal-int
 ++pkg syscall (linux-s390x), const RTA_PREFSRC = 7
 ++pkg syscall (linux-s390x), const RTA_PREFSRC ideal-int
 ++pkg syscall (linux-s390x), const RTA_PRIORITY = 6
 ++pkg syscall (linux-s390x), const RTA_PRIORITY ideal-int
 ++pkg syscall (linux-s390x), const RTA_SRC = 2
 ++pkg syscall (linux-s390x), const RTA_SRC ideal-int
 ++pkg syscall (linux-s390x), const RTA_TABLE = 15
 ++pkg syscall (linux-s390x), const RTA_TABLE ideal-int
 ++pkg syscall (linux-s390x), const RTA_UNSPEC = 0
 ++pkg syscall (linux-s390x), const RTA_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const RTAX_ADVMSS = 8
 ++pkg syscall (linux-s390x), const RTAX_ADVMSS ideal-int
 ++pkg syscall (linux-s390x), const RTAX_CWND = 7
 ++pkg syscall (linux-s390x), const RTAX_CWND ideal-int
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_ALLFRAG = 8
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_ALLFRAG ideal-int
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_ECN = 1
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_ECN ideal-int
 ++pkg syscall (linux-s390x), const RTAX_FEATURES = 12
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_SACK = 2
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_SACK ideal-int
 ++pkg syscall (linux-s390x), const RTAX_FEATURES ideal-int
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_TIMESTAMP = 4
 ++pkg syscall (linux-s390x), const RTAX_FEATURE_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x), const RTAX_HOPLIMIT = 10
 ++pkg syscall (linux-s390x), const RTAX_HOPLIMIT ideal-int
 ++pkg syscall (linux-s390x), const RTAX_INITCWND = 11
 ++pkg syscall (linux-s390x), const RTAX_INITCWND ideal-int
 ++pkg syscall (linux-s390x), const RTAX_INITRWND = 14
 ++pkg syscall (linux-s390x), const RTAX_INITRWND ideal-int
 ++pkg syscall (linux-s390x), const RTAX_LOCK = 1
 ++pkg syscall (linux-s390x), const RTAX_LOCK ideal-int
 ++pkg syscall (linux-s390x), const RTAX_MAX = 23
 ++pkg syscall (linux-s390x), const RTAX_MAX ideal-int
 ++pkg syscall (linux-s390x), const RTAX_MTU = 2
 ++pkg syscall (linux-s390x), const RTAX_MTU ideal-int
 ++pkg syscall (linux-s390x), const RTAX_QUICKACK = 15
 ++pkg syscall (linux-s390x), const RTAX_QUICKACK ideal-int
 ++pkg syscall (linux-s390x), const RTAX_REORDERING = 9
 ++pkg syscall (linux-s390x), const RTAX_REORDERING ideal-int
 ++pkg syscall (linux-s390x), const RTAX_RTO_MIN = 13
 ++pkg syscall (linux-s390x), const RTAX_RTO_MIN ideal-int
 ++pkg syscall (linux-s390x), const RTAX_RTT = 4
 ++pkg syscall (linux-s390x), const RTAX_RTT ideal-int
 ++pkg syscall (linux-s390x), const RTAX_RTTVAR = 5
 ++pkg syscall (linux-s390x), const RTAX_RTTVAR ideal-int
 ++pkg syscall (linux-s390x), const RTAX_SSTHRESH = 6
 ++pkg syscall (linux-s390x), const RTAX_SSTHRESH ideal-int
 ++pkg syscall (linux-s390x), const RTAX_UNSPEC = 0
 ++pkg syscall (linux-s390x), const RTAX_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const RTAX_WINDOW = 3
 ++pkg syscall (linux-s390x), const RTAX_WINDOW ideal-int
 ++pkg syscall (linux-s390x), const RTCF_DIRECTSRC = 67108864
 ++pkg syscall (linux-s390x), const RTCF_DIRECTSRC ideal-int
 ++pkg syscall (linux-s390x), const RTCF_DOREDIRECT = 16777216
 ++pkg syscall (linux-s390x), const RTCF_DOREDIRECT ideal-int
 ++pkg syscall (linux-s390x), const RTCF_LOG = 33554432
 ++pkg syscall (linux-s390x), const RTCF_LOG ideal-int
 ++pkg syscall (linux-s390x), const RTCF_MASQ = 4194304
 ++pkg syscall (linux-s390x), const RTCF_MASQ ideal-int
 ++pkg syscall (linux-s390x), const RTCF_NAT = 8388608
 ++pkg syscall (linux-s390x), const RTCF_NAT ideal-int
 ++pkg syscall (linux-s390x), const RTCF_VALVE = 2097152
 ++pkg syscall (linux-s390x), const RTCF_VALVE ideal-int
 ++pkg syscall (linux-s390x), const RT_CLASS_DEFAULT = 253
 ++pkg syscall (linux-s390x), const RT_CLASS_DEFAULT ideal-int
 ++pkg syscall (linux-s390x), const RT_CLASS_LOCAL = 255
 ++pkg syscall (linux-s390x), const RT_CLASS_LOCAL ideal-int
 ++pkg syscall (linux-s390x), const RT_CLASS_MAIN = 254
 ++pkg syscall (linux-s390x), const RT_CLASS_MAIN ideal-int
 ++pkg syscall (linux-s390x), const RT_CLASS_MAX = 255
 ++pkg syscall (linux-s390x), const RT_CLASS_MAX ideal-int
 ++pkg syscall (linux-s390x), const RT_CLASS_UNSPEC = 0
 ++pkg syscall (linux-s390x), const RT_CLASS_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const RTF_ADDRCLASSMASK = 4160749568
 ++pkg syscall (linux-s390x), const RTF_ADDRCLASSMASK ideal-int
 ++pkg syscall (linux-s390x), const RTF_ADDRCONF = 262144
 ++pkg syscall (linux-s390x), const RTF_ADDRCONF ideal-int
 ++pkg syscall (linux-s390x), const RTF_ALLONLINK = 131072
 ++pkg syscall (linux-s390x), const RTF_ALLONLINK ideal-int
 ++pkg syscall (linux-s390x), const RTF_BROADCAST = 268435456
 ++pkg syscall (linux-s390x), const RTF_BROADCAST ideal-int
 ++pkg syscall (linux-s390x), const RTF_CACHE = 16777216
 ++pkg syscall (linux-s390x), const RTF_CACHE ideal-int
 ++pkg syscall (linux-s390x), const RTF_DEFAULT = 65536
 ++pkg syscall (linux-s390x), const RTF_DEFAULT ideal-int
 ++pkg syscall (linux-s390x), const RTF_DYNAMIC = 16
 ++pkg syscall (linux-s390x), const RTF_DYNAMIC ideal-int
 ++pkg syscall (linux-s390x), const RTF_FLOW = 33554432
 ++pkg syscall (linux-s390x), const RTF_FLOW ideal-int
 ++pkg syscall (linux-s390x), const RTF_GATEWAY = 2
 ++pkg syscall (linux-s390x), const RTF_GATEWAY ideal-int
 ++pkg syscall (linux-s390x), const RTF_HOST = 4
 ++pkg syscall (linux-s390x), const RTF_HOST ideal-int
 ++pkg syscall (linux-s390x), const RTF_INTERFACE = 1073741824
 ++pkg syscall (linux-s390x), const RTF_INTERFACE ideal-int
 ++pkg syscall (linux-s390x), const RTF_IRTT = 256
 ++pkg syscall (linux-s390x), const RTF_IRTT ideal-int
 ++pkg syscall (linux-s390x), const RTF_LINKRT = 1048576
 ++pkg syscall (linux-s390x), const RTF_LINKRT ideal-int
 ++pkg syscall (linux-s390x), const RTF_LOCAL = 2147483648
 ++pkg syscall (linux-s390x), const RTF_LOCAL ideal-int
 ++pkg syscall (linux-s390x), const RTF_MODIFIED = 32
 ++pkg syscall (linux-s390x), const RTF_MODIFIED ideal-int
 ++pkg syscall (linux-s390x), const RTF_MSS = 64
 ++pkg syscall (linux-s390x), const RTF_MSS ideal-int
 ++pkg syscall (linux-s390x), const RTF_MTU = 64
 ++pkg syscall (linux-s390x), const RTF_MTU ideal-int
 ++pkg syscall (linux-s390x), const RTF_MULTICAST = 536870912
 ++pkg syscall (linux-s390x), const RTF_MULTICAST ideal-int
 ++pkg syscall (linux-s390x), const RTF_NAT = 134217728
 ++pkg syscall (linux-s390x), const RTF_NAT ideal-int
 ++pkg syscall (linux-s390x), const RTF_NOFORWARD = 4096
 ++pkg syscall (linux-s390x), const RTF_NOFORWARD ideal-int
 ++pkg syscall (linux-s390x), const RTF_NONEXTHOP = 2097152
 ++pkg syscall (linux-s390x), const RTF_NONEXTHOP ideal-int
 ++pkg syscall (linux-s390x), const RTF_NOPMTUDISC = 16384
 ++pkg syscall (linux-s390x), const RTF_NOPMTUDISC ideal-int
 ++pkg syscall (linux-s390x), const RTF_POLICY = 67108864
 ++pkg syscall (linux-s390x), const RTF_POLICY ideal-int
 ++pkg syscall (linux-s390x), const RTF_REINSTATE = 8
 ++pkg syscall (linux-s390x), const RTF_REINSTATE ideal-int
 ++pkg syscall (linux-s390x), const RTF_REJECT = 512
 ++pkg syscall (linux-s390x), const RTF_REJECT ideal-int
 ++pkg syscall (linux-s390x), const RTF_STATIC = 1024
 ++pkg syscall (linux-s390x), const RTF_STATIC ideal-int
 ++pkg syscall (linux-s390x), const RTF_THROW = 8192
 ++pkg syscall (linux-s390x), const RTF_THROW ideal-int
 ++pkg syscall (linux-s390x), const RTF_UP = 1
 ++pkg syscall (linux-s390x), const RTF_UP ideal-int
 ++pkg syscall (linux-s390x), const RTF_WINDOW = 128
 ++pkg syscall (linux-s390x), const RTF_WINDOW ideal-int
 ++pkg syscall (linux-s390x), const RTF_XRESOLVE = 2048
 ++pkg syscall (linux-s390x), const RTF_XRESOLVE ideal-int
 ++pkg syscall (linux-s390x), const RTM_BASE = 16
 ++pkg syscall (linux-s390x), const RTM_BASE ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELACTION = 49
 ++pkg syscall (linux-s390x), const RTM_DELACTION ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELADDR = 21
 ++pkg syscall (linux-s390x), const RTM_DELADDR ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELADDRLABEL = 73
 ++pkg syscall (linux-s390x), const RTM_DELADDRLABEL ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELLINK = 17
 ++pkg syscall (linux-s390x), const RTM_DELLINK ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELMDB = 85
 ++pkg syscall (linux-s390x), const RTM_DELMDB ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELNEIGH = 29
 ++pkg syscall (linux-s390x), const RTM_DELNEIGH ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELQDISC = 37
 ++pkg syscall (linux-s390x), const RTM_DELQDISC ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELROUTE = 25
 ++pkg syscall (linux-s390x), const RTM_DELROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELRULE = 33
 ++pkg syscall (linux-s390x), const RTM_DELRULE ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELTCLASS = 41
 ++pkg syscall (linux-s390x), const RTM_DELTCLASS ideal-int
 ++pkg syscall (linux-s390x), const RTM_DELTFILTER = 45
 ++pkg syscall (linux-s390x), const RTM_DELTFILTER ideal-int
 ++pkg syscall (linux-s390x), const RTM_F_CLONED = 512
 ++pkg syscall (linux-s390x), const RTM_F_CLONED ideal-int
 ++pkg syscall (linux-s390x), const RTM_F_EQUALIZE = 1024
 ++pkg syscall (linux-s390x), const RTM_F_EQUALIZE ideal-int
 ++pkg syscall (linux-s390x), const RTM_F_NOTIFY = 256
 ++pkg syscall (linux-s390x), const RTM_F_NOTIFY ideal-int
 ++pkg syscall (linux-s390x), const RTM_F_PREFIX = 2048
 ++pkg syscall (linux-s390x), const RTM_F_PREFIX ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETACTION = 50
 ++pkg syscall (linux-s390x), const RTM_GETACTION ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETADDR = 22
 ++pkg syscall (linux-s390x), const RTM_GETADDR ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETADDRLABEL = 74
 ++pkg syscall (linux-s390x), const RTM_GETADDRLABEL ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETANYCAST = 62
 ++pkg syscall (linux-s390x), const RTM_GETANYCAST ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETDCB = 78
 ++pkg syscall (linux-s390x), const RTM_GETDCB ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETLINK = 18
 ++pkg syscall (linux-s390x), const RTM_GETLINK ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETMDB = 86
 ++pkg syscall (linux-s390x), const RTM_GETMDB ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETMULTICAST = 58
 ++pkg syscall (linux-s390x), const RTM_GETMULTICAST ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETNEIGH = 30
 ++pkg syscall (linux-s390x), const RTM_GETNEIGH ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETNEIGHTBL = 66
 ++pkg syscall (linux-s390x), const RTM_GETNEIGHTBL ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETNETCONF = 82
 ++pkg syscall (linux-s390x), const RTM_GETNETCONF ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETQDISC = 38
 ++pkg syscall (linux-s390x), const RTM_GETQDISC ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETROUTE = 26
 ++pkg syscall (linux-s390x), const RTM_GETROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETRULE = 34
 ++pkg syscall (linux-s390x), const RTM_GETRULE ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETTCLASS = 42
 ++pkg syscall (linux-s390x), const RTM_GETTCLASS ideal-int
 ++pkg syscall (linux-s390x), const RTM_GETTFILTER = 46
 ++pkg syscall (linux-s390x), const RTM_GETTFILTER ideal-int
 ++pkg syscall (linux-s390x), const RTM_MAX = 87
 ++pkg syscall (linux-s390x), const RTM_MAX ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWACTION = 48
 ++pkg syscall (linux-s390x), const RTM_NEWACTION ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWADDR = 20
 ++pkg syscall (linux-s390x), const RTM_NEWADDR ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWADDRLABEL = 72
 ++pkg syscall (linux-s390x), const RTM_NEWADDRLABEL ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWLINK = 16
 ++pkg syscall (linux-s390x), const RTM_NEWLINK ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWMDB = 84
 ++pkg syscall (linux-s390x), const RTM_NEWMDB ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWNDUSEROPT = 68
 ++pkg syscall (linux-s390x), const RTM_NEWNDUSEROPT ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWNEIGH = 28
 ++pkg syscall (linux-s390x), const RTM_NEWNEIGH ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWNEIGHTBL = 64
 ++pkg syscall (linux-s390x), const RTM_NEWNEIGHTBL ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWNETCONF = 80
 ++pkg syscall (linux-s390x), const RTM_NEWNETCONF ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWPREFIX = 52
 ++pkg syscall (linux-s390x), const RTM_NEWPREFIX ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWQDISC = 36
 ++pkg syscall (linux-s390x), const RTM_NEWQDISC ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWROUTE = 24
 ++pkg syscall (linux-s390x), const RTM_NEWROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWRULE = 32
 ++pkg syscall (linux-s390x), const RTM_NEWRULE ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWTCLASS = 40
 ++pkg syscall (linux-s390x), const RTM_NEWTCLASS ideal-int
 ++pkg syscall (linux-s390x), const RTM_NEWTFILTER = 44
 ++pkg syscall (linux-s390x), const RTM_NEWTFILTER ideal-int
 ++pkg syscall (linux-s390x), const RTM_NR_FAMILIES = 18
 ++pkg syscall (linux-s390x), const RTM_NR_FAMILIES ideal-int
 ++pkg syscall (linux-s390x), const RTM_NR_MSGTYPES = 72
 ++pkg syscall (linux-s390x), const RTM_NR_MSGTYPES ideal-int
 ++pkg syscall (linux-s390x), const RTM_SETDCB = 79
 ++pkg syscall (linux-s390x), const RTM_SETDCB ideal-int
 ++pkg syscall (linux-s390x), const RTM_SETLINK = 19
 ++pkg syscall (linux-s390x), const RTM_SETLINK ideal-int
 ++pkg syscall (linux-s390x), const RTM_SETNEIGHTBL = 67
 ++pkg syscall (linux-s390x), const RTM_SETNEIGHTBL ideal-int
 ++pkg syscall (linux-s390x), const RTN_ANYCAST = 4
 ++pkg syscall (linux-s390x), const RTN_ANYCAST ideal-int
 ++pkg syscall (linux-s390x), const RTN_BLACKHOLE = 6
 ++pkg syscall (linux-s390x), const RTN_BLACKHOLE ideal-int
 ++pkg syscall (linux-s390x), const RTN_BROADCAST = 3
 ++pkg syscall (linux-s390x), const RTN_BROADCAST ideal-int
 ++pkg syscall (linux-s390x), const RTNH_ALIGNTO = 4
 ++pkg syscall (linux-s390x), const RTNH_ALIGNTO ideal-int
 ++pkg syscall (linux-s390x), const RTNH_F_DEAD = 1
 ++pkg syscall (linux-s390x), const RTNH_F_DEAD ideal-int
 ++pkg syscall (linux-s390x), const RTNH_F_ONLINK = 4
 ++pkg syscall (linux-s390x), const RTNH_F_ONLINK ideal-int
 ++pkg syscall (linux-s390x), const RTNH_F_PERVASIVE = 2
 ++pkg syscall (linux-s390x), const RTNH_F_PERVASIVE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_IFADDR = 5
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_IFADDR ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_MROUTE = 6
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_MROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_ROUTE = 7
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_ROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_RULE = 8
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV4_RULE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFADDR = 9
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFADDR ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFINFO = 12
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_IFINFO ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_MROUTE = 10
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_MROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_PREFIX = 18
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_PREFIX ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_ROUTE = 11
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_ROUTE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_RULE = 19
 ++pkg syscall (linux-s390x), const RTNLGRP_IPV6_RULE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_LINK = 1
 ++pkg syscall (linux-s390x), const RTNLGRP_LINK ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_ND_USEROPT = 20
 ++pkg syscall (linux-s390x), const RTNLGRP_ND_USEROPT ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_NEIGH = 3
 ++pkg syscall (linux-s390x), const RTNLGRP_NEIGH ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_NONE = 0
 ++pkg syscall (linux-s390x), const RTNLGRP_NONE ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_NOTIFY = 2
 ++pkg syscall (linux-s390x), const RTNLGRP_NOTIFY ideal-int
 ++pkg syscall (linux-s390x), const RTNLGRP_TC = 4
 ++pkg syscall (linux-s390x), const RTNLGRP_TC ideal-int
 ++pkg syscall (linux-s390x), const RTN_LOCAL = 2
 ++pkg syscall (linux-s390x), const RTN_LOCAL ideal-int
 ++pkg syscall (linux-s390x), const RTN_MAX = 11
 ++pkg syscall (linux-s390x), const RTN_MAX ideal-int
 ++pkg syscall (linux-s390x), const RTN_MULTICAST = 5
 ++pkg syscall (linux-s390x), const RTN_MULTICAST ideal-int
 ++pkg syscall (linux-s390x), const RTN_NAT = 10
 ++pkg syscall (linux-s390x), const RTN_NAT ideal-int
 ++pkg syscall (linux-s390x), const RTN_PROHIBIT = 8
 ++pkg syscall (linux-s390x), const RTN_PROHIBIT ideal-int
 ++pkg syscall (linux-s390x), const RTN_THROW = 9
 ++pkg syscall (linux-s390x), const RTN_THROW ideal-int
 ++pkg syscall (linux-s390x), const RTN_UNICAST = 1
 ++pkg syscall (linux-s390x), const RTN_UNICAST ideal-int
 ++pkg syscall (linux-s390x), const RTN_UNREACHABLE = 7
 ++pkg syscall (linux-s390x), const RTN_UNREACHABLE ideal-int
 ++pkg syscall (linux-s390x), const RTN_UNSPEC = 0
 ++pkg syscall (linux-s390x), const RTN_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const RTN_XRESOLVE = 11
 ++pkg syscall (linux-s390x), const RTN_XRESOLVE ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_BIRD = 12
 ++pkg syscall (linux-s390x), const RTPROT_BIRD ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_BOOT = 3
 ++pkg syscall (linux-s390x), const RTPROT_BOOT ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_DHCP = 16
 ++pkg syscall (linux-s390x), const RTPROT_DHCP ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_DNROUTED = 13
 ++pkg syscall (linux-s390x), const RTPROT_DNROUTED ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_GATED = 8
 ++pkg syscall (linux-s390x), const RTPROT_GATED ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_KERNEL = 2
 ++pkg syscall (linux-s390x), const RTPROT_KERNEL ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_MROUTED = 17
 ++pkg syscall (linux-s390x), const RTPROT_MROUTED ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_MRT = 10
 ++pkg syscall (linux-s390x), const RTPROT_MRT ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_NTK = 15
 ++pkg syscall (linux-s390x), const RTPROT_NTK ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_RA = 9
 ++pkg syscall (linux-s390x), const RTPROT_RA ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_REDIRECT = 1
 ++pkg syscall (linux-s390x), const RTPROT_REDIRECT ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_STATIC = 4
 ++pkg syscall (linux-s390x), const RTPROT_STATIC ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_UNSPEC = 0
 ++pkg syscall (linux-s390x), const RTPROT_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_XORP = 14
 ++pkg syscall (linux-s390x), const RTPROT_XORP ideal-int
 ++pkg syscall (linux-s390x), const RTPROT_ZEBRA = 11
 ++pkg syscall (linux-s390x), const RTPROT_ZEBRA ideal-int
 ++pkg syscall (linux-s390x), const RT_SCOPE_HOST = 254
 ++pkg syscall (linux-s390x), const RT_SCOPE_HOST ideal-int
 ++pkg syscall (linux-s390x), const RT_SCOPE_LINK = 253
 ++pkg syscall (linux-s390x), const RT_SCOPE_LINK ideal-int
 ++pkg syscall (linux-s390x), const RT_SCOPE_NOWHERE = 255
 ++pkg syscall (linux-s390x), const RT_SCOPE_NOWHERE ideal-int
 ++pkg syscall (linux-s390x), const RT_SCOPE_SITE = 200
 ++pkg syscall (linux-s390x), const RT_SCOPE_SITE ideal-int
 ++pkg syscall (linux-s390x), const RT_SCOPE_UNIVERSE = 0
 ++pkg syscall (linux-s390x), const RT_SCOPE_UNIVERSE ideal-int
 ++pkg syscall (linux-s390x), const RT_TABLE_COMPAT = 252
 ++pkg syscall (linux-s390x), const RT_TABLE_COMPAT ideal-int
 ++pkg syscall (linux-s390x), const RT_TABLE_DEFAULT = 253
 ++pkg syscall (linux-s390x), const RT_TABLE_DEFAULT ideal-int
 ++pkg syscall (linux-s390x), const RT_TABLE_LOCAL = 255
 ++pkg syscall (linux-s390x), const RT_TABLE_LOCAL ideal-int
 ++pkg syscall (linux-s390x), const RT_TABLE_MAIN = 254
 ++pkg syscall (linux-s390x), const RT_TABLE_MAIN ideal-int
 ++pkg syscall (linux-s390x), const RT_TABLE_MAX = 4294967295
 ++pkg syscall (linux-s390x), const RT_TABLE_MAX ideal-int
 ++pkg syscall (linux-s390x), const RT_TABLE_UNSPEC = 0
 ++pkg syscall (linux-s390x), const RT_TABLE_UNSPEC ideal-int
 ++pkg syscall (linux-s390x), const RUSAGE_CHILDREN = -1
 ++pkg syscall (linux-s390x), const RUSAGE_CHILDREN ideal-int
 ++pkg syscall (linux-s390x), const RUSAGE_SELF = 0
 ++pkg syscall (linux-s390x), const RUSAGE_SELF ideal-int
 ++pkg syscall (linux-s390x), const RUSAGE_THREAD = 1
 ++pkg syscall (linux-s390x), const RUSAGE_THREAD ideal-int
 ++pkg syscall (linux-s390x), const S_BLKSIZE = 512
 ++pkg syscall (linux-s390x), const S_BLKSIZE ideal-int
 ++pkg syscall (linux-s390x), const SCM_CREDENTIALS = 2
 ++pkg syscall (linux-s390x), const SCM_CREDENTIALS ideal-int
 ++pkg syscall (linux-s390x), const SCM_RIGHTS = 1
 ++pkg syscall (linux-s390x), const SCM_RIGHTS ideal-int
 ++pkg syscall (linux-s390x), const SCM_TIMESTAMP = 29
 ++pkg syscall (linux-s390x), const SCM_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x), const SCM_TIMESTAMPING = 37
 ++pkg syscall (linux-s390x), const SCM_TIMESTAMPING ideal-int
 ++pkg syscall (linux-s390x), const SCM_TIMESTAMPNS = 35
 ++pkg syscall (linux-s390x), const SCM_TIMESTAMPNS ideal-int
 ++pkg syscall (linux-s390x), const SCM_WIFI_STATUS = 41
 ++pkg syscall (linux-s390x), const SCM_WIFI_STATUS ideal-int
 ++pkg syscall (linux-s390x), const S_IEXEC = 64
 ++pkg syscall (linux-s390x), const S_IEXEC ideal-int
 ++pkg syscall (linux-s390x), const S_IFMT = 61440
 ++pkg syscall (linux-s390x), const SIGBUS = 7
 ++pkg syscall (linux-s390x), const SIGCHLD = 17
 ++pkg syscall (linux-s390x), const SIGCHLD Signal
 ++pkg syscall (linux-s390x), const SIGCLD = 17
 ++pkg syscall (linux-s390x), const SIGCLD Signal
 ++pkg syscall (linux-s390x), const SIGCONT = 18
 ++pkg syscall (linux-s390x), const SIGCONT Signal
 ++pkg syscall (linux-s390x), const SIGIO = 29
 ++pkg syscall (linux-s390x), const SIGIO Signal
 ++pkg syscall (linux-s390x), const SIGIOT = 6
 ++pkg syscall (linux-s390x), const SIGIOT Signal
 ++pkg syscall (linux-s390x), const SIGPOLL = 29
 ++pkg syscall (linux-s390x), const SIGPOLL Signal
 ++pkg syscall (linux-s390x), const SIGPROF = 27
 ++pkg syscall (linux-s390x), const SIGPROF Signal
 ++pkg syscall (linux-s390x), const SIGPWR = 30
 ++pkg syscall (linux-s390x), const SIGPWR Signal
 ++pkg syscall (linux-s390x), const SIGSTKFLT = 16
 ++pkg syscall (linux-s390x), const SIGSTKFLT Signal
 ++pkg syscall (linux-s390x), const SIGSTOP = 19
 ++pkg syscall (linux-s390x), const SIGSTOP Signal
 ++pkg syscall (linux-s390x), const SIGSYS = 31
 ++pkg syscall (linux-s390x), const SIGSYS Signal
 ++pkg syscall (linux-s390x), const SIGTSTP = 20
 ++pkg syscall (linux-s390x), const SIGTSTP Signal
 ++pkg syscall (linux-s390x), const SIGTTIN = 21
 ++pkg syscall (linux-s390x), const SIGTTIN Signal
 ++pkg syscall (linux-s390x), const SIGTTOU = 22
 ++pkg syscall (linux-s390x), const SIGTTOU Signal
 ++pkg syscall (linux-s390x), const SIGUNUSED = 31
 ++pkg syscall (linux-s390x), const SIGUNUSED Signal
 ++pkg syscall (linux-s390x), const SIGURG = 23
 ++pkg syscall (linux-s390x), const SIGURG Signal
 ++pkg syscall (linux-s390x), const SIGUSR1 = 10
 ++pkg syscall (linux-s390x), const SIGUSR1 Signal
 ++pkg syscall (linux-s390x), const SIGUSR2 = 12
 ++pkg syscall (linux-s390x), const SIGUSR2 Signal
 ++pkg syscall (linux-s390x), const SIGVTALRM = 26
 ++pkg syscall (linux-s390x), const SIGVTALRM Signal
 ++pkg syscall (linux-s390x), const SIGWINCH = 28
 ++pkg syscall (linux-s390x), const SIGWINCH Signal
 ++pkg syscall (linux-s390x), const SIGXCPU = 24
 ++pkg syscall (linux-s390x), const SIGXCPU Signal
 ++pkg syscall (linux-s390x), const SIGXFSZ = 25
 ++pkg syscall (linux-s390x), const SIGXFSZ Signal
 ++pkg syscall (linux-s390x), const SIOCADDDLCI = 35200
 ++pkg syscall (linux-s390x), const SIOCADDDLCI ideal-int
 ++pkg syscall (linux-s390x), const SIOCADDMULTI = 35121
 ++pkg syscall (linux-s390x), const SIOCADDMULTI ideal-int
 ++pkg syscall (linux-s390x), const SIOCADDRT = 35083
 ++pkg syscall (linux-s390x), const SIOCADDRT ideal-int
 ++pkg syscall (linux-s390x), const SIOCATMARK = 35077
 ++pkg syscall (linux-s390x), const SIOCATMARK ideal-int
 ++pkg syscall (linux-s390x), const SIOCDARP = 35155
 ++pkg syscall (linux-s390x), const SIOCDARP ideal-int
 ++pkg syscall (linux-s390x), const SIOCDELDLCI = 35201
 ++pkg syscall (linux-s390x), const SIOCDELDLCI ideal-int
 ++pkg syscall (linux-s390x), const SIOCDELMULTI = 35122
 ++pkg syscall (linux-s390x), const SIOCDELMULTI ideal-int
 ++pkg syscall (linux-s390x), const SIOCDELRT = 35084
 ++pkg syscall (linux-s390x), const SIOCDELRT ideal-int
 ++pkg syscall (linux-s390x), const SIOCDEVPRIVATE = 35312
 ++pkg syscall (linux-s390x), const SIOCDEVPRIVATE ideal-int
 ++pkg syscall (linux-s390x), const SIOCDIFADDR = 35126
 ++pkg syscall (linux-s390x), const SIOCDIFADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCDRARP = 35168
 ++pkg syscall (linux-s390x), const SIOCDRARP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGARP = 35156
 ++pkg syscall (linux-s390x), const SIOCGARP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFADDR = 35093
 ++pkg syscall (linux-s390x), const SIOCGIFADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFBR = 35136
 ++pkg syscall (linux-s390x), const SIOCGIFBRDADDR = 35097
 ++pkg syscall (linux-s390x), const SIOCGIFBRDADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFBR ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFCONF = 35090
 ++pkg syscall (linux-s390x), const SIOCGIFCONF ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFCOUNT = 35128
 ++pkg syscall (linux-s390x), const SIOCGIFCOUNT ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFDSTADDR = 35095
 ++pkg syscall (linux-s390x), const SIOCGIFDSTADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFENCAP = 35109
 ++pkg syscall (linux-s390x), const SIOCGIFENCAP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFFLAGS = 35091
 ++pkg syscall (linux-s390x), const SIOCGIFFLAGS ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFHWADDR = 35111
 ++pkg syscall (linux-s390x), const SIOCGIFHWADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFINDEX = 35123
 ++pkg syscall (linux-s390x), const SIOCGIFINDEX ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFMAP = 35184
 ++pkg syscall (linux-s390x), const SIOCGIFMAP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFMEM = 35103
 ++pkg syscall (linux-s390x), const SIOCGIFMEM ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFMETRIC = 35101
 ++pkg syscall (linux-s390x), const SIOCGIFMETRIC ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFMTU = 35105
 ++pkg syscall (linux-s390x), const SIOCGIFMTU ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFNAME = 35088
 ++pkg syscall (linux-s390x), const SIOCGIFNAME ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFNETMASK = 35099
 ++pkg syscall (linux-s390x), const SIOCGIFNETMASK ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFPFLAGS = 35125
 ++pkg syscall (linux-s390x), const SIOCGIFPFLAGS ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFSLAVE = 35113
 ++pkg syscall (linux-s390x), const SIOCGIFSLAVE ideal-int
 ++pkg syscall (linux-s390x), const SIOCGIFTXQLEN = 35138
 ++pkg syscall (linux-s390x), const SIOCGIFTXQLEN ideal-int
 ++pkg syscall (linux-s390x), const SIOCGPGRP = 35076
 ++pkg syscall (linux-s390x), const SIOCGPGRP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGRARP = 35169
 ++pkg syscall (linux-s390x), const SIOCGRARP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGSTAMP = 35078
 ++pkg syscall (linux-s390x), const SIOCGSTAMP ideal-int
 ++pkg syscall (linux-s390x), const SIOCGSTAMPNS = 35079
 ++pkg syscall (linux-s390x), const SIOCGSTAMPNS ideal-int
 ++pkg syscall (linux-s390x), const SIOCPROTOPRIVATE = 35296
 ++pkg syscall (linux-s390x), const SIOCPROTOPRIVATE ideal-int
 ++pkg syscall (linux-s390x), const SIOCRTMSG = 35085
 ++pkg syscall (linux-s390x), const SIOCRTMSG ideal-int
 ++pkg syscall (linux-s390x), const SIOCSARP = 35157
 ++pkg syscall (linux-s390x), const SIOCSARP ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFADDR = 35094
 ++pkg syscall (linux-s390x), const SIOCSIFADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFBR = 35137
 ++pkg syscall (linux-s390x), const SIOCSIFBRDADDR = 35098
 ++pkg syscall (linux-s390x), const SIOCSIFBRDADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFBR ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFDSTADDR = 35096
 ++pkg syscall (linux-s390x), const SIOCSIFDSTADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFENCAP = 35110
 ++pkg syscall (linux-s390x), const SIOCSIFENCAP ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFFLAGS = 35092
 ++pkg syscall (linux-s390x), const SIOCSIFFLAGS ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFHWADDR = 35108
 ++pkg syscall (linux-s390x), const SIOCSIFHWADDR ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFHWBROADCAST = 35127
 ++pkg syscall (linux-s390x), const SIOCSIFHWBROADCAST ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFLINK = 35089
 ++pkg syscall (linux-s390x), const SIOCSIFLINK ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFMAP = 35185
 ++pkg syscall (linux-s390x), const SIOCSIFMAP ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFMEM = 35104
 ++pkg syscall (linux-s390x), const SIOCSIFMEM ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFMETRIC = 35102
 ++pkg syscall (linux-s390x), const SIOCSIFMETRIC ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFMTU = 35106
 ++pkg syscall (linux-s390x), const SIOCSIFMTU ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFNAME = 35107
 ++pkg syscall (linux-s390x), const SIOCSIFNAME ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFNETMASK = 35100
 ++pkg syscall (linux-s390x), const SIOCSIFNETMASK ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFPFLAGS = 35124
 ++pkg syscall (linux-s390x), const SIOCSIFPFLAGS ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFSLAVE = 35120
 ++pkg syscall (linux-s390x), const SIOCSIFSLAVE ideal-int
 ++pkg syscall (linux-s390x), const SIOCSIFTXQLEN = 35139
 ++pkg syscall (linux-s390x), const SIOCSIFTXQLEN ideal-int
 ++pkg syscall (linux-s390x), const SIOCSPGRP = 35074
 ++pkg syscall (linux-s390x), const SIOCSPGRP ideal-int
 ++pkg syscall (linux-s390x), const SIOCSRARP = 35170
 ++pkg syscall (linux-s390x), const SIOCSRARP ideal-int
 ++pkg syscall (linux-s390x), const S_IREAD = 256
 ++pkg syscall (linux-s390x), const S_IREAD ideal-int
 ++pkg syscall (linux-s390x), const S_IRGRP = 32
 ++pkg syscall (linux-s390x), const S_IRGRP ideal-int
 ++pkg syscall (linux-s390x), const S_IROTH = 4
 ++pkg syscall (linux-s390x), const S_IROTH ideal-int
 ++pkg syscall (linux-s390x), const S_IRWXG = 56
 ++pkg syscall (linux-s390x), const S_IRWXG ideal-int
 ++pkg syscall (linux-s390x), const S_IRWXO = 7
 ++pkg syscall (linux-s390x), const S_IRWXO ideal-int
 ++pkg syscall (linux-s390x), const S_IRWXU = 448
 ++pkg syscall (linux-s390x), const S_IRWXU ideal-int
 ++pkg syscall (linux-s390x), const S_IWGRP = 16
 ++pkg syscall (linux-s390x), const S_IWGRP ideal-int
 ++pkg syscall (linux-s390x), const S_IWOTH = 2
 ++pkg syscall (linux-s390x), const S_IWOTH ideal-int
 ++pkg syscall (linux-s390x), const S_IWRITE = 128
 ++pkg syscall (linux-s390x), const S_IWRITE ideal-int
 ++pkg syscall (linux-s390x), const S_IXGRP = 8
 ++pkg syscall (linux-s390x), const S_IXGRP ideal-int
 ++pkg syscall (linux-s390x), const S_IXOTH = 1
 ++pkg syscall (linux-s390x), const S_IXOTH ideal-int
 ++pkg syscall (linux-s390x), const SizeofCmsghdr = 16
 ++pkg syscall (linux-s390x), const SizeofCmsghdr ideal-int
 ++pkg syscall (linux-s390x), const SizeofICMPv6Filter = 32
 ++pkg syscall (linux-s390x), const SizeofICMPv6Filter ideal-int
 ++pkg syscall (linux-s390x), const SizeofIfAddrmsg = 8
 ++pkg syscall (linux-s390x), const SizeofIfAddrmsg ideal-int
 ++pkg syscall (linux-s390x), const SizeofIfInfomsg = 16
 ++pkg syscall (linux-s390x), const SizeofIfInfomsg ideal-int
 ++pkg syscall (linux-s390x), const SizeofInet4Pktinfo = 12
 ++pkg syscall (linux-s390x), const SizeofInet4Pktinfo ideal-int
 ++pkg syscall (linux-s390x), const SizeofInet6Pktinfo = 20
 ++pkg syscall (linux-s390x), const SizeofInet6Pktinfo ideal-int
 ++pkg syscall (linux-s390x), const SizeofInotifyEvent = 16
 ++pkg syscall (linux-s390x), const SizeofInotifyEvent ideal-int
 ++pkg syscall (linux-s390x), const SizeofIPMreq = 8
 ++pkg syscall (linux-s390x), const SizeofIPMreq ideal-int
 ++pkg syscall (linux-s390x), const SizeofIPMreqn = 12
 ++pkg syscall (linux-s390x), const SizeofIPMreqn ideal-int
 ++pkg syscall (linux-s390x), const SizeofIPv6Mreq = 20
 ++pkg syscall (linux-s390x), const SizeofIPv6Mreq ideal-int
 ++pkg syscall (linux-s390x), const SizeofIPv6MTUInfo = 32
 ++pkg syscall (linux-s390x), const SizeofIPv6MTUInfo ideal-int
 ++pkg syscall (linux-s390x), const SizeofLinger = 8
 ++pkg syscall (linux-s390x), const SizeofLinger ideal-int
 ++pkg syscall (linux-s390x), const SizeofMsghdr = 56
 ++pkg syscall (linux-s390x), const SizeofMsghdr ideal-int
 ++pkg syscall (linux-s390x), const SizeofNlAttr = 4
 ++pkg syscall (linux-s390x), const SizeofNlAttr ideal-int
 ++pkg syscall (linux-s390x), const SizeofNlMsgerr = 20
 ++pkg syscall (linux-s390x), const SizeofNlMsgerr ideal-int
 ++pkg syscall (linux-s390x), const SizeofNlMsghdr = 16
 ++pkg syscall (linux-s390x), const SizeofNlMsghdr ideal-int
 ++pkg syscall (linux-s390x), const SizeofRtAttr = 4
 ++pkg syscall (linux-s390x), const SizeofRtAttr ideal-int
 ++pkg syscall (linux-s390x), const SizeofRtGenmsg = 1
 ++pkg syscall (linux-s390x), const SizeofRtGenmsg ideal-int
 ++pkg syscall (linux-s390x), const SizeofRtMsg = 12
 ++pkg syscall (linux-s390x), const SizeofRtMsg ideal-int
 ++pkg syscall (linux-s390x), const SizeofRtNexthop = 8
 ++pkg syscall (linux-s390x), const SizeofRtNexthop ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockaddrAny = 112
 ++pkg syscall (linux-s390x), const SizeofSockaddrAny ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockaddrInet4 = 16
 ++pkg syscall (linux-s390x), const SizeofSockaddrInet4 ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockaddrInet6 = 28
 ++pkg syscall (linux-s390x), const SizeofSockaddrInet6 ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockaddrLinklayer = 20
 ++pkg syscall (linux-s390x), const SizeofSockaddrLinklayer ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockaddrNetlink = 12
 ++pkg syscall (linux-s390x), const SizeofSockaddrNetlink ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockaddrUnix = 110
 ++pkg syscall (linux-s390x), const SizeofSockaddrUnix ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockFilter = 8
 ++pkg syscall (linux-s390x), const SizeofSockFilter ideal-int
 ++pkg syscall (linux-s390x), const SizeofSockFprog = 16
 ++pkg syscall (linux-s390x), const SizeofSockFprog ideal-int
 ++pkg syscall (linux-s390x), const SizeofTCPInfo = 104
 ++pkg syscall (linux-s390x), const SizeofTCPInfo ideal-int
 ++pkg syscall (linux-s390x), const SizeofUcred = 12
 ++pkg syscall (linux-s390x), const SizeofUcred ideal-int
 ++pkg syscall (linux-s390x), const SO_ACCEPTCONN = 30
 ++pkg syscall (linux-s390x), const SO_ACCEPTCONN ideal-int
 ++pkg syscall (linux-s390x), const SO_ATTACH_FILTER = 26
 ++pkg syscall (linux-s390x), const SO_ATTACH_FILTER ideal-int
 ++pkg syscall (linux-s390x), const SO_BINDTODEVICE = 25
 ++pkg syscall (linux-s390x), const SO_BINDTODEVICE ideal-int
 ++pkg syscall (linux-s390x), const SO_BPF_EXTENSIONS = 48
 ++pkg syscall (linux-s390x), const SO_BPF_EXTENSIONS ideal-int
 ++pkg syscall (linux-s390x), const SO_BROADCAST = 6
 ++pkg syscall (linux-s390x), const SO_BSDCOMPAT = 14
 ++pkg syscall (linux-s390x), const SO_BSDCOMPAT ideal-int
 ++pkg syscall (linux-s390x), const SO_BUSY_POLL = 46
 ++pkg syscall (linux-s390x), const SO_BUSY_POLL ideal-int
 ++pkg syscall (linux-s390x), const SOCK_CLOEXEC = 524288
 ++pkg syscall (linux-s390x), const SOCK_CLOEXEC ideal-int
 ++pkg syscall (linux-s390x), const SOCK_DCCP = 6
 ++pkg syscall (linux-s390x), const SOCK_DCCP ideal-int
 ++pkg syscall (linux-s390x), const SOCK_NONBLOCK = 2048
 ++pkg syscall (linux-s390x), const SOCK_NONBLOCK ideal-int
 ++pkg syscall (linux-s390x), const SOCK_PACKET = 10
 ++pkg syscall (linux-s390x), const SOCK_PACKET ideal-int
 ++pkg syscall (linux-s390x), const SOCK_RDM = 4
 ++pkg syscall (linux-s390x), const SOCK_RDM ideal-int
 ++pkg syscall (linux-s390x), const SO_DEBUG = 1
 ++pkg syscall (linux-s390x), const SO_DEBUG ideal-int
 ++pkg syscall (linux-s390x), const SO_DETACH_FILTER = 27
 ++pkg syscall (linux-s390x), const SO_DETACH_FILTER ideal-int
 ++pkg syscall (linux-s390x), const SO_DOMAIN = 39
 ++pkg syscall (linux-s390x), const SO_DOMAIN ideal-int
 ++pkg syscall (linux-s390x), const SO_DONTROUTE = 5
 ++pkg syscall (linux-s390x), const SO_ERROR = 4
 ++pkg syscall (linux-s390x), const SO_ERROR ideal-int
 ++pkg syscall (linux-s390x), const SO_GET_FILTER = 26
 ++pkg syscall (linux-s390x), const SO_GET_FILTER ideal-int
 ++pkg syscall (linux-s390x), const SO_KEEPALIVE = 9
 ++pkg syscall (linux-s390x), const SOL_AAL = 265
 ++pkg syscall (linux-s390x), const SOL_AAL ideal-int
 ++pkg syscall (linux-s390x), const SOL_ATM = 264
 ++pkg syscall (linux-s390x), const SOL_ATM ideal-int
 ++pkg syscall (linux-s390x), const SOL_DECNET = 261
 ++pkg syscall (linux-s390x), const SOL_DECNET ideal-int
 ++pkg syscall (linux-s390x), const SOL_ICMPV6 = 58
 ++pkg syscall (linux-s390x), const SOL_ICMPV6 ideal-int
 ++pkg syscall (linux-s390x), const SO_LINGER = 13
 ++pkg syscall (linux-s390x), const SOL_IP = 0
 ++pkg syscall (linux-s390x), const SOL_IP ideal-int
 ++pkg syscall (linux-s390x), const SOL_IPV6 = 41
 ++pkg syscall (linux-s390x), const SOL_IPV6 ideal-int
 ++pkg syscall (linux-s390x), const SOL_IRDA = 266
 ++pkg syscall (linux-s390x), const SOL_IRDA ideal-int
 ++pkg syscall (linux-s390x), const SO_LOCK_FILTER = 44
 ++pkg syscall (linux-s390x), const SO_LOCK_FILTER ideal-int
 ++pkg syscall (linux-s390x), const SOL_PACKET = 263
 ++pkg syscall (linux-s390x), const SOL_PACKET ideal-int
 ++pkg syscall (linux-s390x), const SOL_RAW = 255
 ++pkg syscall (linux-s390x), const SOL_RAW ideal-int
 ++pkg syscall (linux-s390x), const SOL_SOCKET = 1
 ++pkg syscall (linux-s390x), const SOL_TCP = 6
 ++pkg syscall (linux-s390x), const SOL_TCP ideal-int
 ++pkg syscall (linux-s390x), const SOL_X25 = 262
 ++pkg syscall (linux-s390x), const SOL_X25 ideal-int
 ++pkg syscall (linux-s390x), const SO_MARK = 36
 ++pkg syscall (linux-s390x), const SO_MARK ideal-int
 ++pkg syscall (linux-s390x), const SOMAXCONN = 128
 ++pkg syscall (linux-s390x), const SO_NO_CHECK = 11
 ++pkg syscall (linux-s390x), const SO_NO_CHECK ideal-int
 ++pkg syscall (linux-s390x), const SO_NOFCS = 43
 ++pkg syscall (linux-s390x), const SO_NOFCS ideal-int
 ++pkg syscall (linux-s390x), const SO_OOBINLINE = 10
 ++pkg syscall (linux-s390x), const SO_OOBINLINE ideal-int
 ++pkg syscall (linux-s390x), const SO_PASSCRED = 16
 ++pkg syscall (linux-s390x), const SO_PASSCRED ideal-int
 ++pkg syscall (linux-s390x), const SO_PASSSEC = 34
 ++pkg syscall (linux-s390x), const SO_PASSSEC ideal-int
 ++pkg syscall (linux-s390x), const SO_PEEK_OFF = 42
 ++pkg syscall (linux-s390x), const SO_PEEK_OFF ideal-int
 ++pkg syscall (linux-s390x), const SO_PEERCRED = 17
 ++pkg syscall (linux-s390x), const SO_PEERCRED ideal-int
 ++pkg syscall (linux-s390x), const SO_PEERNAME = 28
 ++pkg syscall (linux-s390x), const SO_PEERNAME ideal-int
 ++pkg syscall (linux-s390x), const SO_PEERSEC = 31
 ++pkg syscall (linux-s390x), const SO_PEERSEC ideal-int
 ++pkg syscall (linux-s390x), const SO_PRIORITY = 12
 ++pkg syscall (linux-s390x), const SO_PRIORITY ideal-int
 ++pkg syscall (linux-s390x), const SO_PROTOCOL = 38
 ++pkg syscall (linux-s390x), const SO_PROTOCOL ideal-int
 ++pkg syscall (linux-s390x), const SO_RCVBUF = 8
 ++pkg syscall (linux-s390x), const SO_RCVBUFFORCE = 33
 ++pkg syscall (linux-s390x), const SO_RCVBUFFORCE ideal-int
 ++pkg syscall (linux-s390x), const SO_RCVLOWAT = 18
 ++pkg syscall (linux-s390x), const SO_RCVLOWAT ideal-int
 ++pkg syscall (linux-s390x), const SO_RCVTIMEO = 20
 ++pkg syscall (linux-s390x), const SO_RCVTIMEO ideal-int
 ++pkg syscall (linux-s390x), const SO_REUSEADDR = 2
 ++pkg syscall (linux-s390x), const SO_REUSEPORT = 15
 ++pkg syscall (linux-s390x), const SO_REUSEPORT ideal-int
 ++pkg syscall (linux-s390x), const SO_RXQ_OVFL = 40
 ++pkg syscall (linux-s390x), const SO_RXQ_OVFL ideal-int
 ++pkg syscall (linux-s390x), const SO_SECURITY_AUTHENTICATION = 22
 ++pkg syscall (linux-s390x), const SO_SECURITY_AUTHENTICATION ideal-int
 ++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_NETWORK = 24
 ++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_NETWORK ideal-int
 ++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_TRANSPORT = 23
 ++pkg syscall (linux-s390x), const SO_SECURITY_ENCRYPTION_TRANSPORT ideal-int
 ++pkg syscall (linux-s390x), const SO_SELECT_ERR_QUEUE = 45
 ++pkg syscall (linux-s390x), const SO_SELECT_ERR_QUEUE ideal-int
 ++pkg syscall (linux-s390x), const SO_SNDBUF = 7
 ++pkg syscall (linux-s390x), const SO_SNDBUFFORCE = 32
 ++pkg syscall (linux-s390x), const SO_SNDBUFFORCE ideal-int
 ++pkg syscall (linux-s390x), const SO_SNDLOWAT = 19
 ++pkg syscall (linux-s390x), const SO_SNDLOWAT ideal-int
 ++pkg syscall (linux-s390x), const SO_SNDTIMEO = 21
 ++pkg syscall (linux-s390x), const SO_SNDTIMEO ideal-int
 ++pkg syscall (linux-s390x), const SO_TIMESTAMP = 29
 ++pkg syscall (linux-s390x), const SO_TIMESTAMP ideal-int
 ++pkg syscall (linux-s390x), const SO_TIMESTAMPING = 37
 ++pkg syscall (linux-s390x), const SO_TIMESTAMPING ideal-int
 ++pkg syscall (linux-s390x), const SO_TIMESTAMPNS = 35
 ++pkg syscall (linux-s390x), const SO_TIMESTAMPNS ideal-int
 ++pkg syscall (linux-s390x), const SO_TYPE = 3
 ++pkg syscall (linux-s390x), const SO_TYPE ideal-int
 ++pkg syscall (linux-s390x), const SO_WIFI_STATUS = 41
 ++pkg syscall (linux-s390x), const SO_WIFI_STATUS ideal-int
 ++pkg syscall (linux-s390x), const SYS_ACCESS = 33
 ++pkg syscall (linux-s390x), const SYS_ACCESS ideal-int
 ++pkg syscall (linux-s390x), const SYS_ACCT = 51
 ++pkg syscall (linux-s390x), const SYS_ACCT ideal-int
 ++pkg syscall (linux-s390x), const SYS_ADD_KEY = 278
 ++pkg syscall (linux-s390x), const SYS_ADD_KEY ideal-int
 ++pkg syscall (linux-s390x), const SYS_ADJTIMEX = 124
 ++pkg syscall (linux-s390x), const SYS_ADJTIMEX ideal-int
 ++pkg syscall (linux-s390x), const SYS_AFS_SYSCALL = 137
 ++pkg syscall (linux-s390x), const SYS_AFS_SYSCALL ideal-int
 ++pkg syscall (linux-s390x), const SYS_ALARM = 27
 ++pkg syscall (linux-s390x), const SYS_ALARM ideal-int
 ++pkg syscall (linux-s390x), const SYS_BDFLUSH = 134
 ++pkg syscall (linux-s390x), const SYS_BDFLUSH ideal-int
 ++pkg syscall (linux-s390x), const SYS_BRK = 45
 ++pkg syscall (linux-s390x), const SYS_BRK ideal-int
 ++pkg syscall (linux-s390x), const SYS_CAPGET = 184
 ++pkg syscall (linux-s390x), const SYS_CAPGET ideal-int
 ++pkg syscall (linux-s390x), const SYS_CAPSET = 185
 ++pkg syscall (linux-s390x), const SYS_CAPSET ideal-int
 ++pkg syscall (linux-s390x), const SYS_CHDIR = 12
 ++pkg syscall (linux-s390x), const SYS_CHDIR ideal-int
 ++pkg syscall (linux-s390x), const SYS_CHMOD = 15
 ++pkg syscall (linux-s390x), const SYS_CHMOD ideal-int
 ++pkg syscall (linux-s390x), const SYS_CHOWN = 212
 ++pkg syscall (linux-s390x), const SYS_CHOWN ideal-int
 ++pkg syscall (linux-s390x), const SYS_CHROOT = 61
 ++pkg syscall (linux-s390x), const SYS_CHROOT ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLOCK_ADJTIME = 337
 ++pkg syscall (linux-s390x), const SYS_CLOCK_ADJTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLOCK_GETRES = 261
 ++pkg syscall (linux-s390x), const SYS_CLOCK_GETRES ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLOCK_GETTIME = 260
 ++pkg syscall (linux-s390x), const SYS_CLOCK_GETTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLOCK_NANOSLEEP = 262
 ++pkg syscall (linux-s390x), const SYS_CLOCK_NANOSLEEP ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLOCK_SETTIME = 259
 ++pkg syscall (linux-s390x), const SYS_CLOCK_SETTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLONE = 120
 ++pkg syscall (linux-s390x), const SYS_CLONE ideal-int
 ++pkg syscall (linux-s390x), const SYS_CLOSE = 6
 ++pkg syscall (linux-s390x), const SYS_CLOSE ideal-int
 ++pkg syscall (linux-s390x), const SYS_CREAT = 8
 ++pkg syscall (linux-s390x), const SYS_CREATE_MODULE = 127
 ++pkg syscall (linux-s390x), const SYS_CREATE_MODULE ideal-int
 ++pkg syscall (linux-s390x), const SYS_CREAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_DELETE_MODULE = 129
 ++pkg syscall (linux-s390x), const SYS_DELETE_MODULE ideal-int
 ++pkg syscall (linux-s390x), const SYS_DUP2 = 63
 ++pkg syscall (linux-s390x), const SYS_DUP2 ideal-int
 ++pkg syscall (linux-s390x), const SYS_DUP3 = 326
 ++pkg syscall (linux-s390x), const SYS_DUP3 ideal-int
 ++pkg syscall (linux-s390x), const SYS_DUP = 41
 ++pkg syscall (linux-s390x), const SYS_DUP ideal-int
 ++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE1 = 327
 ++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE1 ideal-int
 ++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE = 249
 ++pkg syscall (linux-s390x), const SYS_EPOLL_CREATE ideal-int
 ++pkg syscall (linux-s390x), const SYS_EPOLL_CTL = 250
 ++pkg syscall (linux-s390x), const SYS_EPOLL_CTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_EPOLL_PWAIT = 312
 ++pkg syscall (linux-s390x), const SYS_EPOLL_PWAIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_EPOLL_WAIT = 251
 ++pkg syscall (linux-s390x), const SYS_EPOLL_WAIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_EVENTFD2 = 323
 ++pkg syscall (linux-s390x), const SYS_EVENTFD2 ideal-int
 ++pkg syscall (linux-s390x), const SYS_EVENTFD = 318
 ++pkg syscall (linux-s390x), const SYS_EVENTFD ideal-int
 ++pkg syscall (linux-s390x), const SYS_EXECVE = 11
 ++pkg syscall (linux-s390x), const SYS_EXECVE ideal-int
 ++pkg syscall (linux-s390x), const SYS_EXIT = 1
 ++pkg syscall (linux-s390x), const SYS_EXIT_GROUP = 248
 ++pkg syscall (linux-s390x), const SYS_EXIT_GROUP ideal-int
 ++pkg syscall (linux-s390x), const SYS_EXIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_FACCESSAT = 300
 ++pkg syscall (linux-s390x), const SYS_FACCESSAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_FADVISE64 = 253
 ++pkg syscall (linux-s390x), const SYS_FADVISE64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_FALLOCATE = 314
 ++pkg syscall (linux-s390x), const SYS_FALLOCATE ideal-int
 ++pkg syscall (linux-s390x), const SYS_FANOTIFY_INIT = 332
 ++pkg syscall (linux-s390x), const SYS_FANOTIFY_INIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_FANOTIFY_MARK = 333
 ++pkg syscall (linux-s390x), const SYS_FANOTIFY_MARK ideal-int
 ++pkg syscall (linux-s390x), const SYS_FCHDIR = 133
 ++pkg syscall (linux-s390x), const SYS_FCHDIR ideal-int
 ++pkg syscall (linux-s390x), const SYS_FCHMOD = 94
 ++pkg syscall (linux-s390x), const SYS_FCHMODAT = 299
 ++pkg syscall (linux-s390x), const SYS_FCHMODAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_FCHMOD ideal-int
 ++pkg syscall (linux-s390x), const SYS_FCHOWN = 207
 ++pkg syscall (linux-s390x), const SYS_FCHOWNAT = 291
 ++pkg syscall (linux-s390x), const SYS_FCHOWNAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_FCHOWN ideal-int
 ++pkg syscall (linux-s390x), const SYS_FCNTL = 55
 ++pkg syscall (linux-s390x), const SYS_FCNTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_FDATASYNC = 148
 ++pkg syscall (linux-s390x), const SYS_FDATASYNC ideal-int
 ++pkg syscall (linux-s390x), const SYS_FGETXATTR = 229
 ++pkg syscall (linux-s390x), const SYS_FGETXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_FINIT_MODULE = 344
 ++pkg syscall (linux-s390x), const SYS_FINIT_MODULE ideal-int
 ++pkg syscall (linux-s390x), const SYS_FLISTXATTR = 232
 ++pkg syscall (linux-s390x), const SYS_FLISTXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_FLOCK = 143
 ++pkg syscall (linux-s390x), const SYS_FLOCK ideal-int
 ++pkg syscall (linux-s390x), const SYS_FORK = 2
 ++pkg syscall (linux-s390x), const SYS_FORK ideal-int
 ++pkg syscall (linux-s390x), const SYS_FREMOVEXATTR = 235
 ++pkg syscall (linux-s390x), const SYS_FREMOVEXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_FSETXATTR = 226
 ++pkg syscall (linux-s390x), const SYS_FSETXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_FSTAT = 108
 ++pkg syscall (linux-s390x), const SYS_FSTATFS = 100
 ++pkg syscall (linux-s390x), const SYS_FSTATFS64 = 266
 ++pkg syscall (linux-s390x), const SYS_FSTATFS64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_FSTATFS ideal-int
 ++pkg syscall (linux-s390x), const SYS_FSTAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_FSYNC = 118
 ++pkg syscall (linux-s390x), const SYS_FSYNC ideal-int
 ++pkg syscall (linux-s390x), const SYS_FTRUNCATE = 93
 ++pkg syscall (linux-s390x), const SYS_FTRUNCATE ideal-int
 ++pkg syscall (linux-s390x), const SYS_FUTEX = 238
 ++pkg syscall (linux-s390x), const SYS_FUTEX ideal-int
 ++pkg syscall (linux-s390x), const SYS_FUTIMESAT = 292
 ++pkg syscall (linux-s390x), const SYS_FUTIMESAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETCPU = 311
 ++pkg syscall (linux-s390x), const SYS_GETCPU ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETCWD = 183
 ++pkg syscall (linux-s390x), const SYS_GETCWD ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETDENTS = 141
 ++pkg syscall (linux-s390x), const SYS_GETDENTS64 = 220
 ++pkg syscall (linux-s390x), const SYS_GETDENTS64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETDENTS ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETEGID = 202
 ++pkg syscall (linux-s390x), const SYS_GETEGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETEUID = 201
 ++pkg syscall (linux-s390x), const SYS_GETEUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETGID = 200
 ++pkg syscall (linux-s390x), const SYS_GETGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETGROUPS = 205
 ++pkg syscall (linux-s390x), const SYS_GETGROUPS ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETITIMER = 105
 ++pkg syscall (linux-s390x), const SYS_GETITIMER ideal-int
 ++pkg syscall (linux-s390x), const SYS_GET_KERNEL_SYMS = 130
 ++pkg syscall (linux-s390x), const SYS_GET_KERNEL_SYMS ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETPGID = 132
 ++pkg syscall (linux-s390x), const SYS_GETPGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETPGRP = 65
 ++pkg syscall (linux-s390x), const SYS_GETPGRP ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETPID = 20
 ++pkg syscall (linux-s390x), const SYS_GETPID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETPMSG = 188
 ++pkg syscall (linux-s390x), const SYS_GETPMSG ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETPPID = 64
 ++pkg syscall (linux-s390x), const SYS_GETPPID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETPRIORITY = 96
 ++pkg syscall (linux-s390x), const SYS_GETPRIORITY ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETRESGID = 211
 ++pkg syscall (linux-s390x), const SYS_GETRESGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETRESUID = 209
 ++pkg syscall (linux-s390x), const SYS_GETRESUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETRLIMIT = 191
 ++pkg syscall (linux-s390x), const SYS_GETRLIMIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_GET_ROBUST_LIST = 305
 ++pkg syscall (linux-s390x), const SYS_GET_ROBUST_LIST ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETRUSAGE = 77
 ++pkg syscall (linux-s390x), const SYS_GETRUSAGE ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETSID = 147
 ++pkg syscall (linux-s390x), const SYS_GETSID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETTID = 236
 ++pkg syscall (linux-s390x), const SYS_GETTID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETTIMEOFDAY = 78
 ++pkg syscall (linux-s390x), const SYS_GETTIMEOFDAY ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETUID = 199
 ++pkg syscall (linux-s390x), const SYS_GETUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_GETXATTR = 227
 ++pkg syscall (linux-s390x), const SYS_GETXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_IDLE = 112
 ++pkg syscall (linux-s390x), const SYS_IDLE ideal-int
 ++pkg syscall (linux-s390x), const SYS_INIT_MODULE = 128
 ++pkg syscall (linux-s390x), const SYS_INIT_MODULE ideal-int
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_ADD_WATCH = 285
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_ADD_WATCH ideal-int
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT1 = 324
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT1 ideal-int
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT = 284
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_INIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_RM_WATCH = 286
 ++pkg syscall (linux-s390x), const SYS_INOTIFY_RM_WATCH ideal-int
 ++pkg syscall (linux-s390x), const SYS_IO_CANCEL = 247
 ++pkg syscall (linux-s390x), const SYS_IO_CANCEL ideal-int
 ++pkg syscall (linux-s390x), const SYS_IOCTL = 54
 ++pkg syscall (linux-s390x), const SYS_IOCTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_IO_DESTROY = 244
 ++pkg syscall (linux-s390x), const SYS_IO_DESTROY ideal-int
 ++pkg syscall (linux-s390x), const SYS_IO_GETEVENTS = 245
 ++pkg syscall (linux-s390x), const SYS_IO_GETEVENTS ideal-int
 ++pkg syscall (linux-s390x), const SYS_IOPRIO_GET = 283
 ++pkg syscall (linux-s390x), const SYS_IOPRIO_GET ideal-int
 ++pkg syscall (linux-s390x), const SYS_IOPRIO_SET = 282
 ++pkg syscall (linux-s390x), const SYS_IOPRIO_SET ideal-int
 ++pkg syscall (linux-s390x), const SYS_IO_SETUP = 243
 ++pkg syscall (linux-s390x), const SYS_IO_SETUP ideal-int
 ++pkg syscall (linux-s390x), const SYS_IO_SUBMIT = 246
 ++pkg syscall (linux-s390x), const SYS_IO_SUBMIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_IPC = 117
 ++pkg syscall (linux-s390x), const SYS_IPC ideal-int
 ++pkg syscall (linux-s390x), const SYS_KCMP = 343
 ++pkg syscall (linux-s390x), const SYS_KCMP ideal-int
 ++pkg syscall (linux-s390x), const SYS_KEXEC_LOAD = 277
 ++pkg syscall (linux-s390x), const SYS_KEXEC_LOAD ideal-int
 ++pkg syscall (linux-s390x), const SYS_KEYCTL = 280
 ++pkg syscall (linux-s390x), const SYS_KEYCTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_KILL = 37
 ++pkg syscall (linux-s390x), const SYS_KILL ideal-int
 ++pkg syscall (linux-s390x), const SYS_LCHOWN = 198
 ++pkg syscall (linux-s390x), const SYS_LCHOWN ideal-int
 ++pkg syscall (linux-s390x), const SYS_LGETXATTR = 228
 ++pkg syscall (linux-s390x), const SYS_LGETXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_LINK = 9
 ++pkg syscall (linux-s390x), const SYS_LINKAT = 296
 ++pkg syscall (linux-s390x), const SYS_LINKAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_LINK ideal-int
 ++pkg syscall (linux-s390x), const SYS_LISTXATTR = 230
 ++pkg syscall (linux-s390x), const SYS_LISTXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_LLISTXATTR = 231
 ++pkg syscall (linux-s390x), const SYS_LLISTXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_LOOKUP_DCOOKIE = 110
 ++pkg syscall (linux-s390x), const SYS_LOOKUP_DCOOKIE ideal-int
 ++pkg syscall (linux-s390x), const SYS_LREMOVEXATTR = 234
 ++pkg syscall (linux-s390x), const SYS_LREMOVEXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_LSEEK = 19
 ++pkg syscall (linux-s390x), const SYS_LSEEK ideal-int
 ++pkg syscall (linux-s390x), const SYS_LSETXATTR = 225
 ++pkg syscall (linux-s390x), const SYS_LSETXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_LSTAT = 107
 ++pkg syscall (linux-s390x), const SYS_LSTAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_MADVISE = 219
 ++pkg syscall (linux-s390x), const SYS_MADVISE ideal-int
 ++pkg syscall (linux-s390x), const SYS_MINCORE = 218
 ++pkg syscall (linux-s390x), const SYS_MINCORE ideal-int
 ++pkg syscall (linux-s390x), const SYS_MKDIR = 39
 ++pkg syscall (linux-s390x), const SYS_MKDIRAT = 289
 ++pkg syscall (linux-s390x), const SYS_MKDIRAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_MKDIR ideal-int
 ++pkg syscall (linux-s390x), const SYS_MKNOD = 14
 ++pkg syscall (linux-s390x), const SYS_MKNODAT = 290
 ++pkg syscall (linux-s390x), const SYS_MKNODAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_MKNOD ideal-int
 ++pkg syscall (linux-s390x), const SYS_MLOCK = 150
 ++pkg syscall (linux-s390x), const SYS_MLOCKALL = 152
 ++pkg syscall (linux-s390x), const SYS_MLOCKALL ideal-int
 ++pkg syscall (linux-s390x), const SYS_MLOCK ideal-int
 ++pkg syscall (linux-s390x), const SYS_MMAP = 90
 ++pkg syscall (linux-s390x), const SYS_MMAP ideal-int
 ++pkg syscall (linux-s390x), const SYS_MOUNT = 21
 ++pkg syscall (linux-s390x), const SYS_MOUNT ideal-int
 ++pkg syscall (linux-s390x), const SYS_MPROTECT = 125
 ++pkg syscall (linux-s390x), const SYS_MPROTECT ideal-int
 ++pkg syscall (linux-s390x), const SYS_MQ_GETSETATTR = 276
 ++pkg syscall (linux-s390x), const SYS_MQ_GETSETATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_MQ_NOTIFY = 275
 ++pkg syscall (linux-s390x), const SYS_MQ_NOTIFY ideal-int
 ++pkg syscall (linux-s390x), const SYS_MQ_OPEN = 271
 ++pkg syscall (linux-s390x), const SYS_MQ_OPEN ideal-int
 ++pkg syscall (linux-s390x), const SYS_MQ_TIMEDRECEIVE = 274
 ++pkg syscall (linux-s390x), const SYS_MQ_TIMEDRECEIVE ideal-int
 ++pkg syscall (linux-s390x), const SYS_MQ_TIMEDSEND = 273
 ++pkg syscall (linux-s390x), const SYS_MQ_TIMEDSEND ideal-int
 ++pkg syscall (linux-s390x), const SYS_MQ_UNLINK = 272
 ++pkg syscall (linux-s390x), const SYS_MQ_UNLINK ideal-int
 ++pkg syscall (linux-s390x), const SYS_MREMAP = 163
 ++pkg syscall (linux-s390x), const SYS_MREMAP ideal-int
 ++pkg syscall (linux-s390x), const SYS_MSYNC = 144
 ++pkg syscall (linux-s390x), const SYS_MSYNC ideal-int
 ++pkg syscall (linux-s390x), const SYS_MUNLOCK = 151
 ++pkg syscall (linux-s390x), const SYS_MUNLOCKALL = 153
 ++pkg syscall (linux-s390x), const SYS_MUNLOCKALL ideal-int
 ++pkg syscall (linux-s390x), const SYS_MUNLOCK ideal-int
 ++pkg syscall (linux-s390x), const SYS_MUNMAP = 91
 ++pkg syscall (linux-s390x), const SYS_MUNMAP ideal-int
 ++pkg syscall (linux-s390x), const SYS_NAME_TO_HANDLE_AT = 335
 ++pkg syscall (linux-s390x), const SYS_NAME_TO_HANDLE_AT ideal-int
 ++pkg syscall (linux-s390x), const SYS_NANOSLEEP = 162
 ++pkg syscall (linux-s390x), const SYS_NANOSLEEP ideal-int
 ++pkg syscall (linux-s390x), const SYS_NEWFSTATAT = 293
 ++pkg syscall (linux-s390x), const SYS_NEWFSTATAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_NFSSERVCTL = 169
 ++pkg syscall (linux-s390x), const SYS_NFSSERVCTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_NICE = 34
 ++pkg syscall (linux-s390x), const SYS_NICE ideal-int
 ++pkg syscall (linux-s390x), const SYS_OPEN = 5
 ++pkg syscall (linux-s390x), const SYS_OPENAT = 288
 ++pkg syscall (linux-s390x), const SYS_OPENAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_OPEN_BY_HANDLE_AT = 336
 ++pkg syscall (linux-s390x), const SYS_OPEN_BY_HANDLE_AT ideal-int
 ++pkg syscall (linux-s390x), const SYS_OPEN ideal-int
 ++pkg syscall (linux-s390x), const SYS_PAUSE = 29
 ++pkg syscall (linux-s390x), const SYS_PAUSE ideal-int
 ++pkg syscall (linux-s390x), const SYS_PERF_EVENT_OPEN = 331
 ++pkg syscall (linux-s390x), const SYS_PERF_EVENT_OPEN ideal-int
 ++pkg syscall (linux-s390x), const SYS_PERSONALITY = 136
 ++pkg syscall (linux-s390x), const SYS_PERSONALITY ideal-int
 ++pkg syscall (linux-s390x), const SYS_PIPE2 = 325
 ++pkg syscall (linux-s390x), const SYS_PIPE2 ideal-int
 ++pkg syscall (linux-s390x), const SYS_PIPE = 42
 ++pkg syscall (linux-s390x), const SYS_PIPE ideal-int
 ++pkg syscall (linux-s390x), const SYS_PIVOT_ROOT = 217
 ++pkg syscall (linux-s390x), const SYS_PIVOT_ROOT ideal-int
 ++pkg syscall (linux-s390x), const SYS_POLL = 168
 ++pkg syscall (linux-s390x), const SYS_POLL ideal-int
 ++pkg syscall (linux-s390x), const SYS_PPOLL = 302
 ++pkg syscall (linux-s390x), const SYS_PPOLL ideal-int
 ++pkg syscall (linux-s390x), const SYS_PRCTL = 172
 ++pkg syscall (linux-s390x), const SYS_PRCTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_PREAD64 = 180
 ++pkg syscall (linux-s390x), const SYS_PREAD64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_PREADV = 328
 ++pkg syscall (linux-s390x), const SYS_PREADV ideal-int
 ++pkg syscall (linux-s390x), const SYS_PRLIMIT64 = 334
 ++pkg syscall (linux-s390x), const SYS_PRLIMIT64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_PROCESS_VM_READV = 340
 ++pkg syscall (linux-s390x), const SYS_PROCESS_VM_READV ideal-int
 ++pkg syscall (linux-s390x), const SYS_PROCESS_VM_WRITEV = 341
 ++pkg syscall (linux-s390x), const SYS_PROCESS_VM_WRITEV ideal-int
 ++pkg syscall (linux-s390x), const SYS_PSELECT6 = 301
 ++pkg syscall (linux-s390x), const SYS_PSELECT6 ideal-int
 ++pkg syscall (linux-s390x), const SYS_PTRACE = 26
 ++pkg syscall (linux-s390x), const SYS_PTRACE ideal-int
 ++pkg syscall (linux-s390x), const SYS_PUTPMSG = 189
 ++pkg syscall (linux-s390x), const SYS_PUTPMSG ideal-int
 ++pkg syscall (linux-s390x), const SYS_PWRITE64 = 181
 ++pkg syscall (linux-s390x), const SYS_PWRITE64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_PWRITEV = 329
 ++pkg syscall (linux-s390x), const SYS_PWRITEV ideal-int
 ++pkg syscall (linux-s390x), const SYS_QUERY_MODULE = 167
 ++pkg syscall (linux-s390x), const SYS_QUERY_MODULE ideal-int
 ++pkg syscall (linux-s390x), const SYS_QUOTACTL = 131
 ++pkg syscall (linux-s390x), const SYS_QUOTACTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_READ = 3
 ++pkg syscall (linux-s390x), const SYS_READAHEAD = 222
 ++pkg syscall (linux-s390x), const SYS_READAHEAD ideal-int
 ++pkg syscall (linux-s390x), const SYS_READDIR = 89
 ++pkg syscall (linux-s390x), const SYS_READDIR ideal-int
 ++pkg syscall (linux-s390x), const SYS_READ ideal-int
 ++pkg syscall (linux-s390x), const SYS_READLINK = 85
 ++pkg syscall (linux-s390x), const SYS_READLINKAT = 298
 ++pkg syscall (linux-s390x), const SYS_READLINKAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_READLINK ideal-int
 ++pkg syscall (linux-s390x), const SYS_READV = 145
 ++pkg syscall (linux-s390x), const SYS_READV ideal-int
 ++pkg syscall (linux-s390x), const SYS_REBOOT = 88
 ++pkg syscall (linux-s390x), const SYS_REBOOT ideal-int
 ++pkg syscall (linux-s390x), const SYS_REMAP_FILE_PAGES = 267
 ++pkg syscall (linux-s390x), const SYS_REMAP_FILE_PAGES ideal-int
 ++pkg syscall (linux-s390x), const SYS_REMOVEXATTR = 233
 ++pkg syscall (linux-s390x), const SYS_REMOVEXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_RENAME = 38
 ++pkg syscall (linux-s390x), const SYS_RENAMEAT = 295
 ++pkg syscall (linux-s390x), const SYS_RENAMEAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_RENAME ideal-int
 ++pkg syscall (linux-s390x), const SYS_REQUEST_KEY = 279
 ++pkg syscall (linux-s390x), const SYS_REQUEST_KEY ideal-int
 ++pkg syscall (linux-s390x), const SYS_RESTART_SYSCALL = 7
 ++pkg syscall (linux-s390x), const SYS_RESTART_SYSCALL ideal-int
 ++pkg syscall (linux-s390x), const SYS_RMDIR = 40
 ++pkg syscall (linux-s390x), const SYS_RMDIR ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGACTION = 174
 ++pkg syscall (linux-s390x), const SYS_RT_SIGACTION ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGPENDING = 176
 ++pkg syscall (linux-s390x), const SYS_RT_SIGPENDING ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGPROCMASK = 175
 ++pkg syscall (linux-s390x), const SYS_RT_SIGPROCMASK ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGQUEUEINFO = 178
 ++pkg syscall (linux-s390x), const SYS_RT_SIGQUEUEINFO ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGRETURN = 173
 ++pkg syscall (linux-s390x), const SYS_RT_SIGRETURN ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGSUSPEND = 179
 ++pkg syscall (linux-s390x), const SYS_RT_SIGSUSPEND ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_SIGTIMEDWAIT = 177
 ++pkg syscall (linux-s390x), const SYS_RT_SIGTIMEDWAIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_RT_TGSIGQUEUEINFO = 330
 ++pkg syscall (linux-s390x), const SYS_RT_TGSIGQUEUEINFO ideal-int
 ++pkg syscall (linux-s390x), const SYS_S390_RUNTIME_INSTR = 342
 ++pkg syscall (linux-s390x), const SYS_S390_RUNTIME_INSTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_GETAFFINITY = 240
 ++pkg syscall (linux-s390x), const SYS_SCHED_GETAFFINITY ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_GETPARAM = 155
 ++pkg syscall (linux-s390x), const SYS_SCHED_GETPARAM ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MAX = 159
 ++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MIN = 160
 ++pkg syscall (linux-s390x), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_GETSCHEDULER = 157
 ++pkg syscall (linux-s390x), const SYS_SCHED_GETSCHEDULER ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_RR_GET_INTERVAL = 161
 ++pkg syscall (linux-s390x), const SYS_SCHED_RR_GET_INTERVAL ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_SETAFFINITY = 239
 ++pkg syscall (linux-s390x), const SYS_SCHED_SETAFFINITY ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_SETPARAM = 154
 ++pkg syscall (linux-s390x), const SYS_SCHED_SETPARAM ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_SETSCHEDULER = 156
 ++pkg syscall (linux-s390x), const SYS_SCHED_SETSCHEDULER ideal-int
 ++pkg syscall (linux-s390x), const SYS_SCHED_YIELD = 158
 ++pkg syscall (linux-s390x), const SYS_SCHED_YIELD ideal-int
 ++pkg syscall (linux-s390x), const SYS_SELECT = 142
 ++pkg syscall (linux-s390x), const SYS_SELECT ideal-int
 ++pkg syscall (linux-s390x), const SYS_SENDFILE = 187
 ++pkg syscall (linux-s390x), const SYS_SENDFILE ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETDOMAINNAME = 121
 ++pkg syscall (linux-s390x), const SYS_SETDOMAINNAME ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETFSGID = 216
 ++pkg syscall (linux-s390x), const SYS_SETFSGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETFSUID = 215
 ++pkg syscall (linux-s390x), const SYS_SETFSUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETGID = 214
 ++pkg syscall (linux-s390x), const SYS_SETGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETGROUPS = 206
 ++pkg syscall (linux-s390x), const SYS_SETGROUPS ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETHOSTNAME = 74
 ++pkg syscall (linux-s390x), const SYS_SETHOSTNAME ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETITIMER = 104
 ++pkg syscall (linux-s390x), const SYS_SETITIMER ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETNS = 339
 ++pkg syscall (linux-s390x), const SYS_SETNS ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETPGID = 57
 ++pkg syscall (linux-s390x), const SYS_SETPGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETPRIORITY = 97
 ++pkg syscall (linux-s390x), const SYS_SETPRIORITY ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETREGID = 204
 ++pkg syscall (linux-s390x), const SYS_SETREGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETRESGID = 210
 ++pkg syscall (linux-s390x), const SYS_SETRESGID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETRESUID = 208
 ++pkg syscall (linux-s390x), const SYS_SETRESUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETREUID = 203
 ++pkg syscall (linux-s390x), const SYS_SETREUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETRLIMIT = 75
 ++pkg syscall (linux-s390x), const SYS_SETRLIMIT ideal-int
 ++pkg syscall (linux-s390x), const SYS_SET_ROBUST_LIST = 304
 ++pkg syscall (linux-s390x), const SYS_SET_ROBUST_LIST ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETSID = 66
 ++pkg syscall (linux-s390x), const SYS_SETSID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SET_TID_ADDRESS = 252
 ++pkg syscall (linux-s390x), const SYS_SET_TID_ADDRESS ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETTIMEOFDAY = 79
 ++pkg syscall (linux-s390x), const SYS_SETTIMEOFDAY ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETUID = 213
 ++pkg syscall (linux-s390x), const SYS_SETUID ideal-int
 ++pkg syscall (linux-s390x), const SYS_SETXATTR = 224
 ++pkg syscall (linux-s390x), const SYS_SETXATTR ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGACTION = 67
 ++pkg syscall (linux-s390x), const SYS_SIGACTION ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGALTSTACK = 186
 ++pkg syscall (linux-s390x), const SYS_SIGALTSTACK ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGNAL = 48
 ++pkg syscall (linux-s390x), const SYS_SIGNALFD = 316
 ++pkg syscall (linux-s390x), const SYS_SIGNALFD4 = 322
 ++pkg syscall (linux-s390x), const SYS_SIGNALFD4 ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGNALFD ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGNAL ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGPENDING = 73
 ++pkg syscall (linux-s390x), const SYS_SIGPENDING ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGPROCMASK = 126
 ++pkg syscall (linux-s390x), const SYS_SIGPROCMASK ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGRETURN = 119
 ++pkg syscall (linux-s390x), const SYS_SIGRETURN ideal-int
 ++pkg syscall (linux-s390x), const SYS_SIGSUSPEND = 72
 ++pkg syscall (linux-s390x), const SYS_SIGSUSPEND ideal-int
 ++pkg syscall (linux-s390x), const SYS_SOCKETCALL = 102
 ++pkg syscall (linux-s390x), const SYS_SOCKETCALL ideal-int
 ++pkg syscall (linux-s390x), const SYS_SPLICE = 306
 ++pkg syscall (linux-s390x), const SYS_SPLICE ideal-int
 ++pkg syscall (linux-s390x), const SYS_STAT = 106
 ++pkg syscall (linux-s390x), const SYS_STATFS64 = 265
 ++pkg syscall (linux-s390x), const SYS_STATFS64 ideal-int
 ++pkg syscall (linux-s390x), const SYS_STATFS = 99
 ++pkg syscall (linux-s390x), const SYS_STATFS ideal-int
 ++pkg syscall (linux-s390x), const SYS_STAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_SWAPOFF = 115
 ++pkg syscall (linux-s390x), const SYS_SWAPOFF ideal-int
 ++pkg syscall (linux-s390x), const SYS_SWAPON = 87
 ++pkg syscall (linux-s390x), const SYS_SWAPON ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYMLINK = 83
 ++pkg syscall (linux-s390x), const SYS_SYMLINKAT = 297
 ++pkg syscall (linux-s390x), const SYS_SYMLINKAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYMLINK ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYNC = 36
 ++pkg syscall (linux-s390x), const SYS_SYNC_FILE_RANGE = 307
 ++pkg syscall (linux-s390x), const SYS_SYNC_FILE_RANGE ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYNCFS = 338
 ++pkg syscall (linux-s390x), const SYS_SYNCFS ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYNC ideal-int
 ++pkg syscall (linux-s390x), const SYS__SYSCTL = 149
 ++pkg syscall (linux-s390x), const SYS__SYSCTL ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYSFS = 135
 ++pkg syscall (linux-s390x), const SYS_SYSFS ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYSINFO = 116
 ++pkg syscall (linux-s390x), const SYS_SYSINFO ideal-int
 ++pkg syscall (linux-s390x), const SYS_SYSLOG = 103
 ++pkg syscall (linux-s390x), const SYS_SYSLOG ideal-int
 ++pkg syscall (linux-s390x), const SYS_TEE = 308
 ++pkg syscall (linux-s390x), const SYS_TEE ideal-int
 ++pkg syscall (linux-s390x), const SYS_TGKILL = 241
 ++pkg syscall (linux-s390x), const SYS_TGKILL ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMER_CREATE = 254
 ++pkg syscall (linux-s390x), const SYS_TIMER_CREATE ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMER_DELETE = 258
 ++pkg syscall (linux-s390x), const SYS_TIMER_DELETE ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMERFD = 317
 ++pkg syscall (linux-s390x), const SYS_TIMERFD_CREATE = 319
 ++pkg syscall (linux-s390x), const SYS_TIMERFD_CREATE ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMERFD_GETTIME = 321
 ++pkg syscall (linux-s390x), const SYS_TIMERFD_GETTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMERFD ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMERFD_SETTIME = 320
 ++pkg syscall (linux-s390x), const SYS_TIMERFD_SETTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMER_GETOVERRUN = 257
 ++pkg syscall (linux-s390x), const SYS_TIMER_GETOVERRUN ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMER_GETTIME = 256
 ++pkg syscall (linux-s390x), const SYS_TIMER_GETTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMER_SETTIME = 255
 ++pkg syscall (linux-s390x), const SYS_TIMER_SETTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_TIMES = 43
 ++pkg syscall (linux-s390x), const SYS_TIMES ideal-int
 ++pkg syscall (linux-s390x), const SYS_TKILL = 237
 ++pkg syscall (linux-s390x), const SYS_TKILL ideal-int
 ++pkg syscall (linux-s390x), const SYS_TRUNCATE = 92
 ++pkg syscall (linux-s390x), const SYS_TRUNCATE ideal-int
 ++pkg syscall (linux-s390x), const SYS_UMASK = 60
 ++pkg syscall (linux-s390x), const SYS_UMASK ideal-int
 ++pkg syscall (linux-s390x), const SYS_UMOUNT = 22
 ++pkg syscall (linux-s390x), const SYS_UMOUNT2 = 52
 ++pkg syscall (linux-s390x), const SYS_UMOUNT2 ideal-int
 ++pkg syscall (linux-s390x), const SYS_UMOUNT ideal-int
 ++pkg syscall (linux-s390x), const SYS_UNAME = 122
 ++pkg syscall (linux-s390x), const SYS_UNAME ideal-int
 ++pkg syscall (linux-s390x), const SYS_UNLINK = 10
 ++pkg syscall (linux-s390x), const SYS_UNLINKAT = 294
 ++pkg syscall (linux-s390x), const SYS_UNLINKAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_UNLINK ideal-int
 ++pkg syscall (linux-s390x), const SYS_UNSHARE = 303
 ++pkg syscall (linux-s390x), const SYS_UNSHARE ideal-int
 ++pkg syscall (linux-s390x), const SYS_USELIB = 86
 ++pkg syscall (linux-s390x), const SYS_USELIB ideal-int
 ++pkg syscall (linux-s390x), const SYS_USTAT = 62
 ++pkg syscall (linux-s390x), const SYS_USTAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_UTIME = 30
 ++pkg syscall (linux-s390x), const SYS_UTIME ideal-int
 ++pkg syscall (linux-s390x), const SYS_UTIMENSAT = 315
 ++pkg syscall (linux-s390x), const SYS_UTIMENSAT ideal-int
 ++pkg syscall (linux-s390x), const SYS_UTIMES = 313
 ++pkg syscall (linux-s390x), const SYS_UTIMES ideal-int
 ++pkg syscall (linux-s390x), const SYS_VFORK = 190
 ++pkg syscall (linux-s390x), const SYS_VFORK ideal-int
 ++pkg syscall (linux-s390x), const SYS_VHANGUP = 111
 ++pkg syscall (linux-s390x), const SYS_VHANGUP ideal-int
 ++pkg syscall (linux-s390x), const SYS_VMSPLICE = 309
 ++pkg syscall (linux-s390x), const SYS_VMSPLICE ideal-int
 ++pkg syscall (linux-s390x), const SYS_WAIT4 = 114
 ++pkg syscall (linux-s390x), const SYS_WAIT4 ideal-int
 ++pkg syscall (linux-s390x), const SYS_WAITID = 281
 ++pkg syscall (linux-s390x), const SYS_WAITID ideal-int
 ++pkg syscall (linux-s390x), const SYS_WRITE = 4
 ++pkg syscall (linux-s390x), const SYS_WRITE ideal-int
 ++pkg syscall (linux-s390x), const SYS_WRITEV = 146
 ++pkg syscall (linux-s390x), const SYS_WRITEV ideal-int
 ++pkg syscall (linux-s390x), const TCFLSH = 21515
 ++pkg syscall (linux-s390x), const TCFLSH ideal-int
 ++pkg syscall (linux-s390x), const TCGETS = 21505
 ++pkg syscall (linux-s390x), const TCGETS ideal-int
 ++pkg syscall (linux-s390x), const TCIFLUSH = 0
 ++pkg syscall (linux-s390x), const TCIFLUSH ideal-int
 ++pkg syscall (linux-s390x), const TCIOFLUSH = 2
 ++pkg syscall (linux-s390x), const TCIOFLUSH ideal-int
 ++pkg syscall (linux-s390x), const TCOFLUSH = 1
 ++pkg syscall (linux-s390x), const TCOFLUSH ideal-int
 ++pkg syscall (linux-s390x), const TCP_CONGESTION = 13
 ++pkg syscall (linux-s390x), const TCP_CONGESTION ideal-int
 ++pkg syscall (linux-s390x), const TCP_CORK = 3
 ++pkg syscall (linux-s390x), const TCP_CORK ideal-int
 ++pkg syscall (linux-s390x), const TCP_DEFER_ACCEPT = 9
 ++pkg syscall (linux-s390x), const TCP_DEFER_ACCEPT ideal-int
 ++pkg syscall (linux-s390x), const TCP_INFO = 11
 ++pkg syscall (linux-s390x), const TCP_INFO ideal-int
 ++pkg syscall (linux-s390x), const TCP_KEEPCNT = 6
 ++pkg syscall (linux-s390x), const TCP_KEEPCNT ideal-int
 ++pkg syscall (linux-s390x), const TCP_KEEPIDLE = 4
 ++pkg syscall (linux-s390x), const TCP_KEEPIDLE ideal-int
 ++pkg syscall (linux-s390x), const TCP_KEEPINTVL = 5
 ++pkg syscall (linux-s390x), const TCP_KEEPINTVL ideal-int
 ++pkg syscall (linux-s390x), const TCP_LINGER2 = 8
 ++pkg syscall (linux-s390x), const TCP_LINGER2 ideal-int
 ++pkg syscall (linux-s390x), const TCP_MAXSEG = 2
 ++pkg syscall (linux-s390x), const TCP_MAXSEG ideal-int
 ++pkg syscall (linux-s390x), const TCP_MAXWIN = 65535
 ++pkg syscall (linux-s390x), const TCP_MAXWIN ideal-int
 ++pkg syscall (linux-s390x), const TCP_MAX_WINSHIFT = 14
 ++pkg syscall (linux-s390x), const TCP_MAX_WINSHIFT ideal-int
 ++pkg syscall (linux-s390x), const TCP_MD5SIG = 14
 ++pkg syscall (linux-s390x), const TCP_MD5SIG ideal-int
 ++pkg syscall (linux-s390x), const TCP_MD5SIG_MAXKEYLEN = 80
 ++pkg syscall (linux-s390x), const TCP_MD5SIG_MAXKEYLEN ideal-int
 ++pkg syscall (linux-s390x), const TCP_MSS = 512
 ++pkg syscall (linux-s390x), const TCP_MSS ideal-int
 ++pkg syscall (linux-s390x), const TCP_QUICKACK = 12
 ++pkg syscall (linux-s390x), const TCP_QUICKACK ideal-int
 ++pkg syscall (linux-s390x), const TCP_SYNCNT = 7
 ++pkg syscall (linux-s390x), const TCP_SYNCNT ideal-int
 ++pkg syscall (linux-s390x), const TCP_WINDOW_CLAMP = 10
 ++pkg syscall (linux-s390x), const TCP_WINDOW_CLAMP ideal-int
 ++pkg syscall (linux-s390x), const TCSAFLUSH = 2
 ++pkg syscall (linux-s390x), const TCSAFLUSH ideal-int
 ++pkg syscall (linux-s390x), const TCSETS = 21506
 ++pkg syscall (linux-s390x), const TCSETS ideal-int
 ++pkg syscall (linux-s390x), const TIOCCBRK = 21544
 ++pkg syscall (linux-s390x), const TIOCCBRK ideal-int
 ++pkg syscall (linux-s390x), const TIOCCONS = 21533
 ++pkg syscall (linux-s390x), const TIOCCONS ideal-int
 ++pkg syscall (linux-s390x), const TIOCEXCL = 21516
 ++pkg syscall (linux-s390x), const TIOCEXCL ideal-int
 ++pkg syscall (linux-s390x), const TIOCGDEV = 2147767346
 ++pkg syscall (linux-s390x), const TIOCGDEV ideal-int
 ++pkg syscall (linux-s390x), const TIOCGETD = 21540
 ++pkg syscall (linux-s390x), const TIOCGETD ideal-int
 ++pkg syscall (linux-s390x), const TIOCGEXCL = 2147767360
 ++pkg syscall (linux-s390x), const TIOCGEXCL ideal-int
 ++pkg syscall (linux-s390x), const TIOCGICOUNT = 21597
 ++pkg syscall (linux-s390x), const TIOCGICOUNT ideal-int
 ++pkg syscall (linux-s390x), const TIOCGLCKTRMIOS = 21590
 ++pkg syscall (linux-s390x), const TIOCGLCKTRMIOS ideal-int
 ++pkg syscall (linux-s390x), const TIOCGPGRP = 21519
 ++pkg syscall (linux-s390x), const TIOCGPGRP ideal-int
 ++pkg syscall (linux-s390x), const TIOCGPKT = 2147767352
 ++pkg syscall (linux-s390x), const TIOCGPKT ideal-int
 ++pkg syscall (linux-s390x), const TIOCGPTLCK = 2147767353
 ++pkg syscall (linux-s390x), const TIOCGPTLCK ideal-int
 ++pkg syscall (linux-s390x), const TIOCGPTN = 2147767344
 ++pkg syscall (linux-s390x), const TIOCGPTN ideal-int
 ++pkg syscall (linux-s390x), const TIOCGRS485 = 21550
 ++pkg syscall (linux-s390x), const TIOCGRS485 ideal-int
 ++pkg syscall (linux-s390x), const TIOCGSERIAL = 21534
 ++pkg syscall (linux-s390x), const TIOCGSERIAL ideal-int
 ++pkg syscall (linux-s390x), const TIOCGSID = 21545
 ++pkg syscall (linux-s390x), const TIOCGSID ideal-int
 ++pkg syscall (linux-s390x), const TIOCGSOFTCAR = 21529
 ++pkg syscall (linux-s390x), const TIOCGSOFTCAR ideal-int
 ++pkg syscall (linux-s390x), const TIOCGWINSZ = 21523
 ++pkg syscall (linux-s390x), const TIOCGWINSZ ideal-int
 ++pkg syscall (linux-s390x), const TIOCINQ = 21531
 ++pkg syscall (linux-s390x), const TIOCINQ ideal-int
 ++pkg syscall (linux-s390x), const TIOCLINUX = 21532
 ++pkg syscall (linux-s390x), const TIOCLINUX ideal-int
 ++pkg syscall (linux-s390x), const TIOCMBIC = 21527
 ++pkg syscall (linux-s390x), const TIOCMBIC ideal-int
 ++pkg syscall (linux-s390x), const TIOCMBIS = 21526
 ++pkg syscall (linux-s390x), const TIOCMBIS ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_CAR = 64
 ++pkg syscall (linux-s390x), const TIOCM_CAR ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_CD = 64
 ++pkg syscall (linux-s390x), const TIOCM_CD ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_CTS = 32
 ++pkg syscall (linux-s390x), const TIOCM_CTS ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_DSR = 256
 ++pkg syscall (linux-s390x), const TIOCM_DSR ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_DTR = 2
 ++pkg syscall (linux-s390x), const TIOCM_DTR ideal-int
 ++pkg syscall (linux-s390x), const TIOCMGET = 21525
 ++pkg syscall (linux-s390x), const TIOCMGET ideal-int
 ++pkg syscall (linux-s390x), const TIOCMIWAIT = 21596
 ++pkg syscall (linux-s390x), const TIOCMIWAIT ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_LE = 1
 ++pkg syscall (linux-s390x), const TIOCM_LE ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_RI = 128
 ++pkg syscall (linux-s390x), const TIOCM_RI ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_RNG = 128
 ++pkg syscall (linux-s390x), const TIOCM_RNG ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_RTS = 4
 ++pkg syscall (linux-s390x), const TIOCM_RTS ideal-int
 ++pkg syscall (linux-s390x), const TIOCMSET = 21528
 ++pkg syscall (linux-s390x), const TIOCMSET ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_SR = 16
 ++pkg syscall (linux-s390x), const TIOCM_SR ideal-int
 ++pkg syscall (linux-s390x), const TIOCM_ST = 8
 ++pkg syscall (linux-s390x), const TIOCM_ST ideal-int
 ++pkg syscall (linux-s390x), const TIOCNOTTY = 21538
 ++pkg syscall (linux-s390x), const TIOCNOTTY ideal-int
 ++pkg syscall (linux-s390x), const TIOCNXCL = 21517
 ++pkg syscall (linux-s390x), const TIOCNXCL ideal-int
 ++pkg syscall (linux-s390x), const TIOCOUTQ = 21521
 ++pkg syscall (linux-s390x), const TIOCOUTQ ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT = 21536
 ++pkg syscall (linux-s390x), const TIOCPKT_DATA = 0
 ++pkg syscall (linux-s390x), const TIOCPKT_DATA ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_DOSTOP = 32
 ++pkg syscall (linux-s390x), const TIOCPKT_DOSTOP ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_FLUSHREAD = 1
 ++pkg syscall (linux-s390x), const TIOCPKT_FLUSHREAD ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_FLUSHWRITE = 2
 ++pkg syscall (linux-s390x), const TIOCPKT_FLUSHWRITE ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_IOCTL = 64
 ++pkg syscall (linux-s390x), const TIOCPKT_IOCTL ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_NOSTOP = 16
 ++pkg syscall (linux-s390x), const TIOCPKT_NOSTOP ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_START = 8
 ++pkg syscall (linux-s390x), const TIOCPKT_START ideal-int
 ++pkg syscall (linux-s390x), const TIOCPKT_STOP = 4
 ++pkg syscall (linux-s390x), const TIOCPKT_STOP ideal-int
 ++pkg syscall (linux-s390x), const TIOCSBRK = 21543
 ++pkg syscall (linux-s390x), const TIOCSBRK ideal-int
 ++pkg syscall (linux-s390x), const TIOCSCTTY = 21518
 ++pkg syscall (linux-s390x), const TIOCSCTTY ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERCONFIG = 21587
 ++pkg syscall (linux-s390x), const TIOCSERCONFIG ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERGETLSR = 21593
 ++pkg syscall (linux-s390x), const TIOCSERGETLSR ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERGETMULTI = 21594
 ++pkg syscall (linux-s390x), const TIOCSERGETMULTI ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERGSTRUCT = 21592
 ++pkg syscall (linux-s390x), const TIOCSERGSTRUCT ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERGWILD = 21588
 ++pkg syscall (linux-s390x), const TIOCSERGWILD ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERSETMULTI = 21595
 ++pkg syscall (linux-s390x), const TIOCSERSETMULTI ideal-int
 ++pkg syscall (linux-s390x), const TIOCSERSWILD = 21589
 ++pkg syscall (linux-s390x), const TIOCSERSWILD ideal-int
 ++pkg syscall (linux-s390x), const TIOCSER_TEMT = 1
 ++pkg syscall (linux-s390x), const TIOCSER_TEMT ideal-int
 ++pkg syscall (linux-s390x), const TIOCSETD = 21539
 ++pkg syscall (linux-s390x), const TIOCSETD ideal-int
 ++pkg syscall (linux-s390x), const TIOCSIG = 1074025526
 ++pkg syscall (linux-s390x), const TIOCSIG ideal-int
 ++pkg syscall (linux-s390x), const TIOCSLCKTRMIOS = 21591
 ++pkg syscall (linux-s390x), const TIOCSLCKTRMIOS ideal-int
 ++pkg syscall (linux-s390x), const TIOCSPGRP = 21520
 ++pkg syscall (linux-s390x), const TIOCSPGRP ideal-int
 ++pkg syscall (linux-s390x), const TIOCSPTLCK = 1074025521
 ++pkg syscall (linux-s390x), const TIOCSPTLCK ideal-int
 ++pkg syscall (linux-s390x), const TIOCSRS485 = 21551
 ++pkg syscall (linux-s390x), const TIOCSRS485 ideal-int
 ++pkg syscall (linux-s390x), const TIOCSSERIAL = 21535
 ++pkg syscall (linux-s390x), const TIOCSSERIAL ideal-int
 ++pkg syscall (linux-s390x), const TIOCSSOFTCAR = 21530
 ++pkg syscall (linux-s390x), const TIOCSSOFTCAR ideal-int
 ++pkg syscall (linux-s390x), const TIOCSTI = 21522
 ++pkg syscall (linux-s390x), const TIOCSTI ideal-int
 ++pkg syscall (linux-s390x), const TIOCSWINSZ = 21524
 ++pkg syscall (linux-s390x), const TIOCSWINSZ ideal-int
 ++pkg syscall (linux-s390x), const TIOCVHANGUP = 21559
 ++pkg syscall (linux-s390x), const TIOCVHANGUP ideal-int
 ++pkg syscall (linux-s390x), const TOSTOP = 256
 ++pkg syscall (linux-s390x), const TOSTOP ideal-int
 ++pkg syscall (linux-s390x), const TUNATTACHFILTER = 1074812117
 ++pkg syscall (linux-s390x), const TUNATTACHFILTER ideal-int
 ++pkg syscall (linux-s390x), const TUNDETACHFILTER = 1074812118
 ++pkg syscall (linux-s390x), const TUNDETACHFILTER ideal-int
 ++pkg syscall (linux-s390x), const TUNGETFEATURES = 2147767503
 ++pkg syscall (linux-s390x), const TUNGETFEATURES ideal-int
 ++pkg syscall (linux-s390x), const TUNGETIFF = 2147767506
 ++pkg syscall (linux-s390x), const TUNGETIFF ideal-int
 ++pkg syscall (linux-s390x), const TUNGETSNDBUF = 2147767507
 ++pkg syscall (linux-s390x), const TUNGETSNDBUF ideal-int
 ++pkg syscall (linux-s390x), const TUNGETVNETHDRSZ = 2147767511
 ++pkg syscall (linux-s390x), const TUNGETVNETHDRSZ ideal-int
 ++pkg syscall (linux-s390x), const TUNSETDEBUG = 1074025673
 ++pkg syscall (linux-s390x), const TUNSETDEBUG ideal-int
 ++pkg syscall (linux-s390x), const TUNSETGROUP = 1074025678
 ++pkg syscall (linux-s390x), const TUNSETGROUP ideal-int
 ++pkg syscall (linux-s390x), const TUNSETIFF = 1074025674
 ++pkg syscall (linux-s390x), const TUNSETIFF ideal-int
 ++pkg syscall (linux-s390x), const TUNSETLINK = 1074025677
 ++pkg syscall (linux-s390x), const TUNSETLINK ideal-int
 ++pkg syscall (linux-s390x), const TUNSETNOCSUM = 1074025672
 ++pkg syscall (linux-s390x), const TUNSETNOCSUM ideal-int
 ++pkg syscall (linux-s390x), const TUNSETOFFLOAD = 1074025680
 ++pkg syscall (linux-s390x), const TUNSETOFFLOAD ideal-int
 ++pkg syscall (linux-s390x), const TUNSETOWNER = 1074025676
 ++pkg syscall (linux-s390x), const TUNSETOWNER ideal-int
 ++pkg syscall (linux-s390x), const TUNSETPERSIST = 1074025675
 ++pkg syscall (linux-s390x), const TUNSETPERSIST ideal-int
 ++pkg syscall (linux-s390x), const TUNSETQUEUE = 1074025689
 ++pkg syscall (linux-s390x), const TUNSETQUEUE ideal-int
 ++pkg syscall (linux-s390x), const TUNSETSNDBUF = 1074025684
 ++pkg syscall (linux-s390x), const TUNSETSNDBUF ideal-int
 ++pkg syscall (linux-s390x), const TUNSETTXFILTER = 1074025681
 ++pkg syscall (linux-s390x), const TUNSETTXFILTER ideal-int
 ++pkg syscall (linux-s390x), const TUNSETVNETHDRSZ = 1074025688
 ++pkg syscall (linux-s390x), const TUNSETVNETHDRSZ ideal-int
 ++pkg syscall (linux-s390x), const VDISCARD = 13
 ++pkg syscall (linux-s390x), const VDISCARD ideal-int
 ++pkg syscall (linux-s390x), const VEOF = 4
 ++pkg syscall (linux-s390x), const VEOF ideal-int
 ++pkg syscall (linux-s390x), const VEOL = 11
 ++pkg syscall (linux-s390x), const VEOL2 = 16
 ++pkg syscall (linux-s390x), const VEOL2 ideal-int
 ++pkg syscall (linux-s390x), const VEOL ideal-int
 ++pkg syscall (linux-s390x), const VERASE = 2
 ++pkg syscall (linux-s390x), const VERASE ideal-int
 ++pkg syscall (linux-s390x), const VINTR = 0
 ++pkg syscall (linux-s390x), const VINTR ideal-int
 ++pkg syscall (linux-s390x), const VKILL = 3
 ++pkg syscall (linux-s390x), const VKILL ideal-int
 ++pkg syscall (linux-s390x), const VLNEXT = 15
 ++pkg syscall (linux-s390x), const VLNEXT ideal-int
 ++pkg syscall (linux-s390x), const VMIN = 6
 ++pkg syscall (linux-s390x), const VMIN ideal-int
 ++pkg syscall (linux-s390x), const VQUIT = 1
 ++pkg syscall (linux-s390x), const VQUIT ideal-int
 ++pkg syscall (linux-s390x), const VREPRINT = 12
 ++pkg syscall (linux-s390x), const VREPRINT ideal-int
 ++pkg syscall (linux-s390x), const VSTART = 8
 ++pkg syscall (linux-s390x), const VSTART ideal-int
 ++pkg syscall (linux-s390x), const VSTOP = 9
 ++pkg syscall (linux-s390x), const VSTOP ideal-int
 ++pkg syscall (linux-s390x), const VSUSP = 10
 ++pkg syscall (linux-s390x), const VSUSP ideal-int
 ++pkg syscall (linux-s390x), const VSWTC = 7
 ++pkg syscall (linux-s390x), const VSWTC ideal-int
 ++pkg syscall (linux-s390x), const VT0 = 0
 ++pkg syscall (linux-s390x), const VT0 ideal-int
 ++pkg syscall (linux-s390x), const VT1 = 16384
 ++pkg syscall (linux-s390x), const VT1 ideal-int
 ++pkg syscall (linux-s390x), const VTDLY = 16384
 ++pkg syscall (linux-s390x), const VTDLY ideal-int
 ++pkg syscall (linux-s390x), const VTIME = 5
 ++pkg syscall (linux-s390x), const VTIME ideal-int
 ++pkg syscall (linux-s390x), const VWERASE = 14
 ++pkg syscall (linux-s390x), const VWERASE ideal-int
 ++pkg syscall (linux-s390x), const WALL = 1073741824
 ++pkg syscall (linux-s390x), const WALL ideal-int
 ++pkg syscall (linux-s390x), const WCLONE = 2147483648
 ++pkg syscall (linux-s390x), const WCLONE ideal-int
 ++pkg syscall (linux-s390x), const WCONTINUED = 8
 ++pkg syscall (linux-s390x), const WCONTINUED ideal-int
 ++pkg syscall (linux-s390x), const WEXITED = 4
 ++pkg syscall (linux-s390x), const WEXITED ideal-int
 ++pkg syscall (linux-s390x), const WNOHANG = 1
 ++pkg syscall (linux-s390x), const WNOHANG ideal-int
 ++pkg syscall (linux-s390x), const WNOTHREAD = 536870912
 ++pkg syscall (linux-s390x), const WNOTHREAD ideal-int
 ++pkg syscall (linux-s390x), const WNOWAIT = 16777216
 ++pkg syscall (linux-s390x), const WNOWAIT ideal-int
 ++pkg syscall (linux-s390x), const WORDSIZE = 64
 ++pkg syscall (linux-s390x), const WORDSIZE ideal-int
 ++pkg syscall (linux-s390x), const WSTOPPED = 2
 ++pkg syscall (linux-s390x), const WSTOPPED ideal-int
 ++pkg syscall (linux-s390x), const WUNTRACED = 2
 ++pkg syscall (linux-s390x), const WUNTRACED ideal-int
 ++pkg syscall (linux-s390x), const XCASE = 4
 ++pkg syscall (linux-s390x), const XCASE ideal-int
 ++pkg syscall (linux-s390x), func Accept4(int, int) (int, Sockaddr, error)
 ++pkg syscall (linux-s390x), func Accept(int) (int, Sockaddr, error)
 ++pkg syscall (linux-s390x), func Access(string, uint32) error
 ++pkg syscall (linux-s390x), func Acct(string) error
 ++pkg syscall (linux-s390x), func Adjtimex(*Timex) (int, error)
 ++pkg syscall (linux-s390x), func AttachLsf(int, []SockFilter) error
 ++pkg syscall (linux-s390x), func Bind(int, Sockaddr) error
 ++pkg syscall (linux-s390x), func BindToDevice(int, string) error
 ++pkg syscall (linux-s390x), func Chroot(string) error
 ++pkg syscall (linux-s390x), func Close(int) error
 ++pkg syscall (linux-s390x), func CloseOnExec(int)
 ++pkg syscall (linux-s390x), func CmsgLen(int) int
 ++pkg syscall (linux-s390x), func CmsgSpace(int) int
 ++pkg syscall (linux-s390x), func Connect(int, Sockaddr) error
 ++pkg syscall (linux-s390x), func Creat(string, uint32) (int, error)
 ++pkg syscall (linux-s390x), func DetachLsf(int) error
 ++pkg syscall (linux-s390x), func Dup2(int, int) error
 ++pkg syscall (linux-s390x), func Dup3(int, int, int) error
 ++pkg syscall (linux-s390x), func Dup(int) (int, error)
 ++pkg syscall (linux-s390x), func EpollCreate1(int) (int, error)
 ++pkg syscall (linux-s390x), func EpollCreate(int) (int, error)
 ++pkg syscall (linux-s390x), func EpollCtl(int, int, int, *EpollEvent) error
 ++pkg syscall (linux-s390x), func EpollWait(int, []EpollEvent, int) (int, error)
 ++pkg syscall (linux-s390x), func Faccessat(int, string, uint32, int) error
 ++pkg syscall (linux-s390x), func Fallocate(int, uint32, int64, int64) error
 ++pkg syscall (linux-s390x), func Fchdir(int) error
 ++pkg syscall (linux-s390x), func Fchmodat(int, string, uint32, int) error
 ++pkg syscall (linux-s390x), func Fchmod(int, uint32) error
 ++pkg syscall (linux-s390x), func Fchownat(int, string, int, int, int) error
 ++pkg syscall (linux-s390x), func Fchown(int, int, int) error
 ++pkg syscall (linux-s390x), func FcntlFlock(uintptr, int, *Flock_t) error
 ++pkg syscall (linux-s390x), func Fdatasync(int) error
 ++pkg syscall (linux-s390x), func Flock(int, int) error
 ++pkg syscall (linux-s390x), func ForkExec(string, []string, *ProcAttr) (int, error)
 ++pkg syscall (linux-s390x), func Fstatfs(int, *Statfs_t) error
 ++pkg syscall (linux-s390x), func Fstat(int, *Stat_t) error
 ++pkg syscall (linux-s390x), func Fsync(int) error
 ++pkg syscall (linux-s390x), func Ftruncate(int, int64) error
 ++pkg syscall (linux-s390x), func Futimesat(int, string, []Timeval) error
 ++pkg syscall (linux-s390x), func Futimes(int, []Timeval) error
 ++pkg syscall (linux-s390x), func Getcwd([]uint8) (int, error)
 ++pkg syscall (linux-s390x), func Getdents(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func Getpeername(int) (Sockaddr, error)
 ++pkg syscall (linux-s390x), func Getpgid(int) (int, error)
 ++pkg syscall (linux-s390x), func Getpgrp() int
 ++pkg syscall (linux-s390x), func Getpriority(int, int) (int, error)
 ++pkg syscall (linux-s390x), func Getrlimit(int, *Rlimit) error
 ++pkg syscall (linux-s390x), func Getrusage(int, *Rusage) error
 ++pkg syscall (linux-s390x), func Getsockname(int) (Sockaddr, error)
 ++pkg syscall (linux-s390x), func GetsockoptICMPv6Filter(int, int, int) (*ICMPv6Filter, error)
 ++pkg syscall (linux-s390x), func GetsockoptInet4Addr(int, int, int) ([4]uint8, error)
 ++pkg syscall (linux-s390x), func GetsockoptInt(int, int, int) (int, error)
 ++pkg syscall (linux-s390x), func GetsockoptIPMreq(int, int, int) (*IPMreq, error)
 ++pkg syscall (linux-s390x), func GetsockoptIPMreqn(int, int, int) (*IPMreqn, error)
 ++pkg syscall (linux-s390x), func GetsockoptIPv6Mreq(int, int, int) (*IPv6Mreq, error)
 ++pkg syscall (linux-s390x), func GetsockoptIPv6MTUInfo(int, int, int) (*IPv6MTUInfo, error)
 ++pkg syscall (linux-s390x), func GetsockoptUcred(int, int, int) (*Ucred, error)
 ++pkg syscall (linux-s390x), func Gettid() int
 ++pkg syscall (linux-s390x), func Getxattr(string, string, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func InotifyAddWatch(int, string, uint32) (int, error)
 ++pkg syscall (linux-s390x), func InotifyInit1(int) (int, error)
 ++pkg syscall (linux-s390x), func InotifyInit() (int, error)
 ++pkg syscall (linux-s390x), func InotifyRmWatch(int, uint32) (int, error)
 ++pkg syscall (linux-s390x), func Kill(int, Signal) error
 ++pkg syscall (linux-s390x), func Klogctl(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func Listen(int, int) error
 ++pkg syscall (linux-s390x), func Listxattr(string, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func LsfJump(int, int, int, int) *SockFilter
 ++pkg syscall (linux-s390x), func LsfSocket(int, int) (int, error)
 ++pkg syscall (linux-s390x), func LsfStmt(int, int) *SockFilter
 ++pkg syscall (linux-s390x), func Lstat(string, *Stat_t) error
 ++pkg syscall (linux-s390x), func Madvise([]uint8, int) error
 ++pkg syscall (linux-s390x), func Mkdirat(int, string, uint32) error
 ++pkg syscall (linux-s390x), func Mkfifo(string, uint32) error
 ++pkg syscall (linux-s390x), func Mknodat(int, string, uint32, int) error
 ++pkg syscall (linux-s390x), func Mknod(string, uint32, int) error
 ++pkg syscall (linux-s390x), func Mlockall(int) error
 ++pkg syscall (linux-s390x), func Mlock([]uint8) error
 ++pkg syscall (linux-s390x), func Mmap(int, int64, int, int, int) ([]uint8, error)
 ++pkg syscall (linux-s390x), func Mount(string, string, string, uintptr, string) error
 ++pkg syscall (linux-s390x), func Mprotect([]uint8, int) error
 ++pkg syscall (linux-s390x), func Munlockall() error
 ++pkg syscall (linux-s390x), func Munlock([]uint8) error
 ++pkg syscall (linux-s390x), func Munmap([]uint8) error
 ++pkg syscall (linux-s390x), func Nanosleep(*Timespec, *Timespec) error
 ++pkg syscall (linux-s390x), func NetlinkRIB(int, int) ([]uint8, error)
 ++pkg syscall (linux-s390x), func Openat(int, string, int, uint32) (int, error)
 ++pkg syscall (linux-s390x), func Open(string, int, uint32) (int, error)
 ++pkg syscall (linux-s390x), func ParseDirent([]uint8, int, []string) (int, int, []string)
 ++pkg syscall (linux-s390x), func ParseNetlinkMessage([]uint8) ([]NetlinkMessage, error)
 ++pkg syscall (linux-s390x), func ParseNetlinkRouteAttr(*NetlinkMessage) ([]NetlinkRouteAttr, error)
 ++pkg syscall (linux-s390x), func ParseSocketControlMessage([]uint8) ([]SocketControlMessage, error)
 ++pkg syscall (linux-s390x), func ParseUnixCredentials(*SocketControlMessage) (*Ucred, error)
 ++pkg syscall (linux-s390x), func ParseUnixRights(*SocketControlMessage) ([]int, error)
 ++pkg syscall (linux-s390x), func Pause() error
 ++pkg syscall (linux-s390x), func Pipe2([]int, int) error
 ++pkg syscall (linux-s390x), func Pipe([]int) error
 ++pkg syscall (linux-s390x), func PivotRoot(string, string) error
 ++pkg syscall (linux-s390x), func Pread(int, []uint8, int64) (int, error)
 ++pkg syscall (linux-s390x), func PtraceAttach(int) error
 ++pkg syscall (linux-s390x), func PtraceCont(int, int) error
 ++pkg syscall (linux-s390x), func PtraceDetach(int) error
 ++pkg syscall (linux-s390x), func PtraceGetEventMsg(int) (uint, error)
 ++pkg syscall (linux-s390x), func PtraceGetRegs(int, *PtraceRegs) error
 ++pkg syscall (linux-s390x), func PtracePeekData(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func PtracePeekText(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func PtracePokeData(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func PtracePokeText(int, uintptr, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func PtraceSetOptions(int, int) error
 ++pkg syscall (linux-s390x), func PtraceSetRegs(int, *PtraceRegs) error
 ++pkg syscall (linux-s390x), func PtraceSingleStep(int) error
 ++pkg syscall (linux-s390x), func PtraceSyscall(int, int) error
 ++pkg syscall (linux-s390x), func Pwrite(int, []uint8, int64) (int, error)
 ++pkg syscall (linux-s390x), func RawSyscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x), func RawSyscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x), func ReadDirent(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func Read(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x), func Reboot(int) error
 ++pkg syscall (linux-s390x), func Recvfrom(int, []uint8, int) (int, Sockaddr, error)
 ++pkg syscall (linux-s390x), func Recvmsg(int, []uint8, []uint8, int) (int, int, int, Sockaddr, error)
 ++pkg syscall (linux-s390x), func Removexattr(string, string) error
 ++pkg syscall (linux-s390x), func Renameat(int, string, int, string) error
 ++pkg syscall (linux-s390x), func Seek(int, int64, int) (int64, error)
 ++pkg syscall (linux-s390x), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) (int, error)
 ++pkg syscall (linux-s390x), func Sendfile(int, int, *int64, int) (int, error)
 ++pkg syscall (linux-s390x), func Sendmsg(int, []uint8, []uint8, Sockaddr, int) error
 ++pkg syscall (linux-s390x), func SendmsgN(int, []uint8, []uint8, Sockaddr, int) (int, error)
 ++pkg syscall (linux-s390x), func Sendto(int, []uint8, int, Sockaddr) error
 ++pkg syscall (linux-s390x), func Setdomainname([]uint8) error
 ++pkg syscall (linux-s390x), func Setfsgid(int) error
 ++pkg syscall (linux-s390x), func Setfsuid(int) error
 ++pkg syscall (linux-s390x), func Setgid(int) error
 ++pkg syscall (linux-s390x), func Setgroups([]int) error
 ++pkg syscall (linux-s390x), func Sethostname([]uint8) error
 ++pkg syscall (linux-s390x), func SetLsfPromisc(string, bool) error
 ++pkg syscall (linux-s390x), func SetNonblock(int, bool) error
 ++pkg syscall (linux-s390x), func Setpgid(int, int) error
 ++pkg syscall (linux-s390x), func Setpriority(int, int, int) error
 ++pkg syscall (linux-s390x), func Setregid(int, int) error
 ++pkg syscall (linux-s390x), func Setresgid(int, int, int) error
 ++pkg syscall (linux-s390x), func Setresuid(int, int, int) error
 ++pkg syscall (linux-s390x), func Setreuid(int, int) error
 ++pkg syscall (linux-s390x), func Setrlimit(int, *Rlimit) error
 ++pkg syscall (linux-s390x), func Setsid() (int, error)
 ++pkg syscall (linux-s390x), func SetsockoptByte(int, int, int, uint8) error
 ++pkg syscall (linux-s390x), func SetsockoptICMPv6Filter(int, int, int, *ICMPv6Filter) error
 ++pkg syscall (linux-s390x), func SetsockoptInet4Addr(int, int, int, [4]uint8) error
 ++pkg syscall (linux-s390x), func SetsockoptInt(int, int, int, int) error
 ++pkg syscall (linux-s390x), func SetsockoptIPMreq(int, int, int, *IPMreq) error
 ++pkg syscall (linux-s390x), func SetsockoptIPMreqn(int, int, int, *IPMreqn) error
 ++pkg syscall (linux-s390x), func SetsockoptIPv6Mreq(int, int, int, *IPv6Mreq) error
 ++pkg syscall (linux-s390x), func SetsockoptLinger(int, int, int, *Linger) error
 ++pkg syscall (linux-s390x), func SetsockoptString(int, int, int, string) error
 ++pkg syscall (linux-s390x), func SetsockoptTimeval(int, int, int, *Timeval) error
 ++pkg syscall (linux-s390x), func Settimeofday(*Timeval) error
 ++pkg syscall (linux-s390x), func Setuid(int) error
 ++pkg syscall (linux-s390x), func Setxattr(string, string, []uint8, int) error
 ++pkg syscall (linux-s390x), func Shutdown(int, int) error
 ++pkg syscall (linux-s390x), func SlicePtrFromStrings([]string) ([]*uint8, error)
 ++pkg syscall (linux-s390x), func Socket(int, int, int) (int, error)
 ++pkg syscall (linux-s390x), func Socketpair(int, int, int) ([2]int, error)
 ++pkg syscall (linux-s390x), func Splice(int, *int64, int, *int64, int, int) (int64, error)
 ++pkg syscall (linux-s390x), func Statfs(string, *Statfs_t) error
 ++pkg syscall (linux-s390x), func Stat(string, *Stat_t) error
 ++pkg syscall (linux-s390x), func StringSlicePtr([]string) []*uint8
 ++pkg syscall (linux-s390x), func Sync()
 ++pkg syscall (linux-s390x), func SyncFileRange(int, int64, int64, int) error
 ++pkg syscall (linux-s390x), func Syscall6(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x), func Syscall(uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
 ++pkg syscall (linux-s390x), func Sysinfo(*Sysinfo_t) error
 ++pkg syscall (linux-s390x), func Tee(int, int, int, int) (int64, error)
 ++pkg syscall (linux-s390x), func Tgkill(int, int, Signal) error
 ++pkg syscall (linux-s390x), func Times(*Tms) (uintptr, error)
 ++pkg syscall (linux-s390x), func Time(*Time_t) (Time_t, error)
 ++pkg syscall (linux-s390x), func TimevalToNsec(Timeval) int64
 ++pkg syscall (linux-s390x), func Truncate(string, int64) error
 ++pkg syscall (linux-s390x), func Umask(int) int
 ++pkg syscall (linux-s390x), func Uname(*Utsname) error
 ++pkg syscall (linux-s390x), func UnixCredentials(*Ucred) []uint8
 ++pkg syscall (linux-s390x), func UnixRights(...int) []uint8
 ++pkg syscall (linux-s390x), func Unlinkat(int, string) error
 ++pkg syscall (linux-s390x), func Unmount(string, int) error
 ++pkg syscall (linux-s390x), func Unshare(int) error
 ++pkg syscall (linux-s390x), func Ustat(int, *Ustat_t) error
 ++pkg syscall (linux-s390x), func Utime(string, *Utimbuf) error
 ++pkg syscall (linux-s390x), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
 ++pkg syscall (linux-s390x), func Write(int, []uint8) (int, error)
 ++pkg syscall (linux-s390x), method (*Cmsghdr) SetLen(int)
 ++pkg syscall (linux-s390x), method (*Iovec) SetLen(int)
 ++pkg syscall (linux-s390x), method (*Msghdr) SetControllen(int)
 ++pkg syscall (linux-s390x), method (*PtraceRegs) PC() uint64
 ++pkg syscall (linux-s390x), method (*PtraceRegs) SetPC(uint64)
 ++pkg syscall (linux-s390x), type Cmsghdr struct
 ++pkg syscall (linux-s390x), type Cmsghdr struct, Len uint64
 ++pkg syscall (linux-s390x), type Cmsghdr struct, Level int32
 ++pkg syscall (linux-s390x), type Cmsghdr struct, Type int32
 ++pkg syscall (linux-s390x), type Cmsghdr struct, X__cmsg_data [0]uint8
 ++pkg syscall (linux-s390x), type Credential struct
 ++pkg syscall (linux-s390x), type Credential struct, Gid uint32
 ++pkg syscall (linux-s390x), type Credential struct, Groups []uint32
 ++pkg syscall (linux-s390x), type Credential struct, Uid uint32
 ++pkg syscall (linux-s390x), type Dirent struct
 ++pkg syscall (linux-s390x), type Dirent struct, Ino uint64
 ++pkg syscall (linux-s390x), type Dirent struct, Name [256]uint8
 ++pkg syscall (linux-s390x), type Dirent struct, Off int64
 ++pkg syscall (linux-s390x), type Dirent struct, Pad_cgo_0 [5]uint8
 ++pkg syscall (linux-s390x), type Dirent struct, Reclen uint16
 ++pkg syscall (linux-s390x), type Dirent struct, Type uint8
 ++pkg syscall (linux-s390x), type EpollEvent struct
 ++pkg syscall (linux-s390x), type EpollEvent struct, Events uint32
 ++pkg syscall (linux-s390x), type EpollEvent struct, Fd int32
 ++pkg syscall (linux-s390x), type EpollEvent struct, Pad int32
 ++pkg syscall (linux-s390x), type FdSet struct
 ++pkg syscall (linux-s390x), type FdSet struct, Bits [16]int64
 ++pkg syscall (linux-s390x), type Flock_t struct
 ++pkg syscall (linux-s390x), type Flock_t struct, Len int64
 ++pkg syscall (linux-s390x), type Flock_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type Flock_t struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x), type Flock_t struct, Pid int32
 ++pkg syscall (linux-s390x), type Flock_t struct, Start int64
 ++pkg syscall (linux-s390x), type Flock_t struct, Type int16
 ++pkg syscall (linux-s390x), type Flock_t struct, Whence int16
 ++pkg syscall (linux-s390x), type Fsid struct
 ++pkg syscall (linux-s390x), type Fsid struct, X__val [2]int32
 ++pkg syscall (linux-s390x), type ICMPv6Filter struct
 ++pkg syscall (linux-s390x), type ICMPv6Filter struct, Data [8]uint32
 ++pkg syscall (linux-s390x), type IfAddrmsg struct
 ++pkg syscall (linux-s390x), type IfAddrmsg struct, Family uint8
 ++pkg syscall (linux-s390x), type IfAddrmsg struct, Flags uint8
 ++pkg syscall (linux-s390x), type IfAddrmsg struct, Index uint32
 ++pkg syscall (linux-s390x), type IfAddrmsg struct, Prefixlen uint8
 ++pkg syscall (linux-s390x), type IfAddrmsg struct, Scope uint8
 ++pkg syscall (linux-s390x), type IfInfomsg struct
 ++pkg syscall (linux-s390x), type IfInfomsg struct, Change uint32
 ++pkg syscall (linux-s390x), type IfInfomsg struct, Family uint8
 ++pkg syscall (linux-s390x), type IfInfomsg struct, Flags uint32
 ++pkg syscall (linux-s390x), type IfInfomsg struct, Index int32
 ++pkg syscall (linux-s390x), type IfInfomsg struct, Type uint16
 ++pkg syscall (linux-s390x), type IfInfomsg struct, X__ifi_pad uint8
 ++pkg syscall (linux-s390x), type Inet4Pktinfo struct
 ++pkg syscall (linux-s390x), type Inet4Pktinfo struct, Addr [4]uint8
 ++pkg syscall (linux-s390x), type Inet4Pktinfo struct, Ifindex int32
 ++pkg syscall (linux-s390x), type Inet4Pktinfo struct, Spec_dst [4]uint8
 ++pkg syscall (linux-s390x), type Inet6Pktinfo struct
 ++pkg syscall (linux-s390x), type Inet6Pktinfo struct, Addr [16]uint8
 ++pkg syscall (linux-s390x), type Inet6Pktinfo struct, Ifindex uint32
 ++pkg syscall (linux-s390x), type InotifyEvent struct
 ++pkg syscall (linux-s390x), type InotifyEvent struct, Cookie uint32
 ++pkg syscall (linux-s390x), type InotifyEvent struct, Len uint32
 ++pkg syscall (linux-s390x), type InotifyEvent struct, Mask uint32
 ++pkg syscall (linux-s390x), type InotifyEvent struct, Name [0]uint8
 ++pkg syscall (linux-s390x), type InotifyEvent struct, Wd int32
 ++pkg syscall (linux-s390x), type Iovec struct
 ++pkg syscall (linux-s390x), type Iovec struct, Base *uint8
 ++pkg syscall (linux-s390x), type Iovec struct, Len uint64
 ++pkg syscall (linux-s390x), type IPMreqn struct
 ++pkg syscall (linux-s390x), type IPMreqn struct, Address [4]uint8
 ++pkg syscall (linux-s390x), type IPMreqn struct, Ifindex int32
 ++pkg syscall (linux-s390x), type IPMreqn struct, Multiaddr [4]uint8
 ++pkg syscall (linux-s390x), type IPv6MTUInfo struct
 ++pkg syscall (linux-s390x), type IPv6MTUInfo struct, Addr RawSockaddrInet6
 ++pkg syscall (linux-s390x), type IPv6MTUInfo struct, Mtu uint32
 ++pkg syscall (linux-s390x), type Msghdr struct
 ++pkg syscall (linux-s390x), type Msghdr struct, Controllen uint64
 ++pkg syscall (linux-s390x), type Msghdr struct, Control *uint8
 ++pkg syscall (linux-s390x), type Msghdr struct, Flags int32
 ++pkg syscall (linux-s390x), type Msghdr struct, Iov *Iovec
 ++pkg syscall (linux-s390x), type Msghdr struct, Iovlen uint64
 ++pkg syscall (linux-s390x), type Msghdr struct, Namelen uint32
 ++pkg syscall (linux-s390x), type Msghdr struct, Name *uint8
 ++pkg syscall (linux-s390x), type Msghdr struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type Msghdr struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x), type NetlinkMessage struct
 ++pkg syscall (linux-s390x), type NetlinkMessage struct, Data []uint8
 ++pkg syscall (linux-s390x), type NetlinkMessage struct, Header NlMsghdr
 ++pkg syscall (linux-s390x), type NetlinkRouteAttr struct
 ++pkg syscall (linux-s390x), type NetlinkRouteAttr struct, Attr RtAttr
 ++pkg syscall (linux-s390x), type NetlinkRouteAttr struct, Value []uint8
 ++pkg syscall (linux-s390x), type NetlinkRouteRequest struct
 ++pkg syscall (linux-s390x), type NetlinkRouteRequest struct, Data RtGenmsg
 ++pkg syscall (linux-s390x), type NetlinkRouteRequest struct, Header NlMsghdr
 ++pkg syscall (linux-s390x), type NlAttr struct
 ++pkg syscall (linux-s390x), type NlAttr struct, Len uint16
 ++pkg syscall (linux-s390x), type NlAttr struct, Type uint16
 ++pkg syscall (linux-s390x), type NlMsgerr struct
 ++pkg syscall (linux-s390x), type NlMsgerr struct, Error int32
 ++pkg syscall (linux-s390x), type NlMsgerr struct, Msg NlMsghdr
 ++pkg syscall (linux-s390x), type NlMsghdr struct
 ++pkg syscall (linux-s390x), type NlMsghdr struct, Flags uint16
 ++pkg syscall (linux-s390x), type NlMsghdr struct, Len uint32
 ++pkg syscall (linux-s390x), type NlMsghdr struct, Pid uint32
 ++pkg syscall (linux-s390x), type NlMsghdr struct, Seq uint32
 ++pkg syscall (linux-s390x), type NlMsghdr struct, Type uint16
 ++pkg syscall (linux-s390x), type PtraceRegsFp struct
 ++pkg syscall (linux-s390x), type PtraceRegsFp struct, Fpc uint32
 ++pkg syscall (linux-s390x), type PtraceRegsFp struct, Fprs [16]float64
 ++pkg syscall (linux-s390x), type PtraceRegsFp struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Access_id uint8
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Address uint64
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Control_regs [0]uint64
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Ending_addr uint64
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_0 [24]uint8
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_1 [8]uint8
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_2 [6]uint8
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Pad_cgo_3 [7]uint8
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Perc_atmid uint16
 ++pkg syscall (linux-s390x), type PtraceRegsPer struct, Starting_addr uint64
 ++pkg syscall (linux-s390x), type PtraceRegsPsw struct
 ++pkg syscall (linux-s390x), type PtraceRegsPsw struct, Addr uint64
 ++pkg syscall (linux-s390x), type PtraceRegsPsw struct, Mask uint64
 ++pkg syscall (linux-s390x), type PtraceRegs struct
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Acrs [16]uint32
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Fp_regs PtraceRegsFp
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Gprs [16]uint64
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Ieee_instruction_pointer uint64
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Orig_gpr2 uint64
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Per_info PtraceRegsPer
 ++pkg syscall (linux-s390x), type PtraceRegs struct, Psw PtraceRegsPsw
 ++pkg syscall (linux-s390x), type RawSockaddrAny struct, Pad [96]uint8
 ++pkg syscall (linux-s390x), type RawSockaddrInet4 struct, Family uint16
 ++pkg syscall (linux-s390x), type RawSockaddrInet4 struct, Zero [8]uint8
 ++pkg syscall (linux-s390x), type RawSockaddrInet6 struct, Family uint16
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Addr [8]uint8
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Family uint16
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Halen uint8
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Hatype uint16
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Ifindex int32
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Pkttype uint8
 ++pkg syscall (linux-s390x), type RawSockaddrLinklayer struct, Protocol uint16
 ++pkg syscall (linux-s390x), type RawSockaddrNetlink struct
 ++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Family uint16
 ++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Groups uint32
 ++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Pad uint16
 ++pkg syscall (linux-s390x), type RawSockaddrNetlink struct, Pid uint32
 ++pkg syscall (linux-s390x), type RawSockaddr struct, Data [14]uint8
 ++pkg syscall (linux-s390x), type RawSockaddr struct, Family uint16
 ++pkg syscall (linux-s390x), type RawSockaddrUnix struct
 ++pkg syscall (linux-s390x), type RawSockaddrUnix struct, Family uint16
 ++pkg syscall (linux-s390x), type RawSockaddrUnix struct, Path [108]int8
 ++pkg syscall (linux-s390x), type Rlimit struct
 ++pkg syscall (linux-s390x), type Rlimit struct, Cur uint64
 ++pkg syscall (linux-s390x), type Rlimit struct, Max uint64
 ++pkg syscall (linux-s390x), type RtAttr struct
 ++pkg syscall (linux-s390x), type RtAttr struct, Len uint16
 ++pkg syscall (linux-s390x), type RtAttr struct, Type uint16
 ++pkg syscall (linux-s390x), type RtGenmsg struct
 ++pkg syscall (linux-s390x), type RtGenmsg struct, Family uint8
 ++pkg syscall (linux-s390x), type RtMsg struct
 ++pkg syscall (linux-s390x), type RtMsg struct, Dst_len uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Family uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Flags uint32
 ++pkg syscall (linux-s390x), type RtMsg struct, Protocol uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Scope uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Src_len uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Table uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Tos uint8
 ++pkg syscall (linux-s390x), type RtMsg struct, Type uint8
 ++pkg syscall (linux-s390x), type RtNexthop struct
 ++pkg syscall (linux-s390x), type RtNexthop struct, Flags uint8
 ++pkg syscall (linux-s390x), type RtNexthop struct, Hops uint8
 ++pkg syscall (linux-s390x), type RtNexthop struct, Ifindex int32
 ++pkg syscall (linux-s390x), type RtNexthop struct, Len uint16
 ++pkg syscall (linux-s390x), type Rusage struct, Idrss int64
 ++pkg syscall (linux-s390x), type Rusage struct, Inblock int64
 ++pkg syscall (linux-s390x), type Rusage struct, Isrss int64
 ++pkg syscall (linux-s390x), type Rusage struct, Ixrss int64
 ++pkg syscall (linux-s390x), type Rusage struct, Majflt int64
 ++pkg syscall (linux-s390x), type Rusage struct, Maxrss int64
 ++pkg syscall (linux-s390x), type Rusage struct, Minflt int64
 ++pkg syscall (linux-s390x), type Rusage struct, Msgrcv int64
 ++pkg syscall (linux-s390x), type Rusage struct, Msgsnd int64
 ++pkg syscall (linux-s390x), type Rusage struct, Nivcsw int64
 ++pkg syscall (linux-s390x), type Rusage struct, Nsignals int64
 ++pkg syscall (linux-s390x), type Rusage struct, Nswap int64
 ++pkg syscall (linux-s390x), type Rusage struct, Nvcsw int64
 ++pkg syscall (linux-s390x), type Rusage struct, Oublock int64
 ++pkg syscall (linux-s390x), type Rusage struct, Stime Timeval
 ++pkg syscall (linux-s390x), type Rusage struct, Utime Timeval
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Addr [8]uint8
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Halen uint8
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Hatype uint16
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Ifindex int
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Pkttype uint8
 ++pkg syscall (linux-s390x), type SockaddrLinklayer struct, Protocol uint16
 ++pkg syscall (linux-s390x), type SockaddrNetlink struct
 ++pkg syscall (linux-s390x), type SockaddrNetlink struct, Family uint16
 ++pkg syscall (linux-s390x), type SockaddrNetlink struct, Groups uint32
 ++pkg syscall (linux-s390x), type SockaddrNetlink struct, Pad uint16
 ++pkg syscall (linux-s390x), type SockaddrNetlink struct, Pid uint32
 ++pkg syscall (linux-s390x), type SocketControlMessage struct
 ++pkg syscall (linux-s390x), type SocketControlMessage struct, Data []uint8
 ++pkg syscall (linux-s390x), type SocketControlMessage struct, Header Cmsghdr
 ++pkg syscall (linux-s390x), type SockFilter struct
 ++pkg syscall (linux-s390x), type SockFilter struct, Code uint16
 ++pkg syscall (linux-s390x), type SockFilter struct, Jf uint8
 ++pkg syscall (linux-s390x), type SockFilter struct, Jt uint8
 ++pkg syscall (linux-s390x), type SockFilter struct, K uint32
 ++pkg syscall (linux-s390x), type SockFprog struct
 ++pkg syscall (linux-s390x), type SockFprog struct, Filter *SockFilter
 ++pkg syscall (linux-s390x), type SockFprog struct, Len uint16
 ++pkg syscall (linux-s390x), type SockFprog struct, Pad_cgo_0 [6]uint8
 ++pkg syscall (linux-s390x), type Statfs_t struct
 ++pkg syscall (linux-s390x), type Statfs_t struct, Bavail uint64
 ++pkg syscall (linux-s390x), type Statfs_t struct, Bfree uint64
 ++pkg syscall (linux-s390x), type Statfs_t struct, Blocks uint64
 ++pkg syscall (linux-s390x), type Statfs_t struct, Bsize uint32
 ++pkg syscall (linux-s390x), type Statfs_t struct, Ffree uint64
 ++pkg syscall (linux-s390x), type Statfs_t struct, Files uint64
 ++pkg syscall (linux-s390x), type Statfs_t struct, Flags uint32
 ++pkg syscall (linux-s390x), type Statfs_t struct, Frsize uint32
 ++pkg syscall (linux-s390x), type Statfs_t struct, Fsid Fsid
 ++pkg syscall (linux-s390x), type Statfs_t struct, Namelen uint32
 ++pkg syscall (linux-s390x), type Statfs_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type Statfs_t struct, Spare [4]uint32
 ++pkg syscall (linux-s390x), type Statfs_t struct, Type uint32
 ++pkg syscall (linux-s390x), type Stat_t struct
 ++pkg syscall (linux-s390x), type Stat_t struct, Atim Timespec
 ++pkg syscall (linux-s390x), type Stat_t struct, Blksize int64
 ++pkg syscall (linux-s390x), type Stat_t struct, Blocks int64
 ++pkg syscall (linux-s390x), type Stat_t struct, Ctim Timespec
 ++pkg syscall (linux-s390x), type Stat_t struct, Dev uint64
 ++pkg syscall (linux-s390x), type Stat_t struct, Gid uint32
 ++pkg syscall (linux-s390x), type Stat_t struct, Ino uint64
 ++pkg syscall (linux-s390x), type Stat_t struct, Mode uint32
 ++pkg syscall (linux-s390x), type Stat_t struct, Mtim Timespec
 ++pkg syscall (linux-s390x), type Stat_t struct, Nlink uint64
 ++pkg syscall (linux-s390x), type Stat_t struct, Pad0 int32
 ++pkg syscall (linux-s390x), type Stat_t struct, Rdev uint64
 ++pkg syscall (linux-s390x), type Stat_t struct, Size int64
 ++pkg syscall (linux-s390x), type Stat_t struct, Uid uint32
 ++pkg syscall (linux-s390x), type Stat_t struct, X__unused [3]int64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Bufferram uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Freehigh uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Freeram uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Freeswap uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Loads [3]uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Pad uint16
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Procs uint16
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Sharedram uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Totalhigh uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Totalram uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Totalswap uint64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Unit uint32
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, Uptime int64
 ++pkg syscall (linux-s390x), type Sysinfo_t struct, X_f [0]uint8
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Chroot string
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Cloneflags uintptr
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Credential *Credential
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Ctty int
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Foreground bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, GidMappingsEnableSetgroups bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, GidMappings []SysProcIDMap
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Noctty bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Pdeathsig Signal
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Pgid int
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Ptrace bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Setctty bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Setpgid bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, Setsid bool
 ++pkg syscall (linux-s390x), type SysProcAttr struct, UidMappings []SysProcIDMap
 ++pkg syscall (linux-s390x), type SysProcIDMap struct
 ++pkg syscall (linux-s390x), type SysProcIDMap struct, ContainerID int
 ++pkg syscall (linux-s390x), type SysProcIDMap struct, HostID int
 ++pkg syscall (linux-s390x), type SysProcIDMap struct, Size int
 ++pkg syscall (linux-s390x), type TCPInfo struct
 ++pkg syscall (linux-s390x), type TCPInfo struct, Advmss uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Ato uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Backoff uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Ca_state uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Fackets uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Last_ack_recv uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Last_ack_sent uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Last_data_recv uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Last_data_sent uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Lost uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Options uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Pad_cgo_0 [2]uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Pmtu uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Probes uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_mss uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_rtt uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_space uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rcv_ssthresh uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Reordering uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Retransmits uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Retrans uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rto uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rtt uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Rttvar uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Sacked uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Snd_cwnd uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Snd_mss uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Snd_ssthresh uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, State uint8
 ++pkg syscall (linux-s390x), type TCPInfo struct, Total_retrans uint32
 ++pkg syscall (linux-s390x), type TCPInfo struct, Unacked uint32
 ++pkg syscall (linux-s390x), type Termios struct
 ++pkg syscall (linux-s390x), type Termios struct, Cc [32]uint8
 ++pkg syscall (linux-s390x), type Termios struct, Cflag uint32
 ++pkg syscall (linux-s390x), type Termios struct, Iflag uint32
 ++pkg syscall (linux-s390x), type Termios struct, Ispeed uint32
 ++pkg syscall (linux-s390x), type Termios struct, Lflag uint32
 ++pkg syscall (linux-s390x), type Termios struct, Line uint8
 ++pkg syscall (linux-s390x), type Termios struct, Oflag uint32
 ++pkg syscall (linux-s390x), type Termios struct, Ospeed uint32
 ++pkg syscall (linux-s390x), type Termios struct, Pad_cgo_0 [3]uint8
 ++pkg syscall (linux-s390x), type Timespec struct, Nsec int64
 ++pkg syscall (linux-s390x), type Timespec struct, Sec int64
 ++pkg syscall (linux-s390x), type Time_t int64
 ++pkg syscall (linux-s390x), type Timeval struct, Sec int64
 ++pkg syscall (linux-s390x), type Timeval struct, Usec int64
 ++pkg syscall (linux-s390x), type Timex struct
 ++pkg syscall (linux-s390x), type Timex struct, Calcnt int64
 ++pkg syscall (linux-s390x), type Timex struct, Constant int64
 ++pkg syscall (linux-s390x), type Timex struct, Errcnt int64
 ++pkg syscall (linux-s390x), type Timex struct, Esterror int64
 ++pkg syscall (linux-s390x), type Timex struct, Freq int64
 ++pkg syscall (linux-s390x), type Timex struct, Jitcnt int64
 ++pkg syscall (linux-s390x), type Timex struct, Jitter int64
 ++pkg syscall (linux-s390x), type Timex struct, Maxerror int64
 ++pkg syscall (linux-s390x), type Timex struct, Modes uint32
 ++pkg syscall (linux-s390x), type Timex struct, Offset int64
 ++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_2 [4]uint8
 ++pkg syscall (linux-s390x), type Timex struct, Pad_cgo_3 [44]uint8
 ++pkg syscall (linux-s390x), type Timex struct, Ppsfreq int64
 ++pkg syscall (linux-s390x), type Timex struct, Precision int64
 ++pkg syscall (linux-s390x), type Timex struct, Shift int32
 ++pkg syscall (linux-s390x), type Timex struct, Stabil int64
 ++pkg syscall (linux-s390x), type Timex struct, Status int32
 ++pkg syscall (linux-s390x), type Timex struct, Stbcnt int64
 ++pkg syscall (linux-s390x), type Timex struct, Tai int32
 ++pkg syscall (linux-s390x), type Timex struct, Tick int64
 ++pkg syscall (linux-s390x), type Timex struct, Time Timeval
 ++pkg syscall (linux-s390x), type Timex struct, Tolerance int64
 ++pkg syscall (linux-s390x), type Tms struct
 ++pkg syscall (linux-s390x), type Tms struct, Cstime int64
 ++pkg syscall (linux-s390x), type Tms struct, Cutime int64
 ++pkg syscall (linux-s390x), type Tms struct, Stime int64
 ++pkg syscall (linux-s390x), type Tms struct, Utime int64
 ++pkg syscall (linux-s390x), type Ucred struct
 ++pkg syscall (linux-s390x), type Ucred struct, Gid uint32
 ++pkg syscall (linux-s390x), type Ucred struct, Pid int32
 ++pkg syscall (linux-s390x), type Ucred struct, Uid uint32
 ++pkg syscall (linux-s390x), type Ustat_t struct
 ++pkg syscall (linux-s390x), type Ustat_t struct, Fname [6]uint8
 ++pkg syscall (linux-s390x), type Ustat_t struct, Fpack [6]uint8
 ++pkg syscall (linux-s390x), type Ustat_t struct, Pad_cgo_0 [4]uint8
 ++pkg syscall (linux-s390x), type Ustat_t struct, Pad_cgo_1 [4]uint8
 ++pkg syscall (linux-s390x), type Ustat_t struct, Tfree int32
 ++pkg syscall (linux-s390x), type Ustat_t struct, Tinode uint64
 ++pkg syscall (linux-s390x), type Utimbuf struct
 ++pkg syscall (linux-s390x), type Utimbuf struct, Actime int64
 ++pkg syscall (linux-s390x), type Utimbuf struct, Modtime int64
 ++pkg syscall (linux-s390x), type Utsname struct
 ++pkg syscall (linux-s390x), type Utsname struct, Domainname [65]uint8
 ++pkg syscall (linux-s390x), type Utsname struct, Machine [65]uint8
 ++pkg syscall (linux-s390x), type Utsname struct, Nodename [65]uint8
 ++pkg syscall (linux-s390x), type Utsname struct, Release [65]uint8
 ++pkg syscall (linux-s390x), type Utsname struct, Sysname [65]uint8
 ++pkg syscall (linux-s390x), type Utsname struct, Version [65]uint8
 ++pkg syscall (linux-s390x), type WaitStatus uint32
 ++pkg syscall (linux-s390x), var Stderr int
 ++pkg syscall (linux-s390x), var Stdin int
 ++pkg syscall (linux-s390x), var Stdout int
 +diff --git a/misc/cgo/test/issue9400/asm_s390x.s b/misc/cgo/test/issue9400/asm_s390x.s
 +new file mode 100644
 +index 0000000..ffe260a
 +--- /dev/null
 ++++ b/misc/cgo/test/issue9400/asm_s390x.s
 +@@ -0,0 +1,31 @@
 ++// 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
 ++	// TODO(mundaym): Code generator should support ADD $(1024 * 8), R15
 ++	MOVD	$(1024 * 8), R4
 ++	ADD	R4, R15
 ++
 ++	// Ask signaller to setgid
 ++	// TODO(mundaym): Code generator should support MOVW $1, ·Baton(SB)
 ++	MOVD	$·Baton(SB), R5
 ++	MOVW	$1, R6
 ++	MOVW	R6, 0(R5)
 ++
 ++	// Wait for setgid completion
 ++loop:
 ++	SYNC
 ++	MOVW	·Baton(SB), R3
 ++	CMP	R3, $0
 ++	BNE	loop
 ++
 ++	// Restore stack
 ++	SUB	R4, R15
 ++	RET
 +diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go
 +index 8b20d12..373e71e 100644
 +--- a/src/cmd/api/goapi.go
 ++++ b/src/cmd/api/goapi.go
 +@@ -46,6 +46,8 @@ var contexts = []*build.Context{
 + 	{GOOS: "linux", GOARCH: "amd64"},
 + 	{GOOS: "linux", GOARCH: "arm", CgoEnabled: true},
 + 	{GOOS: "linux", GOARCH: "arm"},
 ++	{GOOS: "linux", GOARCH: "s390x", CgoEnabled: true},
 ++	{GOOS: "linux", GOARCH: "s390x"},
 + 	{GOOS: "darwin", GOARCH: "386", CgoEnabled: true},
 + 	{GOOS: "darwin", GOARCH: "386"},
 + 	{GOOS: "darwin", GOARCH: "amd64", CgoEnabled: true},
 +diff --git a/src/cmd/asm/internal/arch/arch.go b/src/cmd/asm/internal/arch/arch.go
 +index c14a13c..4cf5fb7 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,53 @@ func archMips64() *Arch {
 + 		IsJump:         jumpMIPS64,
 + 	}
 + }
 ++
 ++func archS390x() *Arch {
 ++	register := make(map[string]int16)
 ++	// Create maps for easy lookup of instruction names etc.
 ++	// Note that there is no list of names as there is for x86.
 ++	for i := s390x.REG_R0; i <= s390x.REG_R15; i++ {
 ++		register[obj.Rconv(i)] = int16(i)
 ++	}
 ++	for i := s390x.REG_F0; i <= s390x.REG_F15; i++ {
 ++		register[obj.Rconv(i)] = int16(i)
 ++	}
 ++	for i := s390x.REG_AR0; i <= s390x.REG_AR15; i++ {
 ++		register[obj.Rconv(i)] = int16(i)
 ++	}
 ++	register["LR"] = s390x.REG_LR
 ++	// Pseudo-registers.
 ++	register["SB"] = RSB
 ++	register["FP"] = RFP
 ++	register["PC"] = RPC
 ++	// Avoid unintentionally clobbering g using R13.
 ++	delete(register, "R13")
 ++	register["g"] = s390x.REG_R13
 ++	registerPrefix := map[string]bool{
 ++		"AR": true,
 ++		"F":  true,
 ++		"R":  true,
 ++	}
 ++
 ++	instructions := make(map[string]int)
 ++	for i, s := range obj.Anames {
 ++		instructions[s] = i
 ++	}
 ++	for i, s := range s390x.Anames {
 ++		if i >= obj.A_ARCHSPECIFIC {
 ++			instructions[s] = i + obj.ABaseS390X
 ++		}
 ++	}
 ++	// Annoying aliases.
 ++	instructions["BR"] = s390x.ABR
 ++	instructions["BL"] = s390x.ABL
 ++
 ++	return &Arch{
 ++		LinkArch:       &s390x.Links390x,
 ++		Instructions:   instructions,
 ++		Register:       register,
 ++		RegisterPrefix: registerPrefix,
 ++		RegisterNumber: s390xRegisterNumber,
 ++		IsJump:         jumpS390x,
 ++	}
 ++}
 +diff --git a/src/cmd/asm/internal/arch/s390x.go b/src/cmd/asm/internal/arch/s390x.go
 +new file mode 100644
 +index 0000000..62a8101
 +--- /dev/null
 ++++ b/src/cmd/asm/internal/arch/s390x.go
 +@@ -0,0 +1,116 @@
 ++// 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
 ++}
 ++
 ++// IsS390xStorageAndStorage reports whether the op (as defined by an s390x.A* constant) refers
 ++// to an storage-and-storage format instruction such as mvc, clc, xc, oc or nc.
 ++func IsS390xStorageAndStorage(op int) bool {
 ++	switch op {
 ++	case s390x.AMVC, s390x.ACLC, s390x.AXC, s390x.AOC, s390x.ANC:
 ++		return true
 ++	}
 ++	return false
 ++}
 ++
 ++func s390xRegisterNumber(name string, n int16) (int16, bool) {
 ++	switch name {
 ++	case "AR":
 ++		if 0 <= n && n <= 15 {
 ++			return s390x.REG_AR0 + n, true
 ++		}
 ++	case "F":
 ++		if 0 <= n && n <= 15 {
 ++			return s390x.REG_F0 + n, true
 ++		}
 ++	case "R":
 ++		if 0 <= n && n <= 15 {
 ++			return s390x.REG_R0 + n, true
 ++		}
 ++	}
 ++	return 0, false
 ++}
 +diff --git a/src/cmd/asm/internal/asm/asm.go b/src/cmd/asm/internal/asm/asm.go
 +index 9827d70..f67e8ee 100644
 +--- a/src/cmd/asm/internal/asm/asm.go
 ++++ b/src/cmd/asm/internal/asm/asm.go
 +@@ -381,6 +381,20 @@ func (p *Parser) asmJump(op int, cond string, a []obj.Addr) {
 + 			prog.Reg = p.getRegister(prog, op, &a[1])
 + 			break
 + 		}
 ++		if p.arch.Thechar == 'z' {
 ++			// 3-operand jumps.
 ++			target = &a[2]
 ++			prog.From = a[0]
 ++			if a[1].Reg != 0 {
 ++				// compare two regs; jump.
 ++				prog.Reg = p.getRegister(prog, op, &a[1])
 ++			} else {
 ++				// compare reg with imm; jump.
 ++				prog.From3 = newAddr(a[1])
 ++			}
 ++			break
 ++		}
 ++
 + 		fallthrough
 + 	default:
 + 		p.errorf("wrong number of arguments to %s instruction", obj.Aconv(op))
 +@@ -593,6 +607,15 @@ func (p *Parser) asmInstruction(op int, cond string, a []obj.Addr) {
 + 				p.errorf("invalid addressing modes for %s instruction", obj.Aconv(op))
 + 				return
 + 			}
 ++		case 'z':
 ++			if arch.IsS390xStorageAndStorage(op) {
 ++				prog.From = a[1]
 ++				prog.From3 = newAddr(a[0])
 ++			} else {
 ++				prog.Reg = p.getRegister(prog, op, &a[1])
 ++				prog.From = a[0]
 ++			}
 ++			prog.To = a[2]
 + 		default:
 + 			p.errorf("TODO: implement three-operand instructions for this architecture")
 + 			return
 +diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
 +index 0906ceb..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..8855bac 100644
 +--- a/src/cmd/compile/internal/gc/cgen.go
 ++++ b/src/cmd/compile/internal/gc/cgen.go
 +@@ -252,7 +252,7 @@ func cgen_wb(n, res *Node, wb bool) {
 + 		return
 + 	}
 + 
 +-	if Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
 ++	if Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' || Ctxt.Arch.Thechar == 'z' {
 + 		// if both are addressable, move
 + 		if n.Addable {
 + 			if n.Op == OREGISTER || res.Op == OREGISTER {
 +@@ -752,14 +752,14 @@ abop: // asymmetric binary
 + 		Regalloc(&n1, nl.Type, res)
 + 		Cgen(nl, &n1)
 + 
 +-		if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' { // TODO(rsc): Check opcode for arm
 ++		if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' { // TODO(rsc): Check opcode for arm
 + 			n2 = *nr
 + 		} else {
 + 			Regalloc(&n2, nr.Type, nil)
 + 			Cgen(nr, &n2)
 + 		}
 + 	} else {
 +-		if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' { // TODO(rsc): Check opcode for arm
 ++		if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' { // TODO(rsc): Check opcode for arm
 + 			n2 = *nr
 + 		} else {
 + 			Regalloc(&n2, nr.Type, res)
 +@@ -1832,7 +1832,7 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) {
 + 			// but they don't support direct generation of a bool value yet.
 + 			// We can fix that as we go.
 + 			switch Ctxt.Arch.Thechar {
 +-			case '0', '5', '7', '9':
 ++			case '0', '5', '7', '9', 'z':
 + 				Fatalf("genval 0g, 5g, 7g, 9g ONAMES not fully implemented")
 + 			}
 + 			Cgen(n, res)
 +@@ -1842,7 +1842,7 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) {
 + 			return
 + 		}
 + 
 +-		if n.Addable && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' {
 ++		if n.Addable && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '5' && Ctxt.Arch.Thechar != '7' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' {
 + 			// no need for a temporary
 + 			bgenNonZero(n, nil, wantTrue, likely, to)
 + 			return
 +@@ -2026,7 +2026,7 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) {
 + 		Cgen(nl, &n1)
 + 		nl = &n1
 + 
 +-		if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '9' {
 ++		if Smallintconst(nr) && Ctxt.Arch.Thechar != '0' && Ctxt.Arch.Thechar != '9' && Ctxt.Arch.Thechar != 'z' {
 + 			Thearch.Gins(Thearch.Optoas(OCMP, nr.Type), nl, nr)
 + 			bins(nr.Type, res, op, likely, to)
 + 			return
 +@@ -2640,7 +2640,7 @@ func cgen_div(op Op, nl *Node, nr *Node, res *Node) {
 + 	// in peep and optoas in order to enable this.
 + 	// TODO(rsc): ppc64 needs to support the relevant instructions
 + 	// in peep and optoas in order to enable this.
 +-	if nr.Op != OLITERAL || Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
 ++	if nr.Op != OLITERAL || Ctxt.Arch.Thechar == '0' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' || Ctxt.Arch.Thechar == 'z' {
 + 		goto longdiv
 + 	}
 + 	w = int(nl.Type.Width * 8)
 +diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go
 +index 3146cae..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..cf48d0f 100644
++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..756f193
 +--- /dev/null
 ++++ b/src/cmd/compile/internal/s390x/ggen.go
 +@@ -0,0 +1,611 @@
 ++// 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) {
 ++	var p1 *obj.Prog
 ++	var p2 *obj.Prog
 ++	for p := (*obj.Prog)(firstp); p != nil; p = p.Link {
 ++		if gc.Debug_checknil != 0 && gc.Ctxt.Debugvlog != 0 {
 ++			fmt.Printf("expandchecks: %v\n", p)
 ++		}
 ++		if p.As != obj.ACHECKNIL {
 ++			continue
 ++		}
 ++		if gc.Debug_checknil != 0 && p.Lineno > 1 { // p->lineno==1 in generated wrappers
 ++			gc.Warnl(int(p.Lineno), "generated nil check")
 ++		}
 ++		if p.From.Type != obj.TYPE_REG {
 ++			gc.Fatalf("invalid nil check %v\n", p)
 ++		}
 ++
 ++		/*
 ++			// check is
 ++			//	TD $4, R0, arg (R0 is always zero)
 ++			// eqv. to:
 ++			// 	tdeq r0, arg
 ++			// NOTE: this needs special runtime support to make SIGTRAP recoverable.
 ++			reg = p->from.reg;
 ++			p->as = ATD;
 ++			p->from = p->to = p->from3 = zprog.from;
 ++			p->from.type = TYPE_CONST;
 ++			p->from.offset = 4;
 ++			p->from.reg = 0;
 ++			p->reg = REGZERO;
 ++			p->to.type = TYPE_REG;
 ++			p->to.reg = reg;
 ++		*/
 ++		// check is
 ++		//	CMP arg, $0
 ++		//	BNE 2(PC) [likely]
 ++		//	MOVD R0, 0(R0)
 ++		p1 = gc.Ctxt.NewProg()
 ++
 ++		p2 = gc.Ctxt.NewProg()
 ++		gc.Clearp(p1)
 ++		gc.Clearp(p2)
 ++		p1.Link = p2
 ++		p2.Link = p.Link
 ++		p.Link = p1
 ++		p1.Lineno = p.Lineno
 ++		p2.Lineno = p.Lineno
 ++		p1.Pc = 9999
 ++		p2.Pc = 9999
 ++		p.As = s390x.ACMP
 ++		p.To.Type = obj.TYPE_CONST
 ++		p.To.Offset = 0
 ++		p1.As = s390x.ABNE
 ++
 ++		//p1->from.type = TYPE_CONST;
 ++		//p1->from.offset = 1; // likely
 ++		p1.To.Type = obj.TYPE_BRANCH
 ++
 ++		p1.To.Val = p2.Link
 ++
 ++		// crash by write to memory address 0.
 ++		p2.As = s390x.AMOVD
 ++
 ++		p2.From.Type = obj.TYPE_REG
 ++		p2.From.Reg = s390x.REGZERO
 ++		p2.To.Type = obj.TYPE_MEM
 ++		p2.To.Reg = s390x.REGZERO
 ++		p2.To.Offset = 0
 ++	}
 ++}
 ++
 ++// res = runtime.getg()
 ++func getg(res *gc.Node) {
 ++	var n1 gc.Node
 ++	gc.Nodreg(&n1, res.Type, s390x.REGG)
 ++	gmove(&n1, res)
 ++}
 +diff --git a/src/cmd/compile/internal/s390x/gsubr.go b/src/cmd/compile/internal/s390x/gsubr.go
 +new file mode 100644
- index 0000000..a68864b
++index 0000000..00e2059
 +--- /dev/null
 ++++ b/src/cmd/compile/internal/s390x/gsubr.go
- @@ -0,0 +1,976 @@
++@@ -0,0 +1,972 @@
 ++// Derived from Inferno utils/6c/txt.c
 ++// http://code.google.com/p/inferno-os/source/browse/utils/6c/txt.c
 ++//
 ++//	Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
 ++//	Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
 ++//	Portions Copyright © 1997-1999 Vita Nuova Limited
 ++//	Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
 ++//	Portions Copyright © 2004,2006 Bruce Ellis
 ++//	Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
 ++//	Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
 ++//	Portions Copyright © 2009 The Go Authors.  All rights reserved.
 ++//
 ++// Permission is hereby granted, free of charge, to any person obtaining a copy
 ++// of this software and associated documentation files (the "Software"), to deal
 ++// in the Software without restriction, including without limitation the rights
 ++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 ++// copies of the Software, and to permit persons to whom the Software is
 ++// furnished to do so, subject to the following conditions:
 ++//
 ++// The above copyright notice and this permission notice shall be included in
 ++// all copies or substantial portions of the Software.
 ++//
 ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 ++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 ++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 ++// THE SOFTWARE.
 ++
 ++package s390x
 ++
 ++import (
 ++	"cmd/compile/internal/big"
 ++	"cmd/compile/internal/gc"
 ++	"cmd/internal/obj"
 ++	"cmd/internal/obj/s390x"
 ++	"fmt"
 ++)
 ++
 ++var resvd = []int{
 ++	s390x.REGZERO,
 ++	s390x.REGSP, // reserved for SP
 ++	s390x.REGG,
 ++	s390x.REGTMP,
 ++	s390x.REGTMP2,
- +	s390x.FREGCVI,
- +	s390x.FREGZERO,
- +	s390x.FREGONE,
- +	s390x.FREGTWO,
 ++}
 ++
 ++// generate
 ++//	as $c, n
 ++func ginscon(as int, c int64, n2 *gc.Node) {
 ++	var n1 gc.Node
 ++
 ++	gc.Nodconst(&n1, gc.Types[gc.TINT64], c)
 ++
 ++	if as != s390x.AMOVD && (c < -s390x.BIG || c > s390x.BIG) || n2.Op != gc.OREGISTER || as == s390x.AMULLD {
 ++		// cannot have more than 16-bit of immediate in ADD, etc.
 ++		// instead, MOV into register first.
 ++		var ntmp gc.Node
 ++		gc.Regalloc(&ntmp, gc.Types[gc.TINT64], nil)
 ++
 ++		rawgins(s390x.AMOVD, &n1, &ntmp)
 ++		rawgins(as, &ntmp, n2)
 ++		gc.Regfree(&ntmp)
 ++		return
 ++	}
 ++
 ++	rawgins(as, &n1, n2)
 ++}
 ++
 ++// generate
 ++//	as n, $c (CMP/CMPU)
 ++func ginscon2(as int, n2 *gc.Node, c int64) {
 ++	var n1 gc.Node
 ++
 ++	gc.Nodconst(&n1, gc.Types[gc.TINT64], c)
 ++
 ++	switch as {
 ++	default:
 ++		gc.Fatalf("ginscon2")
 ++
 ++	case s390x.ACMP:
 ++		if -s390x.BIG <= c && c <= s390x.BIG {
 ++			rawgins(as, n2, &n1)
 ++			return
 ++		}
 ++
 ++	case s390x.ACMPU:
 ++		if 0 <= c && c <= 2*s390x.BIG {
 ++			rawgins(as, n2, &n1)
 ++			return
 ++		}
 ++	}
 ++
 ++	// MOV n1 into register first
 ++	var ntmp gc.Node
 ++	gc.Regalloc(&ntmp, gc.Types[gc.TINT64], nil)
 ++
 ++	rawgins(s390x.AMOVD, &n1, &ntmp)
 ++	rawgins(as, n2, &ntmp)
 ++	gc.Regfree(&ntmp)
 ++}
 ++
 ++func ginscmp(op gc.Op, t *gc.Type, n1, n2 *gc.Node, likely int) *obj.Prog {
 ++	if gc.Isint[t.Etype] && n1.Op == gc.OLITERAL && n2.Op != gc.OLITERAL {
 ++		// Reverse comparison to place constant last.
 ++		op = gc.Brrev(op)
 ++		n1, n2 = n2, n1
 ++	}
 ++
 ++	var r1, r2, g1, g2 gc.Node
 ++	gc.Regalloc(&r1, t, n1)
 ++	gc.Regalloc(&g1, n1.Type, &r1)
 ++	gc.Cgen(n1, &g1)
 ++	gmove(&g1, &r1)
 ++	if gc.Isint[t.Etype] && gc.Isconst(n2, gc.CTINT) {
 ++		ginscon2(optoas(gc.OCMP, t), &r1, n2.Int())
 ++	} else {
 ++		gc.Regalloc(&r2, t, n2)
 ++		gc.Regalloc(&g2, n1.Type, &r2)
 ++		gc.Cgen(n2, &g2)
 ++		gmove(&g2, &r2)
 ++		rawgins(optoas(gc.OCMP, t), &r1, &r2)
 ++		gc.Regfree(&g2)
 ++		gc.Regfree(&r2)
 ++	}
 ++	gc.Regfree(&g1)
 ++	gc.Regfree(&r1)
 ++	return gc.Gbranch(optoas(op, t), nil, likely)
 ++}
 ++
 ++// set up nodes representing 2^63
 ++var (
 ++	bigi         gc.Node
 ++	bigf         gc.Node
 ++	bignodes_did bool
 ++)
 ++
 ++func bignodes() {
 ++	if bignodes_did {
 ++		return
 ++	}
 ++	bignodes_did = true
 ++
 ++	var i big.Int
 ++	i.SetInt64(1)
 ++	i.Lsh(&i, 63)
 ++
 ++	gc.Nodconst(&bigi, gc.Types[gc.TUINT64], 0)
 ++	bigi.SetBigInt(&i)
 ++
 ++	bigi.Convconst(&bigf, gc.Types[gc.TFLOAT64])
 ++}
 ++
 ++// gmvc tries to move f to t using a mvc instruction.
 ++// If successful it returns true, otherwise it returns false.
 ++func gmvc(f, t *gc.Node) bool {
 ++	ft := int(gc.Simsimtype(f.Type))
 ++	tt := int(gc.Simsimtype(t.Type))
 ++
 ++	if ft != tt {
 ++		return false
 ++	}
 ++
 ++	if f.Op != gc.OINDREG || t.Op != gc.OINDREG {
 ++		return false
 ++	}
 ++
 ++	if f.Xoffset < 0 || f.Xoffset >= 4096 {
 ++		return false
 ++	}
 ++
 ++	if t.Xoffset < 0 || t.Xoffset >= 4096 {
 ++		return false
 ++	}
 ++
 ++	var len int64
 ++	switch ft {
 ++	case gc.TUINT8, gc.TINT8, gc.TBOOL:
 ++		len = 1
 ++	case gc.TUINT16, gc.TINT16:
 ++		len = 2
 ++	case gc.TUINT32, gc.TINT32, gc.TFLOAT32:
 ++		len = 4
 ++	case gc.TUINT64, gc.TINT64, gc.TFLOAT64, gc.TPTR64:
 ++		len = 8
 ++	case gc.TUNSAFEPTR:
 ++		len = int64(gc.Widthptr)
 ++	default:
 ++		return false
 ++	}
 ++
 ++	p := gc.Prog(s390x.AMVC)
 ++	gc.Naddr(&p.From, f)
 ++	gc.Naddr(&p.To, t)
 ++	p.From3 = new(obj.Addr)
 ++	p.From3.Offset = len
 ++	p.From3.Type = obj.TYPE_CONST
 ++	return true
 ++}
 ++
 ++// generate move:
 ++//	t = f
 ++// hard part is conversions.
 ++func gmove(f *gc.Node, t *gc.Node) {
 ++	if gc.Debug['M'] != 0 {
 ++		fmt.Printf("gmove %v -> %v\n", gc.Nconv(f, obj.FmtLong), gc.Nconv(t, obj.FmtLong))
 ++	}
 ++
 ++	ft := int(gc.Simsimtype(f.Type))
 ++	tt := int(gc.Simsimtype(t.Type))
 ++	cvt := (*gc.Type)(t.Type)
 ++
 ++	if gc.Iscomplex[ft] || gc.Iscomplex[tt] {
 ++		gc.Complexmove(f, t)
 ++		return
 ++	}
 ++
 ++	// cannot have two memory operands
 ++	var a int
 ++	if gc.Ismem(f) && gc.Ismem(t) {
 ++		if gmvc(f, t) {
 ++			return
 ++		}
 ++		goto hard
 ++	}
 ++
 ++	// convert constant to desired type
 ++	if f.Op == gc.OLITERAL {
 ++		var con gc.Node
 ++		f.Convconst(&con, t.Type)
 ++		f = &con
 ++		ft = tt // so big switch will choose a simple mov
 ++
 ++		// some constants can't move directly to memory.
 ++		if gc.Ismem(t) {
 ++			// float constants come from memory.
 ++			if gc.Isfloat[tt] {
 ++				goto hard
 ++			}
 ++
 ++			// all immediates are 16-bit sign-extended
 ++			// unless moving into a register.
 ++			if gc.Isint[tt] {
 ++				if i := con.Int(); int64(int16(i)) != i {
 ++					goto hard
 ++				}
 ++			}
 ++		}
 ++	}
 ++
 ++	// a float-to-int or int-to-float conversion requires the source operand in a register
 ++	if gc.Ismem(f) && ((gc.Isfloat[ft] && gc.Isint[tt]) || (gc.Isint[ft] && gc.Isfloat[tt])) {
 ++		cvt = (*gc.Type)(f.Type)
 ++		goto hard
 ++	}
 ++
 ++	// a float32-to-float64 or float64-to-float32 conversion requires the source operand in a register
 ++	if gc.Ismem(f) && gc.Isfloat[ft] && gc.Isfloat[tt] && (ft != tt) {
 ++		cvt = (*gc.Type)(f.Type)
 ++		goto hard
 ++	}
 ++
 ++	// 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.AFRSP
 ++		goto rdst
 ++	}
 ++
 ++	gins(a, f, t)
 ++	return
 ++
 ++	// requires register destination
 ++rdst:
 ++	{
 ++		var r1 gc.Node
 ++		gc.Regalloc(&r1, t.Type, t)
 ++
 ++		gins(a, f, &r1)
 ++		gmove(&r1, t)
 ++		gc.Regfree(&r1)
 ++		return
 ++	}
 ++
 ++	// requires register intermediate
 ++hard:
 ++	var r1 gc.Node
 ++	gc.Regalloc(&r1, cvt, t)
 ++
 ++	gmove(f, &r1)
 ++	gmove(&r1, t)
 ++	gc.Regfree(&r1)
 ++	return
 ++}
 ++
 ++func intLiteral(n *gc.Node) (x int64, ok bool) {
 ++	switch {
 ++	case n == nil:
 ++		return
 ++	case gc.Isconst(n, gc.CTINT):
 ++		return n.Int(), true
 ++	case gc.Isconst(n, gc.CTBOOL):
 ++		return int64(obj.Bool2int(n.Bool())), true
 ++	}
 ++	return
 ++}
 ++
 ++// gins is called by the front end.
 ++// It synthesizes some multiple-instruction sequences
 ++// so the front end can stay simpler.
 ++func gins(as int, f, t *gc.Node) *obj.Prog {
 ++	if as >= obj.A_ARCHSPECIFIC {
 ++		if x, ok := intLiteral(f); ok {
 ++			ginscon(as, x, t)
 ++			return nil // caller must not use
 ++		}
 ++	}
 ++	if as == s390x.ACMP || as == s390x.ACMPU {
 ++		if x, ok := intLiteral(t); ok {
 ++			ginscon2(as, f, x)
 ++			return nil // caller must not use
 ++		}
 ++	}
 ++	return rawgins(as, f, t)
 ++}
 ++
 ++// generate one instruction:
 ++//	as f, t
 ++func rawgins(as int, f *gc.Node, t *gc.Node) *obj.Prog {
 ++	// TODO(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.AAND, s390x.AMULLD:
 ++		if p.From.Type == obj.TYPE_CONST {
 ++			gc.Debug['h'] = 1
 ++			gc.Fatalf("bad inst: %v", p)
 ++		}
 ++	case s390x.ACMP, s390x.ACMPU:
 ++		if p.From.Type == obj.TYPE_MEM || p.To.Type == obj.TYPE_MEM {
 ++			gc.Debug['h'] = 1
 ++			gc.Fatalf("bad inst: %v", p)
 ++		}
 ++	}
 ++
 ++	if gc.Debug['g'] != 0 {
 ++		fmt.Printf("%v\n", p)
 ++	}
 ++
 ++	w := int32(0)
 ++	switch as {
 ++	case s390x.AMOVB, s390x.AMOVBZ:
 ++		w = 1
 ++
 ++	case s390x.AMOVH, s390x.AMOVHZ:
 ++		w = 2
 ++
 ++	case s390x.AMOVW, s390x.AMOVWZ:
 ++		w = 4
 ++
 ++	case s390x.AMOVD:
 ++		if p.From.Type == obj.TYPE_CONST || p.From.Type == obj.TYPE_ADDR {
 ++			break
 ++		}
 ++		w = 8
 ++	}
 ++
 ++	if w != 0 && ((f != nil && p.From.Width < int64(w)) || (t != nil && p.To.Type != obj.TYPE_REG && p.To.Width > int64(w))) {
 ++		gc.Dump("f", f)
 ++		gc.Dump("t", t)
 ++		gc.Fatalf("bad width: %v (%d, %d)\n", p, p.From.Width, p.To.Width)
 ++	}
 ++
 ++	return p
 ++}
 ++
 ++// 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
 ++)
 ++
 ++func xgen(n *gc.Node, a *gc.Node, o int) bool {
 ++	// TODO(mundaym)
 ++	return -1 != 0
 ++}
 ++
 ++func sudoclean() {
 ++	return
 ++}
 ++
 ++// generate code to compute address of n,
 ++// a reference to a (perhaps nested) field inside
 ++// an array or struct.
 ++// return 0 on failure, 1 on success.
 ++// on success, leaves usable address in a.
 ++//
 ++// caller is responsible for calling sudoclean
 ++// after successful sudoaddable,
 ++// to release the register used for a.
 ++func sudoaddable(as int, n *gc.Node, a *obj.Addr) bool {
 ++	// TODO(mundaym)
 ++
 ++	*a = obj.Addr{}
 ++	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..8654823
++index 0000000..c49ebca
 +--- /dev/null
 ++++ b/src/cmd/compile/internal/s390x/peep.go
- @@ -0,0 +1,1407 @@
++@@ -0,0 +1,1419 @@
 ++// 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
 ++
 ++	var p *obj.Prog
 ++
 ++	// 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)
 ++				}
 ++			}
 ++		}
 ++	}
 ++
 ++	var r *gc.Flow
 ++	var t int
 ++loop1:
 ++	//	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++	//		gc.Dumpit("loop1", g.Start, 0)
 ++	//	}
 ++
 ++	t = 0
 ++	for r = g.Start; r != nil; r = r.Link {
 ++		p = r.Prog
 ++
 ++		// TODO(austin) Handle smaller moves.  arm and amd64
 ++		// distinguish between moves that moves that *must*
 ++		// sign/zero extend and moves that don't care so they
 ++		// can eliminate moves that don't care without
 ++		// breaking moves that do care.  This might let us
 ++		// simplify or remove the next peep loop, too.
 ++		if p.As == s390x.AMOVD || p.As == s390x.AFMOVD {
 ++			if regtyp(&p.To) {
 ++				// Try to eliminate reg->reg moves
 ++				if regtyp(&p.From) {
 ++					if p.From.Type == p.To.Type {
 ++						if copyprop(r) {
 ++							excise(r)
 ++							t++
 ++						} else if subprop(r) && copyprop(r) {
 ++							excise(r)
 ++							t++
 ++						}
 ++					}
 ++				}
 ++
 ++				// Convert uses to $0 to uses of R0 and
 ++				// propagate R0
 ++				if regzer(&p.From) != 0 {
 ++					if p.To.Type == obj.TYPE_REG {
 ++						p.From.Type = obj.TYPE_REG
 ++						p.From.Reg = s390x.REGZERO
 ++						if copyprop(r) {
 ++							excise(r)
 ++							t++
 ++						} else if subprop(r) && copyprop(r) {
 ++							excise(r)
 ++							t++
 ++						}
 ++					}
 ++				}
 ++			}
 ++		}
 ++	}
 ++
 ++	if t != 0 {
 ++		goto loop1
 ++	}
 ++
 ++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++		gc.Dumpit("pass7 copyprop", g.Start, 0)
 ++	}
 ++
 ++	/*
- +	 * For any kind of MOV in (AMOVD, AFMOVD, AMOVW, AMOVWZ, AMOVH, AMOVHZ, AMOVB, AMOVBZ)
+++	 * 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
+++		case s390x.AFMOVS,
 ++			s390x.AMOVW, s390x.AMOVWZ,
 ++			s390x.AMOVH, s390x.AMOVHZ,
 ++			s390x.AMOVB, s390x.AMOVBZ:
- +			if !regtyp(&p.From) || !regtyp(&p.To) {
+++
+++			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
 ++			var t int
 ++
 ++			if r1 == nil || r1 == r0 {
 ++				break
 ++			}
 ++			if gc.Uniqp(r1) == nil {
 ++				break
 ++			}
 ++			breakloop := false
 ++			p1 = r1.Prog
 ++
- +			if p1.As == p0.As && regtyp(&p1.From) && regtyp(&p1.To) && copyas(&p0.To, &p1.From) {
- +				if gc.Debug['v'] != 0 {
+++			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['v'] != 0 {
+++				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:
 ++				}
 ++
- +				t = copyu(p1, s0, nil)
- +				if gc.Debug['v'] != 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 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['v'] != 0 && gc.Debug['v'] != 0 {
+++	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)
 ++	 */
 ++	var p1 *obj.Prog
 ++	var r1 *gc.Flow
 ++	for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
 ++		p = r.Prog
 ++		switch p.As {
 ++		default:
 ++			continue
 ++
 ++		case s390x.AMOVH,
 ++			s390x.AMOVHZ,
 ++			s390x.AMOVB,
 ++			s390x.AMOVBZ,
 ++			s390x.AMOVW,
 ++			s390x.AMOVWZ:
 ++			if p.To.Type != obj.TYPE_REG {
 ++				continue
 ++			}
 ++		}
 ++
 ++		r1 = r.Link
 ++		if r1 == nil {
 ++			continue
 ++		}
 ++		p1 = r1.Prog
 ++		if p1.As != p.As {
 ++			continue
 ++		}
 ++		if p1.From.Type != obj.TYPE_REG || p1.From.Reg != p.To.Reg {
 ++			continue
 ++		}
 ++		if p1.To.Type != obj.TYPE_REG || p1.To.Reg != p.To.Reg {
 ++			continue
 ++		}
 ++		excise(r1)
 ++	}
 ++
 ++	if gc.Debug['P'] > 1 {
 ++		goto ret /* allow following code improvement to be suppressed */
 ++	}
 ++
 ++	if gc.Debug['p'] == 0 {
 ++		// load pipelining
 ++		// push any load from memory as early as possible
 ++		// to give it time to complete before use.
 ++		for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
 ++			p = r.Prog
 ++			switch p.As {
 ++			case s390x.AMOVB,
 ++				s390x.AMOVW,
 ++				s390x.AMOVD:
 ++
 ++				if regtyp(&p.To) && !regconsttyp(&p.From) {
 ++					pushback(r)
 ++				}
 ++			}
 ++		}
 ++		if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++			gc.Dumpit("pass8 push load as early as possible", g.Start, 0)
 ++		}
 ++
 ++	}
 ++
 ++	/*
 ++	 * look for OP a, b, c; MOV c, d; -> OP a, b, d;
 ++	 */
 ++
 ++	for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
 ++
 ++		if (gc.Debugmergeopmv != -1) && (mergeopmv_cnt >= gc.Debugmergeopmv) {
 ++			break
 ++		}
 ++
 ++		p = r.Prog
 ++
 ++		switch p.As {
 ++		case s390x.AADD,
 ++			s390x.AADDC,
 ++			s390x.AADDME,
 ++			s390x.AADDE,
 ++			s390x.AADDZE,
 ++			s390x.AAND,
 ++			s390x.AANDN,
 ++			s390x.ADIVW,
 ++			s390x.ADIVWU,
 ++			s390x.ADIVD,
 ++			s390x.ADIVDU,
 ++			s390x.AMULLW,
 ++			s390x.AMULHD,
 ++			s390x.AMULHDU,
 ++			s390x.AMULLD,
 ++			s390x.ANAND,
 ++			s390x.ANOR,
 ++			s390x.AOR,
 ++			s390x.AORN,
 ++			s390x.AREM,
 ++			s390x.AREMU,
 ++			s390x.AREMD,
 ++			s390x.AREMDU,
 ++			s390x.ARLWMI,
 ++			s390x.ARLWNM,
 ++			s390x.ASLW,
 ++			s390x.ASRAW,
 ++			s390x.ASRW,
 ++			s390x.ASLD,
 ++			s390x.ASRAD,
 ++			s390x.ASRD,
 ++			s390x.ASUB,
 ++			s390x.ASUBC,
 ++			s390x.ASUBME,
 ++			s390x.ASUBE,
 ++			s390x.ASUBZE,
 ++			s390x.AXOR:
 ++			if p.To.Type != obj.TYPE_REG {
 ++				continue
 ++			}
 ++			if p.Reg == 0 { // Only for 3 ops instruction
 ++				continue
 ++			}
 ++		default:
 ++			continue
 ++		}
 ++
 ++		r1 := r.Link
 ++		for ; r1 != nil; r1 = r1.Link {
 ++			if r1.Prog.As != obj.ANOP {
 ++				break
 ++			}
 ++		}
 ++
 ++		if r1 == nil {
 ++			continue
 ++		}
 ++
 ++		p1 := r1.Prog
 ++		switch p1.As {
 ++		case s390x.AMOVD,
 ++			s390x.AMOVW, s390x.AMOVWZ,
 ++			s390x.AMOVH, s390x.AMOVHZ,
 ++			s390x.AMOVB, s390x.AMOVBZ:
 ++			if p1.To.Type != obj.TYPE_REG {
 ++				continue
 ++			}
 ++
 ++		default:
 ++			continue
 ++		}
 ++		if p1.From.Type != obj.TYPE_REG || p1.From.Reg != p.To.Reg {
 ++			continue
 ++		}
 ++
 ++		if trymergeopmv(r1) {
 ++			p.To = p1.To
 ++			excise(r1)
 ++			mergeopmv_cnt += 1
 ++		}
 ++	}
 ++
 ++	if gc.Debug['v'] != 0 {
 ++		gc.Dumpit("Merge operation and move", g.Start, 0)
 ++	}
 ++
 ++	/*
 ++	 * look for CMP x, y; Branch -> Compare and branch
 ++	 */
 ++
 ++	if gc.Debugcnb == 0 {
 ++		goto ret
 ++	}
 ++
 ++	for r := (*gc.Flow)(g.Start); r != nil; r = r.Link {
 ++		if (gc.Debugcnb != -1) && (cnb_cnt >= gc.Debugcnb) {
 ++			break
 ++		}
 ++		p = r.Prog
 ++		r1 = gc.Uniqs(r)
 ++		if r1 == nil {
 ++			continue
 ++		}
 ++		p1 = r1.Prog
 ++
 ++		switch p.As {
 ++		case s390x.ACMP:
 ++			switch p1.As {
 ++			case s390x.ABCL, s390x.ABC:
 ++				continue
 ++			case s390x.ABEQ:
 ++				t = s390x.ACMPBEQ
 ++			case s390x.ABGE:
 ++				t = s390x.ACMPBGE
 ++			case s390x.ABGT:
 ++				t = s390x.ACMPBGT
 ++			case s390x.ABLE:
 ++				t = s390x.ACMPBLE
 ++			case s390x.ABLT:
 ++				t = s390x.ACMPBLT
 ++			case s390x.ABNE:
 ++				t = s390x.ACMPBNE
 ++			default:
 ++				continue
 ++			}
 ++
 ++		case s390x.ACMPU:
 ++			switch p1.As {
 ++			case s390x.ABCL, s390x.ABC:
 ++				continue
 ++			case s390x.ABEQ:
 ++				t = s390x.ACMPUBEQ
 ++			case s390x.ABGE:
 ++				t = s390x.ACMPUBGE
 ++			case s390x.ABGT:
 ++				t = s390x.ACMPUBGT
 ++			case s390x.ABLE:
 ++				t = s390x.ACMPUBLE
 ++			case s390x.ABLT:
 ++				t = s390x.ACMPUBLT
 ++			case s390x.ABNE:
 ++				t = s390x.ACMPUBNE
 ++			default:
 ++				continue
 ++			}
 ++
 ++		case s390x.ACMPW, s390x.ACMPWU:
 ++			continue
 ++
 ++		default:
 ++			continue
 ++		}
 ++
 ++		if gc.Debug['D'] != 0 {
 ++			fmt.Printf("cnb %v; %v -> ", p, p1)
 ++		}
 ++
 ++		if p1.To.Sym != nil {
 ++			continue
 ++		}
 ++
 ++		if p.To.Type == obj.TYPE_REG {
 ++			p1.As = int16(t)
 ++			p1.From = p.From
 ++			p1.Reg = p.To.Reg
 ++			p1.From3 = nil
 ++		} else if p.To.Type == obj.TYPE_CONST {
 ++			switch p.As {
 ++			case s390x.ACMP, s390x.ACMPW:
 ++				if (p.To.Offset < -(1 << 7)) || (p.To.Offset >= ((1 << 7) - 1)) {
 ++					continue
 ++				}
 ++			case s390x.ACMPU, s390x.ACMPWU:
 ++				if p.To.Offset >= (1 << 8) {
 ++					continue
 ++				}
 ++			default:
 ++			}
 ++			p1.As = int16(t)
 ++			p1.From = p.From
 ++			p1.Reg = 0
 ++			p1.From3 = new(obj.Addr)
 ++			*(p1.From3) = p.To
 ++		} else {
 ++			continue
 ++		}
 ++
 ++		if gc.Debug['D'] != 0 {
 ++			fmt.Printf("%v\n", p1)
 ++		}
 ++		cnb_cnt += 1
 ++		excise(r)
 ++	}
 ++
 ++	if gc.Debug['v'] != 0 {
 ++		gc.Dumpit("compare and branch", g.Start, 0)
 ++	}
 ++
 ++ret:
 ++	gc.Flowend(g)
 ++}
 ++
 ++func conprop(r0 *gc.Flow) {
 ++	var p *obj.Prog
 ++	var t int
 ++
 ++	p0 := (*obj.Prog)(r0.Prog)
 ++	v0 := (*obj.Addr)(&p0.To)
 ++	r := (*gc.Flow)(r0)
 ++
 ++loop:
 ++	r = gc.Uniqs(r)
 ++	if r == nil || r == r0 {
 ++		return
 ++	}
 ++	if gc.Uniqp(r) == nil {
 ++		return
 ++	}
 ++
 ++	p = r.Prog
 ++	t = copyu(p, v0, nil)
 ++	switch t {
 ++	case 0, // miss
 ++		1: // use
 ++		goto loop
 ++
 ++	case 2, // rar
 ++		4: // use and set
 ++		break
 ++
 ++	case 3: // set
 ++		if p.As == p0.As && 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)
 ++				goto loop
 ++			}
 ++		}
 ++	}
 ++}
 ++
 ++// is 'a' a register or constant?
 ++func regconsttyp(a *obj.Addr) bool {
 ++	if regtyp(a) {
 ++		return true
 ++	}
 ++	switch a.Type {
 ++	case obj.TYPE_CONST,
 ++		obj.TYPE_FCONST,
 ++		obj.TYPE_SCONST,
 ++		obj.TYPE_ADDR: // TODO(rsc): Not all TYPE_ADDRs are constants.
 ++		return true
 ++	}
 ++
 ++	return false
 ++}
 ++
 ++func pushback(r0 *gc.Flow) {
 ++	var r *gc.Flow
 ++	var p *obj.Prog
 ++
 ++	var b *gc.Flow
 ++	p0 := (*obj.Prog)(r0.Prog)
 ++	for r = gc.Uniqp(r0); r != nil && gc.Uniqs(r) != nil; r = gc.Uniqp(r) {
 ++		p = r.Prog
 ++		if p.As != obj.ANOP {
 ++			if !regconsttyp(&p.From) || !regtyp(&p.To) {
 ++				break
 ++			}
 ++			if copyu(p, &p0.To, nil) != 0 || copyu(p0, &p.To, nil) != 0 {
 ++				break
 ++			}
 ++		}
 ++
 ++		if p.As == obj.ACALL {
 ++			break
 ++		}
 ++		b = r
 ++	}
 ++
 ++	if b == nil {
 ++		if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++			fmt.Printf("no pushback: %v\n", r0.Prog)
 ++			if r != nil {
 ++				fmt.Printf("\t%v [%v]\n", r.Prog, gc.Uniqs(r) != nil)
 ++			}
 ++		}
 ++
 ++		return
 ++	}
 ++
 ++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++		fmt.Printf("pushback\n")
 ++		for r := (*gc.Flow)(b); ; r = r.Link {
 ++			fmt.Printf("\t%v\n", r.Prog)
 ++			if r == r0 {
 ++				break
 ++			}
 ++		}
 ++	}
 ++
 ++	t := obj.Prog(*r0.Prog)
 ++	for r = gc.Uniqp(r0); ; r = gc.Uniqp(r) {
 ++		p0 = r.Link.Prog
 ++		p = r.Prog
 ++		p0.As = p.As
 ++		p0.Lineno = p.Lineno
 ++		p0.From = p.From
 ++		p0.To = p.To
 ++		p0.From3 = p.From3
 ++		p0.Reg = p.Reg
 ++		p0.RegTo2 = p.RegTo2
 ++		if r == b {
 ++			break
 ++		}
 ++	}
 ++
 ++	p0 = r.Prog
 ++	p0.As = t.As
 ++	p0.Lineno = t.Lineno
 ++	p0.From = t.From
 ++	p0.To = t.To
 ++	p0.From3 = t.From3
 ++	p0.Reg = t.Reg
 ++	p0.RegTo2 = t.RegTo2
 ++
 ++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++		fmt.Printf("\tafter\n")
 ++		for r := (*gc.Flow)(b); ; r = r.Link {
 ++			fmt.Printf("\t%v\n", r.Prog)
 ++			if r == r0 {
 ++				break
 ++			}
 ++		}
 ++	}
 ++}
 ++
 ++func excise(r *gc.Flow) {
 ++	p := (*obj.Prog)(r.Prog)
 ++	if gc.Debug['P'] != 0 && gc.Debug['v'] != 0 {
 ++		fmt.Printf("%v ===delete===\n", p)
 ++	}
 ++	obj.Nopout(p)
 ++	gc.Ostats.Ndelmov++
 ++}
 ++
 ++/*
 ++ * regzer returns 1 if a's value is 0 (a is R0 or $0)
 ++ */
 ++func regzer(a *obj.Addr) int {
 ++	if a.Type == obj.TYPE_CONST || a.Type == obj.TYPE_ADDR {
 ++		if a.Sym == nil && a.Reg == 0 {
 ++			if a.Offset == 0 {
 ++				return 1
 ++			}
 ++		}
 ++	}
 ++	if a.Type == obj.TYPE_REG {
 ++		if a.Reg == s390x.REGZERO {
 ++			return 1
 ++		}
 ++	}
 ++	return 0
 ++}
 ++
 ++func regtyp(a *obj.Addr) bool {
 ++	// TODO(rsc): Floating point register exclusions?
 ++	return a.Type == obj.TYPE_REG && s390x.REG_R0 <= a.Reg && a.Reg <= s390x.REG_F15 && a.Reg != s390x.REGZERO
 ++}
 ++
 ++/*
 ++ * the idea is to substitute
 ++ * one register for another
 ++ * from one MOV to another
 ++ *	MOV	a, R1
 ++ *	ADD	b, R1	/ no use of R2
 ++ *	MOV	R1, R2
 ++ * would be converted to
 ++ *	MOV	a, R2
 ++ *	ADD	b, R2
 ++ *	MOV	R2, R1
 ++ * hopefully, then the former or latter MOV
 ++ * will be eliminated by copy propagation.
 ++ *
 ++ * r0 (the argument, not the register) is the MOV at the end of the
 ++ * above sequences.  This returns 1 if it modified any instructions.
 ++ */
 ++func subprop(r0 *gc.Flow) bool {
 ++	p := (*obj.Prog)(r0.Prog)
 ++	v1 := (*obj.Addr)(&p.From)
 ++	if !regtyp(v1) {
 ++		return false
 ++	}
 ++	v2 := (*obj.Addr)(&p.To)
 ++	if !regtyp(v2) {
 ++		return false
 ++	}
 ++	for r := gc.Uniqp(r0); r != nil; r = gc.Uniqp(r) {
 ++		if gc.Uniqs(r) == nil {
 ++			break
 ++		}
 ++		p = r.Prog
 ++		if p.As == obj.AVARDEF || p.As == obj.AVARKILL {
 ++			continue
 ++		}
 ++		if p.Info.Flags&gc.Call != 0 {
 ++			return false
 ++		}
 ++
 ++		if p.Info.Flags&(gc.RightRead|gc.RightWrite) == gc.RightWrite {
 ++			if p.To.Type == v1.Type {
 ++				if p.To.Reg == v1.Reg {
 ++					copysub(&p.To, v1, v2, 1)
 ++					if gc.Debug['P'] != 0 {
 ++						fmt.Printf("gotit: %v->%v\n%v", gc.Ctxt.Dconv(v1), gc.Ctxt.Dconv(v2), r.Prog)
 ++						if p.From.Type == v2.Type {
 ++							fmt.Printf(" excise")
 ++						}
 ++						fmt.Printf("\n")
 ++					}
 ++
 ++					for r = gc.Uniqs(r); r != r0; r = gc.Uniqs(r) {
 ++						p = r.Prog
 ++						copysub(&p.From, v1, v2, 1)
 ++						copysub1(p, v1, v2, 1)
 ++						copysub(&p.To, v1, v2, 1)
 ++						if gc.Debug['P'] != 0 {
 ++							fmt.Printf("%v\n", r.Prog)
 ++						}
 ++					}
 ++
 ++					t := int(int(v1.Reg))
 ++					v1.Reg = v2.Reg
 ++					v2.Reg = int16(t)
 ++					if gc.Debug['P'] != 0 {
 ++						fmt.Printf("%v last\n", r.Prog)
 ++					}
 ++					return true
 ++				}
 ++			}
 ++		}
 ++
 ++		if copyau(&p.From, v2) || copyau1(p, v2) || copyau(&p.To, v2) {
 ++			break
 ++		}
 ++		if copysub(&p.From, v1, v2, 0) != 0 || copysub1(p, v1, v2, 0) != 0 || copysub(&p.To, v1, v2, 0) != 0 {
 ++			break
 ++		}
 ++	}
 ++
 ++	return false
 ++}
 ++
 ++/*
 ++ * The idea is to remove redundant copies.
 ++ *	v1->v2	F=0
 ++ *	(use v2	s/v2/v1/)*
 ++ *	set v1	F=1
 ++ *	use v2	return fail (v1->v2 move must remain)
 ++ *	-----------------
 ++ *	v1->v2	F=0
 ++ *	(use v2	s/v2/v1/)*
 ++ *	set v1	F=1
 ++ *	set v2	return success (caller can remove v1->v2 move)
 ++ */
 ++func copyprop(r0 *gc.Flow) bool {
 ++	p := (*obj.Prog)(r0.Prog)
 ++	v1 := (*obj.Addr)(&p.From)
 ++	v2 := (*obj.Addr)(&p.To)
 ++	if copyas(v1, v2) {
 ++		if gc.Debug['P'] != 0 {
 ++			fmt.Printf("eliminating self-move: %v\n", r0.Prog)
 ++		}
 ++		return true
 ++	}
 ++
 ++	gactive++
 ++	if gc.Debug['P'] != 0 {
 ++		fmt.Printf("trying to eliminate %v->%v move from:\n%v\n", gc.Ctxt.Dconv(v1), gc.Ctxt.Dconv(v2), r0.Prog)
 ++	}
 ++	return copy1(v1, v2, r0.S1, 0)
 ++}
 ++
 ++// copy1 replaces uses of v2 with v1 starting at r and returns 1 if
 ++// all uses were rewritten.
 ++func copy1(v1 *obj.Addr, v2 *obj.Addr, r *gc.Flow, f int) bool {
 ++	if uint32(r.Active) == gactive {
 ++		if gc.Debug['P'] != 0 {
 ++			fmt.Printf("act set; return 1\n")
 ++		}
 ++		return true
 ++	}
 ++
 ++	r.Active = int32(gactive)
 ++	if gc.Debug['P'] != 0 {
 ++		fmt.Printf("copy1 replace %v with %v f=%d\n", gc.Ctxt.Dconv(v2), gc.Ctxt.Dconv(v1), f)
 ++	}
 ++	var t int
 ++	var p *obj.Prog
 ++	for ; r != nil; r = r.S1 {
 ++		p = r.Prog
 ++		if gc.Debug['P'] != 0 {
 ++			fmt.Printf("%v", p)
 ++		}
 ++		if f == 0 && gc.Uniqp(r) == nil {
 ++			// Multiple predecessors; conservatively
 ++			// assume v1 was set on other path
 ++			f = 1
 ++
 ++			if gc.Debug['P'] != 0 {
 ++				fmt.Printf("; merge; f=%d", f)
 ++			}
 ++		}
 ++
 ++		t = copyu(p, v2, nil)
 ++		switch t {
 ++		case 2: /* rar, can't split */
 ++			if gc.Debug['P'] != 0 {
 ++				fmt.Printf("; %v rar; return 0\n", gc.Ctxt.Dconv(v2))
 ++			}
 ++			return false
 ++
 ++		case 3: /* set */
 ++			if gc.Debug['P'] != 0 {
 ++				fmt.Printf("; %v set; return 1\n", gc.Ctxt.Dconv(v2))
 ++			}
 ++			return true
 ++
 ++		case 1, /* used, substitute */
 ++			4: /* use and set */
 ++			if f != 0 {
 ++				if gc.Debug['P'] == 0 {
 ++					return false
 ++				}
 ++				if t == 4 {
 ++					fmt.Printf("; %v used+set and f=%d; return 0\n", gc.Ctxt.Dconv(v2), f)
 ++				} else {
 ++					fmt.Printf("; %v used and f=%d; return 0\n", gc.Ctxt.Dconv(v2), f)
 ++				}
 ++				return false
 ++			}
 ++
 ++			if copyu(p, v2, v1) != 0 {
 ++				if gc.Debug['P'] != 0 {
 ++					fmt.Printf("; sub fail; return 0\n")
 ++				}
 ++				return false
 ++			}
 ++
 ++			if gc.Debug['P'] != 0 {
 ++				fmt.Printf("; sub %v->%v\n => %v", gc.Ctxt.Dconv(v2), gc.Ctxt.Dconv(v1), p)
 ++			}
 ++			if t == 4 {
 ++				if gc.Debug['P'] != 0 {
 ++					fmt.Printf("; %v used+set; return 1\n", gc.Ctxt.Dconv(v2))
 ++				}
 ++				return true
 ++			}
 ++		}
 ++
 ++		if f == 0 {
 ++			t = copyu(p, v1, nil)
 ++			if f == 0 && (t == 2 || t == 3 || t == 4) {
 ++				f = 1
 ++				if gc.Debug['P'] != 0 {
 ++					fmt.Printf("; %v set and !f; f=%d", gc.Ctxt.Dconv(v1), f)
 ++				}
 ++			}
 ++		}
 ++
 ++		if gc.Debug['P'] != 0 {
 ++			fmt.Printf("\n")
 ++		}
 ++		if r.S2 != nil {
 ++			if !copy1(v1, v2, r.S2, f) {
 ++				return false
 ++			}
 ++		}
 ++	}
 ++
 ++	return true
 ++}
 ++
 ++// If s==nil, copyu returns the set/use of v in p; otherwise, it
 ++// modifies p to replace reads of v with reads of s and returns 0 for
 ++// success or non-zero for failure.
 ++//
 ++// If s==nil, copy returns one of the following values:
 ++// 	1 if v only used
 ++//	2 if v is set and used in one address (read-alter-rewrite;
 ++// 	  can't substitute)
 ++//	3 if v is only set
 ++//	4 if v is set in one address and used in another (so addresses
 ++// 	  can be rewritten independently)
 ++//	0 otherwise (not touched)
 ++func copyu(p *obj.Prog, v *obj.Addr, s *obj.Addr) int {
 ++	if p.From3Type() != obj.TYPE_NONE && p.From3Type() != obj.TYPE_CONST {
 ++		// Currently we never generate a From3 with anything other than a constant in it.
 ++		fmt.Printf("copyu: From3 (%v) not implemented\n", gc.Ctxt.Dconv(p.From3))
 ++	}
 ++
 ++	switch p.As {
 ++	default:
 ++		fmt.Printf("copyu: can't find %v\n", obj.Aconv(int(p.As)))
 ++		return 2
 ++
 ++	case obj.ANOP, /* read p->from, write p->to */
 ++		s390x.AMOVH,
 ++		s390x.AMOVHZ,
 ++		s390x.AMOVB,
 ++		s390x.AMOVBZ,
 ++		s390x.AMOVW,
 ++		s390x.AMOVWZ,
 ++		s390x.AMOVD,
 ++		s390x.ANEG,
 ++		s390x.AADDME,
 ++		s390x.AADDZE,
 ++		s390x.ASUBME,
 ++		s390x.ASUBZE,
 ++		s390x.AFMOVS,
 ++		s390x.AFMOVD,
 ++		s390x.AFRSP,
 ++		s390x.AFNEG,
 ++		s390x.ALDEBR,
 ++		s390x.ACLFEBR,
 ++		s390x.ACLGEBR,
 ++		s390x.ACLFDBR,
 ++		s390x.ACLGDBR,
 ++		s390x.ACFEBRA,
 ++		s390x.ACGEBRA,
 ++		s390x.ACFDBRA,
 ++		s390x.ACGDBRA,
 ++		s390x.ACELFBR,
 ++		s390x.ACELGBR,
 ++		s390x.ACDLFBR,
 ++		s390x.ACDLGBR,
 ++		s390x.ACEFBRA,
 ++		s390x.ACEGBRA,
 ++		s390x.ACDFBRA,
 ++		s390x.ACDGBRA,
 ++		s390x.AFSQRT:
 ++
 ++		if s != nil {
 ++			if copysub(&p.From, v, s, 1) != 0 {
 ++				return 1
 ++			}
 ++
 ++			// Update only indirect uses of v in p->to
 ++			if !copyas(&p.To, v) {
 ++				if copysub(&p.To, v, s, 1) != 0 {
 ++					return 1
 ++				}
 ++			}
 ++			return 0
 ++		}
 ++
 ++		if copyas(&p.To, v) {
 ++			// Fix up implicit from
 ++			if p.From.Type == obj.TYPE_NONE {
 ++				p.From = p.To
 ++			}
 ++			if copyau(&p.From, v) {
 ++				return 4
 ++			}
 ++			return 3
 ++		}
 ++
 ++		if copyau(&p.From, v) {
 ++			return 1
 ++		}
 ++		if copyau(&p.To, v) {
 ++			// p->to only indirectly uses v
 ++			return 1
 ++		}
 ++
 ++		return 0
 ++
 ++	// read p->from, read p->reg, rar p->to
 ++	case s390x.ARLWMI:
 ++		if copyas(&p.To, v) {
 ++			return 2
 ++		}
 ++		fallthrough
 ++	// read p->from, read p->reg, write p->to
 ++	case s390x.AADD,
 ++		s390x.AADDC,
 ++		s390x.AADDE,
 ++		s390x.ASUB,
 ++		s390x.ASLW,
 ++		s390x.ASRW,
 ++		s390x.ASRAW,
 ++		s390x.ASLD,
 ++		s390x.ASRD,
 ++		s390x.ASRAD,
 ++		s390x.AOR,
 ++		s390x.AORN,
 ++		s390x.AAND,
 ++		s390x.AANDN,
 ++		s390x.ANAND,
 ++		s390x.ANOR,
 ++		s390x.AXOR,
 ++		s390x.AMULLW,
 ++		s390x.AMULLD,
 ++		s390x.ADIVW,
 ++		s390x.ADIVD,
 ++		s390x.ADIVWU,
 ++		s390x.ADIVDU,
 ++		s390x.AREM,
 ++		s390x.AREMU,
 ++		s390x.AREMD,
 ++		s390x.AREMDU,
 ++		s390x.ARLWNM,
 ++		s390x.AFADDS,
 ++		s390x.AFADD,
 ++		s390x.AFSUBS,
 ++		s390x.AFSUB,
 ++		s390x.AFMULS,
 ++		s390x.AFMUL,
 ++		s390x.AFDIVS,
 ++		s390x.AFDIV:
 ++		if s != nil {
 ++			if copysub(&p.From, v, s, 1) != 0 {
 ++				return 1
 ++			}
 ++			if copysub1(p, v, s, 1) != 0 {
 ++				return 1
 ++			}
 ++
 ++			// Update only indirect uses of v in p->to
 ++			if !copyas(&p.To, v) {
 ++				if copysub(&p.To, v, s, 1) != 0 {
 ++					return 1
 ++				}
 ++			}
 ++			return 0
 ++		}
 ++
 ++		if copyas(&p.To, v) {
 ++			if p.Reg == 0 {
 ++				// Fix up implicit reg (e.g., ADD
 ++				// R3,R4 -> ADD R3,R4,R4) so we can
 ++				// update reg and to separately.
 ++				p.Reg = p.To.Reg
 ++			}
 ++
 ++			if copyau(&p.From, v) {
 ++				return 4
 ++			}
 ++			if copyau1(p, v) {
 ++				return 4
 ++			}
 ++			return 3
 ++		}
 ++
 ++		if copyau(&p.From, v) {
 ++			return 1
 ++		}
 ++		if copyau1(p, v) {
 ++			return 1
 ++		}
 ++		if copyau(&p.To, v) {
 ++			return 1
 ++		}
 ++		return 0
 ++
 ++	case s390x.ABEQ,
 ++		s390x.ABGT,
 ++		s390x.ABGE,
 ++		s390x.ABLT,
 ++		s390x.ABLE,
 ++		s390x.ABNE,
 ++		s390x.ABVC,
 ++		s390x.ABVS:
 ++		return 0
 ++
 ++	case obj.ACHECKNIL, /* read p->from */
 ++		s390x.ACMP, /* read p->from, read p->to */
 ++		s390x.ACMPU,
 ++		s390x.ACMPW,
 ++		s390x.ACMPWU,
 ++		s390x.AFCMPO,
 ++		s390x.AFCMPU,
 ++		s390x.ACEBR,
 ++		s390x.AMVC,
 ++		s390x.ACLC,
 ++		s390x.AXC,
 ++		s390x.AOC,
 ++		s390x.ANC:
 ++		if s != nil {
 ++			if copysub(&p.From, v, s, 1) != 0 {
 ++				return 1
 ++			}
 ++			return copysub(&p.To, v, s, 1)
 ++		}
 ++
 ++		if copyau(&p.From, v) {
 ++			return 1
 ++		}
 ++		if copyau(&p.To, v) {
 ++			return 1
 ++		}
 ++		return 0
 ++
 ++	// go never generates a branch to a GPR
 ++	// read p->to
 ++	case s390x.ABR:
 ++		if s != nil {
 ++			if copysub(&p.To, v, s, 1) != 0 {
 ++				return 1
 ++			}
 ++			return 0
 ++		}
 ++
 ++		if copyau(&p.To, v) {
 ++			return 1
 ++		}
 ++		return 0
 ++
 ++	case obj.ARET:
 ++		if s != nil {
 ++			return 0
 ++		}
 ++
 ++		// All registers die at this point, so claim
 ++		// everything is set (and not used).
 ++		return 3
 ++
 ++	case s390x.ABL:
 ++		if v.Type == obj.TYPE_REG {
 ++			// TODO(rsc): REG_R0 and REG_F0 used to be
 ++			// (when register numbers started at 0) exregoffset and exfregoffset,
 ++			// which are unset entirely.
 ++			// It's strange that this handles R0 and F0 differently from the other
 ++			// registers. Possible failure to optimize?
- +			if s390x.REG_R0 < v.Reg && v.Reg <= s390x.REGEXT {
+++			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.FREGEXT {
+++			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:
 ++		return 0
 ++	}
 ++}
 ++
 ++// copyas returns 1 if a and v address the same register.
 ++//
 ++// If a is the from operand, this means this operation reads the
 ++// register in v.  If a is the to operand, this means this operation
 ++// writes the register in v.
 ++func copyas(a *obj.Addr, v *obj.Addr) bool {
 ++	if regtyp(v) {
 ++		if a.Type == v.Type {
 ++			if a.Reg == v.Reg {
 ++				return true
 ++			}
 ++		}
 ++	}
 ++	return false
 ++}
 ++
 ++// copyau returns 1 if a either directly or indirectly addresses the
 ++// same register as v.
 ++//
 ++// If a is the from operand, this means this operation reads the
 ++// register in v.  If a is the to operand, this means the operation
 ++// either reads or writes the register in v (if !copyas(a, v), then
 ++// the operation reads the register in v).
 ++func copyau(a *obj.Addr, v *obj.Addr) bool {
 ++	if copyas(a, v) {
 ++		return true
 ++	}
 ++	if v.Type == obj.TYPE_REG {
 ++		if a.Type == obj.TYPE_MEM || (a.Type == obj.TYPE_ADDR && a.Reg != 0) {
 ++			if v.Reg == a.Reg {
 ++				return true
 ++			}
 ++		}
 ++	}
 ++	return false
 ++}
 ++
 ++// copyau1 returns 1 if p->reg references the same register as v and v
 ++// is a direct reference.
 ++func copyau1(p *obj.Prog, v *obj.Addr) bool {
 ++	if regtyp(v) && v.Reg != 0 {
 ++		if p.Reg == v.Reg {
 ++			return true
 ++		}
 ++	}
 ++	return false
 ++}
 ++
 ++// copysub replaces v with s in a if f!=0 or indicates it if could if f==0.
 ++// Returns 1 on failure to substitute (it always succeeds on s390x).
 ++func copysub(a *obj.Addr, v *obj.Addr, s *obj.Addr, f int) int {
 ++	if f != 0 {
 ++		if copyau(a, v) {
 ++			a.Reg = s.Reg
 ++		}
 ++	}
 ++	return 0
 ++}
 ++
 ++// copysub1 replaces v with s in p1->reg if f!=0 or indicates if it could if f==0.
 ++// Returns 1 on failure to substitute (it always succeeds on s390x).
 ++func copysub1(p1 *obj.Prog, v *obj.Addr, s *obj.Addr, f int) int {
 ++	if f != 0 {
 ++		if copyau1(p1, v) {
 ++			p1.Reg = s.Reg
 ++		}
 ++	}
 ++	return 0
 ++}
 ++
 ++func sameaddr(a *obj.Addr, v *obj.Addr) bool {
 ++	if a.Type != v.Type {
 ++		return false
 ++	}
 ++	if regtyp(v) && a.Reg == v.Reg {
 ++		return true
 ++	}
 ++	if v.Type == obj.NAME_AUTO || v.Type == obj.NAME_PARAM {
 ++		if v.Offset == a.Offset {
 ++			return true
 ++		}
 ++	}
 ++	return false
 ++}
 ++
 ++func smallindir(a *obj.Addr, reg *obj.Addr) bool {
 ++	return reg.Type == obj.TYPE_REG && a.Type == obj.TYPE_MEM && a.Reg == reg.Reg && 0 <= a.Offset && a.Offset < 4096
 ++}
 ++
 ++func stackaddr(a *obj.Addr) bool {
 ++	return a.Type == obj.TYPE_REG && a.Reg == s390x.REGSP
 ++}
 ++
 ++func trymergeopmv(r *gc.Flow) bool {
 ++	p := r.Prog
 ++	reg := p.From.Reg
 ++	r2 := gc.Uniqs(r)
 ++
 ++	for ; r2 != nil; r2 = gc.Uniqs(r2) {
 ++		p2 := r2.Prog
 ++		switch p2.As {
 ++		case obj.ANOP:
 ++			continue
 ++
 ++		case s390x.AEXRL,
 ++			s390x.ASYSCALL,
 ++			s390x.ABR,
 ++			s390x.ABC,
 ++			s390x.ABEQ,
 ++			s390x.ABGE,
 ++			s390x.ABGT,
 ++			s390x.ABLE,
 ++			s390x.ABLT,
 ++			s390x.ABNE,
 ++			s390x.ACMPBEQ,
 ++			s390x.ACMPBGE,
 ++			s390x.ACMPBGT,
 ++			s390x.ACMPBLE,
 ++			s390x.ACMPBLT,
 ++			s390x.ACMPBNE:
 ++			return false
 ++
 ++		case s390x.ACMP,
 ++			s390x.ACMPU,
 ++			s390x.ACMPW,
 ++			s390x.ACMPWU:
 ++			if p2.From.Type == obj.TYPE_REG && p2.From.Reg == reg {
 ++				return false
 ++			}
 ++			if p2.To.Type == obj.TYPE_REG && p2.To.Reg == reg {
 ++				//different from other instructions, To.Reg is a source register in CMP
 ++				return false
 ++			}
 ++			continue
 ++
 ++		case s390x.AMOVD,
 ++			s390x.AMOVW, s390x.AMOVWZ,
 ++			s390x.AMOVH, s390x.AMOVHZ,
 ++			s390x.AMOVB, s390x.AMOVBZ:
 ++			if p2.From.Type == obj.TYPE_REG && p2.From.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.From.Type == obj.TYPE_ADDR && p2.From.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.To.Type == obj.TYPE_ADDR && p2.To.Reg == reg {
 ++				//For store operations
 ++				//also use;  can't change
 ++				return false
 ++			}
 ++			if p2.To.Type == obj.TYPE_REG && p2.To.Reg == reg {
 ++				return true
 ++			}
 ++			continue
 ++
 ++		case s390x.AMVC, s390x.ACLC, s390x.AXC, s390x.AOC, s390x.ANC:
 ++			if p2.From.Type == obj.TYPE_MEM && p2.From.Reg == reg {
 ++				return false
 ++			}
 ++			if p2.To.Type == obj.TYPE_MEM && p2.To.Reg == reg {
 ++				return false
 ++			}
 ++			continue
 ++
 ++		default:
 ++			if p2.From.Type == obj.TYPE_REG && p2.From.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.From.Type == obj.TYPE_ADDR && p2.From.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.Reg != 0 && p2.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.From3 != nil && p2.From3.Type == obj.TYPE_REG && p2.From3.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.From3 != nil && p2.From3.Type == obj.TYPE_ADDR && p2.From3.Reg == reg {
 ++				//use;  can't change
 ++				return false
 ++			}
 ++			if p2.To.Type == obj.TYPE_ADDR && p2.To.Reg == reg {
 ++				//For store operations
 ++				//also use;  can't change
 ++				return false
 ++			}
 ++			if p2.To.Type == obj.TYPE_REG && p2.To.Reg == reg {
 ++				if p2.Reg == 0 {
 ++					//p2.To is also used as source in 2 operands instruction
 ++					return false
 ++				} else {
 ++					//def;  can change
 ++					return true
 ++				}
 ++			}
 ++			continue
 ++		}
 ++	}
 ++	return false
 ++}
 +diff --git a/src/cmd/compile/internal/s390x/prog.go b/src/cmd/compile/internal/s390x/prog.go
 +new file mode 100644
 +index 0000000..591638c
 +--- /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.AFRSP:  {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ALDEBR: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.AFSQRT: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite},
 ++
 ++	// Conversions
 ++	s390x.ACEFBRA: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACDFBRA: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACEGBRA: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACDGBRA: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACFEBRA: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACFDBRA: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACGEBRA: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACGDBRA: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACELFBR: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACDLFBR: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACELGBR: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACDLGBR: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACLFEBR: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACLFDBR: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACLGEBR: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++	s390x.ACLGDBR: {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Conv},
 ++
 ++	// Moves
 ++	s390x.AMOVB:  {Flags: gc.SizeB | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++	s390x.AMOVBZ: {Flags: gc.SizeB | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++	s390x.AMOVH:  {Flags: gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++	s390x.AMOVHZ: {Flags: gc.SizeW | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++	s390x.AMOVW:  {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++
 ++	// there is no AMOVWU.
 ++	s390x.AMOVWZ: {Flags: gc.SizeL | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++	s390x.AMOVD:  {Flags: gc.SizeQ | gc.LeftRead | gc.RightWrite | gc.Move},
 ++	s390x.AFMOVS: {Flags: gc.SizeF | gc.LeftRead | gc.RightWrite | gc.Move | gc.Conv},
 ++	s390x.AFMOVD: {Flags: gc.SizeD | gc.LeftRead | gc.RightWrite | gc.Move},
 ++
 ++	// Storage operations
 ++	s390x.AMVC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
 ++	s390x.ACLC: {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
 ++	s390x.AXC:  {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
 ++	s390x.AOC:  {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
 ++	s390x.ANC:  {Flags: gc.SizeQ | gc.LeftRead | gc.RightRead},
 ++
 ++	// Jumps
 ++	s390x.ABR:      {Flags: gc.Jump | gc.Break},
 ++	s390x.ABL:      {Flags: gc.Call},
 ++	s390x.ABEQ:     {Flags: gc.Cjmp},
 ++	s390x.ABNE:     {Flags: gc.Cjmp},
 ++	s390x.ABGE:     {Flags: gc.Cjmp},
 ++	s390x.ABLT:     {Flags: gc.Cjmp},
 ++	s390x.ABGT:     {Flags: gc.Cjmp},
 ++	s390x.ABLE:     {Flags: gc.Cjmp},
 ++	s390x.ACMPBEQ:  {Flags: gc.Cjmp},
 ++	s390x.ACMPBNE:  {Flags: gc.Cjmp},
 ++	s390x.ACMPBGE:  {Flags: gc.Cjmp},
 ++	s390x.ACMPBLT:  {Flags: gc.Cjmp},
 ++	s390x.ACMPBGT:  {Flags: gc.Cjmp},
 ++	s390x.ACMPBLE:  {Flags: gc.Cjmp},
 ++	s390x.ACMPUBEQ: {Flags: gc.Cjmp},
 ++	s390x.ACMPUBNE: {Flags: gc.Cjmp},
 ++	s390x.ACMPUBGE: {Flags: gc.Cjmp},
 ++	s390x.ACMPUBLT: {Flags: gc.Cjmp},
 ++	s390x.ACMPUBGT: {Flags: gc.Cjmp},
 ++	s390x.ACMPUBLE: {Flags: gc.Cjmp},
 ++
 ++	obj.ARET:      {Flags: gc.Break},
 ++	obj.ADUFFZERO: {Flags: gc.Call},
 ++	obj.ADUFFCOPY: {Flags: gc.Call},
 ++}
 ++
 ++func proginfo(p *obj.Prog) {
 ++	info := &p.Info
 ++	*info = progtable[p.As]
 ++	if info.Flags == 0 {
 ++		gc.Fatalf("proginfo: unknown instruction %v", p)
 ++	}
 ++
 ++	if (info.Flags&gc.RegRead != 0) && p.Reg == 0 {
 ++		info.Flags &^= gc.RegRead
 ++		info.Flags |= gc.RightRead /*CanRegRead |*/
 ++	}
 ++
 ++	if (p.From.Type == obj.TYPE_MEM || p.From.Type == obj.TYPE_ADDR) && p.From.Reg != 0 {
 ++		info.Regindex |= RtoB(int(p.From.Reg))
 ++		if info.Flags&gc.PostInc != 0 {
 ++			info.Regset |= RtoB(int(p.From.Reg))
 ++		}
 ++	}
 ++
 ++	if (p.To.Type == obj.TYPE_MEM || p.To.Type == obj.TYPE_ADDR) && p.To.Reg != 0 {
 ++		info.Regindex |= RtoB(int(p.To.Reg))
 ++		if info.Flags&gc.PostInc != 0 {
 ++			info.Regset |= RtoB(int(p.To.Reg))
 ++		}
 ++	}
 ++
 ++	if p.From.Type == obj.TYPE_ADDR && p.From.Sym != nil && (info.Flags&gc.LeftRead != 0) {
 ++		info.Flags &^= gc.LeftRead
 ++		info.Flags |= gc.LeftAddr
 ++	}
 ++
 ++	if p.As == obj.ADUFFZERO {
 ++		info.Reguse |= 1<<0 | RtoB(s390x.REG_R3)
 ++		info.Regset |= RtoB(s390x.REG_R3)
 ++	}
 ++
 ++	if p.As == obj.ADUFFCOPY {
 ++		// TODO(austin) Revisit when duffcopy is implemented
 ++		info.Reguse |= RtoB(s390x.REG_R3) | RtoB(s390x.REG_R4) | RtoB(s390x.REG_R5)
 ++
 ++		info.Regset |= RtoB(s390x.REG_R3) | RtoB(s390x.REG_R4)
 ++	}
 ++}
 +diff --git a/src/cmd/compile/internal/s390x/reg.go b/src/cmd/compile/internal/s390x/reg.go
 +new file mode 100644
 +index 0000000..ece9060
 +--- /dev/null
 ++++ b/src/cmd/compile/internal/s390x/reg.go
 +@@ -0,0 +1,131 @@
 ++// Derived from Inferno utils/6c/reg.c
 ++// http://code.google.com/p/inferno-os/source/browse/utils/6c/reg.c
 ++//
 ++//	Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
 ++//	Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
 ++//	Portions Copyright © 1997-1999 Vita Nuova Limited
 ++//	Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
 ++//	Portions Copyright © 2004,2006 Bruce Ellis
 ++//	Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
 ++//	Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
 ++//	Portions Copyright © 2009 The Go Authors.  All rights reserved.
 ++//
 ++// Permission is hereby granted, free of charge, to any person obtaining a copy
 ++// of this software and associated documentation files (the "Software"), to deal
 ++// in the Software without restriction, including without limitation the rights
 ++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 ++// copies of the Software, and to permit persons to whom the Software is
 ++// furnished to do so, subject to the following conditions:
 ++//
 ++// The above copyright notice and this permission notice shall be included in
 ++// all copies or substantial portions of the Software.
 ++//
 ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 ++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 ++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 ++// THE SOFTWARE.
 ++
 ++package s390x
 ++
 ++import "cmd/internal/obj/s390x"
 ++import "cmd/compile/internal/gc"
 ++
 ++const (
 ++	NREGVAR = 32 /* 16 general + 16 floating */
 ++)
 ++
 ++var regname = []string{
 ++	".R0",
 ++	".R1",
 ++	".R2",
 ++	".R3",
 ++	".R4",
 ++	".R5",
 ++	".R6",
 ++	".R7",
 ++	".R8",
 ++	".R9",
 ++	".R10",
 ++	".R11",
 ++	".R12",
 ++	".R13",
 ++	".R14",
 ++	".R15",
 ++	".F0",
 ++	".F1",
 ++	".F2",
 ++	".F3",
 ++	".F4",
 ++	".F5",
 ++	".F6",
 ++	".F7",
 ++	".F8",
 ++	".F9",
 ++	".F10",
 ++	".F11",
 ++	".F12",
 ++	".F13",
 ++	".F14",
 ++	".F15",
 ++}
 ++
 ++func regnames(n *int) []string {
 ++	*n = NREGVAR
 ++	return regname
 ++}
 ++
 ++func excludedregs() uint64 {
 ++	// Exclude registers with fixed functions
 ++	// AZHANG TODO: Should other dedicated registers be reserved here?
 ++	regbits := uint64(RtoB(s390x.REG_R0) | RtoB(s390x.REGSP) | RtoB(s390x.REGG) | RtoB(s390x.REGTMP) | RtoB(s390x.REGTMP2) | RtoB(s390x.REG_LR))
 ++
 ++	// Also exclude floating point registers with fixed constants
 ++	regbits |= RtoB(s390x.REG_F11) | RtoB(s390x.REG_F12) | RtoB(s390x.REG_F13) | RtoB(s390x.REG_F14)
 ++
 ++	return regbits
 ++}
 ++
 ++func doregbits(r int) uint64 {
 ++	return 0
 ++}
 ++
 ++/*
 ++ * track register variables including external registers:
 ++ *	bit	reg
 ++ *	0	R0
 ++ *	...	...
 ++ *	15	R15
 ++ *	16+0	F0
 ++ *	16+1	F1
 ++ *	...	...
 ++ *	16+15	F15
 ++ */
 ++func RtoB(r int) uint64 {
 ++	if r >= s390x.REG_R0 && r <= s390x.REG_R15 {
 ++		return 1 << uint(r-s390x.REG_R0)
 ++	}
 ++	if r >= s390x.REG_F0 && r <= s390x.REG_F15 {
 ++		return 1 << uint(16+r-s390x.REG_F0)
 ++	}
 ++	return 0
 ++}
 ++
 ++func BtoR(b uint64) int {
 ++	b &= 0xffff
 ++	if b == 0 {
 ++		return 0
 ++	}
 ++	return gc.Bitno(b) + s390x.REG_R0
 ++}
 ++
 ++func BtoF(b uint64) int {
 ++	b >>= 16
 ++	b &= 0xffff
 ++	if b == 0 {
 ++		return 0
 ++	}
 ++	return gc.Bitno(b) + s390x.REG_F0
 ++}
 +diff --git a/src/cmd/compile/main.go b/src/cmd/compile/main.go
 +index 3d11f51..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 156b868..ef23b34 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 1286700..0d4b8bf 100644
++index a1f925e..fffb40c 100644
 +--- a/src/cmd/go/build.go
 ++++ b/src/cmd/go/build.go
- @@ -2957,6 +2957,8 @@ func (b *builder) gccArchArgs() []string {
++@@ -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)
++@@ -2958,6 +2958,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..94f53c9
++index 0000000..a809306
 +--- /dev/null
 ++++ b/src/cmd/internal/obj/s390x/a.out.go
- @@ -0,0 +1,370 @@
++@@ -0,0 +1,360 @@
 ++// Based on cmd/internal/obj/ppc64/a.out.go.
 ++//
 ++//	Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
 ++//	Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
 ++//	Portions Copyright © 1997-1999 Vita Nuova Limited
 ++//	Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
 ++//	Portions Copyright © 2004,2006 Bruce Ellis
 ++//	Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
 ++//	Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
 ++//	Portions Copyright © 2009 The Go Authors.  All rights reserved.
 ++//
 ++// Permission is hereby granted, free of charge, to any person obtaining a copy
 ++// of this software and associated documentation files (the "Software"), to deal
 ++// in the Software without restriction, including without limitation the rights
 ++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 ++// copies of the Software, and to permit persons to whom the Software is
 ++// furnished to do so, subject to the following conditions:
 ++//
 ++// The above copyright notice and this permission notice shall be included in
 ++// all copies or substantial portions of the Software.
 ++//
 ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 ++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 ++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 ++// THE SOFTWARE.
 ++
 ++package s390x
 ++
 ++import "cmd/internal/obj"
 ++
 ++//go:generate go run ../stringer.go -i $GOFILE -o anames.go -p s390x
 ++
 ++/*
 ++ * s390x
 ++ */
 ++const (
 ++	NSNAME = 8
 ++	NSYM   = 50
- +	NREG   = 16 /* number of general registers */
- +	NFREG  = 16 /* number of floating point registers */
+++	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
 ++
 ++	REG_AR0
 ++	REG_AR1
 ++	REG_AR2
 ++	REG_AR3
 ++	REG_AR4
 ++	REG_AR5
 ++	REG_AR6
 ++	REG_AR7
 ++	REG_AR8
 ++	REG_AR9
 ++	REG_AR10
 ++	REG_AR11
 ++	REG_AR12
 ++	REG_AR13
 ++	REG_AR14
 ++	REG_AR15
 ++
- +	REG_RESERVED // first of 1024 reserved registers
- +
- +	REGZERO  = REG_R0 /* set to zero */
- +	REGRET   = REG_R2
- +	REGARG   = -1      /* -1 disables passing the first argument in register */
- +	REGRT1   = REG_R3  /* reserved for runtime, duffzero and duffcopy (does this need to be reserved on z?) */
- +	REGRT2   = REG_R4  /* reserved for runtime, duffcopy (does this need to be reserved on z?) */
- +	REGMIN   = REG_R5  /* register variables allocated from here to REGMAX */
- +	REGTMP   = REG_R10 /* used by the linker */
- +	REGTMP2  = REG_R11 /* used by the linker */
- +	REGCTXT  = REG_R12 /* context for closures */
- +	REGG     = REG_R13 /* G */
- +	REG_LR   = REG_R14 /* link register */
- +	REGSP    = REG_R15 /* stack pointer */
- +	REGEXT   = REG_R9  /* external registers allocated from here down */
- +	REGMAX   = REG_R8
- +	FREGRET  = REG_F0
- +	FREGMIN  = REG_F5  /* first register variable */
- +	FREGMAX  = REG_F10 /* last register variable for zg only */
- +	FREGEXT  = REG_F10 /* first external register */
- +	FREGCVI  = REG_F11 /* floating conversion constant */
- +	FREGZERO = REG_F12 /* both float and double */
- +	FREGONE  = REG_F13 /* double */
- +	FREGTWO  = REG_F14 /* double */
- +//	FREGTMP  = REG_F15 /* double */
+++	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
 ++	C_FREG   // floating-point register
 ++	C_AREG   // access register
 ++	C_ZCON   // constant == 0
 ++	C_SCON   // 0 <= constant <= 0x7fff (positive int16)
 ++	C_UCON   // constant & 0xffff == 0 (int32 or uint32)
 ++	C_ADDCON // 0 > constant >= -0x8000 (negative int16)
 ++	C_ANDCON // constant <= 0xffff
 ++	C_LCON   // constant (int32 or uint32)
 ++	C_DCON   // constant (int64 or uint64)
 ++	C_SACON  // computed address, 16-bit displacement, possibly SP-relative
 ++	C_SECON  // computed address, 16-bit displacement, possibly SB-relative, unused?
 ++	C_LACON  // computed address, 32-bit displacement, possibly SP-relative
 ++	C_LECON  // computed address, 32-bit displacement, possibly SB-relative, unused?
 ++	C_DACON  // computed address, 64-bit displacment?
 ++	C_SBRA   // short branch
 ++	C_LBRA   // long branch
 ++	C_SAUTO  // short auto
 ++	C_LAUTO  // long auto
 ++	C_ZOREG  // heap address, register-based, displacement == 0
 ++	C_SOREG  // heap address, register-based, int16 displacement
 ++	C_LOREG  // heap address, register-based, int32 displacement
+++	C_TLS_LE // TLS - local exec model (for executables)
+++	C_TLS_IE // TLS - initial exec model (for shared libraries loaded at program startup)
 ++	C_ANY
 ++	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_NCLASS   // must be the last
 ++)
 ++
 ++const (
 ++	// integer arithmetic
 ++	AADD = obj.ABaseS390X + obj.A_ARCHSPECIFIC + iota
 ++	AADDC
 ++	AADDME
 ++	AADDE
 ++	AADDZE
 ++	ADIVW
 ++	ADIVWU
 ++	ADIVD
 ++	ADIVDU
 ++	AMULLW
 ++	AMULLD
 ++	AMULHD
 ++	AMULHDU
 ++	ASUB
 ++	ASUBC
 ++	ASUBME
 ++	ASUBV
 ++	ASUBE
 ++	ASUBZE
 ++	AREM
 ++	AREMU
 ++	AREMD
 ++	AREMDU
 ++	ANEG
 ++
 ++	// integer moves
 ++	AMOVWBR
 ++	AMOVB
 ++	AMOVBZ
 ++	AMOVH
 ++	AMOVHBR
 ++	AMOVHZ
 ++	AMOVW
 ++	AMOVWZ
 ++	AMOVD
 ++
 ++	// integer bitwise
 ++	AAND
 ++	AANDN
 ++	ANAND
 ++	ANOR
 ++	AOR
 ++	AORN
 ++	AXOR
 ++	ASLW
 ++	ASLD
 ++	ASRW
 ++	ASRAW
 ++	ASRD
 ++	ASRAD
 ++	ARLWMI
 ++	ARLWNM
 ++	ARLDMI
 ++	ARLDC
 ++	ARLDCR
 ++	ARLDCL
 ++
 ++	// floating point
 ++	AFABS
 ++	AFADD
 ++	AFADDS
 ++	AFCMPO
 ++	AFCMPU
 ++	ACEBR
 ++	AFDIV
 ++	AFDIVS
 ++	AFMADD
 ++	AFMADDS
 ++	AFMOVD
 ++	AFMOVS
 ++	AFMSUB
 ++	AFMSUBS
 ++	AFMUL
 ++	AFMULS
 ++	AFNABS
 ++	AFNEG
 ++	AFNMADD
 ++	AFNMADDS
 ++	AFNMSUB
 ++	AFNMSUBS
 ++	AFRSP
 ++	ALDEBR
 ++	AFSUB
 ++	AFSUBS
 ++	AFSQRT
 ++	AFSQRTS
 ++
 ++	// convert from int32/int64 to float/float64
 ++	ACEFBRA
 ++	ACDFBRA
 ++	ACEGBRA
 ++	ACDGBRA
 ++
 ++	// convert from float/float64 to int32/int64
 ++	ACFEBRA
 ++	ACFDBRA
 ++	ACGEBRA
 ++	ACGDBRA
 ++
 ++	// convert from uint32/uint64 to float/float64
 ++	ACELFBR
 ++	ACDLFBR
 ++	ACELGBR
 ++	ACDLGBR
 ++
 ++	// convert from float/float64 to uint32/uint64
 ++	ACLFEBR
 ++	ACLFDBR
 ++	ACLGEBR
 ++	ACLGDBR
 ++
 ++	// compare
 ++	ACMP
 ++	ACMPU
 ++	ACMPW
 ++	ACMPWU
 ++
 ++	// compare and swap
 ++	ACS
 ++	ACSG
 ++
 ++	// serialize
 ++	ASYNC
 ++
 ++	// branch
 ++	ABC
 ++	ABCL
 ++	ABEQ
 ++	ABGE
 ++	ABGT
 ++	ABLE
 ++	ABLT
 ++	ABNE
 ++	ABVC
 ++	ABVS
 ++	ASYSCALL
 ++
 ++	// compare and branch
 ++	ACMPBEQ
 ++	ACMPBGE
 ++	ACMPBGT
 ++	ACMPBLE
 ++	ACMPBLT
 ++	ACMPBNE
 ++	ACMPUBEQ
 ++	ACMPUBGE
 ++	ACMPUBGT
 ++	ACMPUBLE
 ++	ACMPUBLT
 ++	ACMPUBNE
 ++
 ++	// storage-and-storage
 ++	AMVC
 ++	ACLC
 ++	AXC
 ++	AOC
 ++	ANC
 ++
 ++	// load
 ++	AEXRL
 ++	ALARL
 ++	ALA
 ++	ALAY
 ++
 ++	// store clock
 ++	ASTCK
 ++	ASTCKC
 ++	ASTCKE
 ++	ASTCKF
 ++
 ++	// binary
 ++	ABYTE
 ++	AWORD
 ++	ADWORD
 ++
 ++	// end marker
 ++	ALAST
 ++
 ++	// aliases
 ++	ABR = obj.AJMP
 ++	ABL = obj.ACALL
 ++)
 +diff --git a/src/cmd/internal/obj/s390x/anames.go b/src/cmd/internal/obj/s390x/anames.go
 +new file mode 100644
 +index 0000000..b34f092
 +--- /dev/null
 ++++ b/src/cmd/internal/obj/s390x/anames.go
 +@@ -0,0 +1,152 @@
 ++// Generated by stringer -i a.out.go -o anames.go -p s390x
 ++// Do not edit.
 ++
 ++package s390x
 ++
 ++import "cmd/internal/obj"
 ++
 ++var Anames = []string{
 ++	obj.A_ARCHSPECIFIC: "ADD",
 ++	"ADDC",
 ++	"ADDME",
 ++	"ADDE",
 ++	"ADDZE",
 ++	"DIVW",
 ++	"DIVWU",
 ++	"DIVD",
 ++	"DIVDU",
 ++	"MULLW",
 ++	"MULLD",
 ++	"MULHD",
 ++	"MULHDU",
 ++	"SUB",
 ++	"SUBC",
 ++	"SUBME",
 ++	"SUBV",
 ++	"SUBE",
 ++	"SUBZE",
 ++	"REM",
 ++	"REMU",
 ++	"REMD",
 ++	"REMDU",
 ++	"NEG",
 ++	"MOVWBR",
 ++	"MOVB",
 ++	"MOVBZ",
 ++	"MOVH",
 ++	"MOVHBR",
 ++	"MOVHZ",
 ++	"MOVW",
 ++	"MOVWZ",
 ++	"MOVD",
 ++	"AND",
 ++	"ANDN",
 ++	"NAND",
 ++	"NOR",
 ++	"OR",
 ++	"ORN",
 ++	"XOR",
 ++	"SLW",
 ++	"SLD",
 ++	"SRW",
 ++	"SRAW",
 ++	"SRD",
 ++	"SRAD",
 ++	"RLWMI",
 ++	"RLWNM",
 ++	"RLDMI",
 ++	"RLDC",
 ++	"RLDCR",
 ++	"RLDCL",
 ++	"FABS",
 ++	"FADD",
 ++	"FADDS",
 ++	"FCMPO",
 ++	"FCMPU",
 ++	"CEBR",
 ++	"FDIV",
 ++	"FDIVS",
 ++	"FMADD",
 ++	"FMADDS",
 ++	"FMOVD",
 ++	"FMOVS",
 ++	"FMSUB",
 ++	"FMSUBS",
 ++	"FMUL",
 ++	"FMULS",
 ++	"FNABS",
 ++	"FNEG",
 ++	"FNMADD",
 ++	"FNMADDS",
 ++	"FNMSUB",
 ++	"FNMSUBS",
 ++	"FRSP",
 ++	"LDEBR",
 ++	"FSUB",
 ++	"FSUBS",
 ++	"FSQRT",
 ++	"FSQRTS",
 ++	"CEFBRA",
 ++	"CDFBRA",
 ++	"CEGBRA",
 ++	"CDGBRA",
 ++	"CFEBRA",
 ++	"CFDBRA",
 ++	"CGEBRA",
 ++	"CGDBRA",
 ++	"CELFBR",
 ++	"CDLFBR",
 ++	"CELGBR",
 ++	"CDLGBR",
 ++	"CLFEBR",
 ++	"CLFDBR",
 ++	"CLGEBR",
 ++	"CLGDBR",
 ++	"CMP",
 ++	"CMPU",
 ++	"CMPW",
 ++	"CMPWU",
 ++	"CS",
 ++	"CSG",
 ++	"SYNC",
 ++	"BC",
 ++	"BCL",
 ++	"BEQ",
 ++	"BGE",
 ++	"BGT",
 ++	"BLE",
 ++	"BLT",
 ++	"BNE",
 ++	"BVC",
 ++	"BVS",
 ++	"SYSCALL",
 ++	"CMPBEQ",
 ++	"CMPBGE",
 ++	"CMPBGT",
 ++	"CMPBLE",
 ++	"CMPBLT",
 ++	"CMPBNE",
 ++	"CMPUBEQ",
 ++	"CMPUBGE",
 ++	"CMPUBGT",
 ++	"CMPUBLE",
 ++	"CMPUBLT",
 ++	"CMPUBNE",
 ++	"MVC",
 ++	"CLC",
 ++	"XC",
 ++	"OC",
 ++	"NC",
 ++	"EXRL",
 ++	"LARL",
 ++	"LA",
 ++	"LAY",
 ++	"STCK",
 ++	"STCKC",
 ++	"STCKE",
 ++	"STCKF",
 ++	"BYTE",
 ++	"WORD",
 ++	"DWORD",
 ++	"LAST",
 ++}
 +diff --git a/src/cmd/internal/obj/s390x/anamesz.go b/src/cmd/internal/obj/s390x/anamesz.go
 +new file mode 100644
- index 0000000..230eddb
++index 0000000..75823c2
 +--- /dev/null
 ++++ b/src/cmd/internal/obj/s390x/anamesz.go
- @@ -0,0 +1,64 @@
++@@ -0,0 +1,35 @@
 ++package s390x
 ++
 ++var cnamesz = []string{
 ++	"NONE",
 ++	"REG",
 ++	"FREG",
 ++	"AREG",
 ++	"ZCON",
 ++	"SCON",
 ++	"UCON",
 ++	"ADDCON",
 ++	"ANDCON",
 ++	"LCON",
 ++	"DCON",
 ++	"SACON",
 ++	"SECON",
 ++	"LACON",
 ++	"LECON",
 ++	"DACON",
 ++	"SBRA",
 ++	"LBRA",
 ++	"SAUTO",
 ++	"LAUTO",
 ++	"ZOREG",
 ++	"SOREG",
 ++	"LOREG",
- +	"LR",
+++	"TLS_LE",
+++	"TLS_IE",
 ++	"ANY",
 ++	"GOK",
 ++	"ADDR",
+++	"GOTADDR",
 ++	"TEXTSIZE",
 ++	"NCLASS",
 ++}
- +
- +// const ( // comments from func aclass in asmz.go
- +//     C_NONE = iota
- +//     C_REG // general-purpose register
- +//     C_FREG // floating-point register
- +//     C_AREG // access register
- +//     C_ZCON // constant == 0
- +//     C_SCON // 0 <= constant <= 0x7fff (positive int16)
- +//     C_UCON // constant & 0xffff == 0 (int32 or uint32)
- +//     C_ADDCON // 0 > constant >= -0x8000 (negative int16)
- +//     C_ANDCON // constant <= 0xffff
- +//     C_LCON // constant (int32 or uint32)
- +//     C_DCON // constant (int64 or uint64)
- +//     C_SACON // computed address, 16-bit displacement, possibly SP-relative
- +//     C_SECON // computed address, 16-bit displacement, possibly SB-relative, unused?
- +//     C_LACON // computed address, 32-bit displacement, possibly SP-relative
- +//     C_LECON // computed address, 32-bit displacement, possibly SB-relative, unused?
- +//     C_DACON // computed address, 64-bit displacment?
- +//     C_SBRA // short branch
- +//     C_LBRA // long branch
- +//     C_SAUTO // short auto
- +//     C_LAUTO // long auto
- +//     C_ZOREG // heap address, register-based, displacement == 0
- +//     C_SOREG // heap address, register-based, int16 displacement
- +//     C_LOREG // heap address, register-based, int32 displacement
- +//     C_ANY
- +//     C_GOK // general address
- +//     C_ADDR // relocation for extern or static symbols
- +//     C_TEXTSIZE // text size
- +//     C_NCLASS
- +// )
 +diff --git a/src/cmd/internal/obj/s390x/asmz.go b/src/cmd/internal/obj/s390x/asmz.go
 +new file mode 100644
- index 0000000..4fd0ee6
++index 0000000..7956f22
 +--- /dev/null
 ++++ b/src/cmd/internal/obj/s390x/asmz.go
- @@ -0,0 +1,3983 @@
++@@ -0,0 +1,4017 @@
 ++// Based on cmd/internal/obj/ppc64/asm9.go.
 ++//
 ++//    Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
 ++//    Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
 ++//    Portions Copyright © 1997-1999 Vita Nuova Limited
 ++//    Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
 ++//    Portions Copyright © 2004,2006 Bruce Ellis
 ++//    Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
 ++//    Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
 ++//    Portions Copyright © 2009 The Go Authors.  All rights reserved.
 ++//
 ++// Permission is hereby granted, free of charge, to any person obtaining a copy
 ++// of this software and associated documentation files (the "Software"), to deal
 ++// in the Software without restriction, including without limitation the rights
 ++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 ++// copies of the Software, and to permit persons to whom the Software is
 ++// furnished to do so, subject to the following conditions:
 ++//
 ++// The above copyright notice and this permission notice shall be included in
 ++// all copies or substantial portions of the Software.
 ++//
 ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 ++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 ++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 ++// THE SOFTWARE.
 ++
 ++package s390x
 ++
 ++import (
 ++	"cmd/internal/obj"
 ++	"log"
 ++	"sort"
 ++)
 ++
 ++// Instruction layout.
 ++const (
 ++	FuncAlign = 16
 ++)
 ++
 ++const (
 ++	r0iszero = 1
 ++)
 ++
 ++type Optab struct {
 ++	as    int16 // opcode
 ++	a1    uint8 // source
 ++	a2    uint8 // register
 ++	a3    uint8 // destination
 ++	a4    uint8
 ++	type_ int8
 ++	param int16
 ++}
 ++
 ++var optab = []Optab{
 ++	// p.Optab, p.From.Class, p.Reg, p.From3.Class, p.To.Class, type, param
 ++	Optab{obj.ATEXT, C_ADDR, C_NONE, C_NONE, C_TEXTSIZE, 0, 0},
 ++	Optab{obj.ATEXT, C_ADDR, C_NONE, C_LCON, C_TEXTSIZE, 0, 0},
 ++	/* move register */
 ++	Optab{AMOVD, C_REG, C_NONE, C_NONE, C_REG, 1, 0},
 ++	Optab{AMOVB, C_REG, C_NONE, C_NONE, C_REG, 12, 0},
 ++	Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_REG, 13, 0},
 ++	Optab{AMOVW, C_REG, C_NONE, C_NONE, C_REG, 12, 0},
 ++	Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_REG, 13, 0},
 ++	Optab{AADD, C_REG, C_REG, C_NONE, C_REG, 2, 0},
 ++	Optab{AADD, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
 ++	Optab{AADD, C_ADDCON, C_REG, C_NONE, C_REG, 4, 0},
 ++	Optab{AADD, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 0},
 ++	Optab{AADD, C_UCON, C_NONE, C_NONE, C_REG, 20, 0},
 ++	Optab{AADD, C_UCON, C_REG, C_NONE, C_REG, 20, 0},
 ++	Optab{AADD, C_LCON, C_REG, C_NONE, C_REG, 22, 0},
 ++	Optab{AADD, C_LCON, C_NONE, C_NONE, C_REG, 22, 0},
 ++	Optab{AADDC, C_REG, C_REG, C_NONE, C_REG, 2, 0},
 ++	Optab{AADDC, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
 ++	Optab{AADDC, C_ADDCON, C_REG, C_NONE, C_REG, 4, 0},
 ++	Optab{AADDC, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 0},
 ++	Optab{AADDC, C_LCON, C_REG, C_NONE, C_REG, 22, 0},
 ++	Optab{AADDC, C_LCON, C_NONE, C_NONE, C_REG, 22, 0},
 ++	Optab{AAND, C_REG, C_REG, C_NONE, C_REG, 6, 0}, /* logical, no literal */
 ++	Optab{AAND, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
 ++	Optab{AAND, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 0},
 ++	Optab{AAND, C_ANDCON, C_REG, C_NONE, C_REG, 58, 0},
 ++	Optab{AAND, C_UCON, C_NONE, C_NONE, C_REG, 59, 0},
 ++	Optab{AAND, C_UCON, C_REG, C_NONE, C_REG, 59, 0},
 ++	Optab{AAND, C_LCON, C_NONE, C_NONE, C_REG, 23, 0},
 ++	Optab{AAND, C_LCON, C_REG, C_NONE, C_REG, 23, 0},
 ++	Optab{AMULLW, C_REG, C_REG, C_NONE, C_REG, 2, 0},
 ++	Optab{AMULLW, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
 ++	Optab{AMULLW, C_ADDCON, C_REG, C_NONE, C_REG, 4, 0},
 ++	Optab{AMULLW, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 0},
 ++	Optab{AMULLW, C_ANDCON, C_REG, C_NONE, C_REG, 4, 0},
 ++	Optab{AMULLW, C_ANDCON, C_NONE, C_NONE, C_REG, 4, 0},
 ++	Optab{AMULLW, C_LCON, C_REG, C_NONE, C_REG, 22, 0},
 ++	Optab{AMULLW, C_LCON, C_NONE, C_NONE, C_REG, 22, 0},
 ++	Optab{ASUBC, C_REG, C_REG, C_NONE, C_REG, 10, 0},
 ++	Optab{ASUBC, C_REG, C_NONE, C_NONE, C_REG, 10, 0},
 ++	Optab{ASUBC, C_REG, C_NONE, C_ADDCON, C_REG, 27, 0},
 ++	Optab{ASUBC, C_REG, C_NONE, C_LCON, C_REG, 28, 0},
 ++	Optab{AOR, C_REG, C_REG, C_NONE, C_REG, 6, 0}, /* logical, literal not cc (or/xor) */
 ++	Optab{AOR, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
 ++	Optab{AOR, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 0},
 ++	Optab{AOR, C_ANDCON, C_REG, C_NONE, C_REG, 58, 0},
 ++	Optab{AOR, C_UCON, C_NONE, C_NONE, C_REG, 59, 0},
 ++	Optab{AOR, C_UCON, C_REG, C_NONE, C_REG, 59, 0},
 ++	Optab{AOR, C_LCON, C_NONE, C_NONE, C_REG, 23, 0},
 ++	Optab{AOR, C_LCON, C_REG, C_NONE, C_REG, 23, 0},
 ++	Optab{ADIVW, C_REG, C_REG, C_NONE, C_REG, 2, 0}, /* op r1[,r2],r3 */
 ++	Optab{ADIVW, C_REG, C_NONE, C_NONE, C_REG, 2, 0},
 ++	Optab{ASUB, C_REG, C_REG, C_NONE, C_REG, 10, 0}, /* op r2[,r1],r3 */
 ++	Optab{ASUB, C_REG, C_NONE, C_NONE, C_REG, 10, 0},
 ++	Optab{ASLW, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
 ++	Optab{ASLW, C_REG, C_REG, C_NONE, C_REG, 6, 0},
 ++	Optab{ASLD, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
 ++	Optab{ASLD, C_REG, C_REG, C_NONE, C_REG, 6, 0},
 ++	Optab{ASLD, C_SCON, C_REG, C_NONE, C_REG, 25, 0},
 ++	Optab{ASLD, C_SCON, C_NONE, C_NONE, C_REG, 25, 0},
 ++	Optab{ASLW, C_SCON, C_REG, C_NONE, C_REG, 57, 0},
 ++	Optab{ASLW, C_SCON, C_NONE, C_NONE, C_REG, 57, 0},
 ++	Optab{ASRAW, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
 ++	Optab{ASRAW, C_REG, C_REG, C_NONE, C_REG, 6, 0},
 ++	Optab{ASRAW, C_SCON, C_REG, C_NONE, C_REG, 56, 0},
 ++	Optab{ASRAW, C_SCON, C_NONE, C_NONE, C_REG, 56, 0},
 ++	Optab{ASRAD, C_REG, C_NONE, C_NONE, C_REG, 6, 0},
 ++	Optab{ASRAD, C_REG, C_REG, C_NONE, C_REG, 6, 0},
 ++	Optab{ASRAD, C_SCON, C_REG, C_NONE, C_REG, 56, 0},
 ++	Optab{ASRAD, C_SCON, C_NONE, C_NONE, C_REG, 56, 0},
 ++	Optab{ARLWMI, C_SCON, C_REG, C_LCON, C_REG, 62, 0},
 ++	Optab{ARLWMI, C_REG, C_REG, C_LCON, C_REG, 63, 0},
 ++	Optab{ARLDMI, C_SCON, C_REG, C_LCON, C_REG, 30, 0},
 ++	Optab{ARLDC, C_SCON, C_REG, C_LCON, C_REG, 29, 0},
 ++	Optab{ARLDCL, C_SCON, C_REG, C_LCON, C_REG, 29, 0},
 ++	Optab{ARLDCL, C_REG, C_REG, C_LCON, C_REG, 14, 0},
 ++	Optab{ARLDCL, C_REG, C_NONE, C_LCON, C_REG, 14, 0},
 ++	Optab{AFADD, C_FREG, C_NONE, C_NONE, C_FREG, 2, 0},
 ++	Optab{AFADD, C_FREG, C_REG, C_NONE, C_FREG, 2, 0},
 ++	Optab{AFABS, C_FREG, C_NONE, C_NONE, C_FREG, 33, 0},
 ++	Optab{AFABS, C_NONE, C_NONE, C_NONE, C_FREG, 33, 0},
 ++	Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 0},
 ++	Optab{AFMADD, C_FREG, C_REG, C_FREG, C_FREG, 34, 0},
 ++	Optab{AFMUL, C_FREG, C_NONE, C_NONE, C_FREG, 32, 0},
 ++	Optab{AFMUL, C_FREG, C_REG, C_NONE, C_FREG, 32, 0},
 ++	Optab{ACS, C_REG, C_REG, C_NONE, C_SOREG, 79, 0},
 ++	Optab{ACSG, C_REG, C_REG, C_NONE, C_SOREG, 79, 0},
 ++	Optab{ACEFBRA, C_REG, C_NONE, C_NONE, C_FREG, 82, 0},
 ++	Optab{ACFEBRA, C_FREG, C_NONE, C_NONE, C_REG, 83, 0},
 ++	Optab{AMVC, C_SOREG, C_NONE, C_SCON, C_SOREG, 84, 0},
 ++	Optab{ALARL, C_LCON, C_NONE, C_NONE, C_REG, 85, 0},
 ++	Optab{ALA, C_SOREG, C_NONE, C_NONE, C_REG, 86, 0},
 ++	Optab{AEXRL, C_LCON, C_NONE, C_NONE, C_REG, 87, 0},
 ++	Optab{ASTCK, C_NONE, C_NONE, C_NONE, C_SAUTO, 88, REGSP},
 ++	Optab{ASTCK, C_NONE, C_NONE, C_NONE, C_SOREG, 88, 0},
 ++
 ++	/* store, short offset */
 ++	Optab{AMOVD, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
 ++	Optab{AMOVW, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
 ++	Optab{AMOVWZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
 ++	Optab{AMOVBZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
 ++	Optab{AMOVB, C_REG, C_REG, C_NONE, C_ZOREG, 7, REGZERO},
 ++	Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
 ++	Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
 ++	Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
 ++	Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
 ++	Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SAUTO, 7, REGSP},
 ++	Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
 ++	Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
 ++	Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
 ++	Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
 ++	Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SOREG, 7, REGZERO},
 ++
 ++	/* load, short offset */
 ++	Optab{AMOVD, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVW, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVWZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVBZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVB, C_ZOREG, C_REG, C_NONE, C_REG, 9, REGZERO},
 ++	Optab{AMOVD, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
 ++	Optab{AMOVW, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
 ++	Optab{AMOVWZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
 ++	Optab{AMOVBZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, REGSP},
 ++	Optab{AMOVB, C_SAUTO, C_NONE, C_NONE, C_REG, 9, REGSP},
 ++	Optab{AMOVD, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVW, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVWZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVBZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, REGZERO},
 ++	Optab{AMOVB, C_SOREG, C_NONE, C_NONE, C_REG, 9, REGZERO},
 ++
 ++	/* store, long offset */
 ++	Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
 ++	Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
 ++	Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
 ++	Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
 ++	Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LAUTO, 35, REGSP},
 ++	Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
 ++	Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
 ++	Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
 ++	Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
 ++	Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LOREG, 35, REGZERO},
 ++	Optab{AMOVD, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
 ++	Optab{AMOVW, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
 ++	Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
 ++	Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
 ++	Optab{AMOVB, C_REG, C_NONE, C_NONE, C_ADDR, 74, 0},
 ++
 ++	/* load, long offset */
 ++	Optab{AMOVD, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
 ++	Optab{AMOVW, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
 ++	Optab{AMOVWZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
 ++	Optab{AMOVBZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, REGSP},
 ++	Optab{AMOVB, C_LAUTO, C_NONE, C_NONE, C_REG, 37, REGSP},
 ++	Optab{AMOVD, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
 ++	Optab{AMOVW, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
 ++	Optab{AMOVWZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
 ++	Optab{AMOVBZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, REGZERO},
 ++	Optab{AMOVB, C_LOREG, C_NONE, C_NONE, C_REG, 37, REGZERO},
 ++	Optab{AMOVD, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
 ++	Optab{AMOVW, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
 ++	Optab{AMOVWZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
 ++	Optab{AMOVBZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 0},
 ++	Optab{AMOVB, C_ADDR, C_NONE, C_NONE, C_REG, 76, 0},
 ++
 ++	/* store constant */
 ++	Optab{AMOVD, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVW, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVWZ, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVB, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVBZ, C_SCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVD, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVW, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVWZ, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVB, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++	Optab{AMOVBZ, C_ADDCON, C_NONE, C_NONE, C_SOREG, 92, 0},
 ++
 ++	/* load constant */
 ++	Optab{AMOVD, C_SACON, C_NONE, C_NONE, C_REG, 3, REGSP},
 ++	Optab{AMOVD, C_LACON, C_NONE, C_NONE, C_REG, 26, REGSP},
 ++	Optab{AMOVD, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVW, C_SACON, C_NONE, C_NONE, C_REG, 3, REGSP},
 ++	Optab{AMOVW, C_LACON, C_NONE, C_NONE, C_REG, 26, REGSP},
 ++	Optab{AMOVW, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVWZ, C_SACON, C_NONE, C_NONE, C_REG, 3, REGSP},
 ++	Optab{AMOVWZ, C_LACON, C_NONE, C_NONE, C_REG, 26, REGSP},
 ++	Optab{AMOVWZ, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVB, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVBZ, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVB, C_SCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVBZ, C_SCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++
 ++	/* load unsigned/long constants (TODO: check) */
 ++	Optab{AMOVD, C_UCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVD, C_LCON, C_NONE, C_NONE, C_REG, 19, 0},
 ++	Optab{AMOVW, C_UCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVW, C_LCON, C_NONE, C_NONE, C_REG, 19, 0},
 ++	Optab{AMOVWZ, C_UCON, C_NONE, C_NONE, C_REG, 3, 0},
 ++	Optab{AMOVWZ, C_LCON, C_NONE, C_NONE, C_REG, 19, 0},
 ++	Optab{AMOVHBR, C_ZOREG, C_REG, C_NONE, C_REG, 45, 0},
 ++	Optab{AMOVHBR, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 0},
 ++	Optab{AMOVHBR, C_REG, C_REG, C_NONE, C_ZOREG, 44, 0},
 ++	Optab{AMOVHBR, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 0},
 ++
+++	Optab{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},
 ++
 ++	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
 ++		}
 ++		return C_GOK
 ++
 ++	case obj.TYPE_MEM:
 ++		switch a.Name {
 ++		case obj.NAME_EXTERN,
 ++			obj.NAME_STATIC:
- +			if a.Sym != nil { // use relocation
- +				ctxt.Instoffset = a.Offset
- +				return C_ADDR
+++			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
 ++			}
 ++			if s.Type == obj.SCONST {
 ++				ctxt.Instoffset = s.Value + a.Offset
 ++				goto consize
 ++			}
 ++
 ++			ctxt.Instoffset = s.Value + a.Offset
 ++
 ++			/* not sure why this barfs */
 ++			return C_LCON
 ++
 ++		case obj.NAME_AUTO:
 ++			ctxt.Instoffset = int64(ctxt.Autosize) + a.Offset
 ++			if ctxt.Instoffset >= -BIG && ctxt.Instoffset < BIG {
 ++				return C_SACON
 ++			}
 ++			return C_LACON
 ++
 ++		case obj.NAME_PARAM:
 ++			ctxt.Instoffset = int64(ctxt.Autosize) + a.Offset + 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 {
 ++		a2 = C_REG
 ++	}
 ++
 ++	r0 := p.As & obj.AMask
 ++
 ++	o := oprange[r0].start
 ++	if o == nil {
 ++		o = oprange[r0].stop /* just generate an error */
 ++	}
 ++
 ++	e := oprange[r0].stop
 ++	c1 := xcmp[a1][:]
 ++	c3 := xcmp[a3][:]
 ++	c4 := xcmp[a4][:]
 ++	for ; -cap(o) < -cap(e); o = o[1:] {
 ++		if int(o[0].a2) == a2 {
 ++			if c1[o[0].a1] != 0 {
 ++				if c3[o[0].a3] != 0 {
 ++					if c4[o[0].a4] != 0 {
 ++						p.Optab = uint16((-cap(o) + cap(optab)) + 1)
 ++						return &o[0]
 ++					}
 ++				}
 ++			}
 ++		}
 ++	}
 ++
 ++	// cannot find a case; abort
 ++	ctxt.Diag("illegal combination %v %v %v %v %v\n", obj.Aconv(int(p.As)), DRconv(a1), DRconv(a2), DRconv(a3), DRconv(a4))
 ++	ctxt.Diag("prog: %v\n", p)
 ++	return nil
 ++}
 ++
 ++func cmp(a int, b int) bool {
 ++	if a == b {
 ++		return true
 ++	}
 ++	switch a {
 ++	case C_LCON:
 ++		if b == C_ZCON || b == C_SCON || b == C_UCON || b == C_ADDCON || b == C_ANDCON {
 ++			return true
 ++		}
 ++
 ++	case C_ADDCON:
 ++		if b == C_ZCON || b == C_SCON {
 ++			return true
 ++		}
 ++
 ++	case C_ANDCON:
 ++		if b == C_ZCON || b == C_SCON {
 ++			return true
 ++		}
 ++
 ++	case C_UCON:
 ++		if b == C_ZCON {
 ++			return true
 ++		}
 ++
 ++	case C_SCON:
 ++		if b == C_ZCON {
 ++			return true
 ++		}
 ++
 ++	case C_LACON:
 ++		if b == C_SACON {
 ++			return true
 ++		}
 ++
 ++	case C_LBRA:
 ++		if b == C_SBRA {
 ++			return true
 ++		}
 ++
 ++	case C_LAUTO:
 ++		if b == C_SAUTO {
 ++			return true
 ++		}
 ++
 ++	case C_REG:
 ++		if b == C_ZCON {
 ++			return r0iszero != 0 /*TypeKind(100016)*/
 ++		}
 ++
 ++	case C_LOREG:
 ++		if b == C_ZOREG || b == C_SOREG {
 ++			return true
 ++		}
 ++
 ++	case C_SOREG:
 ++		if b == C_ZOREG {
 ++			return true
 ++		}
 ++
 ++	case C_ANY:
 ++		return true
 ++	}
 ++
 ++	return false
 ++}
 ++
 ++type ocmp []Optab
 ++
 ++func (x ocmp) Len() int {
 ++	return len(x)
 ++}
 ++
 ++func (x ocmp) Swap(i, j int) {
 ++	x[i], x[j] = x[j], x[i]
 ++}
 ++
 ++func (x ocmp) Less(i, j int) bool {
 ++	p1 := &x[i]
 ++	p2 := &x[j]
 ++	n := int(p1.as) - int(p2.as)
 ++	if n != 0 {
 ++		return n < 0
 ++	}
 ++	n = int(p1.a1) - int(p2.a1)
 ++	if n != 0 {
 ++		return n < 0
 ++	}
 ++	n = int(p1.a2) - int(p2.a2)
 ++	if n != 0 {
 ++		return n < 0
 ++	}
 ++	n = int(p1.a3) - int(p2.a3)
 ++	if n != 0 {
 ++		return n < 0
 ++	}
 ++	n = int(p1.a4) - int(p2.a4)
 ++	if n != 0 {
 ++		return n < 0
 ++	}
 ++	return false
 ++}
 ++func opset(a, b0 int16) {
 ++	oprange[a&obj.AMask] = oprange[b0]
 ++}
 ++
 ++func buildop(ctxt *obj.Link) {
 ++	var n int
 ++
 ++	for i := 0; i < C_NCLASS; i++ {
 ++		for n = 0; n < C_NCLASS; n++ {
 ++			if cmp(n, i) {
 ++				xcmp[i][n] = 1
 ++			}
 ++		}
 ++	}
 ++	for n = 0; optab[n].as != obj.AXXX; n++ {
 ++	}
 ++	sort.Sort(ocmp(optab[:n]))
 ++	for i := 0; i < n; i++ {
 ++		r := optab[i].as
 ++		r0 := r & obj.AMask
 ++		oprange[r0].start = optab[i:]
 ++		for optab[i].as == r {
 ++			i++
 ++		}
 ++		oprange[r0].stop = optab[i:]
 ++		i--
 ++
 ++		// opset() aliases optab ranges for similar instructions, to reduce the number of optabs in the array.
 ++		// oprange[] is used by oplook() to find the Optab entry that applies to a given Prog.
 ++		switch r {
 ++		default:
 ++			ctxt.Diag("unknown op in build: %v", obj.Aconv(int(r)))
 ++			log.Fatalf("bad code")
 ++
 ++		case AREM:
 ++
 ++		case AREMU:
 ++
 ++		case AREMD:
 ++
 ++		case AREMDU:
 ++
 ++		case ADIVW: /* op Rb[,Ra],Rd */
 ++			opset(AADDE, r0)
 ++			opset(AMULLD, r0)
 ++			opset(AMULHD, r0)
 ++			opset(AMULHDU, r0)
 ++			opset(ADIVD, r0)
 ++			opset(ADIVDU, r0)
 ++
 ++		case AMOVBZ: /* lbz, stz, rlwm(r/r), lhz, lha, stz, and x variants */
 ++			opset(AMOVH, r0)
 ++			opset(AMOVHZ, r0)
 ++
 ++		case ALA:
 ++			opset(ALAY, r0)
 ++
 ++		case ALARL:
 ++
 ++		case AMVC:
 ++			opset(ACLC, r0)
 ++			opset(AXC, r0)
 ++			opset(AOC, r0)
 ++			opset(ANC, r0)
 ++
 ++		case AEXRL:
 ++
 ++		case ASTCK:
 ++			opset(ASTCKC, r0)
 ++			opset(ASTCKE, r0)
 ++			opset(ASTCKF, r0)
 ++
 ++		case AAND: /* logical op Rb,Rs,Ra; no literal */
 ++			opset(AANDN, r0)
 ++			opset(ANAND, r0)
 ++			opset(ANOR, r0)
 ++			opset(AORN, r0)
 ++
 ++		case AADDME: /* op Ra, Rd */
 ++			opset(AADDZE, r0)
 ++			opset(ASUBME, r0)
 ++			opset(ASUBZE, r0)
 ++
 ++		case AADDC:
 ++
 ++		case ABEQ:
 ++			opset(ABGE, r0)
 ++			opset(ABGT, r0)
 ++			opset(ABLE, r0)
 ++			opset(ABLT, r0)
 ++			opset(ABNE, r0)
 ++			opset(ABVC, r0)
 ++			opset(ABVS, r0)
 ++
 ++		case ABR:
 ++			opset(ABL, r0)
 ++
 ++		case ABC:
 ++			opset(ABCL, r0)
 ++
 ++		case AFABS: /* fop [s,]d */
 ++			opset(AFNABS, r0)
 ++			opset(AFNEG, r0)
 ++			opset(AFRSP, r0)
 ++			opset(ALDEBR, r0)
 ++			opset(AFSQRT, r0)
 ++			opset(AFSQRTS, r0)
 ++
 ++		case AFADD:
 ++			opset(AFADDS, r0)
 ++			opset(AFDIV, r0)
 ++			opset(AFDIVS, r0)
 ++			opset(AFSUB, r0)
 ++			opset(AFSUBS, r0)
 ++
 ++		case AFMADD:
 ++			opset(AFMADDS, r0)
 ++			opset(AFMSUB, r0)
 ++			opset(AFMSUBS, r0)
 ++			opset(AFNMADD, r0)
 ++			opset(AFNMADDS, r0)
 ++			opset(AFNMSUB, r0)
 ++			opset(AFNMSUBS, r0)
 ++
 ++		case AFMUL:
 ++			opset(AFMULS, r0)
 ++
 ++		case AFCMPO:
 ++			opset(AFCMPU, r0)
 ++			opset(ACEBR, r0)
 ++
 ++		case ANEG: /* op [Ra,] Rd */
 ++
 ++		case AOR: /* or/xor Rb,Rs,Ra; ori/xori $uimm,Rs,Ra; oris/xoris $uimm,Rs,Ra */
 ++			opset(AXOR, r0)
 ++
 ++		case ASLW:
 ++			opset(ASRW, r0)
 ++
 ++		case ASLD:
 ++			opset(ASRD, r0)
 ++
 ++		case ACS, ACSG:
 ++
 ++		case ASRAW: /* sraw Rb,Rs,Ra; srawi sh,Rs,Ra */
 ++
 ++		case ASRAD: /* sraw Rb,Rs,Ra; srawi sh,Rs,Ra */
 ++
 ++		case ASUB: /* SUB Ra,Rb,Rd => subf Rd,ra,rb */
 ++			opset(ASUBC, r0)
 ++			opset(ASUBE, r0)
 ++
 ++		case ASYNC:
 ++
 ++		case ARLWMI:
 ++			opset(ARLWNM, r0)
 ++
 ++		case ARLDMI:
 ++
 ++		case ARLDC:
 ++
 ++		case ARLDCL:
 ++			opset(ARLDCR, r0)
 ++
 ++		case AFMOVD:
 ++			opset(AFMOVS, r0)
 ++
 ++		case ASYSCALL: /* just the op; flow of control */
 ++
 ++		case AMOVHBR:
 ++			opset(AMOVWBR, r0)
 ++
 ++		case ACMP:
 ++			opset(ACMPW, r0)
 ++
 ++		case ACMPU:
 ++			opset(ACMPWU, r0)
 ++
 ++		case ACEFBRA:
 ++			opset(ACDFBRA, r0)
 ++			opset(ACEGBRA, r0)
 ++			opset(ACDGBRA, r0)
 ++			opset(ACELFBR, r0)
 ++			opset(ACDLFBR, r0)
 ++			opset(ACELGBR, r0)
 ++			opset(ACDLGBR, r0)
 ++
 ++		case ACFEBRA:
 ++			opset(ACFDBRA, r0)
 ++			opset(ACGEBRA, r0)
 ++			opset(ACGDBRA, r0)
 ++			opset(ACLFEBR, r0)
 ++			opset(ACLFDBR, r0)
 ++			opset(ACLGEBR, r0)
 ++			opset(ACLGDBR, r0)
 ++
 ++		case ACMPBEQ:
 ++			opset(ACMPBGE, r0)
 ++			opset(ACMPBGT, r0)
 ++			opset(ACMPBLE, r0)
 ++			opset(ACMPBLT, r0)
 ++			opset(ACMPBNE, r0)
 ++
 ++		case ACMPUBEQ:
 ++			opset(ACMPUBGE, r0)
 ++			opset(ACMPUBGT, r0)
 ++			opset(ACMPUBLE, r0)
 ++			opset(ACMPUBLT, r0)
 ++			opset(ACMPUBNE, r0)
 ++
 ++		case AADD,
 ++			AMOVW,
 ++			/* load/store/move word with sign extension; special 32-bit move; move 32-bit literals */
 ++			AMOVWZ, /* load/store/move word with zero extension; move 32-bit literals  */
 ++			AMOVD,  /* load/store/move 64-bit values, including 32-bit literals with/without sign-extension */
 ++			AMOVB,  /* macro: move byte with sign extension */
 ++			AMULLW,
 ++			/* op $s[,r2],r3; op r1[,r2],r3; no cc/v */
 ++			ASUBC, /* op r1,$s,r3; op r1[,r2],r3 */
 ++			ABYTE,
 ++			AWORD,
 ++			ADWORD,
 ++			obj.ANOP,
 ++			obj.ATEXT,
 ++			obj.AUNDEF,
 ++			obj.AFUNCDATA,
 ++			obj.APCDATA:
 ++			break
 ++		}
 ++	}
 ++}
 ++
 ++const (
 ++	OP_A       uint32 = 0x5A00 // FORMAT_RX1        ADD (32)
 ++	OP_AD      uint32 = 0x6A00 // FORMAT_RX1        ADD NORMALIZED (long HFP)
 ++	OP_ADB     uint32 = 0xED1A // FORMAT_RXE        ADD (long BFP)
 ++	OP_ADBR    uint32 = 0xB31A // FORMAT_RRE        ADD (long BFP)
 ++	OP_ADR     uint32 = 0x2A00 // FORMAT_RR         ADD NORMALIZED (long HFP)
 ++	OP_ADTR    uint32 = 0xB3D2 // FORMAT_RRF1       ADD (long DFP)
 ++	OP_ADTRA   uint32 = 0xB3D2 // FORMAT_RRF1       ADD (long DFP)
 ++	OP_AE      uint32 = 0x7A00 // FORMAT_RX1        ADD NORMALIZED (short HFP)
 ++	OP_AEB     uint32 = 0xED0A // FORMAT_RXE        ADD (short BFP)
 ++	OP_AEBR    uint32 = 0xB30A // FORMAT_RRE        ADD (short BFP)
 ++	OP_AER     uint32 = 0x3A00 // FORMAT_RR         ADD NORMALIZED (short HFP)
 ++	OP_AFI     uint32 = 0xC209 // FORMAT_RIL1       ADD IMMEDIATE (32)
 ++	OP_AG      uint32 = 0xE308 // FORMAT_RXY1       ADD (64)
 ++	OP_AGF     uint32 = 0xE318 // FORMAT_RXY1       ADD (64<-32)
 ++	OP_AGFI    uint32 = 0xC208 // FORMAT_RIL1       ADD IMMEDIATE (64<-32)
 ++	OP_AGFR    uint32 = 0xB918 // FORMAT_RRE        ADD (64<-32)
 ++	OP_AGHI    uint32 = 0xA70B // FORMAT_RI1        ADD HALFWORD IMMEDIATE (64)
 ++	OP_AGHIK   uint32 = 0xECD9 // FORMAT_RIE4       ADD IMMEDIATE (64<-16)
 ++	OP_AGR     uint32 = 0xB908 // FORMAT_RRE        ADD (64)
 ++	OP_AGRK    uint32 = 0xB9E8 // FORMAT_RRF1       ADD (64)
 ++	OP_AGSI    uint32 = 0xEB7A // FORMAT_SIY        ADD IMMEDIATE (64<-8)
 ++	OP_AH      uint32 = 0x4A00 // FORMAT_RX1        ADD HALFWORD
 ++	OP_AHHHR   uint32 = 0xB9C8 // FORMAT_RRF1       ADD HIGH (32)
 ++	OP_AHHLR   uint32 = 0xB9D8 // FORMAT_RRF1       ADD HIGH (32)
 ++	OP_AHI     uint32 = 0xA70A // FORMAT_RI1        ADD HALFWORD IMMEDIATE (32)
 ++	OP_AHIK    uint32 = 0xECD8 // FORMAT_RIE4       ADD IMMEDIATE (32<-16)
 ++	OP_AHY     uint32 = 0xE37A // FORMAT_RXY1       ADD HALFWORD
 ++	OP_AIH     uint32 = 0xCC08 // FORMAT_RIL1       ADD IMMEDIATE HIGH (32)
 ++	OP_AL      uint32 = 0x5E00 // FORMAT_RX1        ADD LOGICAL (32)
 ++	OP_ALC     uint32 = 0xE398 // FORMAT_RXY1       ADD LOGICAL WITH CARRY (32)
 ++	OP_ALCG    uint32 = 0xE388 // FORMAT_RXY1       ADD LOGICAL WITH CARRY (64)
 ++	OP_ALCGR   uint32 = 0xB988 // FORMAT_RRE        ADD LOGICAL WITH CARRY (64)
 ++	OP_ALCR    uint32 = 0xB998 // FORMAT_RRE        ADD LOGICAL WITH CARRY (32)
 ++	OP_ALFI    uint32 = 0xC20B // FORMAT_RIL1       ADD LOGICAL IMMEDIATE (32)
 ++	OP_ALG     uint32 = 0xE30A // FORMAT_RXY1       ADD LOGICAL (64)
 ++	OP_ALGF    uint32 = 0xE31A // FORMAT_RXY1       ADD LOGICAL (64<-32)
 ++	OP_ALGFI   uint32 = 0xC20A // FORMAT_RIL1       ADD LOGICAL IMMEDIATE (64<-32)
 ++	OP_ALGFR   uint32 = 0xB91A // FORMAT_RRE        ADD LOGICAL (64<-32)
 ++	OP_ALGHSIK uint32 = 0xECDB // FORMAT_RIE4       ADD LOGICAL WITH SIGNED IMMEDIATE (64<-16)
 ++	OP_ALGR    uint32 = 0xB90A // FORMAT_RRE        ADD LOGICAL (64)
 ++	OP_ALGRK   uint32 = 0xB9EA // FORMAT_RRF1       ADD LOGICAL (64)
 ++	OP_ALGSI   uint32 = 0xEB7E // FORMAT_SIY        ADD LOGICAL WITH SIGNED IMMEDIATE (64<-8)
 ++	OP_ALHHHR  uint32 = 0xB9CA // FORMAT_RRF1       ADD LOGICAL HIGH (32)
 ++	OP_ALHHLR  uint32 = 0xB9DA // FORMAT_RRF1       ADD LOGICAL HIGH (32)
 ++	OP_ALHSIK  uint32 = 0xECDA // FORMAT_RIE4       ADD LOGICAL WITH SIGNED IMMEDIATE (32<-16)
 ++	OP_ALR     uint32 = 0x1E00 // FORMAT_RR         ADD LOGICAL (32)
 ++	OP_ALRK    uint32 = 0xB9FA // FORMAT_RRF1       ADD LOGICAL (32)
 ++	OP_ALSI    uint32 = 0xEB6E // FORMAT_SIY        ADD LOGICAL WITH SIGNED IMMEDIATE (32<-8)
 ++	OP_ALSIH   uint32 = 0xCC0A // FORMAT_RIL1       ADD LOGICAL WITH SIGNED IMMEDIATE HIGH (32)
 ++	OP_ALSIHN  uint32 = 0xCC0B // FORMAT_RIL1       ADD LOGICAL WITH SIGNED IMMEDIATE HIGH (32)
 ++	OP_ALY     uint32 = 0xE35E // FORMAT_RXY1       ADD LOGICAL (32)
 ++	OP_AP      uint32 = 0xFA00 // FORMAT_SS2        ADD DECIMAL
 ++	OP_AR      uint32 = 0x1A00 // FORMAT_RR         ADD (32)
 ++	OP_ARK     uint32 = 0xB9F8 // FORMAT_RRF1       ADD (32)
 ++	OP_ASI     uint32 = 0xEB6A // FORMAT_SIY        ADD IMMEDIATE (32<-8)
 ++	OP_AU      uint32 = 0x7E00 // FORMAT_RX1        ADD UNNORMALIZED (short HFP)
 ++	OP_AUR     uint32 = 0x3E00 // FORMAT_RR         ADD UNNORMALIZED (short HFP)
 ++	OP_AW      uint32 = 0x6E00 // FORMAT_RX1        ADD UNNORMALIZED (long HFP)
 ++	OP_AWR     uint32 = 0x2E00 // FORMAT_RR         ADD UNNORMALIZED (long HFP)
 ++	OP_AXBR    uint32 = 0xB34A // FORMAT_RRE        ADD (extended BFP)
 ++	OP_AXR     uint32 = 0x3600 // FORMAT_RR         ADD NORMALIZED (extended HFP)
 ++	OP_AXTR    uint32 = 0xB3DA // FORMAT_RRF1       ADD (extended DFP)
 ++	OP_AXTRA   uint32 = 0xB3DA // FORMAT_RRF1       ADD (extended DFP)
 ++	OP_AY      uint32 = 0xE35A // FORMAT_RXY1       ADD (32)
 ++	OP_BAKR    uint32 = 0xB240 // FORMAT_RRE        BRANCH AND STACK
 ++	OP_BAL     uint32 = 0x4500 // FORMAT_RX1        BRANCH AND LINK
 ++	OP_BALR    uint32 = 0x0500 // FORMAT_RR         BRANCH AND LINK
 ++	OP_BAS     uint32 = 0x4D00 // FORMAT_RX1        BRANCH AND SAVE
 ++	OP_BASR    uint32 = 0x0D00 // FORMAT_RR         BRANCH AND SAVE
 ++	OP_BASSM   uint32 = 0x0C00 // FORMAT_RR         BRANCH AND SAVE AND SET MODE
 ++	OP_BC      uint32 = 0x4700 // FORMAT_RX2        BRANCH ON CONDITION
 ++	OP_BCR     uint32 = 0x0700 // FORMAT_RR         BRANCH ON CONDITION
 ++	OP_BCT     uint32 = 0x4600 // FORMAT_RX1        BRANCH ON COUNT (32)
 ++	OP_BCTG    uint32 = 0xE346 // FORMAT_RXY1       BRANCH ON COUNT (64)
 ++	OP_BCTGR   uint32 = 0xB946 // FORMAT_RRE        BRANCH ON COUNT (64)
 ++	OP_BCTR    uint32 = 0x0600 // FORMAT_RR         BRANCH ON COUNT (32)
 ++	OP_BPP     uint32 = 0xC700 // FORMAT_SMI        BRANCH PREDICTION PRELOAD
 ++	OP_BPRP    uint32 = 0xC500 // FORMAT_MII        BRANCH PREDICTION RELATIVE PRELOAD
 ++	OP_BRAS    uint32 = 0xA705 // FORMAT_RI2        BRANCH RELATIVE AND SAVE
 ++	OP_BRASL   uint32 = 0xC005 // FORMAT_RIL2       BRANCH RELATIVE AND SAVE LONG
 ++	OP_BRC     uint32 = 0xA704 // FORMAT_RI3        BRANCH RELATIVE ON CONDITION
 ++	OP_BRCL    uint32 = 0xC004 // FORMAT_RIL3       BRANCH RELATIVE ON CONDITION LONG
 ++	OP_BRCT    uint32 = 0xA706 // FORMAT_RI2        BRANCH RELATIVE ON COUNT (32)
 ++	OP_BRCTG   uint32 = 0xA707 // FORMAT_RI2        BRANCH RELATIVE ON COUNT (64)
 ++	OP_BRCTH   uint32 = 0xCC06 // FORMAT_RIL2       BRANCH RELATIVE ON COUNT HIGH (32)
 ++	OP_BRXH    uint32 = 0x8400 // FORMAT_RSI        BRANCH RELATIVE ON INDEX HIGH (32)
 ++	OP_BRXHG   uint32 = 0xEC44 // FORMAT_RIE5       BRANCH RELATIVE ON INDEX HIGH (64)
 ++	OP_BRXLE   uint32 = 0x8500 // FORMAT_RSI        BRANCH RELATIVE ON INDEX LOW OR EQ. (32)
 ++	OP_BRXLG   uint32 = 0xEC45 // FORMAT_RIE5       BRANCH RELATIVE ON INDEX LOW OR EQ. (64)
 ++	OP_BSA     uint32 = 0xB25A // FORMAT_RRE        BRANCH AND SET AUTHORITY
 ++	OP_BSG     uint32 = 0xB258 // FORMAT_RRE        BRANCH IN SUBSPACE GROUP
 ++	OP_BSM     uint32 = 0x0B00 // FORMAT_RR         BRANCH AND SET MODE
 ++	OP_BXH     uint32 = 0x8600 // FORMAT_RS1        BRANCH ON INDEX HIGH (32)
 ++	OP_BXHG    uint32 = 0xEB44 // FORMAT_RSY1       BRANCH ON INDEX HIGH (64)
 ++	OP_BXLE    uint32 = 0x8700 // FORMAT_RS1        BRANCH ON INDEX LOW OR EQUAL (32)
 ++	OP_BXLEG   uint32 = 0xEB45 // FORMAT_RSY1       BRANCH ON INDEX LOW OR EQUAL (64)
 ++	OP_C       uint32 = 0x5900 // FORMAT_RX1        COMPARE (32)
 ++	OP_CD      uint32 = 0x6900 // FORMAT_RX1        COMPARE (long HFP)
 ++	OP_CDB     uint32 = 0xED19 // FORMAT_RXE        COMPARE (long BFP)
 ++	OP_CDBR    uint32 = 0xB319 // FORMAT_RRE        COMPARE (long BFP)
 ++	OP_CDFBR   uint32 = 0xB395 // FORMAT_RRE        CONVERT FROM FIXED (32 to long BFP)
 ++	OP_CDFBRA  uint32 = 0xB395 // FORMAT_RRF5       CONVERT FROM FIXED (32 to long BFP)
 ++	OP_CDFR    uint32 = 0xB3B5 // FORMAT_RRE        CONVERT FROM FIXED (32 to long HFP)
 ++	OP_CDFTR   uint32 = 0xB951 // FORMAT_RRE        CONVERT FROM FIXED (32 to long DFP)
 ++	OP_CDGBR   uint32 = 0xB3A5 // FORMAT_RRE        CONVERT FROM FIXED (64 to long BFP)
 ++	OP_CDGBRA  uint32 = 0xB3A5 // FORMAT_RRF5       CONVERT FROM FIXED (64 to long BFP)
 ++	OP_CDGR    uint32 = 0xB3C5 // FORMAT_RRE        CONVERT FROM FIXED (64 to long HFP)
 ++	OP_CDGTR   uint32 = 0xB3F1 // FORMAT_RRE        CONVERT FROM FIXED (64 to long DFP)
 ++	OP_CDGTRA  uint32 = 0xB3F1 // FORMAT_RRF5       CONVERT FROM FIXED (64 to long DFP)
 ++	OP_CDLFBR  uint32 = 0xB391 // FORMAT_RRF5       CONVERT FROM LOGICAL (32 to long BFP)
 ++	OP_CDLFTR  uint32 = 0xB953 // FORMAT_RRF5       CONVERT FROM LOGICAL (32 to long DFP)
 ++	OP_CDLGBR  uint32 = 0xB3A1 // FORMAT_RRF5       CONVERT FROM LOGICAL (64 to long BFP)
 ++	OP_CDLGTR  uint32 = 0xB952 // FORMAT_RRF5       CONVERT FROM LOGICAL (64 to long DFP)
 ++	OP_CDR     uint32 = 0x2900 // FORMAT_RR         COMPARE (long HFP)
 ++	OP_CDS     uint32 = 0xBB00 // FORMAT_RS1        COMPARE DOUBLE AND SWAP (32)
 ++	OP_CDSG    uint32 = 0xEB3E // FORMAT_RSY1       COMPARE DOUBLE AND SWAP (64)
 ++	OP_CDSTR   uint32 = 0xB3F3 // FORMAT_RRE        CONVERT FROM SIGNED PACKED (64 to long DFP)
 ++	OP_CDSY    uint32 = 0xEB31 // FORMAT_RSY1       COMPARE DOUBLE AND SWAP (32)
 ++	OP_CDTR    uint32 = 0xB3E4 // FORMAT_RRE        COMPARE (long DFP)
 ++	OP_CDUTR   uint32 = 0xB3F2 // FORMAT_RRE        CONVERT FROM UNSIGNED PACKED (64 to long DFP)
 ++	OP_CDZT    uint32 = 0xEDAA // FORMAT_RSL        CONVERT FROM ZONED (to long DFP)
 ++	OP_CE      uint32 = 0x7900 // FORMAT_RX1        COMPARE (short HFP)
 ++	OP_CEB     uint32 = 0xED09 // FORMAT_RXE        COMPARE (short BFP)
 ++	OP_CEBR    uint32 = 0xB309 // FORMAT_RRE        COMPARE (short BFP)
 ++	OP_CEDTR   uint32 = 0xB3F4 // FORMAT_RRE        COMPARE BIASED EXPONENT (long DFP)
 ++	OP_CEFBR   uint32 = 0xB394 // FORMAT_RRE        CONVERT FROM FIXED (32 to short BFP)
 ++	OP_CEFBRA  uint32 = 0xB394 // FORMAT_RRF5       CONVERT FROM FIXED (32 to short BFP)
 ++	OP_CEFR    uint32 = 0xB3B4 // FORMAT_RRE        CONVERT FROM FIXED (32 to short HFP)
 ++	OP_CEGBR   uint32 = 0xB3A4 // FORMAT_RRE        CONVERT FROM FIXED (64 to short BFP)
 ++	OP_CEGBRA  uint32 = 0xB3A4 // FORMAT_RRF5       CONVERT FROM FIXED (64 to short BFP)
 ++	OP_CEGR    uint32 = 0xB3C4 // FORMAT_RRE        CONVERT FROM FIXED (64 to short HFP)
 ++	OP_CELFBR  uint32 = 0xB390 // FORMAT_RRF5       CONVERT FROM LOGICAL (32 to short BFP)
 ++	OP_CELGBR  uint32 = 0xB3A0 // FORMAT_RRF5       CONVERT FROM LOGICAL (64 to short BFP)
 ++	OP_CER     uint32 = 0x3900 // FORMAT_RR         COMPARE (short HFP)
 ++	OP_CEXTR   uint32 = 0xB3FC // FORMAT_RRE        COMPARE BIASED EXPONENT (extended DFP)
 ++	OP_CFC     uint32 = 0xB21A // FORMAT_S          COMPARE AND FORM CODEWORD
 ++	OP_CFDBR   uint32 = 0xB399 // FORMAT_RRF5       CONVERT TO FIXED (long BFP to 32)
 ++	OP_CFDBRA  uint32 = 0xB399 // FORMAT_RRF5       CONVERT TO FIXED (long BFP to 32)
 ++	OP_CFDR    uint32 = 0xB3B9 // FORMAT_RRF5       CONVERT TO FIXED (long HFP to 32)
 ++	OP_CFDTR   uint32 = 0xB941 // FORMAT_RRF5       CONVERT TO FIXED (long DFP to 32)
 ++	OP_CFEBR   uint32 = 0xB398 // FORMAT_RRF5       CONVERT TO FIXED (short BFP to 32)
 ++	OP_CFEBRA  uint32 = 0xB398 // FORMAT_RRF5       CONVERT TO FIXED (short BFP to 32)
 ++	OP_CFER    uint32 = 0xB3B8 // FORMAT_RRF5       CONVERT TO FIXED (short HFP to 32)
 ++	OP_CFI     uint32 = 0xC20D // FORMAT_RIL1       COMPARE IMMEDIATE (32)
 ++	OP_CFXBR   uint32 = 0xB39A // FORMAT_RRF5       CONVERT TO FIXED (extended BFP to 32)
 ++	OP_CFXBRA  uint32 = 0xB39A // FORMAT_RRF5       CONVERT TO FIXED (extended BFP to 32)
 ++	OP_CFXR    uint32 = 0xB3BA // FORMAT_RRF5       CONVERT TO FIXED (extended HFP to 32)
 ++	OP_CFXTR   uint32 = 0xB949 // FORMAT_RRF5       CONVERT TO FIXED (extended DFP to 32)
 ++	OP_CG      uint32 = 0xE320 // FORMAT_RXY1       COMPARE (64)
 ++	OP_CGDBR   uint32 = 0xB3A9 // FORMAT_RRF5       CONVERT TO FIXED (long BFP to 64)
 ++	OP_CGDBRA  uint32 = 0xB3A9 // FORMAT_RRF5       CONVERT TO FIXED (long BFP to 64)
 ++	OP_CGDR    uint32 = 0xB3C9 // FORMAT_RRF5       CONVERT TO FIXED (long HFP to 64)
 ++	OP_CGDTR   uint32 = 0xB3E1 // FORMAT_RRF5       CONVERT TO FIXED (long DFP to 64)
 ++	OP_CGDTRA  uint32 = 0xB3E1 // FORMAT_RRF5       CONVERT TO FIXED (long DFP to 64)
 ++	OP_CGEBR   uint32 = 0xB3A8 // FORMAT_RRF5       CONVERT TO FIXED (short BFP to 64)
 ++	OP_CGEBRA  uint32 = 0xB3A8 // FORMAT_RRF5       CONVERT TO FIXED (short BFP to 64)
 ++	OP_CGER    uint32 = 0xB3C8 // FORMAT_RRF5       CONVERT TO FIXED (short HFP to 64)
 ++	OP_CGF     uint32 = 0xE330 // FORMAT_RXY1       COMPARE (64<-32)
 ++	OP_CGFI    uint32 = 0xC20C // FORMAT_RIL1       COMPARE IMMEDIATE (64<-32)
 ++	OP_CGFR    uint32 = 0xB930 // FORMAT_RRE        COMPARE (64<-32)
 ++	OP_CGFRL   uint32 = 0xC60C // FORMAT_RIL2       COMPARE RELATIVE LONG (64<-32)
 ++	OP_CGH     uint32 = 0xE334 // FORMAT_RXY1       COMPARE HALFWORD (64<-16)
 ++	OP_CGHI    uint32 = 0xA70F // FORMAT_RI1        COMPARE HALFWORD IMMEDIATE (64<-16)
 ++	OP_CGHRL   uint32 = 0xC604 // FORMAT_RIL2       COMPARE HALFWORD RELATIVE LONG (64<-16)
 ++	OP_CGHSI   uint32 = 0xE558 // FORMAT_SIL        COMPARE HALFWORD IMMEDIATE (64<-16)
 ++	OP_CGIB    uint32 = 0xECFC // FORMAT_RIS        COMPARE IMMEDIATE AND BRANCH (64<-8)
 ++	OP_CGIJ    uint32 = 0xEC7C // FORMAT_RIE3       COMPARE IMMEDIATE AND BRANCH RELATIVE (64<-8)
 ++	OP_CGIT    uint32 = 0xEC70 // FORMAT_RIE1       COMPARE IMMEDIATE AND TRAP (64<-16)
 ++	OP_CGR     uint32 = 0xB920 // FORMAT_RRE        COMPARE (64)
 ++	OP_CGRB    uint32 = 0xECE4 // FORMAT_RRS        COMPARE AND BRANCH (64)
 ++	OP_CGRJ    uint32 = 0xEC64 // FORMAT_RIE2       COMPARE AND BRANCH RELATIVE (64)
 ++	OP_CGRL    uint32 = 0xC608 // FORMAT_RIL2       COMPARE RELATIVE LONG (64)
 ++	OP_CGRT    uint32 = 0xB960 // FORMAT_RRF3       COMPARE AND TRAP (64)
 ++	OP_CGXBR   uint32 = 0xB3AA // FORMAT_RRF5       CONVERT TO FIXED (extended BFP to 64)
 ++	OP_CGXBRA  uint32 = 0xB3AA // FORMAT_RRF5       CONVERT TO FIXED (extended BFP to 64)
 ++	OP_CGXR    uint32 = 0xB3CA // FORMAT_RRF5       CONVERT TO FIXED (extended HFP to 64)
 ++	OP_CGXTR   uint32 = 0xB3E9 // FORMAT_RRF5       CONVERT TO FIXED (extended DFP to 64)
 ++	OP_CGXTRA  uint32 = 0xB3E9 // FORMAT_RRF5       CONVERT TO FIXED (extended DFP to 64)
 ++	OP_CH      uint32 = 0x4900 // FORMAT_RX1        COMPARE HALFWORD (32<-16)
 ++	OP_CHF     uint32 = 0xE3CD // FORMAT_RXY1       COMPARE HIGH (32)
 ++	OP_CHHR    uint32 = 0xB9CD // FORMAT_RRE        COMPARE HIGH (32)
 ++	OP_CHHSI   uint32 = 0xE554 // FORMAT_SIL        COMPARE HALFWORD IMMEDIATE (16)
 ++	OP_CHI     uint32 = 0xA70E // FORMAT_RI1        COMPARE HALFWORD IMMEDIATE (32<-16)
 ++	OP_CHLR    uint32 = 0xB9DD // FORMAT_RRE        COMPARE HIGH (32)
 ++	OP_CHRL    uint32 = 0xC605 // FORMAT_RIL2       COMPARE HALFWORD RELATIVE LONG (32<-16)
 ++	OP_CHSI    uint32 = 0xE55C // FORMAT_SIL        COMPARE HALFWORD IMMEDIATE (32<-16)
 ++	OP_CHY     uint32 = 0xE379 // FORMAT_RXY1       COMPARE HALFWORD (32<-16)
 ++	OP_CIB     uint32 = 0xECFE // FORMAT_RIS        COMPARE IMMEDIATE AND BRANCH (32<-8)
 ++	OP_CIH     uint32 = 0xCC0D // FORMAT_RIL1       COMPARE IMMEDIATE HIGH (32)
 ++	OP_CIJ     uint32 = 0xEC7E // FORMAT_RIE3       COMPARE IMMEDIATE AND BRANCH RELATIVE (32<-8)
 ++	OP_CIT     uint32 = 0xEC72 // FORMAT_RIE1       COMPARE IMMEDIATE AND TRAP (32<-16)
 ++	OP_CKSM    uint32 = 0xB241 // FORMAT_RRE        CHECKSUM
 ++	OP_CL      uint32 = 0x5500 // FORMAT_RX1        COMPARE LOGICAL (32)
 ++	OP_CLC     uint32 = 0xD500 // FORMAT_SS1        COMPARE LOGICAL (character)
 ++	OP_CLCL    uint32 = 0x0F00 // FORMAT_RR         COMPARE LOGICAL LONG
 ++	OP_CLCLE   uint32 = 0xA900 // FORMAT_RS1        COMPARE LOGICAL LONG EXTENDED
 ++	OP_CLCLU   uint32 = 0xEB8F // FORMAT_RSY1       COMPARE LOGICAL LONG UNICODE
 ++	OP_CLFDBR  uint32 = 0xB39D // FORMAT_RRF5       CONVERT TO LOGICAL (long BFP to 32)
 ++	OP_CLFDTR  uint32 = 0xB943 // FORMAT_RRF5       CONVERT TO LOGICAL (long DFP to 32)
 ++	OP_CLFEBR  uint32 = 0xB39C // FORMAT_RRF5       CONVERT TO LOGICAL (short BFP to 32)
 ++	OP_CLFHSI  uint32 = 0xE55D // FORMAT_SIL        COMPARE LOGICAL IMMEDIATE (32<-16)
 ++	OP_CLFI    uint32 = 0xC20F // FORMAT_RIL1       COMPARE LOGICAL IMMEDIATE (32)
 ++	OP_CLFIT   uint32 = 0xEC73 // FORMAT_RIE1       COMPARE LOGICAL IMMEDIATE AND TRAP (32<-16)
 ++	OP_CLFXBR  uint32 = 0xB39E // FORMAT_RRF5       CONVERT TO LOGICAL (extended BFP to 32)
 ++	OP_CLFXTR  uint32 = 0xB94B // FORMAT_RRF5       CONVERT TO LOGICAL (extended DFP to 32)
 ++	OP_CLG     uint32 = 0xE321 // FORMAT_RXY1       COMPARE LOGICAL (64)
 ++	OP_CLGDBR  uint32 = 0xB3AD // FORMAT_RRF5       CONVERT TO LOGICAL (long BFP to 64)
 ++	OP_CLGDTR  uint32 = 0xB942 // FORMAT_RRF5       CONVERT TO LOGICAL (long DFP to 64)
 ++	OP_CLGEBR  uint32 = 0xB3AC // FORMAT_RRF5       CONVERT TO LOGICAL (short BFP to 64)
 ++	OP_CLGF    uint32 = 0xE331 // FORMAT_RXY1       COMPARE LOGICAL (64<-32)
 ++	OP_CLGFI   uint32 = 0xC20E // FORMAT_RIL1       COMPARE LOGICAL IMMEDIATE (64<-32)
 ++	OP_CLGFR   uint32 = 0xB931 // FORMAT_RRE        COMPARE LOGICAL (64<-32)
 ++	OP_CLGFRL  uint32 = 0xC60E // FORMAT_RIL2       COMPARE LOGICAL RELATIVE LONG (64<-32)
 ++	OP_CLGHRL  uint32 = 0xC606 // FORMAT_RIL2       COMPARE LOGICAL RELATIVE LONG (64<-16)
 ++	OP_CLGHSI  uint32 = 0xE559 // FORMAT_SIL        COMPARE LOGICAL IMMEDIATE (64<-16)
 ++	OP_CLGIB   uint32 = 0xECFD // FORMAT_RIS        COMPARE LOGICAL IMMEDIATE AND BRANCH (64<-8)
 ++	OP_CLGIJ   uint32 = 0xEC7D // FORMAT_RIE3       COMPARE LOGICAL IMMEDIATE AND BRANCH RELATIVE (64<-8)
 ++	OP_CLGIT   uint32 = 0xEC71 // FORMAT_RIE1       COMPARE LOGICAL IMMEDIATE AND TRAP (64<-16)
 ++	OP_CLGR    uint32 = 0xB921 // FORMAT_RRE        COMPARE LOGICAL (64)
 ++	OP_CLGRB   uint32 = 0xECE5 // FORMAT_RRS        COMPARE LOGICAL AND BRANCH (64)
 ++	OP_CLGRJ   uint32 = 0xEC65 // FORMAT_RIE2       COMPARE LOGICAL AND BRANCH RELATIVE (64)
 ++	OP_CLGRL   uint32 = 0xC60A // FORMAT_RIL2       COMPARE LOGICAL RELATIVE LONG (64)
 ++	OP_CLGRT   uint32 = 0xB961 // FORMAT_RRF3       COMPARE LOGICAL AND TRAP (64)
 ++	OP_CLGT    uint32 = 0xEB2B // FORMAT_RSY2       COMPARE LOGICAL AND TRAP (64)
 ++	OP_CLGXBR  uint32 = 0xB3AE // FORMAT_RRF5       CONVERT TO LOGICAL (extended BFP to 64)
 ++	OP_CLGXTR  uint32 = 0xB94A // FORMAT_RRF5       CONVERT TO LOGICAL (extended DFP to 64)
 ++	OP_CLHF    uint32 = 0xE3CF // FORMAT_RXY1       COMPARE LOGICAL HIGH (32)
 ++	OP_CLHHR   uint32 = 0xB9CF // FORMAT_RRE        COMPARE LOGICAL HIGH (32)
 ++	OP_CLHHSI  uint32 = 0xE555 // FORMAT_SIL        COMPARE LOGICAL IMMEDIATE (16)
 ++	OP_CLHLR   uint32 = 0xB9DF // FORMAT_RRE        COMPARE LOGICAL HIGH (32)
 ++	OP_CLHRL   uint32 = 0xC607 // FORMAT_RIL2       COMPARE LOGICAL RELATIVE LONG (32<-16)
 ++	OP_CLI     uint32 = 0x9500 // FORMAT_SI         COMPARE LOGICAL (immediate)
 ++	OP_CLIB    uint32 = 0xECFF // FORMAT_RIS        COMPARE LOGICAL IMMEDIATE AND BRANCH (32<-8)
 ++	OP_CLIH    uint32 = 0xCC0F // FORMAT_RIL1       COMPARE LOGICAL IMMEDIATE HIGH (32)
 ++	OP_CLIJ    uint32 = 0xEC7F // FORMAT_RIE3       COMPARE LOGICAL IMMEDIATE AND BRANCH RELATIVE (32<-8)
 ++	OP_CLIY    uint32 = 0xEB55 // FORMAT_SIY        COMPARE LOGICAL (immediate)
 ++	OP_CLM     uint32 = 0xBD00 // FORMAT_RS2        COMPARE LOGICAL CHAR. UNDER MASK (low)
 ++	OP_CLMH    uint32 = 0xEB20 // FORMAT_RSY2       COMPARE LOGICAL CHAR. UNDER MASK (high)
 ++	OP_CLMY    uint32 = 0xEB21 // FORMAT_RSY2       COMPARE LOGICAL CHAR. UNDER MASK (low)
 ++	OP_CLR     uint32 = 0x1500 // FORMAT_RR         COMPARE LOGICAL (32)
 ++	OP_CLRB    uint32 = 0xECF7 // FORMAT_RRS        COMPARE LOGICAL AND BRANCH (32)
 ++	OP_CLRJ    uint32 = 0xEC77 // FORMAT_RIE2       COMPARE LOGICAL AND BRANCH RELATIVE (32)
 ++	OP_CLRL    uint32 = 0xC60F // FORMAT_RIL2       COMPARE LOGICAL RELATIVE LONG (32)
 ++	OP_CLRT    uint32 = 0xB973 // FORMAT_RRF3       COMPARE LOGICAL AND TRAP (32)
 ++	OP_CLST    uint32 = 0xB25D // FORMAT_RRE        COMPARE LOGICAL STRING
 ++	OP_CLT     uint32 = 0xEB23 // FORMAT_RSY2       COMPARE LOGICAL AND TRAP (32)
 ++	OP_CLY     uint32 = 0xE355 // FORMAT_RXY1       COMPARE LOGICAL (32)
 ++	OP_CMPSC   uint32 = 0xB263 // FORMAT_RRE        COMPRESSION CALL
 ++	OP_CP      uint32 = 0xF900 // FORMAT_SS2        COMPARE DECIMAL
 ++	OP_CPSDR   uint32 = 0xB372 // FORMAT_RRF2       COPY SIGN (long)
 ++	OP_CPYA    uint32 = 0xB24D // FORMAT_RRE        COPY ACCESS
 ++	OP_CR      uint32 = 0x1900 // FORMAT_RR         COMPARE (32)
 ++	OP_CRB     uint32 = 0xECF6 // FORMAT_RRS        COMPARE AND BRANCH (32)
 ++	OP_CRDTE   uint32 = 0xB98F // FORMAT_RRF2       COMPARE AND REPLACE DAT TABLE ENTRY
 ++	OP_CRJ     uint32 = 0xEC76 // FORMAT_RIE2       COMPARE AND BRANCH RELATIVE (32)
 ++	OP_CRL     uint32 = 0xC60D // FORMAT_RIL2       COMPARE RELATIVE LONG (32)
 ++	OP_CRT     uint32 = 0xB972 // FORMAT_RRF3       COMPARE AND TRAP (32)
 ++	OP_CS      uint32 = 0xBA00 // FORMAT_RS1        COMPARE AND SWAP (32)
 ++	OP_CSCH    uint32 = 0xB230 // FORMAT_S          CLEAR SUBCHANNEL
 ++	OP_CSDTR   uint32 = 0xB3E3 // FORMAT_RRF4       CONVERT TO SIGNED PACKED (long DFP to 64)
 ++	OP_CSG     uint32 = 0xEB30 // FORMAT_RSY1       COMPARE AND SWAP (64)
 ++	OP_CSP     uint32 = 0xB250 // FORMAT_RRE        COMPARE AND SWAP AND PURGE
 ++	OP_CSPG    uint32 = 0xB98A // FORMAT_RRE        COMPARE AND SWAP AND PURGE
 ++	OP_CSST    uint32 = 0xC802 // FORMAT_SSF        COMPARE AND SWAP AND STORE
 ++	OP_CSXTR   uint32 = 0xB3EB // FORMAT_RRF4       CONVERT TO SIGNED PACKED (extended DFP to 128)
 ++	OP_CSY     uint32 = 0xEB14 // FORMAT_RSY1       COMPARE AND SWAP (32)
 ++	OP_CU12    uint32 = 0xB2A7 // FORMAT_RRF3       CONVERT UTF-8 TO UTF-16
 ++	OP_CU14    uint32 = 0xB9B0 // FORMAT_RRF3       CONVERT UTF-8 TO UTF-32
 ++	OP_CU21    uint32 = 0xB2A6 // FORMAT_RRF3       CONVERT UTF-16 TO UTF-8
 ++	OP_CU24    uint32 = 0xB9B1 // FORMAT_RRF3       CONVERT UTF-16 TO UTF-32
 ++	OP_CU41    uint32 = 0xB9B2 // FORMAT_RRE        CONVERT UTF-32 TO UTF-8
 ++	OP_CU42    uint32 = 0xB9B3 // FORMAT_RRE        CONVERT UTF-32 TO UTF-16
 ++	OP_CUDTR   uint32 = 0xB3E2 // FORMAT_RRE        CONVERT TO UNSIGNED PACKED (long DFP to 64)
 ++	OP_CUSE    uint32 = 0xB257 // FORMAT_RRE        COMPARE UNTIL SUBSTRING EQUAL
 ++	OP_CUTFU   uint32 = 0xB2A7 // FORMAT_RRF3       CONVERT UTF-8 TO UNICODE
 ++	OP_CUUTF   uint32 = 0xB2A6 // FORMAT_RRF3       CONVERT UNICODE TO UTF-8
 ++	OP_CUXTR   uint32 = 0xB3EA // FORMAT_RRE        CONVERT TO UNSIGNED PACKED (extended DFP to 128)
 ++	OP_CVB     uint32 = 0x4F00 // FORMAT_RX1        CONVERT TO BINARY (32)
 ++	OP_CVBG    uint32 = 0xE30E // FORMAT_RXY1       CONVERT TO BINARY (64)
 ++	OP_CVBY    uint32 = 0xE306 // FORMAT_RXY1       CONVERT TO BINARY (32)
 ++	OP_CVD     uint32 = 0x4E00 // FORMAT_RX1        CONVERT TO DECIMAL (32)
 ++	OP_CVDG    uint32 = 0xE32E // FORMAT_RXY1       CONVERT TO DECIMAL (64)
 ++	OP_CVDY    uint32 = 0xE326 // FORMAT_RXY1       CONVERT TO DECIMAL (32)
 ++	OP_CXBR    uint32 = 0xB349 // FORMAT_RRE        COMPARE (extended BFP)
 ++	OP_CXFBR   uint32 = 0xB396 // FORMAT_RRE        CONVERT FROM FIXED (32 to extended BFP)
 ++	OP_CXFBRA  uint32 = 0xB396 // FORMAT_RRF5       CONVERT FROM FIXED (32 to extended BFP)
 ++	OP_CXFR    uint32 = 0xB3B6 // FORMAT_RRE        CONVERT FROM FIXED (32 to extended HFP)
 ++	OP_CXFTR   uint32 = 0xB959 // FORMAT_RRE        CONVERT FROM FIXED (32 to extended DFP)
 ++	OP_CXGBR   uint32 = 0xB3A6 // FORMAT_RRE        CONVERT FROM FIXED (64 to extended BFP)
 ++	OP_CXGBRA  uint32 = 0xB3A6 // FORMAT_RRF5       CONVERT FROM FIXED (64 to extended BFP)
 ++	OP_CXGR    uint32 = 0xB3C6 // FORMAT_RRE        CONVERT FROM FIXED (64 to extended HFP)
 ++	OP_CXGTR   uint32 = 0xB3F9 // FORMAT_RRE        CONVERT FROM FIXED (64 to extended DFP)
 ++	OP_CXGTRA  uint32 = 0xB3F9 // FORMAT_RRF5       CONVERT FROM FIXED (64 to extended DFP)
 ++	OP_CXLFBR  uint32 = 0xB392 // FORMAT_RRF5       CONVERT FROM LOGICAL (32 to extended BFP)
 ++	OP_CXLFTR  uint32 = 0xB95B // FORMAT_RRF5       CONVERT FROM LOGICAL (32 to extended DFP)
 ++	OP_CXLGBR  uint32 = 0xB3A2 // FORMAT_RRF5       CONVERT FROM LOGICAL (64 to extended BFP)
 ++	OP_CXLGTR  uint32 = 0xB95A // FORMAT_RRF5       CONVERT FROM LOGICAL (64 to extended DFP)
 ++	OP_CXR     uint32 = 0xB369 // FORMAT_RRE        COMPARE (extended HFP)
 ++	OP_CXSTR   uint32 = 0xB3FB // FORMAT_RRE        CONVERT FROM SIGNED PACKED (128 to extended DFP)
 ++	OP_CXTR    uint32 = 0xB3EC // FORMAT_RRE        COMPARE (extended DFP)
 ++	OP_CXUTR   uint32 = 0xB3FA // FORMAT_RRE        CONVERT FROM UNSIGNED PACKED (128 to ext. DFP)
 ++	OP_CXZT    uint32 = 0xEDAB // FORMAT_RSL        CONVERT FROM ZONED (to extended DFP)
 ++	OP_CY      uint32 = 0xE359 // FORMAT_RXY1       COMPARE (32)
 ++	OP_CZDT    uint32 = 0xEDA8 // FORMAT_RSL        CONVERT TO ZONED (from long DFP)
 ++	OP_CZXT    uint32 = 0xEDA9 // FORMAT_RSL        CONVERT TO ZONED (from extended DFP)
 ++	OP_D       uint32 = 0x5D00 // FORMAT_RX1        DIVIDE (32<-64)
 ++	OP_DD      uint32 = 0x6D00 // FORMAT_RX1        DIVIDE (long HFP)
 ++	OP_DDB     uint32 = 0xED1D // FORMAT_RXE        DIVIDE (long BFP)
 ++	OP_DDBR    uint32 = 0xB31D // FORMAT_RRE        DIVIDE (long BFP)
 ++	OP_DDR     uint32 = 0x2D00 // FORMAT_RR         DIVIDE (long HFP)
 ++	OP_DDTR    uint32 = 0xB3D1 // FORMAT_RRF1       DIVIDE (long DFP)
 ++	OP_DDTRA   uint32 = 0xB3D1 // FORMAT_RRF1       DIVIDE (long DFP)
 ++	OP_DE      uint32 = 0x7D00 // FORMAT_RX1        DIVIDE (short HFP)
 ++	OP_DEB     uint32 = 0xED0D // FORMAT_RXE        DIVIDE (short BFP)
 ++	OP_DEBR    uint32 = 0xB30D // FORMAT_RRE        DIVIDE (short BFP)
 ++	OP_DER     uint32 = 0x3D00 // FORMAT_RR         DIVIDE (short HFP)
 ++	OP_DIDBR   uint32 = 0xB35B // FORMAT_RRF2       DIVIDE TO INTEGER (long BFP)
 ++	OP_DIEBR   uint32 = 0xB353 // FORMAT_RRF2       DIVIDE TO INTEGER (short BFP)
 ++	OP_DL      uint32 = 0xE397 // FORMAT_RXY1       DIVIDE LOGICAL (32<-64)
 ++	OP_DLG     uint32 = 0xE387 // FORMAT_RXY1       DIVIDE LOGICAL (64<-128)
 ++	OP_DLGR    uint32 = 0xB987 // FORMAT_RRE        DIVIDE LOGICAL (64<-128)
 ++	OP_DLR     uint32 = 0xB997 // FORMAT_RRE        DIVIDE LOGICAL (32<-64)
 ++	OP_DP      uint32 = 0xFD00 // FORMAT_SS2        DIVIDE DECIMAL
 ++	OP_DR      uint32 = 0x1D00 // FORMAT_RR         DIVIDE (32<-64)
 ++	OP_DSG     uint32 = 0xE30D // FORMAT_RXY1       DIVIDE SINGLE (64)
 ++	OP_DSGF    uint32 = 0xE31D // FORMAT_RXY1       DIVIDE SINGLE (64<-32)
 ++	OP_DSGFR   uint32 = 0xB91D // FORMAT_RRE        DIVIDE SINGLE (64<-32)
 ++	OP_DSGR    uint32 = 0xB90D // FORMAT_RRE        DIVIDE SINGLE (64)
 ++	OP_DXBR    uint32 = 0xB34D // FORMAT_RRE        DIVIDE (extended BFP)
 ++	OP_DXR     uint32 = 0xB22D // FORMAT_RRE        DIVIDE (extended HFP)
 ++	OP_DXTR    uint32 = 0xB3D9 // FORMAT_RRF1       DIVIDE (extended DFP)
 ++	OP_DXTRA   uint32 = 0xB3D9 // FORMAT_RRF1       DIVIDE (extended DFP)
 ++	OP_EAR     uint32 = 0xB24F // FORMAT_RRE        EXTRACT ACCESS
 ++	OP_ECAG    uint32 = 0xEB4C // FORMAT_RSY1       EXTRACT CACHE ATTRIBUTE
 ++	OP_ECTG    uint32 = 0xC801 // FORMAT_SSF        EXTRACT CPU TIME
 ++	OP_ED      uint32 = 0xDE00 // FORMAT_SS1        EDIT
 ++	OP_EDMK    uint32 = 0xDF00 // FORMAT_SS1        EDIT AND MARK
 ++	OP_EEDTR   uint32 = 0xB3E5 // FORMAT_RRE        EXTRACT BIASED EXPONENT (long DFP to 64)
 ++	OP_EEXTR   uint32 = 0xB3ED // FORMAT_RRE        EXTRACT BIASED EXPONENT (extended DFP to 64)
 ++	OP_EFPC    uint32 = 0xB38C // FORMAT_RRE        EXTRACT FPC
 ++	OP_EPAIR   uint32 = 0xB99A // FORMAT_RRE        EXTRACT PRIMARY ASN AND INSTANCE
 ++	OP_EPAR    uint32 = 0xB226 // FORMAT_RRE        EXTRACT PRIMARY ASN
 ++	OP_EPSW    uint32 = 0xB98D // FORMAT_RRE        EXTRACT PSW
 ++	OP_EREG    uint32 = 0xB249 // FORMAT_RRE        EXTRACT STACKED REGISTERS (32)
 ++	OP_EREGG   uint32 = 0xB90E // FORMAT_RRE        EXTRACT STACKED REGISTERS (64)
 ++	OP_ESAIR   uint32 = 0xB99B // FORMAT_RRE        EXTRACT SECONDARY ASN AND INSTANCE
 ++	OP_ESAR    uint32 = 0xB227 // FORMAT_RRE        EXTRACT SECONDARY ASN
 ++	OP_ESDTR   uint32 = 0xB3E7 // FORMAT_RRE        EXTRACT SIGNIFICANCE (long DFP)
 ++	OP_ESEA    uint32 = 0xB99D // FORMAT_RRE        EXTRACT AND SET EXTENDED AUTHORITY
 ++	OP_ESTA    uint32 = 0xB24A // FORMAT_RRE        EXTRACT STACKED STATE
 ++	OP_ESXTR   uint32 = 0xB3EF // FORMAT_RRE        EXTRACT SIGNIFICANCE (extended DFP)
 ++	OP_ETND    uint32 = 0xB2EC // FORMAT_RRE        EXTRACT TRANSACTION NESTING DEPTH
 ++	OP_EX      uint32 = 0x4400 // FORMAT_RX1        EXECUTE
 ++	OP_EXRL    uint32 = 0xC600 // FORMAT_RIL2       EXECUTE RELATIVE LONG
 ++	OP_FIDBR   uint32 = 0xB35F // FORMAT_RRF5       LOAD FP INTEGER (long BFP)
 ++	OP_FIDBRA  uint32 = 0xB35F // FORMAT_RRF5       LOAD FP INTEGER (long BFP)
 ++	OP_FIDR    uint32 = 0xB37F // FORMAT_RRE        LOAD FP INTEGER (long HFP)
 ++	OP_FIDTR   uint32 = 0xB3D7 // FORMAT_RRF5       LOAD FP INTEGER (long DFP)
 ++	OP_FIEBR   uint32 = 0xB357 // FORMAT_RRF5       LOAD FP INTEGER (short BFP)
 ++	OP_FIEBRA  uint32 = 0xB357 // FORMAT_RRF5       LOAD FP INTEGER (short BFP)
 ++	OP_FIER    uint32 = 0xB377 // FORMAT_RRE        LOAD FP INTEGER (short HFP)
 ++	OP_FIXBR   uint32 = 0xB347 // FORMAT_RRF5       LOAD FP INTEGER (extended BFP)
 ++	OP_FIXBRA  uint32 = 0xB347 // FORMAT_RRF5       LOAD FP INTEGER (extended BFP)
 ++	OP_FIXR    uint32 = 0xB367 // FORMAT_RRE        LOAD FP INTEGER (extended HFP)
 ++	OP_FIXTR   uint32 = 0xB3DF // FORMAT_RRF5       LOAD FP INTEGER (extended DFP)
 ++	OP_FLOGR   uint32 = 0xB983 // FORMAT_RRE        FIND LEFTMOST ONE
 ++	OP_HDR     uint32 = 0x2400 // FORMAT_RR         HALVE (long HFP)
 ++	OP_HER     uint32 = 0x3400 // FORMAT_RR         HALVE (short HFP)
 ++	OP_HSCH    uint32 = 0xB231 // FORMAT_S          HALT SUBCHANNEL
 ++	OP_IAC     uint32 = 0xB224 // FORMAT_RRE        INSERT ADDRESS SPACE CONTROL
 ++	OP_IC      uint32 = 0x4300 // FORMAT_RX1        INSERT CHARACTER
 ++	OP_ICM     uint32 = 0xBF00 // FORMAT_RS2        INSERT CHARACTERS UNDER MASK (low)
 ++	OP_ICMH    uint32 = 0xEB80 // FORMAT_RSY2       INSERT CHARACTERS UNDER MASK (high)
 ++	OP_ICMY    uint32 = 0xEB81 // FORMAT_RSY2       INSERT CHARACTERS UNDER MASK (low)
 ++	OP_ICY     uint32 = 0xE373 // FORMAT_RXY1       INSERT CHARACTER
 ++	OP_IDTE    uint32 = 0xB98E // FORMAT_RRF2       INVALIDATE DAT TABLE ENTRY
 ++	OP_IEDTR   uint32 = 0xB3F6 // FORMAT_RRF2       INSERT BIASED EXPONENT (64 to long DFP)
 ++	OP_IEXTR   uint32 = 0xB3FE // FORMAT_RRF2       INSERT BIASED EXPONENT (64 to extended DFP)
 ++	OP_IIHF    uint32 = 0xC008 // FORMAT_RIL1       INSERT IMMEDIATE (high)
 ++	OP_IIHH    uint32 = 0xA500 // FORMAT_RI1        INSERT IMMEDIATE (high high)
 ++	OP_IIHL    uint32 = 0xA501 // FORMAT_RI1        INSERT IMMEDIATE (high low)
 ++	OP_IILF    uint32 = 0xC009 // FORMAT_RIL1       INSERT IMMEDIATE (low)
 ++	OP_IILH    uint32 = 0xA502 // FORMAT_RI1        INSERT IMMEDIATE (low high)
 ++	OP_IILL    uint32 = 0xA503 // FORMAT_RI1        INSERT IMMEDIATE (low low)
 ++	OP_IPK     uint32 = 0xB20B // FORMAT_S          INSERT PSW KEY
 ++	OP_IPM     uint32 = 0xB222 // FORMAT_RRE        INSERT PROGRAM MASK
 ++	OP_IPTE    uint32 = 0xB221 // FORMAT_RRF1       INVALIDATE PAGE TABLE ENTRY
 ++	OP_ISKE    uint32 = 0xB229 // FORMAT_RRE        INSERT STORAGE KEY EXTENDED
 ++	OP_IVSK    uint32 = 0xB223 // FORMAT_RRE        INSERT VIRTUAL STORAGE KEY
 ++	OP_KDB     uint32 = 0xED18 // FORMAT_RXE        COMPARE AND SIGNAL (long BFP)
 ++	OP_KDBR    uint32 = 0xB318 // FORMAT_RRE        COMPARE AND SIGNAL (long BFP)
 ++	OP_KDTR    uint32 = 0xB3E0 // FORMAT_RRE        COMPARE AND SIGNAL (long DFP)
 ++	OP_KEB     uint32 = 0xED08 // FORMAT_RXE        COMPARE AND SIGNAL (short BFP)
 ++	OP_KEBR    uint32 = 0xB308 // FORMAT_RRE        COMPARE AND SIGNAL (short BFP)
 ++	OP_KIMD    uint32 = 0xB93E // FORMAT_RRE        COMPUTE INTERMEDIATE MESSAGE DIGEST
 ++	OP_KLMD    uint32 = 0xB93F // FORMAT_RRE        COMPUTE LAST MESSAGE DIGEST
 ++	OP_KM      uint32 = 0xB92E // FORMAT_RRE        CIPHER MESSAGE
 ++	OP_KMAC    uint32 = 0xB91E // FORMAT_RRE        COMPUTE MESSAGE AUTHENTICATION CODE
 ++	OP_KMC     uint32 = 0xB92F // FORMAT_RRE        CIPHER MESSAGE WITH CHAINING
 ++	OP_KMCTR   uint32 = 0xB92D // FORMAT_RRF2       CIPHER MESSAGE WITH COUNTER
 ++	OP_KMF     uint32 = 0xB92A // FORMAT_RRE        CIPHER MESSAGE WITH CFB
 ++	OP_KMO     uint32 = 0xB92B // FORMAT_RRE        CIPHER MESSAGE WITH OFB
 ++	OP_KXBR    uint32 = 0xB348 // FORMAT_RRE        COMPARE AND SIGNAL (extended BFP)
 ++	OP_KXTR    uint32 = 0xB3E8 // FORMAT_RRE        COMPARE AND SIGNAL (extended DFP)
 ++	OP_L       uint32 = 0x5800 // FORMAT_RX1        LOAD (32)
 ++	OP_LA      uint32 = 0x4100 // FORMAT_RX1        LOAD ADDRESS
 ++	OP_LAA     uint32 = 0xEBF8 // FORMAT_RSY1       LOAD AND ADD (32)
 ++	OP_LAAG    uint32 = 0xEBE8 // FORMAT_RSY1       LOAD AND ADD (64)
 ++	OP_LAAL    uint32 = 0xEBFA // FORMAT_RSY1       LOAD AND ADD LOGICAL (32)
 ++	OP_LAALG   uint32 = 0xEBEA // FORMAT_RSY1       LOAD AND ADD LOGICAL (64)
 ++	OP_LAE     uint32 = 0x5100 // FORMAT_RX1        LOAD ADDRESS EXTENDED
 ++	OP_LAEY    uint32 = 0xE375 // FORMAT_RXY1       LOAD ADDRESS EXTENDED
 ++	OP_LAM     uint32 = 0x9A00 // FORMAT_RS1        LOAD ACCESS MULTIPLE
 ++	OP_LAMY    uint32 = 0xEB9A // FORMAT_RSY1       LOAD ACCESS MULTIPLE
 ++	OP_LAN     uint32 = 0xEBF4 // FORMAT_RSY1       LOAD AND AND (32)
 ++	OP_LANG    uint32 = 0xEBE4 // FORMAT_RSY1       LOAD AND AND (64)
 ++	OP_LAO     uint32 = 0xEBF6 // FORMAT_RSY1       LOAD AND OR (32)
 ++	OP_LAOG    uint32 = 0xEBE6 // FORMAT_RSY1       LOAD AND OR (64)
 ++	OP_LARL    uint32 = 0xC000 // FORMAT_RIL2       LOAD ADDRESS RELATIVE LONG
 ++	OP_LASP    uint32 = 0xE500 // FORMAT_SSE        LOAD ADDRESS SPACE PARAMETERS
 ++	OP_LAT     uint32 = 0xE39F // FORMAT_RXY1       LOAD AND TRAP (32L<-32)
 ++	OP_LAX     uint32 = 0xEBF7 // FORMAT_RSY1       LOAD AND EXCLUSIVE OR (32)
 ++	OP_LAXG    uint32 = 0xEBE7 // FORMAT_RSY1       LOAD AND EXCLUSIVE OR (64)
 ++	OP_LAY     uint32 = 0xE371 // FORMAT_RXY1       LOAD ADDRESS
 ++	OP_LB      uint32 = 0xE376 // FORMAT_RXY1       LOAD BYTE (32)
 ++	OP_LBH     uint32 = 0xE3C0 // FORMAT_RXY1       LOAD BYTE HIGH (32<-8)
 ++	OP_LBR     uint32 = 0xB926 // FORMAT_RRE        LOAD BYTE (32)
 ++	OP_LCDBR   uint32 = 0xB313 // FORMAT_RRE        LOAD COMPLEMENT (long BFP)
 ++	OP_LCDFR   uint32 = 0xB373 // FORMAT_RRE        LOAD COMPLEMENT (long)
 ++	OP_LCDR    uint32 = 0x2300 // FORMAT_RR         LOAD COMPLEMENT (long HFP)
 ++	OP_LCEBR   uint32 = 0xB303 // FORMAT_RRE        LOAD COMPLEMENT (short BFP)
 ++	OP_LCER    uint32 = 0x3300 // FORMAT_RR         LOAD COMPLEMENT (short HFP)
 ++	OP_LCGFR   uint32 = 0xB913 // FORMAT_RRE        LOAD COMPLEMENT (64<-32)
 ++	OP_LCGR    uint32 = 0xB903 // FORMAT_RRE        LOAD COMPLEMENT (64)
 ++	OP_LCR     uint32 = 0x1300 // FORMAT_RR         LOAD COMPLEMENT (32)
 ++	OP_LCTL    uint32 = 0xB700 // FORMAT_RS1        LOAD CONTROL (32)
 ++	OP_LCTLG   uint32 = 0xEB2F // FORMAT_RSY1       LOAD CONTROL (64)
 ++	OP_LCXBR   uint32 = 0xB343 // FORMAT_RRE        LOAD COMPLEMENT (extended BFP)
 ++	OP_LCXR    uint32 = 0xB363 // FORMAT_RRE        LOAD COMPLEMENT (extended HFP)
 ++	OP_LD      uint32 = 0x6800 // FORMAT_RX1        LOAD (long)
 ++	OP_LDE     uint32 = 0xED24 // FORMAT_RXE        LOAD LENGTHENED (short to long HFP)
 ++	OP_LDEB    uint32 = 0xED04 // FORMAT_RXE        LOAD LENGTHENED (short to long BFP)
 ++	OP_LDEBR   uint32 = 0xB304 // FORMAT_RRE        LOAD LENGTHENED (short to long BFP)
 ++	OP_LDER    uint32 = 0xB324 // FORMAT_RRE        LOAD LENGTHENED (short to long HFP)
 ++	OP_LDETR   uint32 = 0xB3D4 // FORMAT_RRF4       LOAD LENGTHENED (short to long DFP)
 ++	OP_LDGR    uint32 = 0xB3C1 // FORMAT_RRE        LOAD FPR FROM GR (64 to long)
 ++	OP_LDR     uint32 = 0x2800 // FORMAT_RR         LOAD (long)
 ++	OP_LDXBR   uint32 = 0xB345 // FORMAT_RRE        LOAD ROUNDED (extended to long BFP)
 ++	OP_LDXBRA  uint32 = 0xB345 // FORMAT_RRF5       LOAD ROUNDED (extended to long BFP)
 ++	OP_LDXR    uint32 = 0x2500 // FORMAT_RR         LOAD ROUNDED (extended to long HFP)
 ++	OP_LDXTR   uint32 = 0xB3DD // FORMAT_RRF5       LOAD ROUNDED (extended to long DFP)
 ++	OP_LDY     uint32 = 0xED65 // FORMAT_RXY1       LOAD (long)
 ++	OP_LE      uint32 = 0x7800 // FORMAT_RX1        LOAD (short)
 ++	OP_LEDBR   uint32 = 0xB344 // FORMAT_RRE        LOAD ROUNDED (long to short BFP)
 ++	OP_LEDBRA  uint32 = 0xB344 // FORMAT_RRF5       LOAD ROUNDED (long to short BFP)
 ++	OP_LEDR    uint32 = 0x3500 // FORMAT_RR         LOAD ROUNDED (long to short HFP)
 ++	OP_LEDTR   uint32 = 0xB3D5 // FORMAT_RRF5       LOAD ROUNDED (long to short DFP)
 ++	OP_LER     uint32 = 0x3800 // FORMAT_RR         LOAD (short)
 ++	OP_LEXBR   uint32 = 0xB346 // FORMAT_RRE        LOAD ROUNDED (extended to short BFP)
 ++	OP_LEXBRA  uint32 = 0xB346 // FORMAT_RRF5       LOAD ROUNDED (extended to short BFP)
 ++	OP_LEXR    uint32 = 0xB366 // FORMAT_RRE        LOAD ROUNDED (extended to short HFP)
 ++	OP_LEY     uint32 = 0xED64 // FORMAT_RXY1       LOAD (short)
 ++	OP_LFAS    uint32 = 0xB2BD // FORMAT_S          LOAD FPC AND SIGNAL
 ++	OP_LFH     uint32 = 0xE3CA // FORMAT_RXY1       LOAD HIGH (32)
 ++	OP_LFHAT   uint32 = 0xE3C8 // FORMAT_RXY1       LOAD HIGH AND TRAP (32H<-32)
 ++	OP_LFPC    uint32 = 0xB29D // FORMAT_S          LOAD FPC
 ++	OP_LG      uint32 = 0xE304 // FORMAT_RXY1       LOAD (64)
 ++	OP_LGAT    uint32 = 0xE385 // FORMAT_RXY1       LOAD AND TRAP (64)
 ++	OP_LGB     uint32 = 0xE377 // FORMAT_RXY1       LOAD BYTE (64)
 ++	OP_LGBR    uint32 = 0xB906 // FORMAT_RRE        LOAD BYTE (64)
 ++	OP_LGDR    uint32 = 0xB3CD // FORMAT_RRE        LOAD GR FROM FPR (long to 64)
 ++	OP_LGF     uint32 = 0xE314 // FORMAT_RXY1       LOAD (64<-32)
 ++	OP_LGFI    uint32 = 0xC001 // FORMAT_RIL1       LOAD IMMEDIATE (64<-32)
 ++	OP_LGFR    uint32 = 0xB914 // FORMAT_RRE        LOAD (64<-32)
 ++	OP_LGFRL   uint32 = 0xC40C // FORMAT_RIL2       LOAD RELATIVE LONG (64<-32)
 ++	OP_LGH     uint32 = 0xE315 // FORMAT_RXY1       LOAD HALFWORD (64)
 ++	OP_LGHI    uint32 = 0xA709 // FORMAT_RI1        LOAD HALFWORD IMMEDIATE (64)
 ++	OP_LGHR    uint32 = 0xB907 // FORMAT_RRE        LOAD HALFWORD (64)
 ++	OP_LGHRL   uint32 = 0xC404 // FORMAT_RIL2       LOAD HALFWORD RELATIVE LONG (64<-16)
 ++	OP_LGR     uint32 = 0xB904 // FORMAT_RRE        LOAD (64)
 ++	OP_LGRL    uint32 = 0xC408 // FORMAT_RIL2       LOAD RELATIVE LONG (64)
 ++	OP_LH      uint32 = 0x4800 // FORMAT_RX1        LOAD HALFWORD (32)
 ++	OP_LHH     uint32 = 0xE3C4 // FORMAT_RXY1       LOAD HALFWORD HIGH (32<-16)
 ++	OP_LHI     uint32 = 0xA708 // FORMAT_RI1        LOAD HALFWORD IMMEDIATE (32)
 ++	OP_LHR     uint32 = 0xB927 // FORMAT_RRE        LOAD HALFWORD (32)
 ++	OP_LHRL    uint32 = 0xC405 // FORMAT_RIL2       LOAD HALFWORD RELATIVE LONG (32<-16)
 ++	OP_LHY     uint32 = 0xE378 // FORMAT_RXY1       LOAD HALFWORD (32)
 ++	OP_LLC     uint32 = 0xE394 // FORMAT_RXY1       LOAD LOGICAL CHARACTER (32)
 ++	OP_LLCH    uint32 = 0xE3C2 // FORMAT_RXY1       LOAD LOGICAL CHARACTER HIGH (32<-8)
 ++	OP_LLCR    uint32 = 0xB994 // FORMAT_RRE        LOAD LOGICAL CHARACTER (32)
 ++	OP_LLGC    uint32 = 0xE390 // FORMAT_RXY1       LOAD LOGICAL CHARACTER (64)
 ++	OP_LLGCR   uint32 = 0xB984 // FORMAT_RRE        LOAD LOGICAL CHARACTER (64)
 ++	OP_LLGF    uint32 = 0xE316 // FORMAT_RXY1       LOAD LOGICAL (64<-32)
 ++	OP_LLGFAT  uint32 = 0xE39D // FORMAT_RXY1       LOAD LOGICAL AND TRAP (64<-32)
 ++	OP_LLGFR   uint32 = 0xB916 // FORMAT_RRE        LOAD LOGICAL (64<-32)
 ++	OP_LLGFRL  uint32 = 0xC40E // FORMAT_RIL2       LOAD LOGICAL RELATIVE LONG (64<-32)
 ++	OP_LLGH    uint32 = 0xE391 // FORMAT_RXY1       LOAD LOGICAL HALFWORD (64)
 ++	OP_LLGHR   uint32 = 0xB985 // FORMAT_RRE        LOAD LOGICAL HALFWORD (64)
 ++	OP_LLGHRL  uint32 = 0xC406 // FORMAT_RIL2       LOAD LOGICAL HALFWORD RELATIVE LONG (64<-16)
 ++	OP_LLGT    uint32 = 0xE317 // FORMAT_RXY1       LOAD LOGICAL THIRTY ONE BITS
 ++	OP_LLGTAT  uint32 = 0xE39C // FORMAT_RXY1       LOAD LOGICAL THIRTY ONE BITS AND TRAP (64<-31)
 ++	OP_LLGTR   uint32 = 0xB917 // FORMAT_RRE        LOAD LOGICAL THIRTY ONE BITS
 ++	OP_LLH     uint32 = 0xE395 // FORMAT_RXY1       LOAD LOGICAL HALFWORD (32)
 ++	OP_LLHH    uint32 = 0xE3C6 // FORMAT_RXY1       LOAD LOGICAL HALFWORD HIGH (32<-16)
 ++	OP_LLHR    uint32 = 0xB995 // FORMAT_RRE        LOAD LOGICAL HALFWORD (32)
 ++	OP_LLHRL   uint32 = 0xC402 // FORMAT_RIL2       LOAD LOGICAL HALFWORD RELATIVE LONG (32<-16)
 ++	OP_LLIHF   uint32 = 0xC00E // FORMAT_RIL1       LOAD LOGICAL IMMEDIATE (high)
 ++	OP_LLIHH   uint32 = 0xA50C // FORMAT_RI1        LOAD LOGICAL IMMEDIATE (high high)
 ++	OP_LLIHL   uint32 = 0xA50D // FORMAT_RI1        LOAD LOGICAL IMMEDIATE (high low)
 ++	OP_LLILF   uint32 = 0xC00F // FORMAT_RIL1       LOAD LOGICAL IMMEDIATE (low)
 ++	OP_LLILH   uint32 = 0xA50E // FORMAT_RI1        LOAD LOGICAL IMMEDIATE (low high)
 ++	OP_LLILL   uint32 = 0xA50F // FORMAT_RI1        LOAD LOGICAL IMMEDIATE (low low)
 ++	OP_LM      uint32 = 0x9800 // FORMAT_RS1        LOAD MULTIPLE (32)
 ++	OP_LMD     uint32 = 0xEF00 // FORMAT_SS5        LOAD MULTIPLE DISJOINT
 ++	OP_LMG     uint32 = 0xEB04 // FORMAT_RSY1       LOAD MULTIPLE (64)
 ++	OP_LMH     uint32 = 0xEB96 // FORMAT_RSY1       LOAD MULTIPLE HIGH
 ++	OP_LMY     uint32 = 0xEB98 // FORMAT_RSY1       LOAD MULTIPLE (32)
 ++	OP_LNDBR   uint32 = 0xB311 // FORMAT_RRE        LOAD NEGATIVE (long BFP)
 ++	OP_LNDFR   uint32 = 0xB371 // FORMAT_RRE        LOAD NEGATIVE (long)
 ++	OP_LNDR    uint32 = 0x2100 // FORMAT_RR         LOAD NEGATIVE (long HFP)
 ++	OP_LNEBR   uint32 = 0xB301 // FORMAT_RRE        LOAD NEGATIVE (short BFP)
 ++	OP_LNER    uint32 = 0x3100 // FORMAT_RR         LOAD NEGATIVE (short HFP)
 ++	OP_LNGFR   uint32 = 0xB911 // FORMAT_RRE        LOAD NEGATIVE (64<-32)
 ++	OP_LNGR    uint32 = 0xB901 // FORMAT_RRE        LOAD NEGATIVE (64)
 ++	OP_LNR     uint32 = 0x1100 // FORMAT_RR         LOAD NEGATIVE (32)
 ++	OP_LNXBR   uint32 = 0xB341 // FORMAT_RRE        LOAD NEGATIVE (extended BFP)
 ++	OP_LNXR    uint32 = 0xB361 // FORMAT_RRE        LOAD NEGATIVE (extended HFP)
 ++	OP_LOC     uint32 = 0xEBF2 // FORMAT_RSY2       LOAD ON CONDITION (32)
 ++	OP_LOCG    uint32 = 0xEBE2 // FORMAT_RSY2       LOAD ON CONDITION (64)
 ++	OP_LOCGR   uint32 = 0xB9E2 // FORMAT_RRF3       LOAD ON CONDITION (64)
 ++	OP_LOCR    uint32 = 0xB9F2 // FORMAT_RRF3       LOAD ON CONDITION (32)
 ++	OP_LPD     uint32 = 0xC804 // FORMAT_SSF        LOAD PAIR DISJOINT (32)
 ++	OP_LPDBR   uint32 = 0xB310 // FORMAT_RRE        LOAD POSITIVE (long BFP)
 ++	OP_LPDFR   uint32 = 0xB370 // FORMAT_RRE        LOAD POSITIVE (long)
 ++	OP_LPDG    uint32 = 0xC805 // FORMAT_SSF        LOAD PAIR DISJOINT (64)
 ++	OP_LPDR    uint32 = 0x2000 // FORMAT_RR         LOAD POSITIVE (long HFP)
 ++	OP_LPEBR   uint32 = 0xB300 // FORMAT_RRE        LOAD POSITIVE (short BFP)
 ++	OP_LPER    uint32 = 0x3000 // FORMAT_RR         LOAD POSITIVE (short HFP)
 ++	OP_LPGFR   uint32 = 0xB910 // FORMAT_RRE        LOAD POSITIVE (64<-32)
 ++	OP_LPGR    uint32 = 0xB900 // FORMAT_RRE        LOAD POSITIVE (64)
 ++	OP_LPQ     uint32 = 0xE38F // FORMAT_RXY1       LOAD PAIR FROM QUADWORD
 ++	OP_LPR     uint32 = 0x1000 // FORMAT_RR         LOAD POSITIVE (32)
 ++	OP_LPSW    uint32 = 0x8200 // FORMAT_S          LOAD PSW
 ++	OP_LPSWE   uint32 = 0xB2B2 // FORMAT_S          LOAD PSW EXTENDED
 ++	OP_LPTEA   uint32 = 0xB9AA // FORMAT_RRF2       LOAD PAGE TABLE ENTRY ADDRESS
 ++	OP_LPXBR   uint32 = 0xB340 // FORMAT_RRE        LOAD POSITIVE (extended BFP)
 ++	OP_LPXR    uint32 = 0xB360 // FORMAT_RRE        LOAD POSITIVE (extended HFP)
 ++	OP_LR      uint32 = 0x1800 // FORMAT_RR         LOAD (32)
 ++	OP_LRA     uint32 = 0xB100 // FORMAT_RX1        LOAD REAL ADDRESS (32)
 ++	OP_LRAG    uint32 = 0xE303 // FORMAT_RXY1       LOAD REAL ADDRESS (64)
 ++	OP_LRAY    uint32 = 0xE313 // FORMAT_RXY1       LOAD REAL ADDRESS (32)
 ++	OP_LRDR    uint32 = 0x2500 // FORMAT_RR         LOAD ROUNDED (extended to long HFP)
 ++	OP_LRER    uint32 = 0x3500 // FORMAT_RR         LOAD ROUNDED (long to short HFP)
 ++	OP_LRL     uint32 = 0xC40D // FORMAT_RIL2       LOAD RELATIVE LONG (32)
 ++	OP_LRV     uint32 = 0xE31E // FORMAT_RXY1       LOAD REVERSED (32)
 ++	OP_LRVG    uint32 = 0xE30F // FORMAT_RXY1       LOAD REVERSED (64)
 ++	OP_LRVGR   uint32 = 0xB90F // FORMAT_RRE        LOAD REVERSED (64)
 ++	OP_LRVH    uint32 = 0xE31F // FORMAT_RXY1       LOAD REVERSED (16)
 ++	OP_LRVR    uint32 = 0xB91F // FORMAT_RRE        LOAD REVERSED (32)
 ++	OP_LT      uint32 = 0xE312 // FORMAT_RXY1       LOAD AND TEST (32)
 ++	OP_LTDBR   uint32 = 0xB312 // FORMAT_RRE        LOAD AND TEST (long BFP)
 ++	OP_LTDR    uint32 = 0x2200 // FORMAT_RR         LOAD AND TEST (long HFP)
 ++	OP_LTDTR   uint32 = 0xB3D6 // FORMAT_RRE        LOAD AND TEST (long DFP)
 ++	OP_LTEBR   uint32 = 0xB302 // FORMAT_RRE        LOAD AND TEST (short BFP)
 ++	OP_LTER    uint32 = 0x3200 // FORMAT_RR         LOAD AND TEST (short HFP)
 ++	OP_LTG     uint32 = 0xE302 // FORMAT_RXY1       LOAD AND TEST (64)
 ++	OP_LTGF    uint32 = 0xE332 // FORMAT_RXY1       LOAD AND TEST (64<-32)
 ++	OP_LTGFR   uint32 = 0xB912 // FORMAT_RRE        LOAD AND TEST (64<-32)
 ++	OP_LTGR    uint32 = 0xB902 // FORMAT_RRE        LOAD AND TEST (64)
 ++	OP_LTR     uint32 = 0x1200 // FORMAT_RR         LOAD AND TEST (32)
 ++	OP_LTXBR   uint32 = 0xB342 // FORMAT_RRE        LOAD AND TEST (extended BFP)
 ++	OP_LTXR    uint32 = 0xB362 // FORMAT_RRE        LOAD AND TEST (extended HFP)
 ++	OP_LTXTR   uint32 = 0xB3DE // FORMAT_RRE        LOAD AND TEST (extended DFP)
 ++	OP_LURA    uint32 = 0xB24B // FORMAT_RRE        LOAD USING REAL ADDRESS (32)
 ++	OP_LURAG   uint32 = 0xB905 // FORMAT_RRE        LOAD USING REAL ADDRESS (64)
 ++	OP_LXD     uint32 = 0xED25 // FORMAT_RXE        LOAD LENGTHENED (long to extended HFP)
 ++	OP_LXDB    uint32 = 0xED05 // FORMAT_RXE        LOAD LENGTHENED (long to extended BFP)
 ++	OP_LXDBR   uint32 = 0xB305 // FORMAT_RRE        LOAD LENGTHENED (long to extended BFP)
 ++	OP_LXDR    uint32 = 0xB325 // FORMAT_RRE        LOAD LENGTHENED (long to extended HFP)
 ++	OP_LXDTR   uint32 = 0xB3DC // FORMAT_RRF4       LOAD LENGTHENED (long to extended DFP)
 ++	OP_LXE     uint32 = 0xED26 // FORMAT_RXE        LOAD LENGTHENED (short to extended HFP)
 ++	OP_LXEB    uint32 = 0xED06 // FORMAT_RXE        LOAD LENGTHENED (short to extended BFP)
 ++	OP_LXEBR   uint32 = 0xB306 // FORMAT_RRE        LOAD LENGTHENED (short to extended BFP)
 ++	OP_LXER    uint32 = 0xB326 // FORMAT_RRE        LOAD LENGTHENED (short to extended HFP)
 ++	OP_LXR     uint32 = 0xB365 // FORMAT_RRE        LOAD (extended)
 ++	OP_LY      uint32 = 0xE358 // FORMAT_RXY1       LOAD (32)
 ++	OP_LZDR    uint32 = 0xB375 // FORMAT_RRE        LOAD ZERO (long)
 ++	OP_LZER    uint32 = 0xB374 // FORMAT_RRE        LOAD ZERO (short)
 ++	OP_LZXR    uint32 = 0xB376 // FORMAT_RRE        LOAD ZERO (extended)
 ++	OP_M       uint32 = 0x5C00 // FORMAT_RX1        MULTIPLY (64<-32)
 ++	OP_MAD     uint32 = 0xED3E // FORMAT_RXF        MULTIPLY AND ADD (long HFP)
 ++	OP_MADB    uint32 = 0xED1E // FORMAT_RXF        MULTIPLY AND ADD (long BFP)
 ++	OP_MADBR   uint32 = 0xB31E // FORMAT_RRD        MULTIPLY AND ADD (long BFP)
 ++	OP_MADR    uint32 = 0xB33E // FORMAT_RRD        MULTIPLY AND ADD (long HFP)
 ++	OP_MAE     uint32 = 0xED2E // FORMAT_RXF        MULTIPLY AND ADD (short HFP)
 ++	OP_MAEB    uint32 = 0xED0E // FORMAT_RXF        MULTIPLY AND ADD (short BFP)
 ++	OP_MAEBR   uint32 = 0xB30E // FORMAT_RRD        MULTIPLY AND ADD (short BFP)
 ++	OP_MAER    uint32 = 0xB32E // FORMAT_RRD        MULTIPLY AND ADD (short HFP)
 ++	OP_MAY     uint32 = 0xED3A // FORMAT_RXF        MULTIPLY & ADD UNNORMALIZED (long to ext. HFP)
 ++	OP_MAYH    uint32 = 0xED3C // FORMAT_RXF        MULTIPLY AND ADD UNNRM. (long to ext. high HFP)
 ++	OP_MAYHR   uint32 = 0xB33C // FORMAT_RRD        MULTIPLY AND ADD UNNRM. (long to ext. high HFP)
 ++	OP_MAYL    uint32 = 0xED38 // FORMAT_RXF        MULTIPLY AND ADD UNNRM. (long to ext. low HFP)
 ++	OP_MAYLR   uint32 = 0xB338 // FORMAT_RRD        MULTIPLY AND ADD UNNRM. (long to ext. low HFP)
 ++	OP_MAYR    uint32 = 0xB33A // FORMAT_RRD        MULTIPLY & ADD UNNORMALIZED (long to ext. HFP)
 ++	OP_MC      uint32 = 0xAF00 // FORMAT_SI         MONITOR CALL
 ++	OP_MD      uint32 = 0x6C00 // FORMAT_RX1        MULTIPLY (long HFP)
 ++	OP_MDB     uint32 = 0xED1C // FORMAT_RXE        MULTIPLY (long BFP)
 ++	OP_MDBR    uint32 = 0xB31C // FORMAT_RRE        MULTIPLY (long BFP)
 ++	OP_MDE     uint32 = 0x7C00 // FORMAT_RX1        MULTIPLY (short to long HFP)
 ++	OP_MDEB    uint32 = 0xED0C // FORMAT_RXE        MULTIPLY (short to long BFP)
 ++	OP_MDEBR   uint32 = 0xB30C // FORMAT_RRE        MULTIPLY (short to long BFP)
 ++	OP_MDER    uint32 = 0x3C00 // FORMAT_RR         MULTIPLY (short to long HFP)
 ++	OP_MDR     uint32 = 0x2C00 // FORMAT_RR         MULTIPLY (long HFP)
 ++	OP_MDTR    uint32 = 0xB3D0 // FORMAT_RRF1       MULTIPLY (long DFP)
 ++	OP_MDTRA   uint32 = 0xB3D0 // FORMAT_RRF1       MULTIPLY (long DFP)
 ++	OP_ME      uint32 = 0x7C00 // FORMAT_RX1        MULTIPLY (short to long HFP)
 ++	OP_MEE     uint32 = 0xED37 // FORMAT_RXE        MULTIPLY (short HFP)
 ++	OP_MEEB    uint32 = 0xED17 // FORMAT_RXE        MULTIPLY (short BFP)
 ++	OP_MEEBR   uint32 = 0xB317 // FORMAT_RRE        MULTIPLY (short BFP)
 ++	OP_MEER    uint32 = 0xB337 // FORMAT_RRE        MULTIPLY (short HFP)
 ++	OP_MER     uint32 = 0x3C00 // FORMAT_RR         MULTIPLY (short to long HFP)
 ++	OP_MFY     uint32 = 0xE35C // FORMAT_RXY1       MULTIPLY (64<-32)
 ++	OP_MGHI    uint32 = 0xA70D // FORMAT_RI1        MULTIPLY HALFWORD IMMEDIATE (64)
 ++	OP_MH      uint32 = 0x4C00 // FORMAT_RX1        MULTIPLY HALFWORD (32)
 ++	OP_MHI     uint32 = 0xA70C // FORMAT_RI1        MULTIPLY HALFWORD IMMEDIATE (32)
 ++	OP_MHY     uint32 = 0xE37C // FORMAT_RXY1       MULTIPLY HALFWORD (32)
 ++	OP_ML      uint32 = 0xE396 // FORMAT_RXY1       MULTIPLY LOGICAL (64<-32)
 ++	OP_MLG     uint32 = 0xE386 // FORMAT_RXY1       MULTIPLY LOGICAL (128<-64)
 ++	OP_MLGR    uint32 = 0xB986 // FORMAT_RRE        MULTIPLY LOGICAL (128<-64)
 ++	OP_MLR     uint32 = 0xB996 // FORMAT_RRE        MULTIPLY LOGICAL (64<-32)
 ++	OP_MP      uint32 = 0xFC00 // FORMAT_SS2        MULTIPLY DECIMAL
 ++	OP_MR      uint32 = 0x1C00 // FORMAT_RR         MULTIPLY (64<-32)
 ++	OP_MS      uint32 = 0x7100 // FORMAT_RX1        MULTIPLY SINGLE (32)
 ++	OP_MSCH    uint32 = 0xB232 // FORMAT_S          MODIFY SUBCHANNEL
 ++	OP_MSD     uint32 = 0xED3F // FORMAT_RXF        MULTIPLY AND SUBTRACT (long HFP)
 ++	OP_MSDB    uint32 = 0xED1F // FORMAT_RXF        MULTIPLY AND SUBTRACT (long BFP)
 ++	OP_MSDBR   uint32 = 0xB31F // FORMAT_RRD        MULTIPLY AND SUBTRACT (long BFP)
 ++	OP_MSDR    uint32 = 0xB33F // FORMAT_RRD        MULTIPLY AND SUBTRACT (long HFP)
 ++	OP_MSE     uint32 = 0xED2F // FORMAT_RXF        MULTIPLY AND SUBTRACT (short HFP)
 ++	OP_MSEB    uint32 = 0xED0F // FORMAT_RXF        MULTIPLY AND SUBTRACT (short BFP)
 ++	OP_MSEBR   uint32 = 0xB30F // FORMAT_RRD        MULTIPLY AND SUBTRACT (short BFP)
 ++	OP_MSER    uint32 = 0xB32F // FORMAT_RRD        MULTIPLY AND SUBTRACT (short HFP)
 ++	OP_MSFI    uint32 = 0xC201 // FORMAT_RIL1       MULTIPLY SINGLE IMMEDIATE (32)
 ++	OP_MSG     uint32 = 0xE30C // FORMAT_RXY1       MULTIPLY SINGLE (64)
 ++	OP_MSGF    uint32 = 0xE31C // FORMAT_RXY1       MULTIPLY SINGLE (64<-32)
 ++	OP_MSGFI   uint32 = 0xC200 // FORMAT_RIL1       MULTIPLY SINGLE IMMEDIATE (64<-32)
 ++	OP_MSGFR   uint32 = 0xB91C // FORMAT_RRE        MULTIPLY SINGLE (64<-32)
 ++	OP_MSGR    uint32 = 0xB90C // FORMAT_RRE        MULTIPLY SINGLE (64)
 ++	OP_MSR     uint32 = 0xB252 // FORMAT_RRE        MULTIPLY SINGLE (32)
 ++	OP_MSTA    uint32 = 0xB247 // FORMAT_RRE        MODIFY STACKED STATE
 ++	OP_MSY     uint32 = 0xE351 // FORMAT_RXY1       MULTIPLY SINGLE (32)
 ++	OP_MVC     uint32 = 0xD200 // FORMAT_SS1        MOVE (character)
 ++	OP_MVCDK   uint32 = 0xE50F // FORMAT_SSE        MOVE WITH DESTINATION KEY
 ++	OP_MVCIN   uint32 = 0xE800 // FORMAT_SS1        MOVE INVERSE
 ++	OP_MVCK    uint32 = 0xD900 // FORMAT_SS4        MOVE WITH KEY
 ++	OP_MVCL    uint32 = 0x0E00 // FORMAT_RR         MOVE LONG
 ++	OP_MVCLE   uint32 = 0xA800 // FORMAT_RS1        MOVE LONG EXTENDED
 ++	OP_MVCLU   uint32 = 0xEB8E // FORMAT_RSY1       MOVE LONG UNICODE
 ++	OP_MVCOS   uint32 = 0xC800 // FORMAT_SSF        MOVE WITH OPTIONAL SPECIFICATIONS
 ++	OP_MVCP    uint32 = 0xDA00 // FORMAT_SS4        MOVE TO PRIMARY
 ++	OP_MVCS    uint32 = 0xDB00 // FORMAT_SS4        MOVE TO SECONDARY
 ++	OP_MVCSK   uint32 = 0xE50E // FORMAT_SSE        MOVE WITH SOURCE KEY
 ++	OP_MVGHI   uint32 = 0xE548 // FORMAT_SIL        MOVE (64<-16)
 ++	OP_MVHHI   uint32 = 0xE544 // FORMAT_SIL        MOVE (16<-16)
 ++	OP_MVHI    uint32 = 0xE54C // FORMAT_SIL        MOVE (32<-16)
 ++	OP_MVI     uint32 = 0x9200 // FORMAT_SI         MOVE (immediate)
 ++	OP_MVIY    uint32 = 0xEB52 // FORMAT_SIY        MOVE (immediate)
 ++	OP_MVN     uint32 = 0xD100 // FORMAT_SS1        MOVE NUMERICS
 ++	OP_MVO     uint32 = 0xF100 // FORMAT_SS2        MOVE WITH OFFSET
 ++	OP_MVPG    uint32 = 0xB254 // FORMAT_RRE        MOVE PAGE
 ++	OP_MVST    uint32 = 0xB255 // FORMAT_RRE        MOVE STRING
 ++	OP_MVZ     uint32 = 0xD300 // FORMAT_SS1        MOVE ZONES
 ++	OP_MXBR    uint32 = 0xB34C // FORMAT_RRE        MULTIPLY (extended BFP)
 ++	OP_MXD     uint32 = 0x6700 // FORMAT_RX1        MULTIPLY (long to extended HFP)
 ++	OP_MXDB    uint32 = 0xED07 // FORMAT_RXE        MULTIPLY (long to extended BFP)
 ++	OP_MXDBR   uint32 = 0xB307 // FORMAT_RRE        MULTIPLY (long to extended BFP)
 ++	OP_MXDR    uint32 = 0x2700 // FORMAT_RR         MULTIPLY (long to extended HFP)
 ++	OP_MXR     uint32 = 0x2600 // FORMAT_RR         MULTIPLY (extended HFP)
 ++	OP_MXTR    uint32 = 0xB3D8 // FORMAT_RRF1       MULTIPLY (extended DFP)
 ++	OP_MXTRA   uint32 = 0xB3D8 // FORMAT_RRF1       MULTIPLY (extended DFP)
 ++	OP_MY      uint32 = 0xED3B // FORMAT_RXF        MULTIPLY UNNORMALIZED (long to ext. HFP)
 ++	OP_MYH     uint32 = 0xED3D // FORMAT_RXF        MULTIPLY UNNORM. (long to ext. high HFP)
 ++	OP_MYHR    uint32 = 0xB33D // FORMAT_RRD        MULTIPLY UNNORM. (long to ext. high HFP)
 ++	OP_MYL     uint32 = 0xED39 // FORMAT_RXF        MULTIPLY UNNORM. (long to ext. low HFP)
 ++	OP_MYLR    uint32 = 0xB339 // FORMAT_RRD        MULTIPLY UNNORM. (long to ext. low HFP)
 ++	OP_MYR     uint32 = 0xB33B // FORMAT_RRD        MULTIPLY UNNORMALIZED (long to ext. HFP)
 ++	OP_N       uint32 = 0x5400 // FORMAT_RX1        AND (32)
 ++	OP_NC      uint32 = 0xD400 // FORMAT_SS1        AND (character)
 ++	OP_NG      uint32 = 0xE380 // FORMAT_RXY1       AND (64)
 ++	OP_NGR     uint32 = 0xB980 // FORMAT_RRE        AND (64)
 ++	OP_NGRK    uint32 = 0xB9E4 // FORMAT_RRF1       AND (64)
 ++	OP_NI      uint32 = 0x9400 // FORMAT_SI         AND (immediate)
 ++	OP_NIAI    uint32 = 0xB2FA // FORMAT_IE         NEXT INSTRUCTION ACCESS INTENT
 ++	OP_NIHF    uint32 = 0xC00A // FORMAT_RIL1       AND IMMEDIATE (high)
 ++	OP_NIHH    uint32 = 0xA504 // FORMAT_RI1        AND IMMEDIATE (high high)
 ++	OP_NIHL    uint32 = 0xA505 // FORMAT_RI1        AND IMMEDIATE (high low)
 ++	OP_NILF    uint32 = 0xC00B // FORMAT_RIL1       AND IMMEDIATE (low)
 ++	OP_NILH    uint32 = 0xA506 // FORMAT_RI1        AND IMMEDIATE (low high)
 ++	OP_NILL    uint32 = 0xA507 // FORMAT_RI1        AND IMMEDIATE (low low)
 ++	OP_NIY     uint32 = 0xEB54 // FORMAT_SIY        AND (immediate)
 ++	OP_NR      uint32 = 0x1400 // FORMAT_RR         AND (32)
 ++	OP_NRK     uint32 = 0xB9F4 // FORMAT_RRF1       AND (32)
 ++	OP_NTSTG   uint32 = 0xE325 // FORMAT_RXY1       NONTRANSACTIONAL STORE
 ++	OP_NY      uint32 = 0xE354 // FORMAT_RXY1       AND (32)
 ++	OP_O       uint32 = 0x5600 // FORMAT_RX1        OR (32)
 ++	OP_OC      uint32 = 0xD600 // FORMAT_SS1        OR (character)
 ++	OP_OG      uint32 = 0xE381 // FORMAT_RXY1       OR (64)
 ++	OP_OGR     uint32 = 0xB981 // FORMAT_RRE        OR (64)
 ++	OP_OGRK    uint32 = 0xB9E6 // FORMAT_RRF1       OR (64)
 ++	OP_OI      uint32 = 0x9600 // FORMAT_SI         OR (immediate)
 ++	OP_OIHF    uint32 = 0xC00C // FORMAT_RIL1       OR IMMEDIATE (high)
 ++	OP_OIHH    uint32 = 0xA508 // FORMAT_RI1        OR IMMEDIATE (high high)
 ++	OP_OIHL    uint32 = 0xA509 // FORMAT_RI1        OR IMMEDIATE (high low)
 ++	OP_OILF    uint32 = 0xC00D // FORMAT_RIL1       OR IMMEDIATE (low)
 ++	OP_OILH    uint32 = 0xA50A // FORMAT_RI1        OR IMMEDIATE (low high)
 ++	OP_OILL    uint32 = 0xA50B // FORMAT_RI1        OR IMMEDIATE (low low)
 ++	OP_OIY     uint32 = 0xEB56 // FORMAT_SIY        OR (immediate)
 ++	OP_OR      uint32 = 0x1600 // FORMAT_RR         OR (32)
 ++	OP_ORK     uint32 = 0xB9F6 // FORMAT_RRF1       OR (32)
 ++	OP_OY      uint32 = 0xE356 // FORMAT_RXY1       OR (32)
 ++	OP_PACK    uint32 = 0xF200 // FORMAT_SS2        PACK
 ++	OP_PALB    uint32 = 0xB248 // FORMAT_RRE        PURGE ALB
 ++	OP_PC      uint32 = 0xB218 // FORMAT_S          PROGRAM CALL
 ++	OP_PCC     uint32 = 0xB92C // FORMAT_RRE        PERFORM CRYPTOGRAPHIC COMPUTATION
 ++	OP_PCKMO   uint32 = 0xB928 // FORMAT_RRE        PERFORM CRYPTOGRAPHIC KEY MGMT. OPERATIONS
 ++	OP_PFD     uint32 = 0xE336 // FORMAT_RXY2       PREFETCH DATA
 ++	OP_PFDRL   uint32 = 0xC602 // FORMAT_RIL3       PREFETCH DATA RELATIVE LONG
 ++	OP_PFMF    uint32 = 0xB9AF // FORMAT_RRE        PERFORM FRAME MANAGEMENT FUNCTION
 ++	OP_PFPO    uint32 = 0x010A // FORMAT_E          PERFORM FLOATING-POINT OPERATION
 ++	OP_PGIN    uint32 = 0xB22E // FORMAT_RRE        PAGE IN
 ++	OP_PGOUT   uint32 = 0xB22F // FORMAT_RRE        PAGE OUT
 ++	OP_PKA     uint32 = 0xE900 // FORMAT_SS6        PACK ASCII
 ++	OP_PKU     uint32 = 0xE100 // FORMAT_SS6        PACK UNICODE
 ++	OP_PLO     uint32 = 0xEE00 // FORMAT_SS5        PERFORM LOCKED OPERATION
 ++	OP_POPCNT  uint32 = 0xB9E1 // FORMAT_RRE        POPULATION COUNT
 ++	OP_PPA     uint32 = 0xB2E8 // FORMAT_RRF3       PERFORM PROCESSOR ASSIST
 ++	OP_PR      uint32 = 0x0101 // FORMAT_E          PROGRAM RETURN
 ++	OP_PT      uint32 = 0xB228 // FORMAT_RRE        PROGRAM TRANSFER
 ++	OP_PTF     uint32 = 0xB9A2 // FORMAT_RRE        PERFORM TOPOLOGY FUNCTION
 ++	OP_PTFF    uint32 = 0x0104 // FORMAT_E          PERFORM TIMING FACILITY FUNCTION
 ++	OP_PTI     uint32 = 0xB99E // FORMAT_RRE        PROGRAM TRANSFER WITH INSTANCE
 ++	OP_PTLB    uint32 = 0xB20D // FORMAT_S          PURGE TLB
 ++	OP_QADTR   uint32 = 0xB3F5 // FORMAT_RRF2       QUANTIZE (long DFP)
 ++	OP_QAXTR   uint32 = 0xB3FD // FORMAT_RRF2       QUANTIZE (extended DFP)
 ++	OP_RCHP    uint32 = 0xB23B // FORMAT_S          RESET CHANNEL PATH
 ++	OP_RISBG   uint32 = 0xEC55 // FORMAT_RIE6       ROTATE THEN INSERT SELECTED BITS
 ++	OP_RISBGN  uint32 = 0xEC59 // FORMAT_RIE6       ROTATE THEN INSERT SELECTED BITS
 ++	OP_RISBHG  uint32 = 0xEC5D // FORMAT_RIE6       ROTATE THEN INSERT SELECTED BITS HIGH
 ++	OP_RISBLG  uint32 = 0xEC51 // FORMAT_RIE6       ROTATE THEN INSERT SELECTED BITS LOW
 ++	OP_RLL     uint32 = 0xEB1D // FORMAT_RSY1       ROTATE LEFT SINGLE LOGICAL (32)
 ++	OP_RLLG    uint32 = 0xEB1C // FORMAT_RSY1       ROTATE LEFT SINGLE LOGICAL (64)
 ++	OP_RNSBG   uint32 = 0xEC54 // FORMAT_RIE6       ROTATE THEN AND SELECTED BITS
 ++	OP_ROSBG   uint32 = 0xEC56 // FORMAT_RIE6       ROTATE THEN OR SELECTED BITS
 ++	OP_RP      uint32 = 0xB277 // FORMAT_S          RESUME PROGRAM
 ++	OP_RRBE    uint32 = 0xB22A // FORMAT_RRE        RESET REFERENCE BIT EXTENDED
 ++	OP_RRBM    uint32 = 0xB9AE // FORMAT_RRE        RESET REFERENCE BITS MULTIPLE
 ++	OP_RRDTR   uint32 = 0xB3F7 // FORMAT_RRF2       REROUND (long DFP)
 ++	OP_RRXTR   uint32 = 0xB3FF // FORMAT_RRF2       REROUND (extended DFP)
 ++	OP_RSCH    uint32 = 0xB238 // FORMAT_S          RESUME SUBCHANNEL
 ++	OP_RXSBG   uint32 = 0xEC57 // FORMAT_RIE6       ROTATE THEN EXCLUSIVE OR SELECTED BITS
 ++	OP_S       uint32 = 0x5B00 // FORMAT_RX1        SUBTRACT (32)
 ++	OP_SAC     uint32 = 0xB219 // FORMAT_S          SET ADDRESS SPACE CONTROL
 ++	OP_SACF    uint32 = 0xB279 // FORMAT_S          SET ADDRESS SPACE CONTROL FAST
 ++	OP_SAL     uint32 = 0xB237 // FORMAT_S          SET ADDRESS LIMIT
 ++	OP_SAM24   uint32 = 0x010C // FORMAT_E          SET ADDRESSING MODE (24)
 ++	OP_SAM31   uint32 = 0x010D // FORMAT_E          SET ADDRESSING MODE (31)
 ++	OP_SAM64   uint32 = 0x010E // FORMAT_E          SET ADDRESSING MODE (64)
 ++	OP_SAR     uint32 = 0xB24E // FORMAT_RRE        SET ACCESS
 ++	OP_SCHM    uint32 = 0xB23C // FORMAT_S          SET CHANNEL MONITOR
 ++	OP_SCK     uint32 = 0xB204 // FORMAT_S          SET CLOCK
 ++	OP_SCKC    uint32 = 0xB206 // FORMAT_S          SET CLOCK COMPARATOR
 ++	OP_SCKPF   uint32 = 0x0107 // FORMAT_E          SET CLOCK PROGRAMMABLE FIELD
 ++	OP_SD      uint32 = 0x6B00 // FORMAT_RX1        SUBTRACT NORMALIZED (long HFP)
 ++	OP_SDB     uint32 = 0xED1B // FORMAT_RXE        SUBTRACT (long BFP)
 ++	OP_SDBR    uint32 = 0xB31B // FORMAT_RRE        SUBTRACT (long BFP)
 ++	OP_SDR     uint32 = 0x2B00 // FORMAT_RR         SUBTRACT NORMALIZED (long HFP)
 ++	OP_SDTR    uint32 = 0xB3D3 // FORMAT_RRF1       SUBTRACT (long DFP)
 ++	OP_SDTRA   uint32 = 0xB3D3 // FORMAT_RRF1       SUBTRACT (long DFP)
 ++	OP_SE      uint32 = 0x7B00 // FORMAT_RX1        SUBTRACT NORMALIZED (short HFP)
 ++	OP_SEB     uint32 = 0xED0B // FORMAT_RXE        SUBTRACT (short BFP)
 ++	OP_SEBR    uint32 = 0xB30B // FORMAT_RRE        SUBTRACT (short BFP)
 ++	OP_SER     uint32 = 0x3B00 // FORMAT_RR         SUBTRACT NORMALIZED (short HFP)
 ++	OP_SFASR   uint32 = 0xB385 // FORMAT_RRE        SET FPC AND SIGNAL
 ++	OP_SFPC    uint32 = 0xB384 // FORMAT_RRE        SET FPC
 ++	OP_SG      uint32 = 0xE309 // FORMAT_RXY1       SUBTRACT (64)
 ++	OP_SGF     uint32 = 0xE319 // FORMAT_RXY1       SUBTRACT (64<-32)
 ++	OP_SGFR    uint32 = 0xB919 // FORMAT_RRE        SUBTRACT (64<-32)
 ++	OP_SGR     uint32 = 0xB909 // FORMAT_RRE        SUBTRACT (64)
 ++	OP_SGRK    uint32 = 0xB9E9 // FORMAT_RRF1       SUBTRACT (64)
 ++	OP_SH      uint32 = 0x4B00 // FORMAT_RX1        SUBTRACT HALFWORD
 ++	OP_SHHHR   uint32 = 0xB9C9 // FORMAT_RRF1       SUBTRACT HIGH (32)
 ++	OP_SHHLR   uint32 = 0xB9D9 // FORMAT_RRF1       SUBTRACT HIGH (32)
 ++	OP_SHY     uint32 = 0xE37B // FORMAT_RXY1       SUBTRACT HALFWORD
 ++	OP_SIGP    uint32 = 0xAE00 // FORMAT_RS1        SIGNAL PROCESSOR
 ++	OP_SL      uint32 = 0x5F00 // FORMAT_RX1        SUBTRACT LOGICAL (32)
 ++	OP_SLA     uint32 = 0x8B00 // FORMAT_RS1        SHIFT LEFT SINGLE (32)
 ++	OP_SLAG    uint32 = 0xEB0B // FORMAT_RSY1       SHIFT LEFT SINGLE (64)
 ++	OP_SLAK    uint32 = 0xEBDD // FORMAT_RSY1       SHIFT LEFT SINGLE (32)
 ++	OP_SLB     uint32 = 0xE399 // FORMAT_RXY1       SUBTRACT LOGICAL WITH BORROW (32)
 ++	OP_SLBG    uint32 = 0xE389 // FORMAT_RXY1       SUBTRACT LOGICAL WITH BORROW (64)
 ++	OP_SLBGR   uint32 = 0xB989 // FORMAT_RRE        SUBTRACT LOGICAL WITH BORROW (64)
 ++	OP_SLBR    uint32 = 0xB999 // FORMAT_RRE        SUBTRACT LOGICAL WITH BORROW (32)
 ++	OP_SLDA    uint32 = 0x8F00 // FORMAT_RS1        SHIFT LEFT DOUBLE
 ++	OP_SLDL    uint32 = 0x8D00 // FORMAT_RS1        SHIFT LEFT DOUBLE LOGICAL
 ++	OP_SLDT    uint32 = 0xED40 // FORMAT_RXF        SHIFT SIGNIFICAND LEFT (long DFP)
 ++	OP_SLFI    uint32 = 0xC205 // FORMAT_RIL1       SUBTRACT LOGICAL IMMEDIATE (32)
 ++	OP_SLG     uint32 = 0xE30B // FORMAT_RXY1       SUBTRACT LOGICAL (64)
 ++	OP_SLGF    uint32 = 0xE31B // FORMAT_RXY1       SUBTRACT LOGICAL (64<-32)
 ++	OP_SLGFI   uint32 = 0xC204 // FORMAT_RIL1       SUBTRACT LOGICAL IMMEDIATE (64<-32)
 ++	OP_SLGFR   uint32 = 0xB91B // FORMAT_RRE        SUBTRACT LOGICAL (64<-32)
 ++	OP_SLGR    uint32 = 0xB90B // FORMAT_RRE        SUBTRACT LOGICAL (64)
 ++	OP_SLGRK   uint32 = 0xB9EB // FORMAT_RRF1       SUBTRACT LOGICAL (64)
 ++	OP_SLHHHR  uint32 = 0xB9CB // FORMAT_RRF1       SUBTRACT LOGICAL HIGH (32)
 ++	OP_SLHHLR  uint32 = 0xB9DB // FORMAT_RRF1       SUBTRACT LOGICAL HIGH (32)
 ++	OP_SLL     uint32 = 0x8900 // FORMAT_RS1        SHIFT LEFT SINGLE LOGICAL (32)
 ++	OP_SLLG    uint32 = 0xEB0D // FORMAT_RSY1       SHIFT LEFT SINGLE LOGICAL (64)
 ++	OP_SLLK    uint32 = 0xEBDF // FORMAT_RSY1       SHIFT LEFT SINGLE LOGICAL (32)
 ++	OP_SLR     uint32 = 0x1F00 // FORMAT_RR         SUBTRACT LOGICAL (32)
 ++	OP_SLRK    uint32 = 0xB9FB // FORMAT_RRF1       SUBTRACT LOGICAL (32)
 ++	OP_SLXT    uint32 = 0xED48 // FORMAT_RXF        SHIFT SIGNIFICAND LEFT (extended DFP)
 ++	OP_SLY     uint32 = 0xE35F // FORMAT_RXY1       SUBTRACT LOGICAL (32)
 ++	OP_SP      uint32 = 0xFB00 // FORMAT_SS2        SUBTRACT DECIMAL
 ++	OP_SPKA    uint32 = 0xB20A // FORMAT_S          SET PSW KEY FROM ADDRESS
 ++	OP_SPM     uint32 = 0x0400 // FORMAT_RR         SET PROGRAM MASK
 ++	OP_SPT     uint32 = 0xB208 // FORMAT_S          SET CPU TIMER
 ++	OP_SPX     uint32 = 0xB210 // FORMAT_S          SET PREFIX
 ++	OP_SQD     uint32 = 0xED35 // FORMAT_RXE        SQUARE ROOT (long HFP)
 ++	OP_SQDB    uint32 = 0xED15 // FORMAT_RXE        SQUARE ROOT (long BFP)
 ++	OP_SQDBR   uint32 = 0xB315 // FORMAT_RRE        SQUARE ROOT (long BFP)
 ++	OP_SQDR    uint32 = 0xB244 // FORMAT_RRE        SQUARE ROOT (long HFP)
 ++	OP_SQE     uint32 = 0xED34 // FORMAT_RXE        SQUARE ROOT (short HFP)
 ++	OP_SQEB    uint32 = 0xED14 // FORMAT_RXE        SQUARE ROOT (short BFP)
 ++	OP_SQEBR   uint32 = 0xB314 // FORMAT_RRE        SQUARE ROOT (short BFP)
 ++	OP_SQER    uint32 = 0xB245 // FORMAT_RRE        SQUARE ROOT (short HFP)
 ++	OP_SQXBR   uint32 = 0xB316 // FORMAT_RRE        SQUARE ROOT (extended BFP)
 ++	OP_SQXR    uint32 = 0xB336 // FORMAT_RRE        SQUARE ROOT (extended HFP)
 ++	OP_SR      uint32 = 0x1B00 // FORMAT_RR         SUBTRACT (32)
 ++	OP_SRA     uint32 = 0x8A00 // FORMAT_RS1        SHIFT RIGHT SINGLE (32)
 ++	OP_SRAG    uint32 = 0xEB0A // FORMAT_RSY1       SHIFT RIGHT SINGLE (64)
 ++	OP_SRAK    uint32 = 0xEBDC // FORMAT_RSY1       SHIFT RIGHT SINGLE (32)
 ++	OP_SRDA    uint32 = 0x8E00 // FORMAT_RS1        SHIFT RIGHT DOUBLE
 ++	OP_SRDL    uint32 = 0x8C00 // FORMAT_RS1        SHIFT RIGHT DOUBLE LOGICAL
 ++	OP_SRDT    uint32 = 0xED41 // FORMAT_RXF        SHIFT SIGNIFICAND RIGHT (long DFP)
 ++	OP_SRK     uint32 = 0xB9F9 // FORMAT_RRF1       SUBTRACT (32)
 ++	OP_SRL     uint32 = 0x8800 // FORMAT_RS1        SHIFT RIGHT SINGLE LOGICAL (32)
 ++	OP_SRLG    uint32 = 0xEB0C // FORMAT_RSY1       SHIFT RIGHT SINGLE LOGICAL (64)
 ++	OP_SRLK    uint32 = 0xEBDE // FORMAT_RSY1       SHIFT RIGHT SINGLE LOGICAL (32)
 ++	OP_SRNM    uint32 = 0xB299 // FORMAT_S          SET BFP ROUNDING MODE (2 bit)
 ++	OP_SRNMB   uint32 = 0xB2B8 // FORMAT_S          SET BFP ROUNDING MODE (3 bit)
 ++	OP_SRNMT   uint32 = 0xB2B9 // FORMAT_S          SET DFP ROUNDING MODE
 ++	OP_SRP     uint32 = 0xF000 // FORMAT_SS3        SHIFT AND ROUND DECIMAL
 ++	OP_SRST    uint32 = 0xB25E // FORMAT_RRE        SEARCH STRING
 ++	OP_SRSTU   uint32 = 0xB9BE // FORMAT_RRE        SEARCH STRING UNICODE
 ++	OP_SRXT    uint32 = 0xED49 // FORMAT_RXF        SHIFT SIGNIFICAND RIGHT (extended DFP)
 ++	OP_SSAIR   uint32 = 0xB99F // FORMAT_RRE        SET SECONDARY ASN WITH INSTANCE
 ++	OP_SSAR    uint32 = 0xB225 // FORMAT_RRE        SET SECONDARY ASN
 ++	OP_SSCH    uint32 = 0xB233 // FORMAT_S          START SUBCHANNEL
 ++	OP_SSKE    uint32 = 0xB22B // FORMAT_RRF3       SET STORAGE KEY EXTENDED
 ++	OP_SSM     uint32 = 0x8000 // FORMAT_S          SET SYSTEM MASK
 ++	OP_ST      uint32 = 0x5000 // FORMAT_RX1        STORE (32)
 ++	OP_STAM    uint32 = 0x9B00 // FORMAT_RS1        STORE ACCESS MULTIPLE
 ++	OP_STAMY   uint32 = 0xEB9B // FORMAT_RSY1       STORE ACCESS MULTIPLE
 ++	OP_STAP    uint32 = 0xB212 // FORMAT_S          STORE CPU ADDRESS
 ++	OP_STC     uint32 = 0x4200 // FORMAT_RX1        STORE CHARACTER
 ++	OP_STCH    uint32 = 0xE3C3 // FORMAT_RXY1       STORE CHARACTER HIGH (8)
 ++	OP_STCK    uint32 = 0xB205 // FORMAT_S          STORE CLOCK
 ++	OP_STCKC   uint32 = 0xB207 // FORMAT_S          STORE CLOCK COMPARATOR
 ++	OP_STCKE   uint32 = 0xB278 // FORMAT_S          STORE CLOCK EXTENDED
 ++	OP_STCKF   uint32 = 0xB27C // FORMAT_S          STORE CLOCK FAST
 ++	OP_STCM    uint32 = 0xBE00 // FORMAT_RS2        STORE CHARACTERS UNDER MASK (low)
 ++	OP_STCMH   uint32 = 0xEB2C // FORMAT_RSY2       STORE CHARACTERS UNDER MASK (high)
 ++	OP_STCMY   uint32 = 0xEB2D // FORMAT_RSY2       STORE CHARACTERS UNDER MASK (low)
 ++	OP_STCPS   uint32 = 0xB23A // FORMAT_S          STORE CHANNEL PATH STATUS
 ++	OP_STCRW   uint32 = 0xB239 // FORMAT_S          STORE CHANNEL REPORT WORD
 ++	OP_STCTG   uint32 = 0xEB25 // FORMAT_RSY1       STORE CONTROL (64)
 ++	OP_STCTL   uint32 = 0xB600 // FORMAT_RS1        STORE CONTROL (32)
 ++	OP_STCY    uint32 = 0xE372 // FORMAT_RXY1       STORE CHARACTER
 ++	OP_STD     uint32 = 0x6000 // FORMAT_RX1        STORE (long)
 ++	OP_STDY    uint32 = 0xED67 // FORMAT_RXY1       STORE (long)
 ++	OP_STE     uint32 = 0x7000 // FORMAT_RX1        STORE (short)
 ++	OP_STEY    uint32 = 0xED66 // FORMAT_RXY1       STORE (short)
 ++	OP_STFH    uint32 = 0xE3CB // FORMAT_RXY1       STORE HIGH (32)
 ++	OP_STFL    uint32 = 0xB2B1 // FORMAT_S          STORE FACILITY LIST
 ++	OP_STFLE   uint32 = 0xB2B0 // FORMAT_S          STORE FACILITY LIST EXTENDED
 ++	OP_STFPC   uint32 = 0xB29C // FORMAT_S          STORE FPC
 ++	OP_STG     uint32 = 0xE324 // FORMAT_RXY1       STORE (64)
 ++	OP_STGRL   uint32 = 0xC40B // FORMAT_RIL2       STORE RELATIVE LONG (64)
 ++	OP_STH     uint32 = 0x4000 // FORMAT_RX1        STORE HALFWORD
 ++	OP_STHH    uint32 = 0xE3C7 // FORMAT_RXY1       STORE HALFWORD HIGH (16)
 ++	OP_STHRL   uint32 = 0xC407 // FORMAT_RIL2       STORE HALFWORD RELATIVE LONG
 ++	OP_STHY    uint32 = 0xE370 // FORMAT_RXY1       STORE HALFWORD
 ++	OP_STIDP   uint32 = 0xB202 // FORMAT_S          STORE CPU ID
 ++	OP_STM     uint32 = 0x9000 // FORMAT_RS1        STORE MULTIPLE (32)
 ++	OP_STMG    uint32 = 0xEB24 // FORMAT_RSY1       STORE MULTIPLE (64)
 ++	OP_STMH    uint32 = 0xEB26 // FORMAT_RSY1       STORE MULTIPLE HIGH
 ++	OP_STMY    uint32 = 0xEB90 // FORMAT_RSY1       STORE MULTIPLE (32)
 ++	OP_STNSM   uint32 = 0xAC00 // FORMAT_SI         STORE THEN AND SYSTEM MASK
 ++	OP_STOC    uint32 = 0xEBF3 // FORMAT_RSY2       STORE ON CONDITION (32)
 ++	OP_STOCG   uint32 = 0xEBE3 // FORMAT_RSY2       STORE ON CONDITION (64)
 ++	OP_STOSM   uint32 = 0xAD00 // FORMAT_SI         STORE THEN OR SYSTEM MASK
 ++	OP_STPQ    uint32 = 0xE38E // FORMAT_RXY1       STORE PAIR TO QUADWORD
 ++	OP_STPT    uint32 = 0xB209 // FORMAT_S          STORE CPU TIMER
 ++	OP_STPX    uint32 = 0xB211 // FORMAT_S          STORE PREFIX
 ++	OP_STRAG   uint32 = 0xE502 // FORMAT_SSE        STORE REAL ADDRESS
 ++	OP_STRL    uint32 = 0xC40F // FORMAT_RIL2       STORE RELATIVE LONG (32)
 ++	OP_STRV    uint32 = 0xE33E // FORMAT_RXY1       STORE REVERSED (32)
 ++	OP_STRVG   uint32 = 0xE32F // FORMAT_RXY1       STORE REVERSED (64)
 ++	OP_STRVH   uint32 = 0xE33F // FORMAT_RXY1       STORE REVERSED (16)
 ++	OP_STSCH   uint32 = 0xB234 // FORMAT_S          STORE SUBCHANNEL
 ++	OP_STSI    uint32 = 0xB27D // FORMAT_S          STORE SYSTEM INFORMATION
 ++	OP_STURA   uint32 = 0xB246 // FORMAT_RRE        STORE USING REAL ADDRESS (32)
 ++	OP_STURG   uint32 = 0xB925 // FORMAT_RRE        STORE USING REAL ADDRESS (64)
 ++	OP_STY     uint32 = 0xE350 // FORMAT_RXY1       STORE (32)
 ++	OP_SU      uint32 = 0x7F00 // FORMAT_RX1        SUBTRACT UNNORMALIZED (short HFP)
 ++	OP_SUR     uint32 = 0x3F00 // FORMAT_RR         SUBTRACT UNNORMALIZED (short HFP)
 ++	OP_SVC     uint32 = 0x0A00 // FORMAT_I          SUPERVISOR CALL
 ++	OP_SW      uint32 = 0x6F00 // FORMAT_RX1        SUBTRACT UNNORMALIZED (long HFP)
 ++	OP_SWR     uint32 = 0x2F00 // FORMAT_RR         SUBTRACT UNNORMALIZED (long HFP)
 ++	OP_SXBR    uint32 = 0xB34B // FORMAT_RRE        SUBTRACT (extended BFP)
 ++	OP_SXR     uint32 = 0x3700 // FORMAT_RR         SUBTRACT NORMALIZED (extended HFP)
 ++	OP_SXTR    uint32 = 0xB3DB // FORMAT_RRF1       SUBTRACT (extended DFP)
 ++	OP_SXTRA   uint32 = 0xB3DB // FORMAT_RRF1       SUBTRACT (extended DFP)
 ++	OP_SY      uint32 = 0xE35B // FORMAT_RXY1       SUBTRACT (32)
 ++	OP_TABORT  uint32 = 0xB2FC // FORMAT_S          TRANSACTION ABORT
 ++	OP_TAM     uint32 = 0x010B // FORMAT_E          TEST ADDRESSING MODE
 ++	OP_TAR     uint32 = 0xB24C // FORMAT_RRE        TEST ACCESS
 ++	OP_TB      uint32 = 0xB22C // FORMAT_RRE        TEST BLOCK
 ++	OP_TBDR    uint32 = 0xB351 // FORMAT_RRF5       CONVERT HFP TO BFP (long)
 ++	OP_TBEDR   uint32 = 0xB350 // FORMAT_RRF5       CONVERT HFP TO BFP (long to short)
 ++	OP_TBEGIN  uint32 = 0xE560 // FORMAT_SIL        TRANSACTION BEGIN
 ++	OP_TBEGINC uint32 = 0xE561 // FORMAT_SIL        TRANSACTION BEGIN
 ++	OP_TCDB    uint32 = 0xED11 // FORMAT_RXE        TEST DATA CLASS (long BFP)
 ++	OP_TCEB    uint32 = 0xED10 // FORMAT_RXE        TEST DATA CLASS (short BFP)
 ++	OP_TCXB    uint32 = 0xED12 // FORMAT_RXE        TEST DATA CLASS (extended BFP)
 ++	OP_TDCDT   uint32 = 0xED54 // FORMAT_RXE        TEST DATA CLASS (long DFP)
 ++	OP_TDCET   uint32 = 0xED50 // FORMAT_RXE        TEST DATA CLASS (short DFP)
 ++	OP_TDCXT   uint32 = 0xED58 // FORMAT_RXE        TEST DATA CLASS (extended DFP)
 ++	OP_TDGDT   uint32 = 0xED55 // FORMAT_RXE        TEST DATA GROUP (long DFP)
 ++	OP_TDGET   uint32 = 0xED51 // FORMAT_RXE        TEST DATA GROUP (short DFP)
 ++	OP_TDGXT   uint32 = 0xED59 // FORMAT_RXE        TEST DATA GROUP (extended DFP)
 ++	OP_TEND    uint32 = 0xB2F8 // FORMAT_S          TRANSACTION END
 ++	OP_THDER   uint32 = 0xB358 // FORMAT_RRE        CONVERT BFP TO HFP (short to long)
 ++	OP_THDR    uint32 = 0xB359 // FORMAT_RRE        CONVERT BFP TO HFP (long)
 ++	OP_TM      uint32 = 0x9100 // FORMAT_SI         TEST UNDER MASK
 ++	OP_TMH     uint32 = 0xA700 // FORMAT_RI1        TEST UNDER MASK HIGH
 ++	OP_TMHH    uint32 = 0xA702 // FORMAT_RI1        TEST UNDER MASK (high high)
 ++	OP_TMHL    uint32 = 0xA703 // FORMAT_RI1        TEST UNDER MASK (high low)
 ++	OP_TML     uint32 = 0xA701 // FORMAT_RI1        TEST UNDER MASK LOW
 ++	OP_TMLH    uint32 = 0xA700 // FORMAT_RI1        TEST UNDER MASK (low high)
 ++	OP_TMLL    uint32 = 0xA701 // FORMAT_RI1        TEST UNDER MASK (low low)
 ++	OP_TMY     uint32 = 0xEB51 // FORMAT_SIY        TEST UNDER MASK
 ++	OP_TP      uint32 = 0xEBC0 // FORMAT_RSL        TEST DECIMAL
 ++	OP_TPI     uint32 = 0xB236 // FORMAT_S          TEST PENDING INTERRUPTION
 ++	OP_TPROT   uint32 = 0xE501 // FORMAT_SSE        TEST PROTECTION
 ++	OP_TR      uint32 = 0xDC00 // FORMAT_SS1        TRANSLATE
 ++	OP_TRACE   uint32 = 0x9900 // FORMAT_RS1        TRACE (32)
 ++	OP_TRACG   uint32 = 0xEB0F // FORMAT_RSY1       TRACE (64)
 ++	OP_TRAP2   uint32 = 0x01FF // FORMAT_E          TRAP
 ++	OP_TRAP4   uint32 = 0xB2FF // FORMAT_S          TRAP
 ++	OP_TRE     uint32 = 0xB2A5 // FORMAT_RRE        TRANSLATE EXTENDED
 ++	OP_TROO    uint32 = 0xB993 // FORMAT_RRF3       TRANSLATE ONE TO ONE
 ++	OP_TROT    uint32 = 0xB992 // FORMAT_RRF3       TRANSLATE ONE TO TWO
 ++	OP_TRT     uint32 = 0xDD00 // FORMAT_SS1        TRANSLATE AND TEST
 ++	OP_TRTE    uint32 = 0xB9BF // FORMAT_RRF3       TRANSLATE AND TEST EXTENDED
 ++	OP_TRTO    uint32 = 0xB991 // FORMAT_RRF3       TRANSLATE TWO TO ONE
 ++	OP_TRTR    uint32 = 0xD000 // FORMAT_SS1        TRANSLATE AND TEST REVERSE
 ++	OP_TRTRE   uint32 = 0xB9BD // FORMAT_RRF3       TRANSLATE AND TEST REVERSE EXTENDED
 ++	OP_TRTT    uint32 = 0xB990 // FORMAT_RRF3       TRANSLATE TWO TO TWO
 ++	OP_TS      uint32 = 0x9300 // FORMAT_S          TEST AND SET
 ++	OP_TSCH    uint32 = 0xB235 // FORMAT_S          TEST SUBCHANNEL
 ++	OP_UNPK    uint32 = 0xF300 // FORMAT_SS2        UNPACK
 ++	OP_UNPKA   uint32 = 0xEA00 // FORMAT_SS1        UNPACK ASCII
 ++	OP_UNPKU   uint32 = 0xE200 // FORMAT_SS1        UNPACK UNICODE
 ++	OP_UPT     uint32 = 0x0102 // FORMAT_E          UPDATE TREE
 ++	OP_X       uint32 = 0x5700 // FORMAT_RX1        EXCLUSIVE OR (32)
 ++	OP_XC      uint32 = 0xD700 // FORMAT_SS1        EXCLUSIVE OR (character)
 ++	OP_XG      uint32 = 0xE382 // FORMAT_RXY1       EXCLUSIVE OR (64)
 ++	OP_XGR     uint32 = 0xB982 // FORMAT_RRE        EXCLUSIVE OR (64)
 ++	OP_XGRK    uint32 = 0xB9E7 // FORMAT_RRF1       EXCLUSIVE OR (64)
 ++	OP_XI      uint32 = 0x9700 // FORMAT_SI         EXCLUSIVE OR (immediate)
 ++	OP_XIHF    uint32 = 0xC006 // FORMAT_RIL1       EXCLUSIVE OR IMMEDIATE (high)
 ++	OP_XILF    uint32 = 0xC007 // FORMAT_RIL1       EXCLUSIVE OR IMMEDIATE (low)
 ++	OP_XIY     uint32 = 0xEB57 // FORMAT_SIY        EXCLUSIVE OR (immediate)
 ++	OP_XR      uint32 = 0x1700 // FORMAT_RR         EXCLUSIVE OR (32)
 ++	OP_XRK     uint32 = 0xB9F7 // FORMAT_RRF1       EXCLUSIVE OR (32)
 ++	OP_XSCH    uint32 = 0xB276 // FORMAT_S          CANCEL SUBCHANNEL
 ++	OP_XY      uint32 = 0xE357 // FORMAT_RXY1       EXCLUSIVE OR (32)
 ++	OP_ZAP     uint32 = 0xF800 // FORMAT_SS2        ZERO AND ADD
 ++)
 ++
 ++func oclass(a *obj.Addr) int {
 ++	return int(a.Class) - 1
 ++}
 ++
 ++// Add a relocation for the immediate in a RIL style instruction.
 ++// The addend will be adjusted as required.
 ++func addrilreloc(ctxt *obj.Link, sym *obj.LSym, add int64) *obj.Reloc {
 ++	offset := int64(2) // relocation offset from start of instruction
 ++	rel := obj.Addrel(ctxt.Cursym)
 ++	rel.Off = int32(ctxt.Pc + offset)
 ++	rel.Siz = 4
 ++	rel.Sym = sym
 ++	rel.Add = add + offset + int64(rel.Siz)
 ++	rel.Type = obj.R_PCRELDBL
 ++	return rel
 ++}
 ++
 ++// Add a CALL relocation for the immediate in a RIL style instruction.
 ++// The addend will be adjusted as required.
 ++func addcallreloc(ctxt *obj.Link, sym *obj.LSym, add int64) *obj.Reloc {
 ++	offset := int64(2) // relocation offset from start of instruction
 ++	rel := obj.Addrel(ctxt.Cursym)
 ++	rel.Off = int32(ctxt.Pc + offset)
 ++	rel.Siz = 4
 ++	rel.Sym = sym
 ++	rel.Add = add + offset + int64(rel.Siz)
 ++	rel.Type = obj.R_CALL
 ++	return rel
 ++}
 ++
 ++/*
 ++ * 32-bit masks
 ++ */
 ++func getmask(m []byte, v uint32) bool {
 ++	m[1] = 0
 ++	m[0] = m[1]
 ++	if v != ^uint32(0) && v&(1<<31) != 0 && v&1 != 0 { /* MB > ME */
 ++		if getmask(m, ^v) {
 ++			i := int(m[0])
 ++			m[0] = m[1] + 1
 ++			m[1] = byte(i - 1)
 ++			return true
 ++		}
 ++
 ++		return false
 ++	}
 ++
 ++	for i := 0; i < 32; i++ {
 ++		if v&(1<<uint(31-i)) != 0 {
 ++			m[0] = byte(i)
 ++			for {
 ++				m[1] = byte(i)
 ++				i++
 ++				if i >= 32 || v&(1<<uint(31-i)) == 0 {
 ++					break
 ++				}
 ++			}
 ++
 ++			for ; i < 32; i++ {
 ++				if v&(1<<uint(31-i)) != 0 {
 ++					return false
 ++				}
 ++			}
 ++			return true
 ++		}
 ++	}
 ++
 ++	return false
 ++}
 ++
 ++func maskgen(ctxt *obj.Link, p *obj.Prog, m []byte, v uint32) {
 ++	if !getmask(m, v) {
 ++		ctxt.Diag("cannot generate mask #%x\n%v", v, p)
 ++	}
 ++}
 ++
 ++/*
 ++ * 64-bit masks (rldic etc)
 ++ */
 ++func getmask64(m []byte, v uint64) bool {
 ++	m[1] = 0
 ++	m[0] = m[1]
 ++	for i := 0; i < 64; i++ {
 ++		if v&(uint64(1)<<uint(63-i)) != 0 {
 ++			m[0] = byte(i)
 ++			for {
 ++				m[1] = byte(i)
 ++				i++
 ++				if i >= 64 || v&(uint64(1)<<uint(63-i)) == 0 {
 ++					break
 ++				}
 ++			}
 ++
 ++			for ; i < 64; i++ {
 ++				if v&(uint64(1)<<uint(63-i)) != 0 {
 ++					return false
 ++				}
 ++			}
 ++			return true
 ++		}
 ++	}
 ++
 ++	return false
 ++}
 ++
 ++func maskgen64(ctxt *obj.Link, p *obj.Prog, m []byte, v uint64) {
 ++	if !getmask64(m, v) {
 ++		ctxt.Diag("cannot generate mask #%x\n%v", v, p)
 ++	}
 ++}
 ++
 ++func branchMask(ctxt *obj.Link, p *obj.Prog) uint32 {
 ++	switch p.As {
 ++	case ABEQ, ACMPBEQ, ACMPUBEQ:
 ++		return 0x8
 ++	case ABGE, ACMPBGE, ACMPUBGE:
 ++		return 0xA
 ++	case ABGT, ACMPBGT, ACMPUBGT:
 ++		return 0x2
 ++	case ABLE, ACMPBLE, ACMPUBLE:
 ++		return 0xC
 ++	case ABLT, ACMPBLT, ACMPUBLT:
 ++		return 0x4
 ++	case ABNE, ACMPBNE, ACMPUBNE:
 ++		return 0x7
 ++	case ABVC:
 ++		return 0x0 //needs extra instruction
 ++	case ABVS:
 ++		return 0x1
 ++	}
 ++	ctxt.Diag("unknown conditional branch %v", p.As)
 ++	return 0xF
 ++}
 ++
 ++func asmout(ctxt *obj.Link, asm *[]byte) {
 ++	p := ctxt.Curp
 ++	o := oplook(ctxt, p)
 ++	ctxt.Printp = p
 ++
 ++	switch o.type_ {
 ++	default:
 ++		ctxt.Diag("unknown type %d", o.type_)
 ++
 ++	case 0: /* pseudo ops */
 ++		break
 ++
 ++	case 1: /* mov r1,r2 ==> OR Rs,Rs,Ra */ // lgr r1,r2
 ++		if p.From.Type == obj.TYPE_CONST { //happens when a zero constant is used
 ++			v := regoff(ctxt, &p.From)
 ++			RI(OP_LGHI, uint32(p.To.Reg), uint32(v), asm)
 ++		} else {
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		}
 ++
 ++	case 2: /* int/cr/fp op Rb,[Ra],Rd */
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		var opcode uint32
 ++
 ++		switch p.As {
 ++		default:
 ++			ctxt.Diag("invalid opcode")
 ++		case AADD:
 ++			opcode = OP_AGRK
 ++		case AADDC:
 ++			opcode = OP_ALGRK
 ++		case AADDE:
 ++			opcode = OP_ALCGR
 ++		case AMULLW:
 ++			opcode = OP_MSGFR
 ++		case AMULLD:
 ++			opcode = OP_MSGR
 ++		case AMULHDU:
 ++			opcode = OP_MLGR
 ++		case AMULHD:
 ++			ctxt.Diag("MULHD not implemented")
 ++		case ADIVW:
 ++			opcode = OP_DSGFR
 ++		case ADIVWU:
 ++			opcode = OP_DLR
 ++		case ADIVD:
 ++			opcode = OP_DSGR
 ++		case ADIVDU:
 ++			opcode = OP_DLGR
 ++		case AFADD:
 ++			opcode = OP_ADBR
 ++		case AFADDS:
 ++			opcode = OP_AEBR
 ++		case AFSUB:
 ++			opcode = OP_SDBR
 ++		case AFSUBS:
 ++			opcode = OP_SEBR
 ++		case AFDIV:
 ++			opcode = OP_DDBR
 ++		case AFDIVS:
 ++			opcode = OP_DEBR
 ++		}
 ++
 ++		switch p.As {
 ++		default:
 ++
 ++		case AADD, AADDC:
 ++			RRF(opcode, uint32(p.From.Reg), 0, uint32(p.To.Reg), uint32(r), asm)
 ++
 ++		case AADDE, AMULLW, AMULLD:
 ++			if r == int(p.To.Reg) {
 ++				RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else if p.From.Reg == p.To.Reg {
 ++				RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
 ++			} else {
 ++				RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
 ++				RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++
 ++		case ADIVW, ADIVWU, ADIVD, ADIVDU:
 ++			if p.As == ADIVWU || p.As == ADIVDU {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(REGZERO), asm)
 ++			}
 ++			RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
 ++			RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP2), asm)
 ++
 ++		case AMULHDU:
 ++			RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
 ++			RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP), asm)
 ++
 ++		case AFADD, AFADDS:
 ++			if r == int(p.To.Reg) {
 ++				RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else if p.From.Reg == p.To.Reg {
 ++				RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
 ++			} else {
 ++				RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
 ++				RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++
 ++		case AFSUB, AFSUBS, AFDIV, AFDIVS:
 ++			if r == int(p.To.Reg) {
 ++				RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else if p.From.Reg == p.To.Reg {
 ++				RRE(OP_LGDR, uint32(REGTMP), uint32(r), asm)
 ++				RRE(opcode, uint32(r), uint32(p.From.Reg), asm)
 ++				RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
 ++				RRE(OP_LDGR, uint32(r), uint32(REGTMP), asm)
 ++			} else {
 ++				RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
 ++				RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++
 ++		}
 ++
 ++	case 3: // mov $soreg/addcon/ucon,r => LGFI Rd, $i or LAY Rd, $i(Rs)
 ++		d := vregoff(ctxt, &p.From)
 ++
 ++		v := int32(d)
 ++		r := int(p.From.Reg)
 ++
 ++		if r == 0 {
 ++			r = int(o.param)
 ++		}
 ++
 ++		if r == 0 {
 ++			switch p.As {
 ++			case AMOVWZ, AMOVHZ, AMOVBZ:
 ++				switch p.As {
 ++				case AMOVHZ:
 ++					v = int32(uint16(v))
 ++				case AMOVBZ:
 ++					v = int32(uint8(v))
 ++				}
 ++				RIL(a, OP_LLILF, uint32(p.To.Reg), uint32(v), asm)
 ++			default:
 ++				RIL(a, OP_LGFI, uint32(p.To.Reg), uint32(v), asm)
 ++			}
 ++		} else if v >= 0 && v < DISP12 {
 ++			RX(OP_LA, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		} else {
 ++			RXY(a, OP_LAY, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		}
 ++
 ++	case 4: /* add/mul $scon,[r1],r2 */ //Might have to worry about condition codes
 ++		v := regoff(ctxt, &p.From)
 ++
 ++		r := int(p.To.Reg)
 ++		r2 := int(p.Reg)
 ++
 ++		if p.Reg == 0 && p.To.Reg == 0 {
 ++			ctxt.Diag("literal operation on R0\n%v", p)
 ++		}
 ++		if p.As == AADD {
 ++			if r2 == 0 {
 ++				RIL(a, OP_AGFI, uint32(r), uint32(v), asm)
 ++			} else {
 ++				RIE(d, OP_AGHIK, uint32(r), uint32(r2), uint32(v), 0, 0, 0, 0, asm)
 ++			}
 ++		} else if p.As == AMULLW {
 ++			if r2 == 0 {
 ++				RIL(a, OP_MSGFI, uint32(r), uint32(v), asm)
 ++			} else {
 ++				RIL(a, OP_MSGFI, uint32(r2), uint32(v), asm)
 ++				RRE(OP_LGFR, uint32(r), uint32(r2), asm)
 ++			}
 ++		}
 ++
 ++	case 5: /* syscall */ // This might be right, assuming SVC is the same as Power's SC
 ++		I(OP_SVC, 0, asm)
 ++
 ++	case 6: /* logical op Rb,[Rs,]Ra; no literal */
 ++		if p.To.Reg == 0 {
 ++			ctxt.Diag("literal operation on R0\n%v", p)
 ++		}
 ++
 ++		switch p.As {
 ++		case AAND, AOR, AXOR:
 ++			var opcode1, opcode2 uint32
 ++			switch p.As {
 ++			default:
 ++			case AAND:
 ++				opcode1 = OP_NGR
 ++				opcode2 = OP_NGRK
 ++			case AOR:
 ++				opcode1 = OP_OGR
 ++				opcode2 = OP_OGRK
 ++			case AXOR:
 ++				opcode1 = OP_XGR
 ++				opcode2 = OP_XGRK
 ++			}
 ++
 ++			r := int(p.Reg)
 ++			if r == 0 {
 ++				RRE(opcode1, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else {
 ++				RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++
 ++		case AANDN, AORN:
 ++			var opcode1, opcode2 uint32
 ++			switch p.As {
 ++			default:
 ++			case AANDN:
 ++				opcode1 = OP_NGR
 ++				opcode2 = OP_NGRK
 ++			case AORN:
 ++				opcode1 = OP_OGR
 ++				opcode2 = OP_OGRK
 ++			}
 ++
 ++			r := int(p.Reg)
 ++			if r == 0 {
 ++				RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.To.Reg), asm)
 ++				RRE(opcode1, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else {
 ++				RRE(OP_LCGR, uint32(REGTMP), uint32(r), asm)
 ++				RRF(opcode2, uint32(REGTMP), 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++
 ++		case ANAND, ANOR:
 ++			var opcode1, opcode2 uint32
 ++			switch p.As {
 ++			default:
 ++			case ANAND:
 ++				opcode1 = OP_NGR
 ++				opcode2 = OP_NGRK
 ++			case ANOR:
 ++				opcode1 = OP_OGR
 ++				opcode2 = OP_OGRK
 ++			}
 ++
 ++			r := int(p.Reg)
 ++			if r == 0 {
 ++				RRE(opcode1, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else {
 ++				RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++
 ++			RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.To.Reg), asm)
 ++
 ++		case ASLW, ASLD, ASRAW, ASRAD, ASRW, ASRD:
 ++			var opcode uint32
 ++			switch p.As {
 ++			default:
 ++			case ASLW:
 ++				opcode = OP_SLLK
 ++			case ASLD:
 ++				opcode = OP_SLLG
 ++			case ASRAW:
 ++				opcode = OP_SRAK
 ++			case ASRAD:
 ++				opcode = OP_SRAG
 ++			case ASRW:
 ++				opcode = OP_SRLK
 ++			case ASRD:
 ++				opcode = OP_SRLG
 ++			}
 ++
 ++			r := int(p.Reg)
 ++			if r == 0 {
 ++				r = int(p.To.Reg)
 ++			}
 ++			RSY(opcode, uint32(p.To.Reg), uint32(r), uint32(p.From.Reg), 0, asm)
 ++
 ++		default:
 ++
 ++		}
 ++
 ++	case 7: /* mov r, soreg ==> stg o(r) */
 ++		x := int(p.To.Reg)
 ++		if x == 0 {
 ++			x = int(o.param)
 ++		}
 ++		var b int
 ++		if p.To.Type == obj.TYPE_MEM && p.To.Index != 0 {
 ++			b = int(p.To.Index)
 ++		} else {
 ++			b = x
 ++			x = 0
 ++		}
 ++		v := regoff(ctxt, &p.To)
 ++
 ++		RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(x), uint32(b), uint32(v), asm)
 ++
 ++	/* AMOVD, AMOVW, AMOVWZ, AMOVBZ */
 ++	case 8, 9: /* mov soreg, r ==> lbz/lhz/lwz o(r) */
 ++		x := int(p.From.Reg)
 ++		if x == 0 {
 ++			x = int(o.param)
 ++		}
 ++		var b int
 ++		if p.From.Type == obj.TYPE_MEM && p.From.Index != 0 {
 ++			b = int(p.From.Index)
 ++		} else {
 ++			b = x
 ++			x = 0
 ++		}
 ++		v := regoff(ctxt, &p.From)
 ++
 ++		RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(x), uint32(b), uint32(v), asm)
 ++
 ++	case 10: /* sub Ra,[Rb],Rd => subf Rd,Ra,Rb */
 ++		r := int(p.Reg)
 ++
 ++		switch p.As {
 ++		default:
 ++		case ASUB:
 ++			if r == 0 {
 ++				RRE(OP_SGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else {
 ++				RRF(OP_SGRK, uint32(p.From.Reg), 0, uint32(p.To.Reg), uint32(r), asm)
 ++			}
 ++		case ASUBC:
 ++			if r == 0 {
 ++				RRE(OP_SLGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else {
 ++				RRF(OP_SLGRK, uint32(p.From.Reg), 0, uint32(p.To.Reg), uint32(r), asm)
 ++			}
 ++
 ++		case ASUBE:
 ++			if r == 0 {
 ++				r = int(p.To.Reg)
 ++			}
 ++			if r == int(p.To.Reg) {
 ++				RRE(OP_SLBGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			} else if p.From.Reg == p.To.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++				RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
 ++				RRE(OP_SLBGR, uint32(p.To.Reg), uint32(REGTMP), asm)
 ++			} else {
 ++				RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
 ++				RRE(OP_SLBGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++			}
 ++		}
 ++
 ++	case 11: /* br/bl lbra */
 ++		v := int32(0)
 ++
 ++		if p.Pcond != nil {
 ++			v = int32((p.Pcond.Pc - p.Pc) >> 1)
 ++		}
 ++
 ++		if p.As == ABR && p.To.Sym == nil && int32(int16(v)) == v {
 ++			RI(OP_BRC, 0xF, uint32(v), asm)
 ++		} else {
 ++			if p.As == ABL {
 ++				RIL(b, OP_BRASL, uint32(REG_LR), uint32(v), asm)
 ++			} else {
 ++				RIL(c, OP_BRCL, 0xF, uint32(v), asm)
 ++			}
 ++			if p.To.Sym != nil {
 ++				addcallreloc(ctxt, p.To.Sym, p.To.Offset)
 ++			}
 ++		}
 ++
 ++	case 12: /* movb r,r (lgbr); movw r,r (lgfr) */
 ++		if p.To.Reg == REGZERO && p.From.Type == obj.TYPE_CONST {
 ++			v := regoff(ctxt, &p.From)
 ++			if r0iszero != 0 /*TypeKind(100016)*/ && v != 0 {
 ++				ctxt.Diag("literal operation on R0\n%v", p)
 ++			}
 ++			RIL(a, OP_LGFI, uint32(REGZERO), uint32(v), asm)
 ++		} else if p.As == AMOVW {
 ++			RRE(OP_LGFR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		} else {
 ++			RRE(OP_LGBR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		}
 ++
 ++	case 13: /* mov[bhw]z r,r (llgbr, llghr, llgfr) */
 ++		if p.As == AMOVBZ {
 ++			RRE(OP_LLGCR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		} else if p.As == AMOVH {
 ++			RRE(OP_LGHR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		} else if p.As == AMOVHZ {
 ++			RRE(OP_LLGHR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		} else if p.As == AMOVWZ {
 ++			RRE(OP_LLGFR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		} else {
 ++			ctxt.Diag("internal: bad mov[bhw]z\n%v", p)
 ++		}
 ++
 ++	case 14: /* rldc[lr] Rb,Rs,$mask,Ra -- left, right give different masks */
 ++		d := vregoff(ctxt, p.From3)
 ++		var mask [2]uint8
 ++		maskgen64(ctxt, p, mask[:], uint64(d))
 ++		var i3, i4 int
 ++		switch p.As {
 ++		case ARLDCL:
 ++			i3 = int(mask[0]) // MB
 ++			i4 = int(63)
 ++			if mask[1] != 63 {
 ++				ctxt.Diag("invalid mask for rotate: %x (end != bit 63)\n%v", uint64(d), p)
 ++			}
 ++
 ++		case ARLDCR:
 ++			i3 = int(0)
 ++			i4 = int(mask[1]) // ME
 ++			if mask[0] != 0 {
 ++				ctxt.Diag("invalid mask for rotate: %x (start != 0)\n%v", uint64(d), p)
 ++			}
 ++
 ++		default:
 ++			ctxt.Diag("unexpected op in rldc case\n%v", p)
 ++		}
 ++
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++		RSY(OP_RLLG, uint32(REGTMP), uint32(r), uint32(p.From.Reg), 0, asm)
 ++		RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
 ++		RIE(f, OP_RISBG, uint32(p.To.Reg), uint32(REGTMP), 0, uint32(i3), uint32(i4), 0, 0, asm)
 ++
 ++	case 15: /* br/bl (r) */
 ++		r := p.To.Reg
 ++		if p.As == ABCL || p.As == ABL {
 ++			RR(OP_BASR, uint32(REG_LR), uint32(r), asm)
 ++		} else {
 ++			RR(OP_BCR, 0xF, uint32(r), asm)
 ++		}
 ++
 ++	case 17, /* bc bo,bi,lbra (same for now) */
 ++		16: /* bc bo,bi,sbra */
 ++		v := int32(0)
 ++		if p.Pcond != nil {
 ++			v = int32((p.Pcond.Pc - p.Pc) >> 1)
 ++		}
 ++		mask := branchMask(ctxt, p)
 ++		if p.To.Sym == nil && int32(int16(v)) == v {
 ++			RI(OP_BRC, uint32(mask), uint32(v), asm)
 ++		} else {
 ++			RIL(c, OP_BRCL, uint32(mask), uint32(v), asm)
 ++		}
 ++		if p.To.Sym != nil {
 ++			addrilreloc(ctxt, p.To.Sym, p.To.Offset)
 ++		}
 ++
 ++	case 18: // br/bl r
 ++		switch oclass(&p.To) {
 ++		case C_REG:
 ++			if p.As == ABL {
 ++				RR(OP_BASR, uint32(REG_LR), uint32(p.To.Reg), asm)
 ++			} else {
 ++				RR(OP_BCR, 0xF, uint32(p.To.Reg), asm)
 ++			}
 ++		default:
 ++			ctxt.Diag("bad optab entry (18): %d\n%v", p.To.Class, p)
 ++		}
 ++
 ++	case 19: /* mov $lcon,r ==> cau+or */
 ++		d := vregoff(ctxt, &p.From)
 ++
 ++		if p.From.Sym == nil {
 ++			RIL(a, OP_LGFI, uint32(p.To.Reg), uint32(d), asm)
- +		} else if p.From.Sym.Name == "runtime.tlsg" {
- +			// This is a hack to get the right offset for g from the TLS block.
- +			// It would be nice to have some syntax to do this properly.
- +			// This will NOT work when generating a shared object.
- +			switch p.As {
- +			default:
- +				ctxt.Diag("can only place TLS variable offset into a 8-byte register (i.e. need MOVD)")
- +			case AMOVD:
- +				// The R_390_TLS_LE32 relocation isn't actually implemented for ELF64,
- +				// we therefore need to use the 64-bit equivalent, which means using .rodata.
- +				var sym *obj.LSym
- +				sym = obj.Linklookup(ctxt, "runtime.tlsg_offset", 0)
- +				sym.Type = obj.SRODATA
- +				sym.Size = 8
- +				obj.Symgrow(ctxt, sym, sym.Size) // needed for relocation to apply
- +				sym.R = make([]obj.Reloc, 0)
- +				offrel := obj.Addrel(sym)
- +				offrel.Off = 0
- +				offrel.Siz = 8
- +				offrel.Sym = obj.Linklookup(ctxt, "runtime.tlsg", 0)
- +				offrel.Add = 0
- +				offrel.Type = obj.R_TLS_LE
- +				rel := obj.Addrel(ctxt.Cursym)
- +				rel.Off = int32(ctxt.Pc + 2)
- +				rel.Siz = 4
- +				rel.Sym = sym
- +				rel.Add = int64(rel.Siz) + 2
- +				rel.Type = obj.R_PCRELDBL
- +				RIL(a, OP_LGRL, uint32(p.To.Reg), 0, asm)
- +			}
 ++		} else {
 ++			RIL(b, OP_LARL, uint32(p.To.Reg), 0, asm)
 ++			if d&1 != 0 {
 ++				RX(OP_LA, uint32(p.To.Reg), uint32(p.To.Reg), 0, 1, asm)
 ++				d -= 1
 ++			}
 ++			addrilreloc(ctxt, p.From.Sym, d)
 ++		}
 ++
 ++	case 20: /* add $ucon,,r */
 ++		v := regoff(ctxt, &p.From)
 ++
 ++		r := int(p.Reg)
 ++		if p.As == AADD && p.To.Reg == 0 {
 ++			ctxt.Diag("literal operation on R0\n%v", p)
 ++		}
 ++		if r == 0 {
 ++			RIL(a, OP_AGFI, uint32(p.To.Reg), uint32(v), asm)
 ++		} else {
 ++			RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
 ++			RRE(OP_AGR, REGTMP, uint32(r), asm)
 ++			RRE(OP_LGR, uint32(p.To.Reg), REGTMP, asm)
 ++		}
 ++
 ++	case 22: /* add $lcon,r1,r2 ==> cau+or+add */ /* could do add/sub more efficiently */
 ++
 ++		if p.From.Sym != nil {
 ++			ctxt.Diag("%v is not supported", p)
 ++		}
 ++
 ++		d := vregoff(ctxt, &p.From)
 ++		var opcode uint32
 ++		switch p.As {
 ++		default:
 ++		case AADD:
 ++			opcode = OP_AGFI
 ++		case AADDC:
 ++			opcode = OP_ALGFI
 ++		case AMULLW:
 ++			opcode = OP_MSGFI
 ++		}
 ++
 ++		r := int(p.Reg)
 ++		if r != 0 {
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(r), asm)
 ++		}
 ++		RIL(a, opcode, uint32(p.To.Reg), uint32(d), asm)
 ++
 ++	case 23: /* and $lcon,r1,r2 ==> cau+or+and */ /* masks could be done using rlnm etc. */
 ++
 ++		d := regoff(ctxt, &p.From)
 ++		var opcode uint32
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			switch p.As {
 ++			default:
 ++				ctxt.Diag("%v is not supported", p)
 ++			case AAND:
 ++				opcode = OP_NGR
 ++			case AOR:
 ++				opcode = OP_OGR
 ++			case AXOR:
 ++				opcode = OP_XGR
 ++			}
 ++			RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
 ++			RRE(opcode, uint32(p.To.Reg), REGTMP, asm)
 ++		} else {
 ++			switch p.As {
 ++			default:
 ++				ctxt.Diag("%v is not supported", p)
 ++			case AAND:
 ++				opcode = OP_NGRK
 ++			case AOR:
 ++				opcode = OP_OGRK
 ++			case AXOR:
 ++				opcode = OP_XGRK
 ++			}
 ++			RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
 ++			RRF(opcode, uint32(r), 0, uint32(p.To.Reg), REGTMP, asm)
 ++		}
 ++
 ++	case 25:
 ++		/* sld[.] $sh,rS,rA -> rldicr[.] $sh,rS,mask(0,63-sh),rA; srd[.] -> rldicl */
 ++		v := regoff(ctxt, &p.From)
 ++		if v < 0 {
 ++			v = 0
 ++		} else if v > 63 {
 ++			v = 63
 ++		}
 ++
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		switch p.As {
 ++		default:
 ++		case ASLD:
 ++			RSY(OP_SLLG, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		case ASRD:
 ++			RSY(OP_SRLG, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		}
 ++
 ++	case 26: /* mov $lsext/auto/oreg,,r2 ==> addis+addi */
 ++		v := regoff(ctxt, &p.From)
 ++		r := int(p.From.Reg)
 ++		if r == 0 {
 ++			r = int(o.param)
 ++		}
 ++
 ++		if v >= -DISP20/2 && v < DISP20/2 {
 ++			RXY(0, OP_LAY, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		} else {
 ++			RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
 ++			RX(OP_LA, uint32(p.To.Reg), uint32(r), REGTMP, 0, asm)
 ++		}
 ++
 ++	case 27: /* subc ra,$simm,rd => subfic rd,ra,$simm */
 ++
 ++		v := regoff(ctxt, p.From3)
 ++		RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		RIE(d, OP_AGHIK, uint32(p.To.Reg), uint32(p.To.Reg), uint32(v), 0, 0, 0, 0, asm)
 ++
 ++	case 28: /* subc r1,$lcon,r2 ==> cau+or+subfc */
 ++
 ++		v := regoff(ctxt, p.From3)
 ++		RRE(OP_LCGR, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		RIL(a, OP_AGFI, uint32(p.To.Reg), uint32(v), asm)
 ++
 ++		if p.From.Sym != nil {
 ++			ctxt.Diag("%v is not supported", p)
 ++		}
 ++
 ++	case 29: /* rldic[lr]? $sh,s,$mask,a -- left, right, plain give different masks */
 ++		v := regoff(ctxt, &p.From)
 ++		d := vregoff(ctxt, p.From3)
 ++
 ++		var mask [2]uint8
 ++		maskgen64(ctxt, p, mask[:], uint64(d))
 ++
 ++		var i3, i4, i5 int
 ++		switch p.As {
 ++		case ARLDC:
 ++			i3 = int(mask[0]) // MB
 ++			i4 = int(63 - v)
 ++			i5 = int(v)
 ++			if int32(mask[1]) != int32(63-v) {
 ++				ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
 ++			}
 ++
 ++		case ARLDCL:
 ++			i3 = int(mask[0]) // MB
 ++			i4 = int(63)
 ++			i5 = int(v)
 ++			if mask[1] != 63 {
 ++				ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
 ++			}
 ++
 ++		case ARLDCR:
 ++			i3 = int(0)
 ++			i4 = int(mask[1]) // ME
 ++			i5 = int(v)
 ++			if mask[0] != 0 {
 ++				ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
 ++			}
 ++
 ++		default:
 ++			ctxt.Diag("unexpected op in rldic case\n%v", p)
 ++		}
 ++
 ++		r := int(p.Reg)
 ++		if p.To.Reg == p.Reg {
 ++			RRE(OP_LGR, uint32(REGTMP), uint32(p.Reg), asm)
 ++			r = int(REGTMP)
 ++		}
 ++		RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
 ++		RIE(f, OP_RISBG, uint32(p.To.Reg), uint32(r), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
 ++
 ++	case 30: /* rldimi $sh,s,$mask,a */
 ++		v := regoff(ctxt, &p.From)
 ++		d := vregoff(ctxt, p.From3)
 ++
 ++		var mask [2]uint8
 ++		maskgen64(ctxt, p, mask[:], uint64(d))
 ++
 ++		var i3, i4, i5 int
 ++		i3 = int(mask[0]) // MB
 ++		i4 = int(63 - v)
 ++		i5 = int(v)
 ++		if int32(mask[1]) != int32(63-v) {
 ++			ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
 ++		}
 ++
 ++		RIE(f, OP_RISBG, uint32(p.To.Reg), uint32(p.Reg), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
 ++
 ++	case 31: /* dword */
 ++		wd := uint64(vregoff(ctxt, &p.From))
 ++		*asm = append(*asm,
 ++			uint8(wd>>56),
 ++			uint8(wd>>48),
 ++			uint8(wd>>40),
 ++			uint8(wd>>32),
 ++			uint8(wd>>24),
 ++			uint8(wd>>16),
 ++			uint8(wd>>8),
 ++			uint8(wd))
 ++
 ++	case 32: /* fmul frc,fra,frd */
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		var opcode uint32
 ++
 ++		switch p.As {
 ++		default:
 ++			ctxt.Diag("invalid opcode")
 ++		case AFMUL:
 ++			opcode = OP_MDBR
 ++		case AFMULS:
 ++			opcode = OP_MEEBR
 ++		}
 ++
 ++		if r == int(p.To.Reg) {
 ++			RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		} else if p.From.Reg == p.To.Reg {
 ++			RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
 ++		} else {
 ++			RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
 ++			RRE(opcode, uint32(p.To.Reg), uint32(p.From.Reg), asm)
 ++		}
 ++
 ++	case 33: /* fabs [frb,]frd; fmr. frb,frd */
 ++		r := int(p.From.Reg)
 ++
 ++		if oclass(&p.From) == C_NONE {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		switch p.As {
 ++		case AFMOVD, AFMOVS:
 ++			RR(OP_LDR, uint32(p.To.Reg), uint32(r), asm)
 ++		default:
 ++			var opcode uint32
 ++
 ++			switch p.As {
 ++			default:
 ++			case AFABS:
 ++				opcode = OP_LPDBR
 ++			case AFNABS:
 ++				opcode = OP_LNDBR
 ++			case AFNEG:
 ++				opcode = OP_LCDFR
 ++			case AFRSP:
 ++				opcode = OP_LEDBR
 ++			case ALDEBR:
 ++				opcode = OP_LDEBR
 ++			case AFSQRT:
 ++				opcode = OP_SQDBR
 ++			case AFSQRTS:
 ++				opcode = OP_SQEBR
 ++			}
 ++
 ++			RRE(opcode, uint32(p.To.Reg), uint32(r), asm)
 ++		}
 ++
 ++	case 34: /* FMADDx fra,frb,frc,frd (d=a*b+c); FSELx a<0? (d=b): (d=c) */
 ++
 ++		var opcode uint32
 ++
 ++		switch p.As {
 ++		default:
 ++			ctxt.Diag("invalid opcode")
 ++		case AFMADD:
 ++			opcode = OP_MADBR
 ++		case AFMADDS:
 ++			opcode = OP_MAEBR
 ++		case AFMSUB:
 ++			opcode = OP_MSDBR
 ++		case AFMSUBS:
 ++			opcode = OP_MSEBR
 ++		case AFNMADD:
 ++			opcode = OP_MADBR
 ++		case AFNMADDS:
 ++			opcode = OP_MAEBR
 ++		case AFNMSUB:
 ++			opcode = OP_MSDBR
 ++		case AFNMSUBS:
 ++			opcode = OP_MSEBR
 ++		}
 ++
 ++		RR(OP_LDR, uint32(p.To.Reg), uint32(p.Reg), asm)
 ++		RRD(opcode, uint32(p.To.Reg), uint32(p.From.Reg), uint32(p.From3.Reg), asm)
 ++
 ++		if p.As == AFNMADD || p.As == AFNMADDS || p.As == AFNMSUB || p.As == AFNMSUBS {
 ++			RRE(OP_LCDFR, uint32(p.To.Reg), uint32(p.To.Reg), asm)
 ++		}
 ++
 ++	case 35: /* mov[M][D|W|H|B][Z] r, lext/lauto/loreg ==>
 ++		   LGFI regtmp, off; STG[F|H|C] r, 0(regaddr, regtmp) */
 ++		v := regoff(ctxt, &p.To)
 ++		r := int(p.To.Reg)
 ++		if r == 0 {
 ++			r = int(o.param)
 ++		}
 ++
 ++		if v >= -DISP20/2 && v < DISP20/2 {
 ++			RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(r), 0,
 ++				uint32(v), asm)
 ++		} else {
 ++			RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
 ++			RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(r), REGTMP,
 ++				0, asm)
 ++		}
 ++
 ++	case 36, 37: /* MOV[M][D|W|H|B][Z] lext/lauto/lreg, r ==>
 ++		   LGFI regtmp, off; [L]LG[F|H|C] r, 0(regaddr, regtmp) */
 ++		v := regoff(ctxt, &p.From)
 ++
 ++		r := int(p.From.Reg)
 ++		if r == 0 {
 ++			r = int(o.param)
 ++		}
 ++
 ++		if v >= -DISP20/2 && v < DISP20/2 {
 ++			RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(r), 0,
 ++				uint32(v), asm)
 ++		} else {
 ++			RIL(a, OP_LGFI, REGTMP, uint32(v), asm)
 ++			RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(r), REGTMP,
 ++				0, asm)
 ++		}
 ++
 ++	case 40: /* word and byte*/
 ++		wd := uint32(regoff(ctxt, &p.From))
 ++		if p.As == AWORD { //WORD
 ++			*asm = append(*asm, uint8(wd>>24), uint8(wd>>16), uint8(wd>>8), uint8(wd))
 ++		} else { //BYTE
 ++			*asm = append(*asm, uint8(wd))
 ++		}
 ++
 ++	case 44: /* indexed store */
 ++		RXY(0, zopstore(ctxt, int(p.As)), uint32(p.From.Reg), uint32(p.To.Index), uint32(p.To.Reg), 0, asm)
 ++
 ++	case 45: /* indexed load */
 ++		RXY(0, zopload(ctxt, int(p.As)), uint32(p.To.Reg), uint32(p.From.Index), uint32(p.From.Reg), 0, asm)
 ++
 ++	case 47: /* op Ra, Rd; also op [Ra,] Rd */
 ++		switch p.As {
 ++		default:
 ++
 ++		case AADDME:
 ++			r := int(p.From.Reg)
 ++			if p.To.Reg == p.From.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++				r = int(REGTMP)
 ++			}
 ++			RIL(a, OP_LGFI, uint32(p.To.Reg), 0xffffffff, asm) // p.To.Reg <- -1
 ++			RRE(OP_ALCGR, uint32(p.To.Reg), uint32(r), asm)
 ++
 ++		case AADDZE:
 ++			r := int(p.From.Reg)
 ++			if p.To.Reg == p.From.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++				r = int(REGTMP)
 ++			}
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm) // p.To.Reg <- 0
 ++			RRE(OP_ALCGR, uint32(p.To.Reg), uint32(r), asm)
 ++
 ++		case ASUBME:
 ++			r := int(p.From.Reg)
 ++			if p.To.Reg == p.From.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++				r = int(REGTMP)
 ++			}
 ++			RIL(a, OP_LGFI, uint32(p.To.Reg), 0xffffffff, asm) // p.To.Reg <- -1
 ++			RRE(OP_SLBGR, uint32(p.To.Reg), uint32(r), asm)
 ++
 ++		case ASUBZE:
 ++			r := int(p.From.Reg)
 ++			if p.To.Reg == p.From.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++				r = int(REGTMP)
 ++			}
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm) // p.To.Reg <- 0
 ++			RRE(OP_SLBGR, uint32(p.To.Reg), uint32(r), asm)
 ++
 ++		case ANEG:
 ++			r := int(p.From.Reg)
 ++			if r == 0 {
 ++				r = int(p.To.Reg)
 ++			}
 ++			RRE(OP_LCGR, uint32(p.To.Reg), uint32(r), asm)
 ++		}
 ++
 ++	case 50: /* rem[u] r1[,r2],r3 */
 ++		r := int(p.Reg)
 ++
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		var opcode uint32
 ++
 ++		switch p.As {
 ++		default:
 ++
 ++		case AREM:
 ++			opcode = OP_DSGFR
 ++		case AREMU:
 ++			opcode = OP_DLR
 ++		}
 ++
 ++		if p.As == AREMU {
 ++			RRE(OP_LGR, uint32(REGTMP), uint32(REGZERO), asm)
 ++		}
 ++		RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
 ++		RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++		RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP), asm)
 ++
 ++	case 51: /* remd[u] r1[,r2],r3 */
 ++		r := int(p.Reg)
 ++
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		var opcode uint32
 ++
 ++		switch p.As {
 ++		default:
 ++
 ++		case AREMD:
 ++			opcode = OP_DSGR
 ++		case AREMDU:
 ++			opcode = OP_DLGR
 ++		}
 ++
 ++		if p.As == AREMDU {
 ++			RRE(OP_LGR, uint32(REGTMP), uint32(REGZERO), asm)
 ++		}
 ++		RRE(OP_LGR, uint32(REGTMP2), uint32(r), asm)
 ++		RRE(opcode, uint32(REGTMP), uint32(p.From.Reg), asm)
 ++		RRE(OP_LGR, uint32(p.To.Reg), uint32(REGTMP), asm)
 ++
 ++	case 56: /* sra $sh,[s,]a; srd $sh,[s,]a */
 ++		v := regoff(ctxt, &p.From)
 ++		if v < 0 {
 ++			v = 0
 ++		} else if v > 63 {
 ++			v = 63
 ++		}
 ++
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		switch p.As {
 ++		default:
 ++		case ASRAW:
 ++			RSY(OP_SRAK, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		case ASRAD:
 ++			RSY(OP_SRAG, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		}
 ++
 ++	case 57: /* slw $sh,[s,]a -> rlwinm ... */
 ++		v := regoff(ctxt, &p.From)
 ++		if v < 0 {
 ++			v = 0
 ++		} else if v > 63 {
 ++			v = 63
 ++		}
 ++
 ++		r := int(p.Reg)
 ++		if r == 0 {
 ++			r = int(p.To.Reg)
 ++		}
 ++
 ++		switch p.As {
 ++		default:
 ++		case ASLW:
 ++			RSY(OP_SLLK, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		case ASRW:
 ++			RSY(OP_SRLK, uint32(p.To.Reg), uint32(r), 0, uint32(v), asm)
 ++		}
 ++
 ++	case 58: /* logical $andcon,[s],a */
 ++		d := regoff(ctxt, &p.From)
 ++
 ++		switch p.As {
 ++		case AAND, AOR, AXOR:
 ++			var opcode1, opcode2 uint32
 ++			switch p.As {
 ++			default:
 ++				ctxt.Diag("%v is not supported", p)
 ++			case AAND:
 ++				opcode1 = OP_NGR
 ++				opcode2 = OP_NGRK
 ++			case AOR:
 ++				opcode1 = OP_OGR
 ++				opcode2 = OP_OGRK
 ++			case AXOR:
 ++				opcode1 = OP_XGR
 ++				opcode2 = OP_XGRK
 ++			}
 ++
 ++			r := int(p.Reg)
 ++			if r == 0 {
 ++				RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
 ++				RRE(opcode1, uint32(p.To.Reg), REGTMP, asm)
 ++			} else {
 ++				RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
 ++				RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), REGTMP, asm)
 ++			}
 ++		}
 ++
 ++	case 59: /* or/and $ucon,,r */
 ++		d := regoff(ctxt, &p.From)
 ++
 ++		switch p.As {
 ++		case AAND, AOR, AXOR:
 ++			var opcode1, opcode2 uint32
 ++			switch p.As {
 ++			default:
 ++				ctxt.Diag("%v is not supported", p)
 ++			case AAND:
 ++				opcode1 = OP_NGR
 ++				opcode2 = OP_NGRK
 ++			case AOR:
 ++				opcode1 = OP_OGR
 ++				opcode2 = OP_OGRK
 ++			case AXOR:
 ++				opcode1 = OP_XGR
 ++				opcode2 = OP_XGRK
 ++			}
 ++
 ++			r := int(p.Reg)
 ++			if r == 0 {
 ++				RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
 ++				RRE(opcode1, uint32(p.To.Reg), REGTMP, asm)
 ++			} else {
 ++				RIL(a, OP_LGFI, REGTMP, uint32(d), asm)
 ++				RRF(opcode2, uint32(r), 0, uint32(p.To.Reg), REGTMP, asm)
 ++			}
 ++		}
 ++
 ++	case 62: /* rlwmi $sh,s,$mask,a */
 ++		v := regoff(ctxt, &p.From)
 ++		d := vregoff(ctxt, p.From3)
 ++
 ++		var mask [2]uint8
 ++		maskgen64(ctxt, p, mask[:], uint64(d))
 ++
 ++		var i3, i4, i5 int
 ++		i3 = int(mask[0]) // MB
 ++		i4 = int(mask[1]) // ME
 ++		i5 = int(v)
 ++
 ++		if i3 > 0x1f || i4 > 0x1f {
 ++			ctxt.Diag("invalid mask for shift: %x (shift %d)\n%v", uint64(d), v, p)
 ++		}
 ++
 ++		switch p.As {
 ++		case ARLWMI:
 ++			RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(p.Reg), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
 ++
 ++		case ARLWNM:
 ++			r := int(p.Reg)
 ++			if p.To.Reg == p.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.Reg), asm)
 ++				r = int(REGTMP)
 ++			}
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
 ++			RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(r), 0, uint32(i3), uint32(i4), 0, uint32(i5), asm)
 ++
 ++		default:
 ++
 ++		}
 ++
 ++	case 63: /* rlwmi b,s,$mask,a */
 ++		d := vregoff(ctxt, p.From3)
 ++		var mask [2]uint8
 ++		maskgen64(ctxt, p, mask[:], uint64(d))
 ++
 ++		var i3, i4 int
 ++		i3 = int(mask[0]) // MB
 ++		i4 = int(mask[1]) // ME
 ++
 ++		if i3 > 0x1f || i4 > 0x1f {
 ++			ctxt.Diag("invalid mask for shift: %x (shift)\n%v", uint64(d), p)
 ++		}
 ++
 ++		switch p.As {
 ++		case ARLWMI:
 ++			RSY(OP_RLL, uint32(REGTMP), uint32(p.Reg), uint32(p.From.Reg), 0, asm)
 ++			RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(REGTMP), 0, uint32(i3), uint32(i4), 0, 0, asm)
 ++
 ++		case ARLWNM:
 ++			if p.To.Reg == p.Reg {
 ++				RRE(OP_LGR, uint32(REGTMP), uint32(p.Reg), asm)
 ++				RSY(OP_RLL, uint32(REGTMP), uint32(REGTMP), uint32(p.From.Reg), 0, asm)
 ++			} else {
 ++				RSY(OP_RLL, uint32(REGTMP), uint32(p.Reg), uint32(p.From.Reg), 0, asm)
 ++			}
 ++			RRE(OP_LGR, uint32(p.To.Reg), uint32(REGZERO), asm)
 ++			RIE(f, OP_RISBLG, uint32(p.To.Reg), uint32(REGTMP), 0, uint32(i3), uint32(i4), 0, 0, asm)
 ++
 ++		default:
 ++
 ++		}
 ++
 ++	case 68: /* ear arS,rD */
 ++		RRE(OP_EAR, uint32(p.To.Reg), uint32(p.From.Reg-REG_AR0), asm)
 ++
 ++	case 69: /* sar rS,arD */
 ++		RRE(OP_SAR, uint32(p.To.Reg-REG_AR0), uint32(p.From.Reg), asm)
 ++
 ++	case 70: /* [f]cmp r,r,cr*/
 ++		if p.Reg != 0 {
 ++			ctxt.Diag("unsupported nozero CC in Z")
 ++		}
 ++		if p.As == ACMPW || p.As == ACMPWU {
 ++			RR(zoprr(ctxt, int(p.As)), uint32(p.From.Reg), uint32(p.To.Reg), asm)
 ++		} else {
 ++			RRE(zoprre(ctxt, int(p.As)), uint32(p.From.Reg), uint32(p.To.Reg), asm)
 ++		}
 ++
 ++	case 71: /* cmp[l] r,i,cr*/
 ++		if p.Reg != 0 {
 ++			ctxt.Diag("unsupported nozero CC in Z")
 ++		}
 ++		RIL(0, uint32(zopril(ctxt, int(p.As))), uint32(p.From.Reg), uint32(int32(regoff(ctxt, &p.To))), asm)
 ++
 ++	/* relocation operations */
 ++	case 74: /* AMOV[F][D|W|H|B|S][Z] Rs, addr -> ST[G|H]RL Rs, addr (with a reloaction entry ) */
 ++		v := regoff(ctxt, &p.To)
 ++
 ++		switch p.As {
 ++		case AMOVD:
 ++			RIL(b, OP_STGRL, uint32(p.From.Reg), uint32(v), asm)
 ++
 ++		case AMOVW, AMOVWZ: // The zero extension doesn't affect store instructions
 ++			RIL(b, OP_STRL, uint32(p.From.Reg), uint32(v), asm)
 ++
 ++		case AMOVH, AMOVHZ: // The zero extension doesn't affect store instructions
 ++			RIL(b, OP_STHRL, uint32(p.From.Reg), uint32(v), asm)
 ++
 ++		case AMOVB, AMOVBZ: // The zero extension doesn't affect store instructions
 ++			RIL(b, OP_LARL, REGTMP, 0, asm)
 ++			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)
 ++		d2 := regoff(ctxt, &p.From)
 ++		d1 := regoff(ctxt, &p.To)
 ++		if l < 1 || l > 256 {
 ++			ctxt.Diag("number of bytes (%v) not in range [1,256]", l)
 ++		}
 ++		var opcode uint32
 ++		switch p.As {
 ++		default:
 ++			ctxt.Diag("unexpected opcode %v", p.As)
 ++		case AMVC:
 ++			opcode = OP_MVC
 ++		case ACLC:
 ++			opcode = OP_CLC
 ++		case AXC:
 ++			opcode = OP_XC
 ++		case AOC:
 ++			opcode = OP_OC
 ++		case ANC:
 ++			opcode = OP_NC
 ++		}
 ++		SS(a, opcode, uint32(l-1), 0, uint32(p.To.Reg), uint32(d1), uint32(p.From.Reg), uint32(d2), asm)
 ++
 ++	case 85: /* larl: load address relative long */
 ++		// When using larl directly, don't add a nop
 ++		v := regoff(ctxt, &p.From)
 ++		if p.From.Sym == nil {
 ++			if (v & 1) != 0 {
 ++				ctxt.Diag("cannot use LARL with odd offset: %v", v)
 ++			}
 ++		} else {
 ++			addrilreloc(ctxt, p.From.Sym, int64(v))
 ++			v = 0
 ++		}
 ++		RIL(b, OP_LARL, uint32(p.To.Reg), uint32(v>>1), asm)
 ++
 ++	case 86: /* lay?: load address */
 ++		v := vregoff(ctxt, &p.From)
 ++		switch p.As {
 ++		case ALA:
 ++			RX(OP_LA, uint32(p.To.Reg), uint32(p.From.Reg), 0, uint32(v), asm)
 ++		case ALAY:
 ++			RXY(0, OP_LAY, uint32(p.To.Reg), uint32(p.From.Reg), 0, uint32(v), asm)
 ++		}
 ++
 ++	case 87: /* exrl: execute relative long */
 ++		v := vregoff(ctxt, &p.From)
 ++		if p.From.Sym == nil {
 ++			if v&1 != 0 {
 ++				ctxt.Diag("cannot use EXRL with odd offset: %v", v)
 ++			}
 ++		} else {
 ++			addrilreloc(ctxt, p.From.Sym, int64(v))
 ++			v = 0
 ++		}
 ++		RIL(b, OP_EXRL, uint32(p.To.Reg), uint32(v>>1), asm)
 ++
 ++	case 88: /* stck[cef]?: store clock (comparator/extended/fast) */
 ++		var opcode uint32
 ++		switch p.As {
 ++		case ASTCK:
 ++			opcode = OP_STCK
 ++		case ASTCKC:
 ++			opcode = OP_STCKC
 ++		case ASTCKE:
 ++			opcode = OP_STCKE
 ++		case ASTCKF:
 ++			opcode = OP_STCKF
 ++		}
 ++		v := vregoff(ctxt, &p.To)
 ++		r := int(p.To.Reg)
 ++		if r == 0 {
 ++			r = int(o.param)
 ++		}
 ++		S(opcode, uint32(r), uint32(v), asm)
 ++
 ++	case 89:
 ++		if p.Pcond == nil {
 ++			ctxt.Diag("no branch target")
 ++			break
 ++		}
 ++		v := int32((p.Pcond.Pc - p.Pc) >> 1)
 ++		var opcode, opcode2 uint32
 ++		switch p.As {
 ++		case ACMPBEQ, ACMPBGE, ACMPBGT, ACMPBLE, ACMPBLT, ACMPBNE:
 ++			opcode = OP_CGRJ
 ++			opcode2 = OP_CGR
 ++		case ACMPUBEQ, ACMPUBGE, ACMPUBGT, ACMPUBLE, ACMPUBLT, ACMPUBNE:
 ++			opcode = OP_CLGRJ
 ++			opcode2 = OP_CLGR
 ++		}
 ++		mask := branchMask(ctxt, p)
 ++		if int32(int16(v)) != v {
 ++			RRE(opcode2, uint32(p.From.Reg), uint32(p.Reg), asm)
 ++			RIL(c, OP_BRCL, uint32(mask), uint32(v-FORMAT_RRE_size/2), asm)
 ++		} else {
 ++			RIE(b, opcode, uint32(p.From.Reg), uint32(p.Reg), uint32(v), 0, 0, mask, 0, asm)
 ++		}
 ++
 ++	case 90:
 ++		if p.Pcond == nil {
 ++			ctxt.Diag("no branch target")
 ++			break
 ++		}
 ++		var opcode, opcode2 uint32
 ++		switch p.As {
 ++		case ACMPBEQ, ACMPBGE, ACMPBGT, ACMPBLE, ACMPBLT, ACMPBNE:
 ++			opcode = OP_CGIJ
 ++			opcode2 = OP_CGFI
 ++		case ACMPUBEQ, ACMPUBGE, ACMPUBGT, ACMPUBLE, ACMPUBLT, ACMPUBNE:
 ++			opcode = OP_CLGIJ
 ++			opcode2 = OP_CLGFI
 ++		}
 ++		v := int32((p.Pcond.Pc - p.Pc) >> 1)
 ++		mask := branchMask(ctxt, p)
 ++		if int32(int16(v)) != v {
 ++			RIL(0, opcode2, uint32(p.From.Reg), uint32(int32(regoff(ctxt, p.From3))), asm)
 ++			RIL(c, OP_BRCL, mask, uint32(v-FORMAT_RIL_size/2), asm)
 ++		} else {
 ++			RIE(c, opcode, uint32(p.From.Reg), mask, uint32(v), 0, 0, 0, uint32(int32(regoff(ctxt, p.From3))), asm)
 ++		}
 ++
 ++	case 92:
 ++		var opcode uint32
 ++		switch p.As {
 ++		case AMOVD:
 ++			opcode = OP_MVGHI
 ++		case AMOVW, AMOVWZ:
 ++			opcode = OP_MVHI
 ++		case AMOVH, AMOVHZ:
 ++			opcode = OP_MVHHI
 ++		case AMOVB, AMOVBZ:
 ++			opcode = OP_MVI
 ++		}
 ++		v := regoff(ctxt, &p.From)
 ++		d := regoff(ctxt, &p.To)
 ++		if opcode == OP_MVI {
 ++			SI(opcode, uint32(v), uint32(p.To.Reg), uint32(d), asm)
 ++		} else {
 ++			SIL(opcode, uint32(p.To.Reg), uint32(d), uint32(v), asm)
 ++		}
 ++
+++	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
 ++	}
 ++}
 ++
 ++func vregoff(ctxt *obj.Link, a *obj.Addr) int64 {
 ++	ctxt.Instoffset = 0
 ++	if a != nil {
 ++		aclass(ctxt, a)
 ++	}
 ++	return ctxt.Instoffset
 ++}
 ++
 ++func regoff(ctxt *obj.Link, a *obj.Addr) int32 {
 ++	return int32(vregoff(ctxt, a))
 ++}
 ++
 ++/*
 ++ * load o(a), d
 ++ */
 ++func zopload(ctxt *obj.Link, a int) uint32 {
 ++	switch a {
 ++	/* fixed point load */
 ++	case AMOVD:
 ++		return uint32(OP_LG)
 ++	case AMOVW:
 ++		return uint32(OP_LGF)
 ++	case AMOVWZ:
 ++		return uint32(OP_LLGF)
 ++	case AMOVH:
 ++		return uint32(OP_LGH)
 ++	case AMOVHZ:
 ++		return uint32(OP_LLGH)
 ++	case AMOVB:
 ++		return uint32(OP_LGB)
 ++	case AMOVBZ:
 ++		return uint32(OP_LLGC)
 ++
 ++	/* floating pointer load*/
 ++	case AFMOVD:
 ++		return uint32(OP_LDY)
 ++	case AFMOVS:
 ++		return uint32(OP_LEY)
 ++
 ++	/* byte reversed load*/
 ++	case AMOVWBR:
 ++		return uint32(OP_LRV)
 ++	case AMOVHBR:
 ++		return uint32(OP_LRVH)
 ++	}
 ++
 ++	ctxt.Diag("unknown store opcode %v", obj.Aconv(a))
 ++	return 0
 ++}
 ++
 ++/*
 ++ * store s,o(d)
 ++ */
 ++func zopstore(ctxt *obj.Link, a int) uint32 {
 ++	switch a {
 ++	/* fixed point store */
 ++	case AMOVD:
 ++		return uint32(OP_STG)
 ++	case AMOVW, AMOVWZ:
 ++		return uint32(OP_STY)
 ++	case AMOVH, AMOVHZ:
 ++		return uint32(OP_STHY)
 ++	case AMOVB, AMOVBZ:
 ++		return uint32(OP_STCY)
 ++
 ++	/* floating point store */
 ++	case AFMOVD:
 ++		return uint32(OP_STDY)
 ++	case AFMOVS:
 ++		return uint32(OP_STEY)
 ++
 ++	/* byte reversed store */
 ++	case AMOVWBR:
 ++		return uint32(OP_STRV)
 ++	case AMOVHBR:
 ++		return uint32(OP_STRVH)
 ++	}
 ++
 ++	ctxt.Diag("unknown store opcode %v", obj.Aconv(a))
 ++	return 0
 ++}
 ++
 ++func zoprre(ctxt *obj.Link, a int) uint32 {
 ++	switch a {
 ++	case ACMP:
 ++		return uint32(OP_CGR)
 ++	case ACMPU:
 ++		return uint32(OP_CLGR)
 ++	case AFCMPO: //ordered
 ++		return uint32(OP_KDBR)
 ++	case AFCMPU: //unordered
 ++		return uint32(OP_CDBR)
 ++	case ACEBR:
 ++		return uint32(OP_CEBR)
 ++	}
 ++	ctxt.Diag("unknown rre opcode %v", obj.Aconv(a))
 ++	return 0
 ++}
 ++
 ++func zoprr(ctxt *obj.Link, a int) uint32 {
 ++	switch a {
 ++	case ACMPW:
 ++		return uint32(OP_CR)
 ++	case ACMPWU:
 ++		return uint32(OP_CLR)
 ++	}
 ++	ctxt.Diag("unknown rr opcode %v", obj.Aconv(a))
 ++	return 0
 ++}
 ++
 ++func zopril(ctxt *obj.Link, a int) uint32 {
 ++	switch a {
 ++	case ACMP:
 ++		return uint32(OP_CGFI)
 ++	case ACMPU:
 ++		return uint32(OP_CLGFI)
 ++	case ACMPW:
 ++		return uint32(OP_CFI)
 ++	case ACMPWU:
 ++		return uint32(OP_CLFI)
 ++	}
 ++	ctxt.Diag("unknown ril opcode %v", obj.Aconv(a))
 ++	return 0
 ++}
 ++
 ++// z instructions sizes.
 ++const (
 ++	FORMAT_E_size    = 2
 ++	FORMAT_I_size    = 2
 ++	FORMAT_IE_size   = 4
 ++	FORMAT_MII_size  = 6
 ++	FORMAT_RI_size   = 4
 ++	FORMAT_RI1_size  = 4
 ++	FORMAT_RI2_size  = 4
 ++	FORMAT_RI3_size  = 4
 ++	FORMAT_RIE_size  = 6
 ++	FORMAT_RIE1_size = 6
 ++	FORMAT_RIE2_size = 6
 ++	FORMAT_RIE3_size = 6
 ++	FORMAT_RIE4_size = 6
 ++	FORMAT_RIE5_size = 6
 ++	FORMAT_RIE6_size = 6
 ++	FORMAT_RIL_size  = 6
 ++	FORMAT_RIL1_size = 6
 ++	FORMAT_RIL2_size = 6
 ++	FORMAT_RIL3_size = 6
 ++	FORMAT_RIS_size  = 6
 ++	FORMAT_RR_size   = 2
 ++	FORMAT_RRD_size  = 4
 ++	FORMAT_RRE_size  = 4
 ++	FORMAT_RRF_size  = 4
 ++	FORMAT_RRF1_size = 4
 ++	FORMAT_RRF2_size = 4
 ++	FORMAT_RRF3_size = 4
 ++	FORMAT_RRF4_size = 4
 ++	FORMAT_RRF5_size = 4
 ++	FORMAT_RRR_size  = 2
 ++	FORMAT_RRS_size  = 6
 ++	FORMAT_RS_size   = 4
 ++	FORMAT_RS1_size  = 4
 ++	FORMAT_RS2_size  = 4
 ++	FORMAT_RSI_size  = 4
 ++	FORMAT_RSL_size  = 6
 ++	FORMAT_RSY_size  = 6
 ++	FORMAT_RSY1_size = 6
 ++	FORMAT_RSY2_size = 6
 ++	FORMAT_RX_size   = 4
 ++	FORMAT_RX1_size  = 4
 ++	FORMAT_RX2_size  = 4
 ++	FORMAT_RXE_size  = 6
 ++	FORMAT_RXF_size  = 6
 ++	FORMAT_RXY_size  = 6
 ++	FORMAT_RXY1_size = 6
 ++	FORMAT_RXY2_size = 6
 ++	FORMAT_S_size    = 4
 ++	FORMAT_SI_size   = 4
 ++	FORMAT_SIL_size  = 6
 ++	FORMAT_SIY_size  = 6
 ++	FORMAT_SMI_size  = 6
 ++	FORMAT_SS_size   = 6
 ++	FORMAT_SS1_size  = 6
 ++	FORMAT_SS2_size  = 6
 ++	FORMAT_SS3_size  = 6
 ++	FORMAT_SS4_size  = 6
 ++	FORMAT_SS5_size  = 6
 ++	FORMAT_SS6_size  = 6
 ++	FORMAT_SSE_size  = 6
 ++	FORMAT_SSF_size  = 6
 ++)
 ++
 ++// instruction format variations.
 ++const (
 ++	a = iota
 ++	b
 ++	c
 ++	d
 ++	e
 ++	f
 ++	g
 ++)
 ++
 ++func E(op uint32, asm *[]byte) {
 ++	*asm = append(*asm, uint8(op>>8), uint8(op))
 ++}
 ++
 ++func I(op, i1 uint32, asm *[]byte) {
 ++	*asm = append(*asm, uint8(op>>8), uint8(i1))
 ++}
 ++
 ++func MII(op, m1, ri2, ri3 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(m1)<<4)|uint8((ri2>>8)&0x0F),
 ++		uint8(ri2),
 ++		uint8(ri3>>16),
 ++		uint8(ri3>>8),
 ++		uint8(ri3))
 ++}
 ++
 ++func RI(op, r1_m1, i2_ri2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1_m1)<<4)|(uint8(op)&0x0F),
 ++		uint8(i2_ri2>>8),
 ++		uint8(i2_ri2))
 ++}
 ++
 ++// Expected argument values for the instruction formats.
 ++//
 ++// Format     a1    a2     a3     a4     a5  a6  a7
 ++// ------------------------------------
 ++// a         r1,  0,  i2,  0,  0, m3,  0
 ++// b         r1, r2, ri4,  0,  0, m3,  0
 ++// c         r1, m3, ri4,  0,  0,  0, i2
 ++// d         r1, r3,  i2,  0,  0,  0,  0
 ++// e         r1, r3, ri2,  0,  0,  0,  0
 ++// f         r1, r2,   0, i3, i4,  0, i5
 ++// g         r1, m3,  i2,  0,  0,  0,  0
 ++func RIE(type_, op, r1, r2_m3_r3, i2_ri4_ri2, i3, i4, m3, i2_i5 uint32, asm *[]byte) {
 ++	*asm = append(*asm, uint8(op>>8), uint8(r1)<<4|uint8(r2_m3_r3&0x0F))
 ++
 ++	switch type_ {
 ++	default:
 ++		*asm = append(*asm, uint8(i2_ri4_ri2>>8), uint8(i2_ri4_ri2))
 ++	case f:
 ++		*asm = append(*asm, uint8(i3), uint8(i4))
 ++	}
 ++
 ++	switch type_ {
 ++	case a, b:
 ++		*asm = append(*asm, uint8(m3)<<4)
 ++	default:
 ++		*asm = append(*asm, uint8(i2_i5))
 ++	}
 ++
 ++	*asm = append(*asm, uint8(op))
 ++}
 ++
 ++func RIL(type_, op, r1_m1, i2_ri2 uint32, asm *[]byte) {
 ++	if type_ == a || type_ == b {
 ++		r1_m1 = r1_m1 - obj.RBaseS390X // this is a register base
 ++	}
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1_m1)<<4)|(uint8(op)&0x0F),
 ++		uint8(i2_ri2>>24),
 ++		uint8(i2_ri2>>16),
 ++		uint8(i2_ri2>>8),
 ++		uint8(i2_ri2))
 ++}
 ++
 ++func RIS(op, r1, m3, b4, d4, i2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1)<<4)|uint8(m3&0x0F),
 ++		(uint8(b4)<<4)|(uint8(d4>>8)&0x0F),
 ++		uint8(d4),
 ++		uint8(i2),
 ++		uint8(op))
 ++}
 ++
 ++func RR(op, r1, r2 uint32, asm *[]byte) {
 ++	*asm = append(*asm, uint8(op>>8), (uint8(r1)<<4)|uint8(r2&0x0F))
 ++}
 ++
 ++func RRD(op, r1, r3, r2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(op),
 ++		uint8(r1)<<4,
 ++		(uint8(r3)<<4)|uint8(r2&0x0F))
 ++}
 ++
 ++func RRE(op, r1, r2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(op),
 ++		0,
 ++		(uint8(r1)<<4)|uint8(r2&0x0F))
 ++}
 ++
 ++func RRF(op, r3_m3, m4, r1, r2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(op),
 ++		(uint8(r3_m3)<<4)|uint8(m4&0x0F),
 ++		(uint8(r1)<<4)|uint8(r2&0x0F))
 ++}
 ++
 ++func RRS(op, r1, r2, b4, d4, m3 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1)<<4)|uint8(r2&0x0F),
 ++		(uint8(b4)<<4)|uint8((d4>>8)&0x0F),
 ++		uint8(d4),
 ++		uint8(m3)<<4,
 ++		uint8(op))
 ++}
 ++
 ++func RS(op, r1, r3_m3, b2, d2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1)<<4)|uint8(r3_m3&0x0F),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2))
 ++}
 ++
 ++func RSI(op, r1, r3, ri2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1)<<4)|uint8(r3&0x0F),
 ++		uint8(ri2>>8),
 ++		uint8(ri2))
 ++}
 ++
 ++func RSL(type_, op, l1, b2, d2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(l1),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2),
 ++		uint8(op))
 ++}
 ++
 ++// (20b) d2 with (12b) dl2 and (8b) dh2.
 ++func RSY(op, r1, r3_m3, b2, d2 uint32, asm *[]byte) {
 ++	dl2 := uint16(d2) & 0x0FFF
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1)<<4)|uint8(r3_m3&0x0F),
 ++		(uint8(b2)<<4)|(uint8(dl2>>8)&0x0F),
 ++		uint8(dl2),
 ++		uint8(d2>>12),
 ++		uint8(op))
 ++}
 ++
 ++func RX(op, r1_m1, x2, b2, d2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1_m1)<<4)|uint8(x2&0x0F),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2))
 ++}
 ++
 ++func RXE(op, r1, x2, b2, d2, m3 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1)<<4)|uint8(x2&0x0F),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2),
 ++		uint8(m3)<<4,
 ++		uint8(op))
 ++}
 ++
 ++func RXF(op, r3, x2, b2, d2, m1 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r3)<<4)|uint8(x2&0x0F),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2),
 ++		uint8(m1)<<4,
 ++		uint8(op))
 ++}
 ++
 ++func RXY(type_, op, r1_m1, x2, b2, d2 uint32, asm *[]byte) {
 ++	dl2 := uint16(d2) & 0x0FFF
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r1_m1)<<4)|uint8(x2&0x0F),
 ++		(uint8(b2)<<4)|(uint8(dl2>>8)&0x0F),
 ++		uint8(dl2),
 ++		uint8(d2>>12),
 ++		uint8(op))
 ++}
 ++
 ++func S(op, b2, d2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(op),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2))
 ++}
 ++
 ++func SI(op, i2, b1, d1 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(i2),
 ++		(uint8(b1)<<4)|uint8((d1>>8)&0x0F),
 ++		uint8(d1))
 ++}
 ++
 ++func SIL(op, b1, d1, i2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(op),
 ++		(uint8(b1)<<4)|uint8((d1>>8)&0x0F),
 ++		uint8(d1),
 ++		uint8(i2>>8),
 ++		uint8(i2))
 ++}
 ++
 ++func SIY(op, i2, b1, d1 uint32, asm *[]byte) {
 ++	dl1 := uint16(d1) & 0x0FFF
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(i2),
 ++		(uint8(b1)<<4)|(uint8(dl1>>8)&0x0F),
 ++		uint8(dl1),
 ++		uint8(d1>>12),
 ++		uint8(op))
 ++}
 ++
 ++func SMI(op, m1, b3, d3, ri2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(m1)<<4,
 ++		(uint8(b3)<<4)|uint8((d3>>8)&0x0F),
 ++		uint8(d3),
 ++		uint8(ri2>>8),
 ++		uint8(ri2))
 ++}
 ++
 ++// Expected argument values for the instruction formats.
 ++//
 ++// Format    a1  a2  a3  a4  a5  a6
 ++// -------------------------------
 ++// a         l1,  0, b1, d1, b2, d2
 ++// b         l1, l2, b1, d1, b2, d2
 ++// c         l1, i3, b1, d1, b2, d2
 ++// d         r1, r3, b1, d1, b2, d2
 ++// e         r1, r3, b2, d2, b4, d4
 ++// f          0, l2, b1, d1, b2, d2
 ++func SS(type_, op, l1_r1, l2_i3_r3, b1_b2, d1_d2, b2_b4, d2_d4 uint32, asm *[]byte) {
 ++	*asm = append(*asm, uint8(op>>8))
 ++
 ++	switch type_ {
 ++	case a:
 ++		*asm = append(*asm, uint8(l1_r1))
 ++	case b, c, d, e:
 ++		*asm = append(*asm, (uint8(l1_r1)<<4)|uint8(l2_i3_r3&0x0F))
 ++	case f:
 ++		*asm = append(*asm, uint8(l2_i3_r3))
 ++	}
 ++
 ++	*asm = append(*asm,
 ++		(uint8(b1_b2)<<4)|uint8((d1_d2>>8)&0x0F),
 ++		uint8(d1_d2),
 ++		(uint8(b2_b4)<<4)|uint8((d2_d4>>8)&0x0F),
 ++		uint8(d2_d4))
 ++}
 ++
 ++func SSE(op, b1, d1, b2, d2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		uint8(op),
 ++		(uint8(b1)<<4)|uint8((d1>>8)&0x0F),
 ++		uint8(d1),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2))
 ++}
 ++
 ++func SSF(op, r3, b1, d1, b2, d2 uint32, asm *[]byte) {
 ++	*asm = append(*asm,
 ++		uint8(op>>8),
 ++		(uint8(r3)<<4)|(uint8(op)&0x0F),
 ++		(uint8(b1)<<4)|uint8((d1>>8)&0x0F),
 ++		uint8(d1),
 ++		(uint8(b2)<<4)|uint8((d2>>8)&0x0F),
 ++		uint8(d2))
 ++}
 +diff --git a/src/cmd/internal/obj/s390x/listz.go b/src/cmd/internal/obj/s390x/listz.go
 +new file mode 100644
- index 0000000..8834deb
++index 0000000..c6cb48f
 +--- /dev/null
 ++++ b/src/cmd/internal/obj/s390x/listz.go
 +@@ -0,0 +1,70 @@
 ++// Based on cmd/internal/obj/ppc64/list9.go.
 ++//
 ++//	Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
 ++//	Portions Copyright © 1995-1997 C H Forsyth (forsyth at terzarima.net)
 ++//	Portions Copyright © 1997-1999 Vita Nuova Limited
 ++//	Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
 ++//	Portions Copyright © 2004,2006 Bruce Ellis
 ++//	Portions Copyright © 2005-2007 C H Forsyth (forsyth at terzarima.net)
 ++//	Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
 ++//	Portions Copyright © 2009 The Go Authors.  All rights reserved.
 ++//
 ++// Permission is hereby granted, free of charge, to any person obtaining a copy
 ++// of this software and associated documentation files (the "Software"), to deal
 ++// in the Software without restriction, including without limitation the rights
 ++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 ++// copies of the Software, and to permit persons to whom the Software is
 ++// furnished to do so, subject to the following conditions:
 ++//
 ++// The above copyright notice and this permission notice shall be included in
 ++// all copies or substantial portions of the Software.
 ++//
 ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 ++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 ++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 ++// THE SOFTWARE.
 ++
 ++package s390x
 ++
 ++import (
 ++	"cmd/internal/obj"
 ++	"fmt"
 ++)
 ++
 ++func init() {
- +	obj.RegisterRegister(obj.RBaseS390X, REG_RESERVED+1024, Rconv)
+++	obj.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)
 ++	}
 ++	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..405a7d2
++index 0000000..71c6fb5
 +--- /dev/null
 ++++ b/src/cmd/internal/obj/s390x/objz.go
- @@ -0,0 +1,900 @@
++@@ -0,0 +1,990 @@
 ++// 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,
 ++			/* case AFMOVDS: */
 ++			AFMOVS,
 ++
 ++			/* case AFMOVSD: */
 ++			AFMSUB,
 ++			AFMUL,
 ++			AFNABS,
 ++			AFNEG,
 ++			AFNMADD,
 ++			AFNMSUB,
 ++			AFRSP,
 ++			AFSUB:
 ++			q = p
 ++
 ++			p.Mark |= FLOAT
 ++			continue
 ++
 ++		case ABL,
 ++			ABCL,
 ++			obj.ADUFFZERO,
 ++			obj.ADUFFCOPY:
 ++			cursym.Text.Mark &^= LEAF
 ++			fallthrough
 ++
 ++		case ABC,
 ++			ABEQ,
 ++			ABGE,
 ++			ABGT,
 ++			ABLE,
 ++			ABLT,
 ++			ABNE,
 ++			ABR,
 ++			ABVC,
 ++			ABVS,
 ++			ACMPBEQ,
 ++			ACMPBGE,
 ++			ACMPBGT,
 ++			ACMPBLE,
 ++			ACMPBLT,
 ++			ACMPBNE,
 ++			ACMPUBEQ,
 ++			ACMPUBGE,
 ++			ACMPUBGT,
 ++			ACMPUBLE,
 ++			ACMPUBLT,
 ++			ACMPUBNE:
 ++			p.Mark |= BRANCH
 ++			q = p
 ++			q1 = p.Pcond
 ++			if q1 != nil {
 ++				for q1.As == obj.ANOP {
 ++					q1 = q1.Link
 ++					p.Pcond = q1
 ++				}
 ++
 ++				if q1.Mark&LEAF == 0 {
 ++					q1.Mark |= LABEL
 ++				}
 ++			} else {
 ++				p.Mark |= LABEL
 ++			}
 ++			q1 = p.Link
 ++			if q1 != nil {
 ++				q1.Mark |= LABEL
 ++			}
 ++			continue
 ++
 ++		case AFCMPO, AFCMPU:
 ++			q = p
 ++			p.Mark |= FCMP | FLOAT
 ++			continue
 ++
 ++		case obj.ARET:
 ++			q = p
 ++			if p.Link != nil {
 ++				p.Link.Mark |= LABEL
 ++			}
 ++			continue
 ++
 ++		case obj.ANOP:
 ++			q1 = p.Link
 ++			q.Link = q1 /* q is non-nop */
 ++			q1.Mark |= p.Mark
 ++			continue
 ++
 ++		default:
 ++			q = p
 ++			continue
 ++		}
 ++	}
 ++
 ++	autosize := int32(0)
 ++	var o int
 ++	var p1 *obj.Prog
 ++	var p2 *obj.Prog
 ++	for p := cursym.Text; p != nil; p = p.Link {
 ++		o = int(p.As)
 ++		switch o {
 ++		case obj.ATEXT:
 ++			autosize = int32(textstksiz)
 ++
 ++			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 = stacksplit(ctxt, p, autosize) // emit split check
 ++			}
 ++
 ++			if autosize != 0 {
 ++				q = obj.Appendp(ctxt, p)
 ++				q.As = AADD
 ++				q.From.Type = obj.TYPE_CONST
 ++				q.From.Offset = int64(-autosize)
 ++				q.To.Type = obj.TYPE_REG
 ++				q.To.Reg = REGSP
 ++				q.Spadj = autosize
 ++			} else if cursym.Text.Mark&LEAF == 0 {
 ++				// 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)
 ++			}
 ++		}
 ++	}
 ++}
 ++
 ++/*
 ++// instruction scheduling
 ++	if(debug['Q'] == 0)
 ++		return;
 ++
 ++	curtext = nil;
 ++	q = nil;	// p - 1
 ++	q1 = firstp;	// top of block
 ++	o = 0;		// count of instructions
 ++	for(p = firstp; p != nil; p = p1) {
 ++		p1 = p->link;
 ++		o++;
 ++		if(p->mark & NOSCHED){
 ++			if(q1 != p){
 ++				sched(q1, q);
 ++			}
 ++			for(; p != nil; p = p->link){
 ++				if(!(p->mark & NOSCHED))
 ++					break;
 ++				q = p;
 ++			}
 ++			p1 = p;
 ++			q1 = p;
 ++			o = 0;
 ++			continue;
 ++		}
 ++		if(p->mark & (LABEL|SYNC)) {
 ++			if(q1 != p)
 ++				sched(q1, q);
 ++			q1 = p;
 ++			o = 1;
 ++		}
 ++		if(p->mark & (BRANCH|SYNC)) {
 ++			sched(q1, p);
 ++			q1 = p1;
 ++			o = 0;
 ++		}
 ++		if(o >= NSCHED) {
 ++			sched(q1, p);
 ++			q1 = p1;
 ++			o = 0;
 ++		}
 ++		q = p;
 ++	}
 ++*/
 ++func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32) *obj.Prog {
 ++	// MOVD	g_stackguard(g), R3
 ++	p = obj.Appendp(ctxt, p)
 ++
 ++	p.As = AMOVD
 ++	p.From.Type = obj.TYPE_MEM
 ++	p.From.Reg = REGG
 ++	p.From.Offset = 2 * int64(ctxt.Arch.Ptrsize) // G.stackguard0
 ++	if ctxt.Cursym.Cfunc != 0 {
 ++		p.From.Offset = 3 * int64(ctxt.Arch.Ptrsize) // G.stackguard1
 ++	}
 ++	p.To.Type = obj.TYPE_REG
 ++	p.To.Reg = REG_R3
 ++
 ++	var q *obj.Prog
 ++	if framesize <= obj.StackSmall {
 ++		// small stack: SP < stackguard
 ++		//	CMP	stackguard, SP
 ++		p = obj.Appendp(ctxt, p)
 ++
 ++		p.As = ACMPU
 ++		p.From.Type = obj.TYPE_REG
 ++		p.From.Reg = REG_R3
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REGSP
 ++	} else if framesize <= obj.StackBig {
 ++		// large stack: SP-framesize < stackguard-StackSmall
 ++		//	ADD $-framesize, SP, R4
 ++		//	CMP stackguard, R4
 ++		p = obj.Appendp(ctxt, p)
 ++
 ++		p.As = AADD
 ++		p.From.Type = obj.TYPE_CONST
 ++		p.From.Offset = int64(-framesize)
 ++		p.Reg = REGSP
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REG_R4
 ++
 ++		p = obj.Appendp(ctxt, p)
 ++		p.As = ACMPU
 ++		p.From.Type = obj.TYPE_REG
 ++		p.From.Reg = REG_R3
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REG_R4
 ++	} else {
 ++		// Such a large stack we need to protect against wraparound.
 ++		// If SP is close to zero:
 ++		//	SP-stackguard+StackGuard <= framesize + (StackGuard-StackSmall)
 ++		// The +StackGuard on both sides is required to keep the left side positive:
 ++		// SP is allowed to be slightly below stackguard. See stack.h.
 ++		//
 ++		// Preemption sets stackguard to StackPreempt, a very large value.
 ++		// That breaks the math above, so we have to check for that explicitly.
 ++		//	// stackguard is R3
 ++		//	CMP	R3, $StackPreempt
 ++		//	BEQ	label-of-call-to-morestack
 ++		//	ADD	$StackGuard, SP, R4
 ++		//	SUB	R3, R4
 ++		//	MOVD	$(framesize+(StackGuard-StackSmall)), R31
 ++		//	CMPU	R31, R4
 ++		p = obj.Appendp(ctxt, p)
 ++
 ++		p.As = ACMP
 ++		p.From.Type = obj.TYPE_REG
 ++		p.From.Reg = REG_R3
 ++		p.To.Type = obj.TYPE_CONST
 ++		p.To.Offset = obj.StackPreempt
 ++
 ++		p = obj.Appendp(ctxt, p)
 ++		q = p
 ++		p.As = ABEQ
 ++		p.To.Type = obj.TYPE_BRANCH
 ++
 ++		p = obj.Appendp(ctxt, p)
 ++		p.As = AADD
 ++		p.From.Type = obj.TYPE_CONST
 ++		p.From.Offset = obj.StackGuard
 ++		p.Reg = REGSP
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REG_R4
 ++
 ++		p = obj.Appendp(ctxt, p)
 ++		p.As = ASUB
 ++		p.From.Type = obj.TYPE_REG
 ++		p.From.Reg = REG_R3
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REG_R4
 ++
 ++		p = obj.Appendp(ctxt, p)
 ++		p.As = AMOVD
 ++		p.From.Type = obj.TYPE_CONST
 ++		p.From.Offset = int64(framesize) + obj.StackGuard - obj.StackSmall
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REGTMP
 ++
 ++		p = obj.Appendp(ctxt, p)
 ++		p.As = ACMPU
 ++		p.From.Type = obj.TYPE_REG
 ++		p.From.Reg = REGTMP
 ++		p.To.Type = obj.TYPE_REG
 ++		p.To.Reg = REG_R4
 ++	}
 ++
 ++	// q1: BLT	done
 ++	p = obj.Appendp(ctxt, p)
 ++	q1 := p
 ++
 ++	p.As = ABLT
 ++	p.To.Type = obj.TYPE_BRANCH
 ++
 ++	// MOVD	LR, R5
 ++	p = obj.Appendp(ctxt, p)
 ++
 ++	p.As = AMOVD
 ++	p.From.Type = obj.TYPE_REG
 ++	p.From.Reg = REG_LR
 ++	p.To.Type = obj.TYPE_REG
 ++	p.To.Reg = REG_R5
 ++	if q != nil {
 ++		q.Pcond = p
 ++	}
 ++
 ++	// BL	runtime.morestack(SB)
 ++	p = obj.Appendp(ctxt, p)
 ++
 ++	p.As = ABL
 ++	p.To.Type = obj.TYPE_BRANCH
 ++	if ctxt.Cursym.Cfunc != 0 {
 ++		p.To.Sym = obj.Linklookup(ctxt, "runtime.morestackc", 0)
 ++	} else if ctxt.Cursym.Text.From3.Offset&obj.NEEDCTXT == 0 {
 ++		p.To.Sym = obj.Linklookup(ctxt, "runtime.morestack_noctxt", 0)
 ++	} else {
 ++		p.To.Sym = obj.Linklookup(ctxt, "runtime.morestack", 0)
 ++	}
 ++
 ++	// BR	start
 ++	p = obj.Appendp(ctxt, p)
 ++
 ++	p.As = ABR
 ++	p.To.Type = obj.TYPE_BRANCH
 ++	p.Pcond = ctxt.Cursym.Text.Link
 ++
 ++	// placeholder for q1's jump target
 ++	p = obj.Appendp(ctxt, p)
 ++
 ++	p.As = obj.ANOP // zero-width place holder
 ++	q1.Pcond = p
 ++
 ++	return p
 ++}
 ++
 ++var pc_cnt int64
 ++
 ++func follow(ctxt *obj.Link, s *obj.LSym) {
 ++	ctxt.Cursym = s
 ++
 ++	pc_cnt = 0
 ++	firstp := ctxt.NewProg()
 ++	lastp := firstp
 ++	xfol(ctxt, s.Text, &lastp)
 ++	lastp.Link = nil
 ++	s.Text = firstp.Link
 ++}
 ++
 ++func relinv(a int) int {
 ++	switch a {
 ++	case ABEQ:
 ++		return ABNE
 ++	case ABNE:
 ++		return ABEQ
 ++
 ++	case ABGE:
 ++		return ABLT
 ++	case ABLT:
 ++		return ABGE
 ++
 ++	case ABGT:
 ++		return ABLE
 ++	case ABLE:
 ++		return ABGT
 ++
 ++	case ABVC:
 ++		return ABVS
 ++	case ABVS:
 ++		return ABVC
 ++	}
 ++
 ++	return 0
 ++}
 ++
 ++func xfol(ctxt *obj.Link, p *obj.Prog, last **obj.Prog) {
 ++	var q *obj.Prog
 ++	var r *obj.Prog
 ++	var a int
 ++	var b int
 ++	var i int
 ++
 ++loop:
 ++	if p == nil {
 ++		return
 ++	}
 ++	a = int(p.As)
 ++	if a == ABR {
 ++		q = p.Pcond
 ++		if (p.Mark&NOSCHED != 0) || q != nil && (q.Mark&NOSCHED != 0) {
 ++			p.Mark |= FOLL
 ++			(*last).Link = p
 ++			*last = p
 ++			(*last).Pc = pc_cnt
 ++			pc_cnt += 1
 ++			p = p.Link
 ++			xfol(ctxt, p, last)
 ++			p = q
 ++			if p != nil && p.Mark&FOLL == 0 {
 ++				goto loop
 ++			}
 ++			return
 ++		}
 ++
 ++		if q != nil {
 ++			p.Mark |= FOLL
 ++			p = q
 ++			if p.Mark&FOLL == 0 {
 ++				goto loop
 ++			}
 ++		}
 ++	}
 ++
 ++	if p.Mark&FOLL != 0 {
 ++		i = 0
 ++		q = p
 ++		for ; i < 4; i, q = i+1, q.Link {
 ++			if q == *last || (q.Mark&NOSCHED != 0) {
 ++				break
 ++			}
 ++			b = 0 /* set */
 ++			a = int(q.As)
 ++			if a == obj.ANOP {
 ++				i--
 ++				continue
 ++			}
 ++
 ++			if a == ABR || a == obj.ARET {
 ++				goto copy
 ++			}
 ++			if q.Pcond == nil || (q.Pcond.Mark&FOLL != 0) {
 ++				continue
 ++			}
 ++			b = relinv(a)
 ++			if b == 0 {
 ++				continue
 ++			}
 ++
 ++		copy:
 ++			for {
 ++				r = ctxt.NewProg()
 ++				*r = *p
 ++				if r.Mark&FOLL == 0 {
 ++					fmt.Printf("cant happen 1\n")
 ++				}
 ++				r.Mark |= FOLL
 ++				if p != q {
 ++					p = p.Link
 ++					(*last).Link = r
 ++					*last = r
 ++					(*last).Pc = pc_cnt
 ++					pc_cnt += 1
 ++					continue
 ++				}
 ++
 ++				(*last).Link = r
 ++				*last = r
 ++				(*last).Pc = pc_cnt
 ++				pc_cnt += 1
 ++				if a == ABR || a == obj.ARET {
 ++					return
 ++				}
 ++				r.As = int16(b)
 ++				r.Pcond = p.Link
 ++				r.Link = p.Pcond
 ++				if r.Link.Mark&FOLL == 0 {
 ++					xfol(ctxt, r.Link, last)
 ++				}
 ++				if r.Pcond.Mark&FOLL == 0 {
 ++					fmt.Printf("cant happen 2\n")
 ++				}
 ++				return
 ++			}
 ++		}
 ++
 ++		a = ABR
 ++		q = ctxt.NewProg()
 ++		q.As = int16(a)
 ++		q.Lineno = p.Lineno
 ++		q.To.Type = obj.TYPE_BRANCH
 ++		q.To.Offset = p.Pc
 ++		q.Pcond = p
 ++		p = q
 ++	}
 ++
 ++	p.Mark |= FOLL
 ++	(*last).Link = p
 ++	*last = p
 ++	(*last).Pc = pc_cnt
 ++	pc_cnt += 1
 ++
 ++	if a == ABR || a == obj.ARET {
 ++		if p.Mark&NOSCHED != 0 {
 ++			p = p.Link
 ++			goto loop
 ++		}
 ++
 ++		return
 ++	}
 ++
 ++	if p.Pcond != nil {
 ++		if a != ABL && p.Link != nil {
 ++			xfol(ctxt, p.Link, last)
 ++			p = p.Pcond
 ++			if p == nil || (p.Mark&FOLL != 0) {
 ++				return
 ++			}
 ++			goto loop
 ++		}
 ++	}
 ++
 ++	p = p.Link
 ++	goto loop
 ++}
 ++
 ++var unaryDst = map[int]bool{
 ++	ASTCK:  true,
 ++	ASTCKC: true,
 ++	ASTCKE: true,
 ++	ASTCKF: true,
 ++}
 ++
 ++var Links390x = obj.LinkArch{
 ++	ByteOrder:  binary.BigEndian,
 ++	Name:       "s390x",
 ++	Thechar:    'z',
 ++	Preprocess: preprocess,
 ++	Assemble:   spanz,
 ++	Follow:     follow,
 ++	Progedit:   progedit,
 ++	UnaryDst:   unaryDst,
 ++	Minlc:      2,
 ++	Ptrsize:    8,
 ++	Regsize:    8,
 ++}
 +diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go
 +index 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 6495dfb..741f4ed 100644
 +--- a/src/cmd/internal/objfile/disasm.go
 ++++ b/src/cmd/internal/objfile/disasm.go
 +@@ -245,4 +245,5 @@ var byteOrders = map[string]binary.ByteOrder{
 + 	"arm":     binary.LittleEndian,
 + 	"ppc64":   binary.BigEndian,
 + 	"ppc64le": binary.LittleEndian,
 ++	"s390x":   binary.BigEndian,
 + }
 +diff --git a/src/cmd/internal/objfile/elf.go b/src/cmd/internal/objfile/elf.go
 +index 305706d..a198eb9 100644
 +--- a/src/cmd/internal/objfile/elf.go
 ++++ b/src/cmd/internal/objfile/elf.go
 +@@ -99,6 +99,8 @@ func (f *elfFile) goarch() string {
 + 		return "arm"
 + 	case elf.EM_PPC64:
 + 		return "ppc64"
 ++	case elf.EM_S390:
 ++		return "s390x"
 + 	}
 + 	return ""
 + }
 +diff --git a/src/cmd/link/internal/ld/arch.go b/src/cmd/link/internal/ld/arch.go
 +index 2fcfd63..41a6d5a 100644
 +--- a/src/cmd/link/internal/ld/arch.go
 ++++ b/src/cmd/link/internal/ld/arch.go
 +@@ -86,3 +86,12 @@ var Linkmips64le = LinkArch{
 + 	Ptrsize:   8,
 + 	Regsize:   8,
 + }
 ++
 ++var Links390x = LinkArch{
 ++	ByteOrder: binary.BigEndian,
 ++	Name:      "s390x",
 ++	Thechar:   'z',
 ++	Minlc:     2,
 ++	Ptrsize:   8,
 ++	Regsize:   8,
 ++}
 +diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go
 +index ca8eabb..bf96661 100644
 +--- a/src/cmd/link/internal/ld/data.go
 ++++ b/src/cmd/link/internal/ld/data.go
 +@@ -148,6 +148,9 @@ func Addpcrelplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
 + 	r.Add = add
 + 	r.Type = obj.R_PCREL
 + 	r.Siz = 4
 ++	if Thearch.Thechar == 'z' {
 ++		r.Variant = RV_390_DBL
 ++	}
 + 	return i + int64(r.Siz)
 + }
 + 
 +@@ -320,7 +323,6 @@ func relocsym(s *LSym) {
 + 	var rs *LSym
 + 	var i16 int16
 + 	var off int32
 +-	var siz int32
 + 	var fl int32
 + 	var o int64
 + 
 +@@ -329,12 +331,10 @@ func relocsym(s *LSym) {
 + 		r = &s.R[ri]
 + 		r.Done = 1
 + 		off = r.Off
 +-		siz = int32(r.Siz)
 +-		if off < 0 || off+siz > int32(len(s.P)) {
 +-			Diag("%s: invalid relocation %d+%d not in [%d,%d)", s.Name, off, siz, 0, len(s.P))
 ++		if off < 0 || off+int32(r.Siz) > int32(len(s.P)) {
 ++			Diag("%s: invalid relocation %d+%d not in [%d,%d)", s.Name, off, int32(r.Siz), 0, len(s.P))
 + 			continue
 + 		}
 +-
 + 		if r.Sym != nil && (r.Sym.Type&(obj.SMASK|obj.SHIDDEN) == 0 || r.Sym.Type&obj.SMASK == obj.SXREF) {
 + 			// When putting the runtime but not main into a shared library
 + 			// these symbols are undefined and that's OK.
 +@@ -364,11 +364,23 @@ func relocsym(s *LSym) {
 + 			Diag("unreachable sym in relocation: %s %s", s.Name, r.Sym.Name)
 + 		}
 + 
 ++		// TODO(mundaym): Move this conversion somewhere more appropriate.
 ++		// Ideally the obj relocations would support variants.
 ++		if Thearch.Thechar == 'z' {
 ++			switch r.Type {
 ++			case obj.R_PCRELDBL:
 ++				r.Type = obj.R_PCREL
 ++				r.Variant = RV_390_DBL
 ++			case obj.R_CALL:
 ++				r.Variant = RV_390_DBL
 ++			}
 ++		}
 ++
 + 		switch r.Type {
 + 		default:
 +-			switch siz {
 ++			switch r.Siz {
 + 			default:
 +-				Diag("bad reloc size %#x for %s", uint32(siz), r.Sym.Name)
 ++				Diag("bad reloc size %#x for %s", uint32(r.Siz), r.Sym.Name)
 + 			case 1:
 + 				o = int64(s.P[off])
 + 			case 2:
 +@@ -454,7 +466,7 @@ func relocsym(s *LSym) {
 + 
 + 				o = r.Xadd
 + 				if Iself {
 +-					if Thearch.Thechar == '6' {
 ++					if Thearch.Thechar == '6' || Thearch.Thechar == 'z' {
 + 						o = 0
 + 					}
 + 				} else if HEADTYPE == obj.Hdarwin {
 +@@ -487,7 +499,7 @@ func relocsym(s *LSym) {
 + 			// fail at runtime. See https://golang.org/issue/7980.
 + 			// Instead of special casing only amd64, we treat this as an error on all
 + 			// 64-bit architectures so as to be future-proof.
 +-			if int32(o) < 0 && Thearch.Ptrsize > 4 && siz == 4 {
 ++			if int32(o) < 0 && Thearch.Ptrsize > 4 && r.Siz == 4 {
 + 				Diag("non-pc-relative relocation address is too big: %#x (%#x + %#x)", uint64(o), Symaddr(r.Sym), r.Add)
 + 				errorexit()
 + 			}
 +@@ -514,7 +526,7 @@ func relocsym(s *LSym) {
 + 
 + 				o = r.Xadd
 + 				if Iself {
 +-					if Thearch.Thechar == '6' {
 ++					if Thearch.Thechar == '6' || Thearch.Thechar == 'z' {
 + 						o = 0
 + 					}
 + 				} else if HEADTYPE == obj.Hdarwin {
 +@@ -568,10 +580,10 @@ func relocsym(s *LSym) {
 + 			}
 + 			fmt.Printf("relocate %s %#x (%#x+%#x, size %d) => %s %#x +%#x [type %d/%d, %x]\n", s.Name, s.Value+int64(off), s.Value, r.Off, r.Siz, nam, Symaddr(r.Sym), r.Add, r.Type, r.Variant, o)
 + 		}
 +-		switch siz {
 ++		switch r.Siz {
 + 		default:
 + 			Ctxt.Cursym = s
 +-			Diag("bad reloc size %#x for %s", uint32(siz), r.Sym.Name)
 ++			Diag("bad reloc size %#x for %s", uint32(r.Siz), r.Sym.Name)
 + 			fallthrough
 + 
 + 			// TODO(rsc): Remove.
 +@@ -580,7 +592,7 @@ func relocsym(s *LSym) {
 + 
 + 		case 2:
 + 			if o != int64(int16(o)) {
 +-				Diag("relocation address is too big: %#x", o)
 ++				Diag("relocation address for %s (type %v) is too big: %#x", s.Name, r.Type, o)
 + 			}
 + 			i16 = int16(o)
 + 			Ctxt.Arch.ByteOrder.PutUint16(s.P[off:], uint16(i16))
 +@@ -614,6 +626,7 @@ func reloc() {
 + 	for s := Ctxt.Textp; s != nil; s = s.Next {
 + 		relocsym(s)
 + 	}
 ++
 + 	for s := datap; s != nil; s = s.Next {
 + 		relocsym(s)
 + 	}
 +@@ -1030,6 +1043,13 @@ func symalign(s *LSym) int32 {
 + 	if align < s.Align {
 + 		align = s.Align
 + 	}
 ++
 ++	// TODO(mundaym): Minalign should probably be a new attribute on 'Thearch'
 ++	if Thearch.Thechar == 'z' && align < 2 {
 ++		// Relative addressing requires a 2 byte alignment on s390x.
 ++		align = 2
 ++	}
 ++
 + 	return align
 + }
 + 
 +@@ -1159,6 +1179,7 @@ func dodata() {
 + 	for s := datap; s != nil; s = s.Next {
 + 		if int64(len(s.P)) > s.Size {
 + 			Diag("%s: initialize bounds (%d < %d)", s.Name, int64(s.Size), len(s.P))
 ++			s.Size = int64(len(s.P)) // hack to allow linking of asm into go // TODO(WGO)
 + 		}
 + 	}
 + 
 +diff --git a/src/cmd/link/internal/ld/dwarf.go b/src/cmd/link/internal/ld/dwarf.go
 +index 563600d..3ed7b35 100644
 +--- a/src/cmd/link/internal/ld/dwarf.go
 ++++ b/src/cmd/link/internal/ld/dwarf.go
 +@@ -1715,7 +1715,7 @@ func writelines() {
 +  *  Emit .debug_frame
 +  */
 + const (
 +-	CIERESERVE          = 16
 ++	CIERESERVE          = 32
 + 	DATAALIGNMENTFACTOR = -4
 + )
 + 
 +@@ -1754,7 +1754,6 @@ func writeframes() {
 + 	uleb128put(int64(Thearch.Dwarfreglr)) // return_address_register
 + 
 + 	Cput(DW_CFA_def_cfa)
 +-
 + 	uleb128put(int64(Thearch.Dwarfregsp)) // register SP (**ABI-dependent, defined in l.h)
 + 	if haslinkregister() {
 + 		uleb128put(int64(0)) // offset
 +@@ -1762,14 +1761,21 @@ func writeframes() {
 + 		uleb128put(int64(Thearch.Ptrsize)) // offset
 + 	}
 + 
 +-	Cput(DW_CFA_offset_extended)
 +-	uleb128put(int64(Thearch.Dwarfreglr)) // return address
 + 	if haslinkregister() {
 +-		uleb128put(int64(0) / DATAALIGNMENTFACTOR) // at cfa - 0
 ++		Cput(DW_CFA_same_value)
 ++		uleb128put(int64(Thearch.Dwarfreglr))
 + 	} else {
 ++		Cput(DW_CFA_offset_extended)
 ++		uleb128put(int64(Thearch.Dwarfreglr))                     // return address
 + 		uleb128put(int64(-Thearch.Ptrsize) / DATAALIGNMENTFACTOR) // at cfa - x*4
 + 	}
 + 
 ++	if haslinkregister() {
 ++		Cput(DW_CFA_val_offset)
 ++		uleb128put(int64(Thearch.Dwarfregsp))
 ++		uleb128put(int64(0))
 ++	}
 ++
 + 	// 4 is to exclude the length field.
 + 	pad := CIERESERVE + frameo + 4 - Cpos()
 + 
 +@@ -1788,7 +1794,7 @@ func writeframes() {
 + 
 + 		fdeo := Cpos()
 + 
 +-		// Emit a FDE, Section 6.4.1, starting wit a placeholder.
 ++		// Emit a FDE, Section 6.4.1, starting with a placeholder.
 + 		Thearch.Lput(0) // length, must be multiple of thearch.ptrsize
 + 		Thearch.Lput(0) // Pointer to the CIE above, at offset 0
 + 		addrput(0)      // initial location
 +@@ -1807,6 +1813,21 @@ func writeframes() {
 + 			}
 + 
 + 			if haslinkregister() {
 ++				// TODO(bryanpkc): This is imprecise. In general, the instruction
 ++				// that stores the return address to the stack frame is not the
 ++				// same one that allocates the frame.
 ++				if pcsp.value > 0 {
 ++					// The return address is preserved at (CFA-frame_size)
 ++					// after a stack frame has been allocated.
 ++					Cput(DW_CFA_offset_extended_sf)
 ++					uleb128put(int64(Thearch.Dwarfreglr))
 ++					sleb128put(-int64(pcsp.value) / DATAALIGNMENTFACTOR)
 ++				} else {
 ++					// The return address is restored into the link register
 ++					// when a stack frame has been de-allocated.
 ++					Cput(DW_CFA_same_value)
 ++					uleb128put(int64(Thearch.Dwarfreglr))
 ++				}
 + 				putpccfadelta(int64(nextpc)-int64(pcsp.pc), int64(pcsp.value))
 + 			} else {
 + 				putpccfadelta(int64(nextpc)-int64(pcsp.pc), int64(Thearch.Ptrsize)+int64(pcsp.value))
 +@@ -2235,7 +2256,7 @@ func dwarfaddshstrings(shstrtab *LSym) {
 + 	elfstrdbg[ElfStrGDBScripts] = Addstring(shstrtab, ".debug_gdb_scripts")
 + 	if Linkmode == LinkExternal {
 + 		switch Thearch.Thechar {
 +-		case '0', '6', '7', '9':
 ++		case '0', '6', '7', '9', 'z':
 + 			elfstrdbg[ElfStrRelDebugInfo] = Addstring(shstrtab, ".rela.debug_info")
 + 			elfstrdbg[ElfStrRelDebugAranges] = Addstring(shstrtab, ".rela.debug_aranges")
 + 			elfstrdbg[ElfStrRelDebugLine] = Addstring(shstrtab, ".rela.debug_line")
 +@@ -2288,7 +2309,7 @@ func dwarfaddelfsectionsyms() {
 + func dwarfaddelfrelocheader(elfstr int, shdata *ElfShdr, off int64, size int64) {
 + 	sh := newElfShdr(elfstrdbg[elfstr])
 + 	switch Thearch.Thechar {
 +-	case '0', '6', '7', '9':
 ++	case '0', '6', '7', '9', 'z':
 + 		sh.type_ = SHT_RELA
 + 	default:
 + 		sh.type_ = SHT_REL
 +diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go
 +index 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..dfd3ad4
++index 0000000..ad37833
 +--- /dev/null
 ++++ b/src/cmd/link/internal/s390x/asm.go
- @@ -0,0 +1,564 @@
++@@ -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.Elfsym
+++	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 {
+++		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..414c3a6
++index 0000000..d1d4d6f
 +--- /dev/null
 ++++ b/src/cmd/link/internal/s390x/obj.go
- @@ -0,0 +1,111 @@
++@@ -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..956e5e9
++index 0000000..d296d64
 +--- /dev/null
 ++++ b/src/math/big/arith_s390x.s
- @@ -0,0 +1,340 @@
- +// Copyright 2016 The Go Authors. All rights reserved.
++@@ -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
+++// +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
- +	BR ·divWW_g(SB)
+++	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
- +	BR ·addVV_g(SB)
+++	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
- +	BR ·subVV_g(SB)
+++	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)
- +
- +// (same as addVW except for SUBQ/SBBQ instead of ADDQ/ADCQ and label names)
 ++	MOVD z_len+8(FP), R3
 ++	MOVD x+24(FP), R8
 ++	MOVD y+48(FP), R4	// c = y
 ++	MOVD z+0(FP), R2
 ++	MOVD $0, R0		// make sure it's 0
 ++	MOVD $0, R10		// i = 0
 ++
 ++	// s/JL/JMP/ below to disable the unrolled loop
 ++	SUB $4, R3		// n -= 4
 ++	BLT V4			// if n < 4 goto V4
 ++
 ++U4:	// n >= 0
 ++	// regular loop body unrolled 4x
 ++	MOVD 0(R8)(R10*1), R5
 ++	MOVD 8(R8)(R10*1), R6
 ++	MOVD 16(R8)(R10*1), R7
 ++	MOVD 24(R8)(R10*1), R1
- +	ADDC R4, R5		//SLGR  -> SUBC
- +	ADDE R0, R6		//SLBGR -> SUBE
+++	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 SUBQ/SBBQ instead of ADDQ/ADCQ and label names)
+++// (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
+++	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
+++        MOVD z_len+8(FP), R5
+++        SUB  $1, R5             // n--
+++        BLT  X8b                // n < 0        (n <= 0)
 ++
- +X8b:	MOVD R0, c+56(FP)
- +	RET
+++        // 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)
 ++
- +Z80:	MOVD z+0(FP), R2
- +	MOVD x+24(FP), R8
- +	SLD  $3, R5		// n = n*8
+++        MOVD $0, R1             // i = 0
+++        BR   E8
 ++
- +	MOVD (R8), R10
- +	MOVD $0, R3
- +	MOVD R3, c+56(FP)
+++        // i < n-1
+++L8:     MOVD R10, R3             // w = w1
+++        MOVD -8(R8)(R5*1), R10   // w1 = x[i+1]
 ++
- +	MOVD $0, R1		// i = 0
- +	BR   E8Z
+++        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--
 ++
- +	// i < n-1
- +L8Z:	MOVD R10, R3
- +	MOVD 8(R8)(R1*1), R10
+++E8:     CMP R5, R0
+++        BGT L8                   // i < n-1
 ++
- +	MOVD R3, (R2)(R1*1)
- +	ADD  $8, R1
+++        // i >= n-1
+++X8a:    SLD  R4, R10             // w1<<s
+++        MOVD R10, (R2)           // z[0] = w1<<s
+++        RET
 ++
- +E8Z:	CMP R1, R5
- +	BLT L8Z
+++X8b:    MOVD R0, c+56(FP)
+++        RET
 ++
- +	// i >= n-1
- +	MOVD R10, (R2)(R5*1)
- +	RET
+++Z80:    MOVD z+0(FP), R2
+++        MOVD x+24(FP), R8
+++        SLD  $3, R5             // n = n*8
 ++
- +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]
+++        MOVD (R8), R10
+++        MOVD $0, R3
+++        MOVD R3, c+56(FP)
 ++
- +	BR   E864
+++        MOVD $0, R1             // i = 0
+++        BR   E8Z
 ++
- +	// i < n-1
- +L864:	MOVD -8(R8)(R5*1), R3
+++        // i < n-1
+++L8Z:    MOVD R10, R3
+++        MOVD 8(R8)(R1*1), R10
 ++
- +	MOVD R3, (R2)(R5*1)	// z[i] = x[n-1]
- +	SUB  $8, R5		// i--
+++        MOVD R3, (R2)(R1*1)
+++        ADD  $8, R1
 ++
- +E864:	CMP R5, R0
- +	BGT L864		// i < n-1
+++E8Z:    CMP R1, R5
+++        BLT L8Z
 ++
- +	MOVD R0, (R2)		// z[n-1] = 0
+++        // i >= n-1
+++        MOVD R10, (R2)(R5*1)
+++        RET
 ++
- +	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
 ++
- +// 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
+++L864:   MOVD -8(R8)(R5*1), R3  
 ++
- +	// i < n-1
- +L9:	MOVD R10, R3		// w = w1
- +	MOVD 8(R8)(R1*1), R10	// w1 = x[i+1]
+++        MOVD R3, (R2)(R5*1)     // z[i] = x[n-1]
+++        SUB  $8, R5             // i--
 ++
- +	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++
+++E864:   CMP R5, R0
+++        BGT L864                // i < n-1
 ++
- +E9:	CMP R1, R5
- +	BLT L9			// i < n-1
+++        MOVD R0, (R2)           // z[n-1] = 0
 ++
- +	// i >= n-1
- +X9a:	SRD  R4, R10		// w1>>s
- +	MOVD R10, (R2)(R5*1)	// z[n-1] = w1>>s
- +	RET
+++        RET
 ++
- +X9b:	MOVD R0, c+56(FP)
- +	RET
 ++
- +ZB0:	MOVD z+0(FP), R2
+++// 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
- +	SLD  $3, R5		// n = n*8
- +
- +	MOVD (R8), R10		// w1 = x[0]
- +	MOVD $0, R3		// R10 << 64
- +	MOVD R3, c+56(FP)
- +
+++	MOVD y+48(FP), R9
+++	MOVD r+56(FP), R4	// c = r
+++	MOVD z_len+8(FP), R5
 ++	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
+++	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
 ++
- +ZB64:	MOVD z+0(FP), R2
+++// 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
- +	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 y+48(FP), R9
+++	MOVD z_len+8(FP), R5
 ++
- +	MOVD R3, (R2)(R1*1)	// z[i] = w>>s | w1<<s
- +	ADD  $8, R1		// i++
+++	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++
 ++
- +E964:	CMP R1, R5
- +	BLT L964		// i < n-1
+++E6:	CMPBLT R7, R5, L6	// i < n
 ++
- +	// i >= n-1
- +	MOVD  $0, R10		// w1>>s
- +	MOVD R10, (R2)(R5*1)	// z[n-1] = w1>>s
+++	MOVD R4, c+56(FP)
 ++	RET
 ++
- +TEXT ·mulAddVWW(SB),NOSPLIT,$0
- +	BR ·mulAddVWW_g(SB)
- +
- +TEXT ·addMulVVW(SB),NOSPLIT,$0
- +	BR ·addMulVVW_g(SB)
- +
+++// 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
- +	BR ·divWVW_g(SB)
+++	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
+++	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..80a3f07
++index 0000000..861747e
 +--- /dev/null
 ++++ b/src/runtime/asm_s390x.s
- @@ -0,0 +1,1162 @@
++@@ -0,0 +1,1182 @@
 ++// 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"
 ++
 ++TEXT runtime·rt0_go(SB),NOSPLIT,$0
 ++	// R2 = argc; R3 = argv; R11 = temp; R13 = g; R15 = stack pointer
 ++	// C TLS base pointer in AR0:AR1
 ++
 ++	// initialize essential registers
- +	BL	runtime·reginit(SB)
+++	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)
 ++
 ++	// 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
 ++
- +TEXT _cgo_load_g(SB),NOSPLIT|NOFRAME,$0-0
- +	// crosscall_s390x and crosscall2 need to reginit, but can't
- +	// get at the 'runtime.load_g' symbol.
- +	BR	runtime·load_g(SB)
- +
- +TEXT _cgo_reginit(SB),NOSPLIT|NOFRAME,$0-0
- +	// crosscall_s390x and crosscall2 need to reginit, but can't
- +	// get at the 'runtime.reginit' symbol.
- +	BR	runtime·reginit(SB)
- +
- +TEXT runtime·reginit(SB),NOSPLIT|NOFRAME,$0-0
- +	// set R0 to zero, it's expected by the toolchain
- +	XOR R0, R0
- +	// initialize essential FP registers
- +	FMOVD	$4503601774854144.0, F11
- +	FMOVD	$1.0, F13
- +	FSUB	F13, F13, F12
- +	FADD	F13, F13, F14
- +	RET
- +
 ++/*
 ++ *  go-routine
 ++ */
 ++
 ++// void gosave(Gobuf*)
 ++// save state in Gobuf; setjmp
 ++TEXT runtime·gosave(SB), NOSPLIT, $-8-8
 ++	MOVD	buf+0(FP), R3
 ++	MOVD	R15, gobuf_sp(R3)
 ++	MOVD	LR, R10
 ++	MOVD	R10, gobuf_pc(R3)
 ++	MOVD	g, gobuf_g(R3)
 ++	MOVD	R0, gobuf_lr(R3)
 ++	MOVD	R0, gobuf_ret(R3)
 ++	MOVD	R0, gobuf_ctxt(R3)
 ++	RET
 ++
 ++// void gogo(Gobuf*)
 ++// restore state from Gobuf; longjmp
 ++TEXT runtime·gogo(SB), NOSPLIT, $-8-8
 ++	MOVD	buf+0(FP), R5
 ++	MOVD	gobuf_g(R5), g	// make sure g is not nil
 ++	BL	runtime·save_g(SB)
 ++
 ++	MOVD	0(g), R4
 ++	MOVD	gobuf_sp(R5), R15
 ++	MOVD	gobuf_lr(R5), R10
 ++	MOVD	R10, LR
 ++	MOVD	gobuf_ret(R5), R3
 ++	MOVD	gobuf_ctxt(R5), R12
 ++	MOVD	R0, gobuf_sp(R5)
 ++	MOVD	R0, gobuf_ret(R5)
 ++	MOVD	R0, gobuf_lr(R5)
 ++	MOVD	R0, gobuf_ctxt(R5)
 ++	CMP	R0, R0 // set condition codes for == test, needed by stack split
 ++	MOVD	gobuf_pc(R5), R10
 ++	BR	(R10)
 ++
 ++// void mcall(fn func(*g))
 ++// Switch to m->g0's stack, call fn(g).
 ++// Fn must never return.  It should gogo(&g->sched)
 ++// to keep running g.
 ++TEXT runtime·mcall(SB), NOSPLIT, $-8-8
 ++	// Save caller state in g->sched
 ++	MOVD	R15, (g_sched+gobuf_sp)(g)
 ++	MOVD	LR, R10
 ++	MOVD	R10, (g_sched+gobuf_pc)(g)
 ++	MOVD	R0, (g_sched+gobuf_lr)(g)
 ++	MOVD	g, (g_sched+gobuf_g)(g)
 ++
 ++	// Switch to m->g0 & its stack, call fn.
 ++	MOVD	g, R3
 ++	MOVD	g_m(g), R8
 ++	MOVD	m_g0(R8), g
 ++	BL	runtime·save_g(SB)
 ++	CMP	g, R3
 ++	BNE	2(PC)
 ++	BR	runtime·badmcall(SB)
 ++	MOVD	fn+0(FP), R12			// context
 ++	MOVD	0(R12), R4			// code pointer
 ++	MOVD	R4, R10
 ++	MOVD	(g_sched+gobuf_sp)(g), R15	// sp = m->g0->sched.sp
 ++	SUB	$16, R15
 ++	MOVD	R3, 8(R15)
 ++	MOVD	R0, 0(R15)
 ++	BL	(R10)
 ++	BR	runtime·badmcall2(SB)
 ++
 ++// systemstack_switch is a dummy routine that systemstack leaves at the bottom
 ++// of the G stack.  We need to distinguish the routine that
 ++// lives at the bottom of the G stack from the one that lives
 ++// at the top of the system stack because the one at the top of
 ++// the system stack terminates the stack walk (see topofstack()).
 ++TEXT runtime·systemstack_switch(SB), NOSPLIT, $0-0
 ++	UNDEF
 ++	BL	(LR)	// make sure this function is not leaf
 ++	RET
 ++
 ++// func systemstack(fn func())
 ++TEXT runtime·systemstack(SB), NOSPLIT, $0-8
 ++	MOVD	fn+0(FP), R3	// R3 = fn
 ++	MOVD	R3, R12		// context
 ++	MOVD	g_m(g), R4	// R4 = m
 ++
 ++	MOVD	m_gsignal(R4), R5	// R5 = gsignal
 ++	CMPBEQ	g, R5, noswitch
 ++
 ++	MOVD	m_g0(R4), R5	// R5 = g0
 ++	CMPBEQ	g, R5, noswitch
 ++
 ++	MOVD	m_curg(R4), R6
 ++	CMPBEQ	g, R6, switch
 ++
 ++	// Bad: g is not gsignal, not g0, not curg. What is it?
 ++	// Hide call from linker nosplit analysis.
 ++	MOVD	$runtime·badsystemstack(SB), R3
 ++	MOVD	R3, R10
 ++	BL	(R10)
 ++
 ++switch:
 ++	// save our state in g->sched.  Pretend to
 ++	// be systemstack_switch if the G stack is scanned.
 ++	MOVD	$runtime·systemstack_switch(SB), R6
 ++	ADD	$16, R6	// get past prologue
 ++	MOVD	R6, (g_sched+gobuf_pc)(g)
 ++	MOVD	R15, (g_sched+gobuf_sp)(g)
 ++	MOVD	R0, (g_sched+gobuf_lr)(g)
 ++	MOVD	g, (g_sched+gobuf_g)(g)
 ++
 ++	// switch to g0
 ++	MOVD	R5, g
 ++	BL	runtime·save_g(SB)
 ++	MOVD	(g_sched+gobuf_sp)(g), R3
 ++	// make it look like mstart called systemstack on g0, to stop traceback
 ++	SUB	$8, R3
 ++	MOVD	$runtime·mstart(SB), R4
 ++	MOVD	R4, 0(R3)
 ++	MOVD	R3, R15
 ++
 ++	// call target function
 ++	MOVD	0(R12), R3	// code pointer
 ++	MOVD	R3, R10
 ++	BL	(R10)
 ++
 ++	// switch back to g
 ++	MOVD	g_m(g), R3
 ++	MOVD	m_curg(R3), g
 ++	BL	runtime·save_g(SB)
 ++	MOVD	(g_sched+gobuf_sp)(g), R15
 ++	MOVD	R0, (g_sched+gobuf_sp)(g)
 ++	RET
 ++
 ++noswitch:
 ++	// already on m stack, just call directly
 ++	MOVD	0(R12), R3	// code pointer
 ++	MOVD	R3, R10
 ++	BL	(R10)
 ++	RET
 ++
 ++/*
 ++ * support for morestack
 ++ */
 ++
 ++// Called during function prolog when more stack is needed.
 ++// Caller has already loaded:
 ++// R3: framesize, R4: argsize, R5: LR
 ++//
 ++// The traceback routines see morestack on a g0 as being
 ++// the top of a stack (for example, morestack calling newstack
 ++// calling the scheduler calling newm calling gc), so we must
 ++// record an argument size. For that purpose, it has no arguments.
 ++TEXT runtime·morestack(SB),NOSPLIT|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(·call16, 16)
 ++CALLFN(·call32, 32)
 ++CALLFN(·call64, 64)
 ++CALLFN(·call128, 128)
 ++CALLFN(·call256, 256)
 ++CALLFN(·call512, 512)
 ++CALLFN(·call1024, 1024)
 ++CALLFN(·call2048, 2048)
 ++CALLFN(·call4096, 4096)
 ++CALLFN(·call8192, 8192)
 ++CALLFN(·call16384, 16384)
 ++CALLFN(·call32768, 32768)
 ++CALLFN(·call65536, 65536)
 ++CALLFN(·call131072, 131072)
 ++CALLFN(·call262144, 262144)
 ++CALLFN(·call524288, 524288)
 ++CALLFN(·call1048576, 1048576)
 ++CALLFN(·call2097152, 2097152)
 ++CALLFN(·call4194304, 4194304)
 ++CALLFN(·call8388608, 8388608)
 ++CALLFN(·call16777216, 16777216)
 ++CALLFN(·call33554432, 33554432)
 ++CALLFN(·call67108864, 67108864)
 ++CALLFN(·call134217728, 134217728)
 ++CALLFN(·call268435456, 268435456)
 ++CALLFN(·call536870912, 536870912)
 ++CALLFN(·call1073741824, 1073741824)
 ++
 ++TEXT runtime·procyield(SB),NOSPLIT,$0-0
 ++	RET
 ++
 ++// void jmpdefer(fv, sp);
 ++// called from deferreturn.
 ++// 1. grab stored LR for caller
 ++// 2. sub 6 bytes to get back to BL deferreturn (size of BRASL instruction)
 ++// 3. BR to fn
 ++TEXT runtime·jmpdefer(SB),NOSPLIT|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
 ++
 ++#define	TBRL	268
 ++#define	TBRU	269		/* Time base Upper/Lower */
 ++
 ++// int64 runtime·cputicks(void)
 ++TEXT runtime·cputicks(SB),NOSPLIT,$0-8
 ++	// The TOD clock on s390 counts from the year 1900 in ~250ps intervals.
 ++	// This means that since about 1972 the msb has been set, making the
 ++	// result of a call to STORE CLOCK (stck) a negative number.
 ++	// We clear the msb to make it positive.
 ++	STCK	ret+0(FP)      // serialises before and after call
 ++	MOVD	ret+0(FP), R3  // R3 will wrap to 0 in the year 2043
 ++	SLD	$1, R3
 ++	SRD	$1, R3
 ++	MOVD	R3, ret+0(FP)
 ++	RET
 ++
 ++// memhash_varlen(p unsafe.Pointer, h seed) uintptr
 ++// redirects to memhash(p, h, size) using the size
 ++// stored in the closure.
 ++TEXT runtime·memhash_varlen(SB),NOSPLIT,$40-24
 ++	GO_ARGS
 ++	NO_LOCAL_POINTERS
 ++	MOVD	p+0(FP), R3
 ++	MOVD	h+8(FP), R4
 ++	MOVD	8(R12), R5
 ++	MOVD	R3, 8(R15)
 ++	MOVD	R4, 16(R15)
 ++	MOVD	R5, 24(R15)
 ++	BL	runtime·memhash(SB)
 ++	MOVD	32(R15), R3
 ++	MOVD	R3, ret+16(FP)
 ++	RET
 ++
 ++// AES hashing not implemented for 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·clc(SB),NOSPLIT,$0-0
 ++	CLC	$1, 0(R3), 0(R4)
 ++	RET
 ++
 ++TEXT runtime·memeq(SB),NOSPLIT|NOFRAME,$0-25
 ++	MOVD	a+0(FP), R3
 ++	MOVD	b+8(FP), R4
 ++	CMPBNE	R3, R4, 4(PC)
 ++	MOVD	$1, R5
 ++	MOVB	R5, ret+24(FP)
 ++	RET
 ++	MOVD	size+16(FP), R5
 ++loop:
 ++	CMPBEQ	R5, $0, equal
 ++	CMP	R5, $256
 ++	BLT	tail
 ++	CLC	$256, 0(R3), 0(R4)
 ++	BNE	notequal
 ++	SUB	$256, R5
 ++	ADD	$256, R3
 ++	ADD	$256, R4
 ++	BR	loop
 ++tail:
 ++	SUB	$1, R5
 ++	EXRL	$runtime·clc(SB), R5
 ++	BEQ	equal
 ++	MOVB	R0, ret+24(FP)
 ++	RET
 ++equal:
 ++	MOVD	$1, R5
 ++	MOVB	R5, ret+24(FP)
 ++	RET
 ++notequal:
 ++	MOVB	R0, ret+24(FP)
 ++	RET
 ++
 ++// memequal_varlen(a, b unsafe.Pointer) bool
 ++TEXT runtime·memequal_varlen(SB),NOSPLIT,$40-17
 ++	MOVD	a+0(FP), R3
 ++	MOVD	b+8(FP), R4
 ++	CMPBEQ	R3, R4, eq
 ++	MOVD	8(R12), R5    // compiler stores size at offset 8 in the closure
 ++	MOVD	R3, 8(R15)
 ++	MOVD	R4, 16(R15)
 ++	MOVD	R5, 24(R15)
 ++	BL	runtime·memeq(SB)
 ++	MOVBZ	32(R15), R3
 ++	MOVB	R3, ret+16(FP)
 ++	RET
 ++eq:
 ++	MOVD	$1, R3
 ++	MOVB	R3, ret+16(FP)
 ++	RET
 ++
 ++// eqstring tests whether two strings are equal.
 ++// The compiler guarantees that strings passed
 ++// to eqstring have equal length.
 ++// See runtime_test.go:eqstring_generic for
 ++// equivalent Go code.
 ++TEXT runtime·eqstring(SB),NOSPLIT,$0-33
 ++	MOVD	s1str+0(FP), R3
 ++	MOVD	s2str+16(FP), R4
 ++	CMPBNE	R3, R4, 4(PC)
 ++	MOVD	$1, R5
 ++	MOVB	R5, ret+32(FP)
 ++	RET
 ++	MOVD	s1len+8(FP), R5
 ++loop:
 ++	CMPBEQ	R5, $0, equal
 ++	CMP	R5, $256
 ++	BLT	tail
 ++	CLC	$256, 0(R3), 0(R4)
 ++	BNE	notequal
 ++	SUB	$256, R5
 ++	ADD	$256, R3
 ++	ADD	$256, R4
 ++	BR	loop
 ++tail:
 ++	SUB	$1, R5
 ++	EXRL	$runtime·clc(SB), R5
 ++	BEQ	equal
 ++	MOVB	R0, ret+32(FP)
 ++	RET
 ++equal:
 ++	MOVD	$1, R5
 ++	MOVB	R5, ret+32(FP)
 ++	RET
 ++notequal:
 ++	MOVB	R0, ret+32(FP)
 ++	RET
 ++
 ++// TODO: share code with memeq?
 ++TEXT bytes·Equal(SB),NOSPLIT,$0-49
 ++	MOVD	a_len+8(FP), R5
 ++	MOVD	b_len+32(FP), R6
 ++	CMPBNE	R5, R6, notequal
 ++	MOVD	a+0(FP), R3
 ++	MOVD	b+24(FP), R4
 ++	CMPBLE	R5, $32, tiny
 ++	CMP	R5, $256
 ++	BGT	loop
 ++tail:
 ++	SUB	$1, R5
 ++	EXRL	$runtime·clc(SB), R5
 ++	BEQ	equal
 ++	MOVB	R0, ret+48(FP)
 ++	RET
 ++loop:
 ++	CLC	$256, 0(R3), 0(R4)
 ++	BNE	notequal
 ++	SUB	$256, R5
 ++	ADD	$256, R3
 ++	ADD	$256, R4
 ++	CMP	R5, $256
 ++	BGE	loop
 ++	CMPBNE	R5, $0, tail
 ++equal:
 ++	MOVD	$1, R5
 ++	MOVB	R5, ret+48(FP)
 ++	RET
 ++notequal:
 ++	MOVB	R0, ret+48(FP)
 ++	RET
 ++tiny:
 ++	CMPBLT	R5, $16, lt16
 ++	MOVD	0(R3), R6
 ++	MOVD	0(R4), R7
 ++	CMPBNE	R6, R7, notequal
 ++	MOVD	8(R3), R6
 ++	MOVD	8(R4), R7
 ++	CMPBNE	R6, R7, notequal
 ++	ADD 	$16, R3
 ++	ADD	$16, R4
 ++	SUB	$16, R5
 ++lt16:
 ++	CMPBLT	R5, $8, lt8
 ++	MOVD	0(R3), R6
 ++	MOVD	0(R4), R7
 ++	CMPBNE	R6, R7, notequal
 ++	ADD	$8, R3
 ++	ADD	$8, R4
 ++	SUB	$8, R5
 ++lt8:
 ++	CMPBLT	R5, $4, lt4
 ++	MOVWZ	0(R3), R6
 ++	MOVWZ	0(R4), R7
 ++	CMPBNE	R6, R7, notequal
 ++	ADD	$4, R3
 ++	ADD	$4, R4
 ++	SUB	$4, R5
 ++lt4:
 ++#define CHECK(n) \
 ++	CMPBEQ	R5, $n, equal \
 ++	MOVB	n(R3), R6 \
 ++	MOVB	n(R4), R7 \
 ++	CMP	R6, R7 \
 ++	BNE	notequal
 ++	CHECK(0)
 ++	CHECK(1)
 ++	CHECK(2)
 ++	CHECK(3)
 ++	BR	equal
 ++
 ++TEXT bytes·IndexByte(SB),NOSPLIT,$0-40
 ++	MOVD	s+0(FP), R3
 ++	MOVD	s_len+8(FP), R4
 ++	MOVBZ	c+24(FP), R5	// byte to find
 ++	CMP	R4, $0
 ++	BEQ	notfound
 ++	MOVD	R3, R6		// store base for later
 ++	ADD	R3, R4		// calculate end marker
 ++	MOVBZ	R5, R0		// c needs to be in R0, leave until last minute as currently R0 is expected to be 0
 ++loop:
 ++	WORD	$0xB25E0043	// srst %r4, %r3 (search the range [R3, R4))
 ++	BVS	loop		// interrupted - continue
 ++	BGT	notfound
 ++found:
 ++	XOR	R0, R0		// reset R0
 ++	SUB	R6, R4		// remove base
 ++	MOVD	R4, ret+32(FP)
 ++	RET
 ++notfound:
 ++	XOR	R0, R0		// reset R0
 ++	MOVD	$-1, R1
 ++	MOVD	R1, ret+32(FP)
 ++	RET
 ++
 ++TEXT strings·IndexByte(SB),NOSPLIT,$0-32
 ++	MOVD	p+0(FP), R3
 ++	MOVD	b_len+8(FP), R4
 ++	MOVBZ	c+16(FP), R5	// byte to find
 ++	CMP	R4, $0
 ++	BEQ	notfound
 ++	MOVD	R3, R6		// store base for later
 ++	ADD	R3, R4		// calculate end marker
 ++	MOVBZ	R5, R0		// c needs to be in R0, leave until last minute as currently R0 is expected to be 0
 ++loop:
 ++	WORD	$0xB25E0043	// srst %r4, %r3 (search the range [R3, R4))
 ++	BVS	loop		// interrupted - continue
 ++	BGT	notfound
 ++found:
 ++	XOR	R0, R0		// reset R0
 ++	SUB	R6, R4		// remove base
 ++	MOVD	R4, ret+24(FP)
 ++	RET
 ++notfound:
 ++	XOR	R0, R0		// reset R0
 ++	MOVD	$-1, R1
 ++	MOVD	R1, ret+24(FP)
 ++	RET
 ++
 ++TEXT runtime·fastrand1(SB), NOSPLIT, $0-4
 ++	MOVD	g_m(g), R4
 ++	MOVWZ	m_fastrand(R4), R3
 ++	ADD	R3, R3
 ++	CMPW	R3, $0
 ++	BGE	2(PC)
 ++	XOR	$0x88888eef, R3
 ++	MOVW	R3, m_fastrand(R4)
 ++	MOVW	R3, ret+0(FP)
 ++	RET
 ++
 ++TEXT runtime·return0(SB), NOSPLIT, $0
 ++	MOVW	$0, R3
 ++	RET
 ++
 ++// Called from cgo wrappers, this function returns g->m->curg.stack.hi.
 ++// Must obey the gcc calling convention.
 ++TEXT _cgo_topofstack(SB),NOSPLIT|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,$0-40
 ++	MOVD	s1_base+0(FP), R3
 ++	MOVD	s1_len+8(FP), R4
 ++	MOVD	s2_base+16(FP), R5
 ++	MOVD	s2_len+24(FP), R6
 ++	MOVD	R4, R8
 ++	CMPBLE	R4, R6, s1min
 ++	MOVD	R6, R8
 ++s1min:
 ++	CMPBEQ	R8, $0, cmplengths
 ++	CMP	R8, $256
 ++	BLE	tail
 ++loop:
 ++	CLC	$256, 0(R5), 0(R3)
 ++	BGT	gt
 ++	BLT	lt
 ++	SUB	$256, R8
 ++	CMP	R8, $256
 ++	BGT	loop
 ++tail:
 ++	SUB	$1, R8
 ++	EXRL	$runtime·cmpbody_clc(SB), R8
 ++	BGT	gt
 ++	BLT	lt
 ++cmplengths:
 ++	CMP	R4, R6
 ++	BEQ	eq
 ++	BLT	lt
 ++	BGT	gt
 ++gt:
 ++	MOVD	$1, R7
 ++	BR	quit
 ++lt:
 ++	MOVD	$-1, R7
 ++	BR	quit
 ++eq:
 ++	MOVD	$0, R7
 ++quit:
 ++	MOVD	R7, ret+32(FP)
 ++	RET
 ++
 ++TEXT bytes·Compare(SB),NOSPLIT,$0-56
 ++	MOVD	s1+0(FP), R3
 ++	MOVD	s1+8(FP), R4
 ++	MOVD	s2+24(FP), R5
 ++	MOVD	s2+32(FP), R6
 ++	MOVD	R4, R8
 ++	CMPBLE	R4, R6, s1min
 ++	MOVD	R6, R8
 ++s1min:
 ++	CMPBEQ	R8, $0, cmplengths
 ++	CMP	R8, $256
 ++	BLE	tail
 ++loop:
 ++	CLC	$256, 0(R5), 0(R3)
 ++	BGT	gt
 ++	BLT	lt
 ++	SUB	$256, R8
 ++	CMP	R8, $256
 ++	BGT	loop
 ++tail:
 ++	SUB	$1, R8
 ++	EXRL	$runtime·cmpbody_clc(SB), R8
 ++	BGT	gt
 ++	BLT	lt
 ++cmplengths:
 ++	CMP	R4, R6
 ++	BEQ	eq
 ++	BLT	lt
 ++	BGT	gt
 ++gt:
 ++	MOVD	$1, R7
 ++	BR	quit
 ++lt:
 ++	MOVD	$-1, R7
 ++	BR	quit
 ++eq:
 ++	MOVD	$0, R7
 ++quit:
 ++	MOVD	R7, res+48(FP)
 ++	RET
 ++
 ++TEXT runtime·cmpbody_clc(SB),NOSPLIT,$0-0
 ++	CLC	$1, 0(R5), 0(R3)
 ++	RET
 ++
 ++// input:
 ++//   R3 = a
 ++//   R5 = b
 ++//   R4 = alen
 ++//   R6 = blen
 ++//   R7 = address of output word (stores -1/0/1 here)
 ++TEXT runtime·cmpbody(SB),NOSPLIT|NOFRAME,$0-0
 ++	MOVD	R4, R8
 ++	CMPBGE	R4, R6, 2(PC)
 ++	MOVD	R6, R8
 ++	CMP	R8, $256
 ++	BLE	tail
 ++loop:
 ++	CLC	$256, 0(R5), 0(R3)
 ++	BGT	gt
 ++	BLT	lt
 ++	SUB	$256, R8
 ++	CMP	R8, $256
 ++	BGT	loop
 ++tail:
 ++	SUB	$1, R8
 ++	EXRL	$runtime·cmpbody_clc(SB), R8
 ++	BGT	gt
 ++	BLT	lt
 ++
 ++	CMP	R4, R6
 ++	BEQ	eq
 ++	BLT	lt
 ++	BGT	gt
 ++gt:
 ++	MOVD	$-1, R7
 ++	RET
 ++lt:
 ++	MOVD	$1, R7
 ++	RET
 ++eq:
 ++	MOVD	$0, R7
 ++	RET
 ++
+++// 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)
+++	BYTE	$0xeb;
+++	BYTE	$0x6f;
+++	BYTE	$0xf0;
+++	BYTE	$0x30;
+++	BYTE	$0x00;
+++	BYTE	$0x24;
+++	FMOVD	F0, 128(R15)
+++	FMOVD	F2, 136(R15)
+++	FMOVD	F4, 144(R15)
+++	FMOVD	F6, 152(R15)
+++
+++	// 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 %r6, %r15, 48(%r15)
+++	BYTE	$0xeb;
+++	BYTE	$0x6f;
+++	BYTE	$0xf0;
+++	BYTE	$0x30;
+++	BYTE	$0x00;
+++	BYTE	$0x04;
+++	FMOVD	F0, 128(R15)
+++	FMOVD	F2, 136(R15)
+++	FMOVD	F4, 144(R15)
+++	FMOVD	F6, 152(R15)
+++	RET
+++
 ++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..3682f12
++index 0000000..64b2ab4
 +--- /dev/null
 ++++ b/src/runtime/cgo/asm_s390x.s
 +@@ -0,0 +1,56 @@
 ++// 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)
 ++	BYTE	$0xeb;
 ++	BYTE	$0x6f;
 ++	BYTE	$0xf0;
 ++	BYTE	$0x30;
 ++	BYTE	$0x00;
 ++	BYTE	$0x24;
 ++	FMOVD	F0, 128(R15)
 ++	FMOVD	F2, 136(R15)
 ++	FMOVD	F4, 144(R15)
 ++	FMOVD	F6, 152(R15)
 ++
 ++	// Initialize Go ABI environment
- +	BL	runtime·reginit(SB)
+++	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 %r6, %r15, 48(%r15)
 ++	BYTE	$0xeb;
 ++	BYTE	$0x6f;
 ++	BYTE	$0xf0;
 ++	BYTE	$0x30;
 ++	BYTE	$0x00;
 ++	BYTE	$0x04;
 ++	FMOVD	F0, 128(R15)
 ++	FMOVD	F2, 136(R15)
 ++	FMOVD	F4, 144(R15)
 ++	FMOVD	F6, 152(R15)
 ++
 ++	RET
 ++
- diff --git a/src/runtime/cgo/callbacks_s390x.go b/src/runtime/cgo/callbacks_s390x.go
- new file mode 100644
- index 0000000..b6eb7b6
- --- /dev/null
- +++ b/src/runtime/cgo/callbacks_s390x.go
- @@ -0,0 +1,10 @@
- +// 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 cgo
- +
- +//go:cgo_export_static _cgo_reginit
- +//go:cgo_export_dynamic _cgo_reginit
- +//go:cgo_export_static _cgo_load_g
- +//go:cgo_export_dynamic _cgo_load_g
 +diff --git a/src/runtime/cgo/gcc_linux_s390x.c b/src/runtime/cgo/gcc_linux_s390x.c
 +new file mode 100644
 +index 0000000..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..5d2abe3
++index 0000000..dc242eb
 +--- /dev/null
 ++++ b/src/runtime/cgo/gcc_s390x.S
- @@ -0,0 +1,44 @@
++@@ -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)
 ++
- +	/* assume these calls do not clobber r2 or r15 */
- +	brasl   %r14, _cgo_reginit
- +	brasl   %r14, _cgo_load_g
+++	/* 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..d2b1217
++index 0000000..d782ecd
 +--- /dev/null
 ++++ b/src/runtime/internal/atomic/asm_s390x.s
- @@ -0,0 +1,202 @@
++@@ -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)
 ++
- +// bool casp(void **val, void *old, void *new)
- +// Atomically:
- +//	if(*val == old){
- +//		*val = new;
- +//		return 1;
- +//	} else
- +//		return 0;
- +TEXT runtime·casp1(SB),NOSPLIT|NOFRAME,$0-25
- +	BR runtime·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..80e3b64
++index 0000000..9431fc2
 +--- /dev/null
 ++++ b/src/runtime/sys_linux_s390x.s
 +@@ -0,0 +1,437 @@
 ++// 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)
- +	BL	runtime·reginit(SB)
+++	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
 ++
 ++TEXT runtime·mmap(SB),NOSPLIT,$48-40
 ++	MOVD	addr+0(FP), R2
 ++	MOVD	n+8(FP), R3
 ++	MOVW	prot+16(FP), R4
 ++	MOVW	flags+20(FP), R5
 ++	MOVW	fd+24(FP), R6
 ++	MOVW	off+28(FP), R7 
 ++
 ++	// s390x uses old_mmap, so the arguments need to be placed into
 ++	// a struct and a pointer to the struct passed to mmap.
 ++	// TODO Offset should NOT be sign extended (it is a uint32).
 ++	MOVD	R2, addr-48(SP)
 ++	MOVD	R3, n-40(SP)
 ++	MOVD	R4, prot-32(SP)
 ++	MOVD	R5, flags-24(SP)
 ++	MOVD	R6, fd-16(SP)
 ++	MOVD	R7, off-8(SP)
 ++
 ++	MOVD	$addr-48(SP), R2
 ++	MOVW	$SYS_mmap, R1
 ++	SYSCALL
 ++	MOVD	R2, ret+32(FP)
 ++	RET
 ++
 ++TEXT runtime·munmap(SB),NOSPLIT|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
- +	BL	runtime·reginit(SB)
+++	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..371d535
++index 0000000..03bfc50
 +--- /dev/null
 ++++ b/src/runtime/tls_s390x.s
- @@ -0,0 +1,67 @@
++@@ -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
- +
- +	// Rematerialize the C TLS base pointer from AR0:AR1;
- +	// "MOVW ARx, Rx" is translated to EAR.
 ++	MOVW	AR0, R11
 ++	SLD	$32, R11
 ++	MOVW	AR1, R11
- +
- +	// $runtime.tlsg(SB) is a special linker symbol.
- +	// It is the offset from the start of TLS to our
- +	// thread-local storage for g.
- +	// Note: on s390x the offset should be less than 0
- +	MOVD	$runtime·tlsg(SB), R10
- +	ADD	R11, R10
- +
- +	// Store g in TLS
- +	MOVD	g, 0(R10)
- +
+++	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·tlsg(SB), R10
- +	ADD	R11, R10
- +
- +	// Load g from TLS
- +	MOVD	0(R10), g
+++	MOVD	runtime·tls_g(SB), R10
+++	MOVD	0(R10)(R11*1), g
 ++	RET
 ++
- +GLOBL runtime·tlsg_offset+0(SB),RODATA,$8
+++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/syscall_linux_s390x.go b/src/syscall/syscall_linux_s390x.go
 +new file mode 100644
 +index 0000000..20a1a45
 +--- /dev/null
 ++++ b/src/syscall/syscall_linux_s390x.go
 +@@ -0,0 +1,296 @@
 ++// 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	Dup2(oldfd int, newfd int) (err error)
 ++//sys	Fchown(fd int, uid int, gid int) (err error)
 ++//sys	Fstat(fd int, stat *Stat_t) (err error)
 ++//sys	Fstatfs(fd int, buf *Statfs_t) (err error)
 ++//sys	Ftruncate(fd int, length int64) (err error)
 ++//sysnb	Getegid() (egid int)
 ++//sysnb	Geteuid() (euid int)
 ++//sysnb	Getgid() (gid int)
 ++//sysnb	Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT
 ++//sysnb	Getuid() (uid int)
 ++//sysnb	InotifyInit() (fd int, err error)
 ++//sys	Lchown(path string, uid int, gid int) (err error)
 ++//sys	Lstat(path string, stat *Stat_t) (err error)
 ++//sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 ++//sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 ++//sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 ++//sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
 ++//sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 ++//sys	Setfsgid(gid int) (err error)
 ++//sys	Setfsuid(uid int) (err error)
 ++//sysnb	Setregid(rgid int, egid int) (err error)
 ++//sysnb	Setresgid(rgid int, egid int, sgid int) (err error)
 ++//sysnb	Setresuid(ruid int, euid int, suid int) (err error)
 ++//sysnb	Setrlimit(resource int, rlim *Rlimit) (err error)
 ++//sysnb	Setreuid(ruid int, euid int) (err error)
 ++//sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
 ++//sys	Stat(path string, stat *Stat_t) (err error)
 ++//sys	Statfs(path string, buf *Statfs_t) (err error)
 ++//sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE
 ++//sys	Truncate(path string, length int64) (err error)
 ++//sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
 ++//sysnb	setgroups(n int, list *_Gid_t) (err error)
 ++
 ++func Getpagesize() int { return 4096 }
 ++
 ++//sysnb	Gettimeofday(tv *Timeval) (err error)
 ++
 ++func Time(t *Time_t) (tt Time_t, err error) {
 ++	var tv Timeval
 ++	err = Gettimeofday(&tv)
 ++	if err != nil {
 ++		return 0, err
 ++	}
 ++	if t != nil {
 ++		*t = Time_t(tv.Sec)
 ++	}
 ++	return Time_t(tv.Sec), nil
 ++}
 ++
 ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
 ++
 ++func NsecToTimespec(nsec int64) (ts Timespec) {
 ++	ts.Sec = nsec / 1e9
 ++	ts.Nsec = nsec % 1e9
 ++	return
 ++}
 ++
 ++func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
 ++
 ++func NsecToTimeval(nsec int64) (tv Timeval) {
 ++	nsec += 999 // round up to microsecond
 ++	tv.Sec = nsec / 1e9
 ++	tv.Usec = nsec % 1e9 / 1e3
 ++	return
 ++}
 ++
 ++func Pipe(p []int) (err error) {
 ++	if len(p) != 2 {
 ++		return EINVAL
 ++	}
 ++	var pp [2]_C_int
 ++	err = pipe2(&pp, 0)
 ++	p[0] = int(pp[0])
 ++	p[1] = int(pp[1])
 ++	return
 ++}
 ++
 ++//sysnb pipe2(p *[2]_C_int, flags int) (err error)
 ++
 ++func Pipe2(p []int, flags int) (err error) {
 ++	if len(p) != 2 {
 ++		return EINVAL
 ++	}
 ++	var pp [2]_C_int
 ++	err = pipe2(&pp, flags)
 ++	p[0] = int(pp[0])
 ++	p[1] = int(pp[1])
 ++	return
 ++}
 ++
 ++// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.
 ++// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.
 ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
 ++	mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}
 ++	r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)
 ++	use(unsafe.Pointer(&mmap_args[0]))
 ++	xaddr = uintptr(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// On s390x Linux, all the socket calls go through an extra indirection.
 ++// The arguments to the underlying system call are the number below
 ++// and a pointer to an array of uintptr.  We hide the pointer in the
 ++// socketcall assembly to avoid allocation on every system call.
 ++
 ++const (
 ++	// see linux/net.h
 ++	_SOCKET      = 1
 ++	_BIND        = 2
 ++	_CONNECT     = 3
 ++	_LISTEN      = 4
 ++	_ACCEPT      = 5
 ++	_GETSOCKNAME = 6
 ++	_GETPEERNAME = 7
 ++	_SOCKETPAIR  = 8
 ++	_SEND        = 9
 ++	_RECV        = 10
 ++	_SENDTO      = 11
 ++	_RECVFROM    = 12
 ++	_SHUTDOWN    = 13
 ++	_SETSOCKOPT  = 14
 ++	_GETSOCKOPT  = 15
 ++	_SENDMSG     = 16
 ++	_RECVMSG     = 17
 ++	_ACCEPT4     = 18
 ++	_RECVMMSG    = 19
 ++	_SENDMMSG    = 20
 ++)
 ++
 ++func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err Errno)
 ++func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err Errno)
 ++
 ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
 ++	fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
 ++	fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
 ++	_, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
 ++	_, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
 ++	_, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
 ++	_, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
 ++	_, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func socket(domain int, typ int, proto int) (fd int, err error) {
 ++	fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
 ++	_, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
 ++	_, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
 ++	var base uintptr
 ++	if len(p) > 0 {
 ++		base = uintptr(unsafe.Pointer(&p[0]))
 ++	}
 ++	n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
 ++	var base uintptr
 ++	if len(p) > 0 {
 ++		base = uintptr(unsafe.Pointer(&p[0]))
 ++	}
 ++	_, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
 ++	n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
 ++	n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func Listen(s int, n int) (err error) {
 ++	_, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func Shutdown(s, how int) (err error) {
 ++	_, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)
 ++	if e != 0 {
 ++		err = e
 ++	}
 ++	return
 ++}
 ++
 ++func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }
 ++
 ++func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }
 ++
 ++func (iov *Iovec) SetLen(length int) {
 ++	iov.Len = uint64(length)
 ++}
 ++
 ++func (msghdr *Msghdr) SetControllen(length int) {
 ++	msghdr.Controllen = uint64(length)
 ++}
 ++
 ++func (cmsg *Cmsghdr) SetLen(length int) {
 ++	cmsg.Len = uint64(length)
 ++}
 +diff --git a/src/syscall/types_linux.go b/src/syscall/types_linux.go
 +index cff4069..6d197d8 100644
 +--- a/src/syscall/types_linux.go
 ++++ b/src/syscall/types_linux.go
 +@@ -93,10 +93,22 @@ typedef struct user_pt_regs PtraceRegs;
 + typedef struct pt_regs PtraceRegs;
 + #elif defined(__mips__)
 + typedef struct user PtraceRegs;
 ++#elif defined(__s390x__)
 ++typedef struct _user_regs_struct PtraceRegs;
 + #else
 + typedef struct user_regs_struct PtraceRegs;
 + #endif
 + 
 ++#if defined(__s390x__)
 ++typedef struct _user_psw_struct PtraceRegsPsw;
 ++typedef struct _user_fpregs_struct PtraceRegsFp;
 ++typedef struct _user_per_struct PtraceRegsPer;
 ++#else
 ++typedef struct {} PtraceRegsPsw;
 ++typedef struct {} PtraceRegsFp;
 ++typedef struct {} PtraceRegsPer;
 ++#endif
 ++
 + // The real epoll_event is a union, and godefs doesn't handle it well.
 + struct my_epoll_event {
 + 	uint32_t events;
 +@@ -365,6 +377,12 @@ const SizeofInotifyEvent = C.sizeof_struct_inotify_event
 + // Ptrace
 + 
 + // Register structures
 ++type PtraceRegsPsw C.PtraceRegsPsw
 ++
 ++type PtraceRegsFp C.PtraceRegsFp
 ++
 ++type PtraceRegsPer C.PtraceRegsPer
 ++
 + type PtraceRegs C.PtraceRegs
 + 
 + // Misc
 +diff --git a/src/syscall/zerrors_linux_s390x.go b/src/syscall/zerrors_linux_s390x.go
 +new file mode 100644
 +index 0000000..4e25255
 +--- /dev/null
 ++++ b/src/syscall/zerrors_linux_s390x.go
 +@@ -0,0 +1,1869 @@
 ++// mkerrors.sh -m64
 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 ++
 ++// Created by cgo -godefs - DO NOT EDIT
 ++// cgo -godefs -- -m64 _const.go
 ++
 ++// +build s390x,linux
 ++
 ++package syscall
 ++
 ++const (
 ++	AF_ALG                           = 0x26
 ++	AF_APPLETALK                     = 0x5
 ++	AF_ASH                           = 0x12
 ++	AF_ATMPVC                        = 0x8
 ++	AF_ATMSVC                        = 0x14
 ++	AF_AX25                          = 0x3
 ++	AF_BLUETOOTH                     = 0x1f
 ++	AF_BRIDGE                        = 0x7
 ++	AF_CAIF                          = 0x25
 ++	AF_CAN                           = 0x1d
 ++	AF_DECnet                        = 0xc
 ++	AF_ECONET                        = 0x13
 ++	AF_FILE                          = 0x1
 ++	AF_IEEE802154                    = 0x24
 ++	AF_INET                          = 0x2
 ++	AF_INET6                         = 0xa
 ++	AF_IPX                           = 0x4
 ++	AF_IRDA                          = 0x17
 ++	AF_ISDN                          = 0x22
 ++	AF_IUCV                          = 0x20
 ++	AF_KEY                           = 0xf
 ++	AF_LLC                           = 0x1a
 ++	AF_LOCAL                         = 0x1
 ++	AF_MAX                           = 0x28
 ++	AF_NETBEUI                       = 0xd
 ++	AF_NETLINK                       = 0x10
 ++	AF_NETROM                        = 0x6
 ++	AF_NFC                           = 0x27
 ++	AF_PACKET                        = 0x11
 ++	AF_PHONET                        = 0x23
 ++	AF_PPPOX                         = 0x18
 ++	AF_RDS                           = 0x15
 ++	AF_ROSE                          = 0xb
 ++	AF_ROUTE                         = 0x10
 ++	AF_RXRPC                         = 0x21
 ++	AF_SECURITY                      = 0xe
 ++	AF_SNA                           = 0x16
 ++	AF_TIPC                          = 0x1e
 ++	AF_UNIX                          = 0x1
 ++	AF_UNSPEC                        = 0x0
 ++	AF_WANPIPE                       = 0x19
 ++	AF_X25                           = 0x9
 ++	ARPHRD_ADAPT                     = 0x108
 ++	ARPHRD_APPLETLK                  = 0x8
 ++	ARPHRD_ARCNET                    = 0x7
 ++	ARPHRD_ASH                       = 0x30d
 ++	ARPHRD_ATM                       = 0x13
 ++	ARPHRD_AX25                      = 0x3
 ++	ARPHRD_BIF                       = 0x307
 ++	ARPHRD_CAIF                      = 0x336
 ++	ARPHRD_CAN                       = 0x118
 ++	ARPHRD_CHAOS                     = 0x5
 ++	ARPHRD_CISCO                     = 0x201
 ++	ARPHRD_CSLIP                     = 0x101
 ++	ARPHRD_CSLIP6                    = 0x103
 ++	ARPHRD_DDCMP                     = 0x205
 ++	ARPHRD_DLCI                      = 0xf
 ++	ARPHRD_ECONET                    = 0x30e
 ++	ARPHRD_EETHER                    = 0x2
 ++	ARPHRD_ETHER                     = 0x1
 ++	ARPHRD_EUI64                     = 0x1b
 ++	ARPHRD_FCAL                      = 0x311
 ++	ARPHRD_FCFABRIC                  = 0x313
 ++	ARPHRD_FCPL                      = 0x312
 ++	ARPHRD_FCPP                      = 0x310
 ++	ARPHRD_FDDI                      = 0x306
 ++	ARPHRD_FRAD                      = 0x302
 ++	ARPHRD_HDLC                      = 0x201
 ++	ARPHRD_HIPPI                     = 0x30c
 ++	ARPHRD_HWX25                     = 0x110
 ++	ARPHRD_IEEE1394                  = 0x18
 ++	ARPHRD_IEEE802                   = 0x6
 ++	ARPHRD_IEEE80211                 = 0x321
 ++	ARPHRD_IEEE80211_PRISM           = 0x322
 ++	ARPHRD_IEEE80211_RADIOTAP        = 0x323
 ++	ARPHRD_IEEE802154                = 0x324
 ++	ARPHRD_IEEE802154_MONITOR        = 0x325
 ++	ARPHRD_IEEE802_TR                = 0x320
 ++	ARPHRD_INFINIBAND                = 0x20
 ++	ARPHRD_IP6GRE                    = 0x337
 ++	ARPHRD_IPDDP                     = 0x309
 ++	ARPHRD_IPGRE                     = 0x30a
 ++	ARPHRD_IRDA                      = 0x30f
 ++	ARPHRD_LAPB                      = 0x204
 ++	ARPHRD_LOCALTLK                  = 0x305
 ++	ARPHRD_LOOPBACK                  = 0x304
 ++	ARPHRD_METRICOM                  = 0x17
 ++	ARPHRD_NETLINK                   = 0x338
 ++	ARPHRD_NETROM                    = 0x0
 ++	ARPHRD_NONE                      = 0xfffe
 ++	ARPHRD_PHONET                    = 0x334
 ++	ARPHRD_PHONET_PIPE               = 0x335
 ++	ARPHRD_PIMREG                    = 0x30b
 ++	ARPHRD_PPP                       = 0x200
 ++	ARPHRD_PRONET                    = 0x4
 ++	ARPHRD_RAWHDLC                   = 0x206
 ++	ARPHRD_ROSE                      = 0x10e
 ++	ARPHRD_RSRVD                     = 0x104
 ++	ARPHRD_SIT                       = 0x308
 ++	ARPHRD_SKIP                      = 0x303
 ++	ARPHRD_SLIP                      = 0x100
 ++	ARPHRD_SLIP6                     = 0x102
 ++	ARPHRD_TUNNEL                    = 0x300
 ++	ARPHRD_TUNNEL6                   = 0x301
 ++	ARPHRD_VOID                      = 0xffff
 ++	ARPHRD_X25                       = 0x10f
 ++	B0                               = 0x0
 ++	B1000000                         = 0x1008
 ++	B110                             = 0x3
 ++	B115200                          = 0x1002
 ++	B1152000                         = 0x1009
 ++	B1200                            = 0x9
 ++	B134                             = 0x4
 ++	B150                             = 0x5
 ++	B1500000                         = 0x100a
 ++	B1800                            = 0xa
 ++	B19200                           = 0xe
 ++	B200                             = 0x6
 ++	B2000000                         = 0x100b
 ++	B230400                          = 0x1003
 ++	B2400                            = 0xb
 ++	B2500000                         = 0x100c
 ++	B300                             = 0x7
 ++	B3000000                         = 0x100d
 ++	B3500000                         = 0x100e
 ++	B38400                           = 0xf
 ++	B4000000                         = 0x100f
 ++	B460800                          = 0x1004
 ++	B4800                            = 0xc
 ++	B50                              = 0x1
 ++	B500000                          = 0x1005
 ++	B57600                           = 0x1001
 ++	B576000                          = 0x1006
 ++	B600                             = 0x8
 ++	B75                              = 0x2
 ++	B921600                          = 0x1007
 ++	B9600                            = 0xd
 ++	BPF_A                            = 0x10
 ++	BPF_ABS                          = 0x20
 ++	BPF_ADD                          = 0x0
 ++	BPF_ALU                          = 0x4
 ++	BPF_AND                          = 0x50
 ++	BPF_B                            = 0x10
 ++	BPF_DIV                          = 0x30
 ++	BPF_H                            = 0x8
 ++	BPF_IMM                          = 0x0
 ++	BPF_IND                          = 0x40
 ++	BPF_JA                           = 0x0
 ++	BPF_JEQ                          = 0x10
 ++	BPF_JGE                          = 0x30
 ++	BPF_JGT                          = 0x20
 ++	BPF_JMP                          = 0x5
 ++	BPF_JSET                         = 0x40
 ++	BPF_K                            = 0x0
 ++	BPF_LD                           = 0x0
 ++	BPF_LDX                          = 0x1
 ++	BPF_LEN                          = 0x80
 ++	BPF_LSH                          = 0x60
 ++	BPF_MAJOR_VERSION                = 0x1
 ++	BPF_MAXINSNS                     = 0x1000
 ++	BPF_MEM                          = 0x60
 ++	BPF_MEMWORDS                     = 0x10
 ++	BPF_MINOR_VERSION                = 0x1
 ++	BPF_MISC                         = 0x7
 ++	BPF_MOD                          = 0x90
 ++	BPF_MSH                          = 0xa0
 ++	BPF_MUL                          = 0x20
 ++	BPF_NEG                          = 0x80
 ++	BPF_OR                           = 0x40
 ++	BPF_RET                          = 0x6
 ++	BPF_RSH                          = 0x70
 ++	BPF_ST                           = 0x2
 ++	BPF_STX                          = 0x3
 ++	BPF_SUB                          = 0x10
 ++	BPF_TAX                          = 0x0
 ++	BPF_TXA                          = 0x80
 ++	BPF_W                            = 0x0
 ++	BPF_X                            = 0x8
 ++	BPF_XOR                          = 0xa0
 ++	BRKINT                           = 0x2
 ++	CFLUSH                           = 0xf
 ++	CLOCAL                           = 0x800
 ++	CLONE_CHILD_CLEARTID             = 0x200000
 ++	CLONE_CHILD_SETTID               = 0x1000000
 ++	CLONE_DETACHED                   = 0x400000
 ++	CLONE_FILES                      = 0x400
 ++	CLONE_FS                         = 0x200
 ++	CLONE_IO                         = 0x80000000
 ++	CLONE_NEWIPC                     = 0x8000000
 ++	CLONE_NEWNET                     = 0x40000000
 ++	CLONE_NEWNS                      = 0x20000
 ++	CLONE_NEWPID                     = 0x20000000
 ++	CLONE_NEWUSER                    = 0x10000000
 ++	CLONE_NEWUTS                     = 0x4000000
 ++	CLONE_PARENT                     = 0x8000
 ++	CLONE_PARENT_SETTID              = 0x100000
 ++	CLONE_PTRACE                     = 0x2000
 ++	CLONE_SETTLS                     = 0x80000
 ++	CLONE_SIGHAND                    = 0x800
 ++	CLONE_SYSVSEM                    = 0x40000
 ++	CLONE_THREAD                     = 0x10000
 ++	CLONE_UNTRACED                   = 0x800000
 ++	CLONE_VFORK                      = 0x4000
 ++	CLONE_VM                         = 0x100
 ++	CREAD                            = 0x80
 ++	CS5                              = 0x0
 ++	CS6                              = 0x10
 ++	CS7                              = 0x20
 ++	CS8                              = 0x30
 ++	CSIGNAL                          = 0xff
 ++	CSIZE                            = 0x30
 ++	CSTART                           = 0x11
 ++	CSTATUS                          = 0x0
 ++	CSTOP                            = 0x13
 ++	CSTOPB                           = 0x40
 ++	CSUSP                            = 0x1a
 ++	DT_BLK                           = 0x6
 ++	DT_CHR                           = 0x2
 ++	DT_DIR                           = 0x4
 ++	DT_FIFO                          = 0x1
 ++	DT_LNK                           = 0xa
 ++	DT_REG                           = 0x8
 ++	DT_SOCK                          = 0xc
 ++	DT_UNKNOWN                       = 0x0
 ++	DT_WHT                           = 0xe
 ++	ECHO                             = 0x8
 ++	ECHOCTL                          = 0x200
 ++	ECHOE                            = 0x10
 ++	ECHOK                            = 0x20
 ++	ECHOKE                           = 0x800
 ++	ECHONL                           = 0x40
 ++	ECHOPRT                          = 0x400
 ++	ENCODING_DEFAULT                 = 0x0
 ++	ENCODING_FM_MARK                 = 0x3
 ++	ENCODING_FM_SPACE                = 0x4
 ++	ENCODING_MANCHESTER              = 0x5
 ++	ENCODING_NRZ                     = 0x1
 ++	ENCODING_NRZI                    = 0x2
 ++	EPOLLERR                         = 0x8
 ++	EPOLLET                          = 0x80000000
 ++	EPOLLHUP                         = 0x10
 ++	EPOLLIN                          = 0x1
 ++	EPOLLMSG                         = 0x400
 ++	EPOLLONESHOT                     = 0x40000000
 ++	EPOLLOUT                         = 0x4
 ++	EPOLLPRI                         = 0x2
 ++	EPOLLRDBAND                      = 0x80
 ++	EPOLLRDHUP                       = 0x2000
 ++	EPOLLRDNORM                      = 0x40
 ++	EPOLLWAKEUP                      = 0x20000000
 ++	EPOLLWRBAND                      = 0x200
 ++	EPOLLWRNORM                      = 0x100
 ++	EPOLL_CLOEXEC                    = 0x80000
 ++	EPOLL_CTL_ADD                    = 0x1
 ++	EPOLL_CTL_DEL                    = 0x2
 ++	EPOLL_CTL_MOD                    = 0x3
 ++	EPOLL_NONBLOCK                   = 0x800
 ++	ETH_P_1588                       = 0x88f7
 ++	ETH_P_8021AD                     = 0x88a8
 ++	ETH_P_8021AH                     = 0x88e7
 ++	ETH_P_8021Q                      = 0x8100
 ++	ETH_P_80221                      = 0x8917
 ++	ETH_P_802_2                      = 0x4
 ++	ETH_P_802_3                      = 0x1
 ++	ETH_P_802_3_MIN                  = 0x600
 ++	ETH_P_802_EX1                    = 0x88b5
 ++	ETH_P_AARP                       = 0x80f3
 ++	ETH_P_AF_IUCV                    = 0xfbfb
 ++	ETH_P_ALL                        = 0x3
 ++	ETH_P_AOE                        = 0x88a2
 ++	ETH_P_ARCNET                     = 0x1a
 ++	ETH_P_ARP                        = 0x806
 ++	ETH_P_ATALK                      = 0x809b
 ++	ETH_P_ATMFATE                    = 0x8884
 ++	ETH_P_ATMMPOA                    = 0x884c
 ++	ETH_P_AX25                       = 0x2
 ++	ETH_P_BATMAN                     = 0x4305
 ++	ETH_P_BPQ                        = 0x8ff
 ++	ETH_P_CAIF                       = 0xf7
 ++	ETH_P_CAN                        = 0xc
 ++	ETH_P_CANFD                      = 0xd
 ++	ETH_P_CONTROL                    = 0x16
 ++	ETH_P_CUST                       = 0x6006
 ++	ETH_P_DDCMP                      = 0x6
 ++	ETH_P_DEC                        = 0x6000
 ++	ETH_P_DIAG                       = 0x6005
 ++	ETH_P_DNA_DL                     = 0x6001
 ++	ETH_P_DNA_RC                     = 0x6002
 ++	ETH_P_DNA_RT                     = 0x6003
 ++	ETH_P_DSA                        = 0x1b
 ++	ETH_P_ECONET                     = 0x18
 ++	ETH_P_EDSA                       = 0xdada
 ++	ETH_P_FCOE                       = 0x8906
 ++	ETH_P_FIP                        = 0x8914
 ++	ETH_P_HDLC                       = 0x19
 ++	ETH_P_IEEE802154                 = 0xf6
 ++	ETH_P_IEEEPUP                    = 0xa00
 ++	ETH_P_IEEEPUPAT                  = 0xa01
 ++	ETH_P_IP                         = 0x800
 ++	ETH_P_IPV6                       = 0x86dd
 ++	ETH_P_IPX                        = 0x8137
 ++	ETH_P_IRDA                       = 0x17
 ++	ETH_P_LAT                        = 0x6004
 ++	ETH_P_LINK_CTL                   = 0x886c
 ++	ETH_P_LOCALTALK                  = 0x9
 ++	ETH_P_LOOP                       = 0x60
 ++	ETH_P_MOBITEX                    = 0x15
 ++	ETH_P_MPLS_MC                    = 0x8848
 ++	ETH_P_MPLS_UC                    = 0x8847
 ++	ETH_P_MVRP                       = 0x88f5
 ++	ETH_P_PAE                        = 0x888e
 ++	ETH_P_PAUSE                      = 0x8808
 ++	ETH_P_PHONET                     = 0xf5
 ++	ETH_P_PPPTALK                    = 0x10
 ++	ETH_P_PPP_DISC                   = 0x8863
 ++	ETH_P_PPP_MP                     = 0x8
 ++	ETH_P_PPP_SES                    = 0x8864
 ++	ETH_P_PUP                        = 0x200
 ++	ETH_P_PUPAT                      = 0x201
 ++	ETH_P_QINQ1                      = 0x9100
 ++	ETH_P_QINQ2                      = 0x9200
 ++	ETH_P_QINQ3                      = 0x9300
 ++	ETH_P_RARP                       = 0x8035
 ++	ETH_P_SCA                        = 0x6007
 ++	ETH_P_SLOW                       = 0x8809
 ++	ETH_P_SNAP                       = 0x5
 ++	ETH_P_TDLS                       = 0x890d
 ++	ETH_P_TEB                        = 0x6558
 ++	ETH_P_TIPC                       = 0x88ca
 ++	ETH_P_TRAILER                    = 0x1c
 ++	ETH_P_TR_802_2                   = 0x11
 ++	ETH_P_WAN_PPP                    = 0x7
 ++	ETH_P_WCCP                       = 0x883e
 ++	ETH_P_X25                        = 0x805
 ++	EXTA                             = 0xe
 ++	EXTB                             = 0xf
 ++	EXTPROC                          = 0x10000
 ++	FD_CLOEXEC                       = 0x1
 ++	FD_SETSIZE                       = 0x400
 ++	FLUSHO                           = 0x1000
 ++	F_DUPFD                          = 0x0
 ++	F_DUPFD_CLOEXEC                  = 0x406
 ++	F_EXLCK                          = 0x4
 ++	F_GETFD                          = 0x1
 ++	F_GETFL                          = 0x3
 ++	F_GETLEASE                       = 0x401
 ++	F_GETLK                          = 0x5
 ++	F_GETLK64                        = 0x5
 ++	F_GETOWN                         = 0x9
 ++	F_GETOWN_EX                      = 0x10
 ++	F_GETPIPE_SZ                     = 0x408
 ++	F_GETSIG                         = 0xb
 ++	F_LOCK                           = 0x1
 ++	F_NOTIFY                         = 0x402
 ++	F_OK                             = 0x0
 ++	F_RDLCK                          = 0x0
 ++	F_SETFD                          = 0x2
 ++	F_SETFL                          = 0x4
 ++	F_SETLEASE                       = 0x400
 ++	F_SETLK                          = 0x6
 ++	F_SETLK64                        = 0x6
 ++	F_SETLKW                         = 0x7
 ++	F_SETLKW64                       = 0x7
 ++	F_SETOWN                         = 0x8
 ++	F_SETOWN_EX                      = 0xf
 ++	F_SETPIPE_SZ                     = 0x407
 ++	F_SETSIG                         = 0xa
 ++	F_SHLCK                          = 0x8
 ++	F_TEST                           = 0x3
 ++	F_TLOCK                          = 0x2
 ++	F_ULOCK                          = 0x0
 ++	F_UNLCK                          = 0x2
 ++	F_WRLCK                          = 0x1
 ++	HUPCL                            = 0x400
 ++	ICANON                           = 0x2
 ++	ICMPV6_FILTER                    = 0x1
 ++	ICRNL                            = 0x100
 ++	IEXTEN                           = 0x8000
 ++	IFA_F_DADFAILED                  = 0x8
 ++	IFA_F_DEPRECATED                 = 0x20
 ++	IFA_F_HOMEADDRESS                = 0x10
 ++	IFA_F_MANAGETEMPADDR             = 0x100
 ++	IFA_F_NODAD                      = 0x2
 ++	IFA_F_NOPREFIXROUTE              = 0x200
 ++	IFA_F_OPTIMISTIC                 = 0x4
 ++	IFA_F_PERMANENT                  = 0x80
 ++	IFA_F_SECONDARY                  = 0x1
 ++	IFA_F_TEMPORARY                  = 0x1
 ++	IFA_F_TENTATIVE                  = 0x40
 ++	IFA_MAX                          = 0x8
 ++	IFF_802_1Q_VLAN                  = 0x1
 ++	IFF_ALLMULTI                     = 0x200
 ++	IFF_ATTACH_QUEUE                 = 0x200
 ++	IFF_AUTOMEDIA                    = 0x4000
 ++	IFF_BONDING                      = 0x20
 ++	IFF_BRIDGE_PORT                  = 0x4000
 ++	IFF_BROADCAST                    = 0x2
 ++	IFF_DEBUG                        = 0x4
 ++	IFF_DETACH_QUEUE                 = 0x400
 ++	IFF_DISABLE_NETPOLL              = 0x1000
 ++	IFF_DONT_BRIDGE                  = 0x800
 ++	IFF_DORMANT                      = 0x20000
 ++	IFF_DYNAMIC                      = 0x8000
 ++	IFF_EBRIDGE                      = 0x2
 ++	IFF_ECHO                         = 0x40000
 ++	IFF_ISATAP                       = 0x80
 ++	IFF_LIVE_ADDR_CHANGE             = 0x100000
 ++	IFF_LOOPBACK                     = 0x8
 ++	IFF_LOWER_UP                     = 0x10000
 ++	IFF_MACVLAN_PORT                 = 0x2000
 ++	IFF_MASTER                       = 0x400
 ++	IFF_MASTER_8023AD                = 0x8
 ++	IFF_MASTER_ALB                   = 0x10
 ++	IFF_MASTER_ARPMON                = 0x100
 ++	IFF_MULTICAST                    = 0x1000
 ++	IFF_MULTI_QUEUE                  = 0x100
 ++	IFF_NOARP                        = 0x80
 ++	IFF_NOTRAILERS                   = 0x20
 ++	IFF_NO_PI                        = 0x1000
 ++	IFF_ONE_QUEUE                    = 0x2000
 ++	IFF_OVS_DATAPATH                 = 0x8000
 ++	IFF_POINTOPOINT                  = 0x10
 ++	IFF_PORTSEL                      = 0x2000
 ++	IFF_PROMISC                      = 0x100
 ++	IFF_RUNNING                      = 0x40
 ++	IFF_SLAVE                        = 0x800
 ++	IFF_SLAVE_INACTIVE               = 0x4
 ++	IFF_SLAVE_NEEDARP                = 0x40
 ++	IFF_SUPP_NOFCS                   = 0x80000
 ++	IFF_TAP                          = 0x2
 ++	IFF_TEAM_PORT                    = 0x40000
 ++	IFF_TUN                          = 0x1
 ++	IFF_TUN_EXCL                     = 0x8000
 ++	IFF_TX_SKB_SHARING               = 0x10000
 ++	IFF_UNICAST_FLT                  = 0x20000
 ++	IFF_UP                           = 0x1
 ++	IFF_VNET_HDR                     = 0x4000
 ++	IFF_VOLATILE                     = 0x70c5a
 ++	IFF_WAN_HDLC                     = 0x200
 ++	IFF_XMIT_DST_RELEASE             = 0x400
 ++	IFNAMSIZ                         = 0x10
 ++	IGNBRK                           = 0x1
 ++	IGNCR                            = 0x80
 ++	IGNPAR                           = 0x4
 ++	IMAXBEL                          = 0x2000
 ++	INLCR                            = 0x40
 ++	INPCK                            = 0x10
 ++	IN_ACCESS                        = 0x1
 ++	IN_ALL_EVENTS                    = 0xfff
 ++	IN_ATTRIB                        = 0x4
 ++	IN_CLASSA_HOST                   = 0xffffff
 ++	IN_CLASSA_MAX                    = 0x80
 ++	IN_CLASSA_NET                    = 0xff000000
 ++	IN_CLASSA_NSHIFT                 = 0x18
 ++	IN_CLASSB_HOST                   = 0xffff
 ++	IN_CLASSB_MAX                    = 0x10000
 ++	IN_CLASSB_NET                    = 0xffff0000
 ++	IN_CLASSB_NSHIFT                 = 0x10
 ++	IN_CLASSC_HOST                   = 0xff
 ++	IN_CLASSC_NET                    = 0xffffff00
 ++	IN_CLASSC_NSHIFT                 = 0x8
 ++	IN_CLOEXEC                       = 0x80000
 ++	IN_CLOSE                         = 0x18
 ++	IN_CLOSE_NOWRITE                 = 0x10
 ++	IN_CLOSE_WRITE                   = 0x8
 ++	IN_CREATE                        = 0x100
 ++	IN_DELETE                        = 0x200
 ++	IN_DELETE_SELF                   = 0x400
 ++	IN_DONT_FOLLOW                   = 0x2000000
 ++	IN_EXCL_UNLINK                   = 0x4000000
 ++	IN_IGNORED                       = 0x8000
 ++	IN_ISDIR                         = 0x40000000
 ++	IN_LOOPBACKNET                   = 0x7f
 ++	IN_MASK_ADD                      = 0x20000000
 ++	IN_MODIFY                        = 0x2
 ++	IN_MOVE                          = 0xc0
 ++	IN_MOVED_FROM                    = 0x40
 ++	IN_MOVED_TO                      = 0x80
 ++	IN_MOVE_SELF                     = 0x800
 ++	IN_NONBLOCK                      = 0x800
 ++	IN_ONESHOT                       = 0x80000000
 ++	IN_ONLYDIR                       = 0x1000000
 ++	IN_OPEN                          = 0x20
 ++	IN_Q_OVERFLOW                    = 0x4000
 ++	IN_UNMOUNT                       = 0x2000
 ++	IPPROTO_AH                       = 0x33
 ++	IPPROTO_COMP                     = 0x6c
 ++	IPPROTO_DCCP                     = 0x21
 ++	IPPROTO_DSTOPTS                  = 0x3c
 ++	IPPROTO_EGP                      = 0x8
 ++	IPPROTO_ENCAP                    = 0x62
 ++	IPPROTO_ESP                      = 0x32
 ++	IPPROTO_FRAGMENT                 = 0x2c
 ++	IPPROTO_GRE                      = 0x2f
 ++	IPPROTO_HOPOPTS                  = 0x0
 ++	IPPROTO_ICMP                     = 0x1
 ++	IPPROTO_ICMPV6                   = 0x3a
 ++	IPPROTO_IDP                      = 0x16
 ++	IPPROTO_IGMP                     = 0x2
 ++	IPPROTO_IP                       = 0x0
 ++	IPPROTO_IPIP                     = 0x4
 ++	IPPROTO_IPV6                     = 0x29
 ++	IPPROTO_MTP                      = 0x5c
 ++	IPPROTO_NONE                     = 0x3b
 ++	IPPROTO_PIM                      = 0x67
 ++	IPPROTO_PUP                      = 0xc
 ++	IPPROTO_RAW                      = 0xff
 ++	IPPROTO_ROUTING                  = 0x2b
 ++	IPPROTO_RSVP                     = 0x2e
 ++	IPPROTO_SCTP                     = 0x84
 ++	IPPROTO_TCP                      = 0x6
 ++	IPPROTO_TP                       = 0x1d
 ++	IPPROTO_UDP                      = 0x11
 ++	IPPROTO_UDPLITE                  = 0x88
 ++	IPV6_2292DSTOPTS                 = 0x4
 ++	IPV6_2292HOPLIMIT                = 0x8
 ++	IPV6_2292HOPOPTS                 = 0x3
 ++	IPV6_2292PKTINFO                 = 0x2
 ++	IPV6_2292PKTOPTIONS              = 0x6
 ++	IPV6_2292RTHDR                   = 0x5
 ++	IPV6_ADDRFORM                    = 0x1
 ++	IPV6_ADD_MEMBERSHIP              = 0x14
 ++	IPV6_AUTHHDR                     = 0xa
 ++	IPV6_CHECKSUM                    = 0x7
 ++	IPV6_DROP_MEMBERSHIP             = 0x15
 ++	IPV6_DSTOPTS                     = 0x3b
 ++	IPV6_HOPLIMIT                    = 0x34
 ++	IPV6_HOPOPTS                     = 0x36
 ++	IPV6_IPSEC_POLICY                = 0x22
 ++	IPV6_JOIN_ANYCAST                = 0x1b
 ++	IPV6_JOIN_GROUP                  = 0x14
 ++	IPV6_LEAVE_ANYCAST               = 0x1c
 ++	IPV6_LEAVE_GROUP                 = 0x15
 ++	IPV6_MTU                         = 0x18
 ++	IPV6_MTU_DISCOVER                = 0x17
 ++	IPV6_MULTICAST_HOPS              = 0x12
 ++	IPV6_MULTICAST_IF                = 0x11
 ++	IPV6_MULTICAST_LOOP              = 0x13
 ++	IPV6_NEXTHOP                     = 0x9
 ++	IPV6_PKTINFO                     = 0x32
 ++	IPV6_PMTUDISC_DO                 = 0x2
 ++	IPV6_PMTUDISC_DONT               = 0x0
 ++	IPV6_PMTUDISC_PROBE              = 0x3
 ++	IPV6_PMTUDISC_WANT               = 0x1
 ++	IPV6_RECVDSTOPTS                 = 0x3a
 ++	IPV6_RECVERR                     = 0x19
 ++	IPV6_RECVHOPLIMIT                = 0x33
 ++	IPV6_RECVHOPOPTS                 = 0x35
 ++	IPV6_RECVPKTINFO                 = 0x31
 ++	IPV6_RECVRTHDR                   = 0x38
 ++	IPV6_RECVTCLASS                  = 0x42
 ++	IPV6_ROUTER_ALERT                = 0x16
 ++	IPV6_RTHDR                       = 0x39
 ++	IPV6_RTHDRDSTOPTS                = 0x37
 ++	IPV6_RTHDR_LOOSE                 = 0x0
 ++	IPV6_RTHDR_STRICT                = 0x1
 ++	IPV6_RTHDR_TYPE_0                = 0x0
 ++	IPV6_RXDSTOPTS                   = 0x3b
 ++	IPV6_RXHOPOPTS                   = 0x36
 ++	IPV6_TCLASS                      = 0x43
 ++	IPV6_UNICAST_HOPS                = 0x10
 ++	IPV6_V6ONLY                      = 0x1a
 ++	IPV6_XFRM_POLICY                 = 0x23
 ++	IP_ADD_MEMBERSHIP                = 0x23
 ++	IP_ADD_SOURCE_MEMBERSHIP         = 0x27
 ++	IP_BLOCK_SOURCE                  = 0x26
 ++	IP_DEFAULT_MULTICAST_LOOP        = 0x1
 ++	IP_DEFAULT_MULTICAST_TTL         = 0x1
 ++	IP_DF                            = 0x4000
 ++	IP_DROP_MEMBERSHIP               = 0x24
 ++	IP_DROP_SOURCE_MEMBERSHIP        = 0x28
 ++	IP_FREEBIND                      = 0xf
 ++	IP_HDRINCL                       = 0x3
 ++	IP_IPSEC_POLICY                  = 0x10
 ++	IP_MAXPACKET                     = 0xffff
 ++	IP_MAX_MEMBERSHIPS               = 0x14
 ++	IP_MF                            = 0x2000
 ++	IP_MINTTL                        = 0x15
 ++	IP_MSFILTER                      = 0x29
 ++	IP_MSS                           = 0x240
 ++	IP_MTU                           = 0xe
 ++	IP_MTU_DISCOVER                  = 0xa
 ++	IP_MULTICAST_ALL                 = 0x31
 ++	IP_MULTICAST_IF                  = 0x20
 ++	IP_MULTICAST_LOOP                = 0x22
 ++	IP_MULTICAST_TTL                 = 0x21
 ++	IP_OFFMASK                       = 0x1fff
 ++	IP_OPTIONS                       = 0x4
 ++	IP_ORIGDSTADDR                   = 0x14
 ++	IP_PASSSEC                       = 0x12
 ++	IP_PKTINFO                       = 0x8
 ++	IP_PKTOPTIONS                    = 0x9
 ++	IP_PMTUDISC                      = 0xa
 ++	IP_PMTUDISC_DO                   = 0x2
 ++	IP_PMTUDISC_DONT                 = 0x0
 ++	IP_PMTUDISC_PROBE                = 0x3
 ++	IP_PMTUDISC_WANT                 = 0x1
 ++	IP_RECVERR                       = 0xb
 ++	IP_RECVOPTS                      = 0x6
 ++	IP_RECVORIGDSTADDR               = 0x14
 ++	IP_RECVRETOPTS                   = 0x7
 ++	IP_RECVTOS                       = 0xd
 ++	IP_RECVTTL                       = 0xc
 ++	IP_RETOPTS                       = 0x7
 ++	IP_RF                            = 0x8000
 ++	IP_ROUTER_ALERT                  = 0x5
 ++	IP_TOS                           = 0x1
 ++	IP_TRANSPARENT                   = 0x13
 ++	IP_TTL                           = 0x2
 ++	IP_UNBLOCK_SOURCE                = 0x25
 ++	IP_UNICAST_IF                    = 0x32
 ++	IP_XFRM_POLICY                   = 0x11
 ++	ISIG                             = 0x1
 ++	ISTRIP                           = 0x20
 ++	IUTF8                            = 0x4000
 ++	IXANY                            = 0x800
 ++	IXOFF                            = 0x1000
 ++	IXON                             = 0x400
 ++	LINUX_REBOOT_CMD_CAD_OFF         = 0x0
 ++	LINUX_REBOOT_CMD_CAD_ON          = 0x89abcdef
 ++	LINUX_REBOOT_CMD_HALT            = 0xcdef0123
 ++	LINUX_REBOOT_CMD_KEXEC           = 0x45584543
 ++	LINUX_REBOOT_CMD_POWER_OFF       = 0x4321fedc
 ++	LINUX_REBOOT_CMD_RESTART         = 0x1234567
 ++	LINUX_REBOOT_CMD_RESTART2        = 0xa1b2c3d4
 ++	LINUX_REBOOT_CMD_SW_SUSPEND      = 0xd000fce2
 ++	LINUX_REBOOT_MAGIC1              = 0xfee1dead
 ++	LINUX_REBOOT_MAGIC2              = 0x28121969
 ++	LOCK_EX                          = 0x2
 ++	LOCK_NB                          = 0x4
 ++	LOCK_SH                          = 0x1
 ++	LOCK_UN                          = 0x8
 ++	MADV_DODUMP                      = 0x11
 ++	MADV_DOFORK                      = 0xb
 ++	MADV_DONTDUMP                    = 0x10
 ++	MADV_DONTFORK                    = 0xa
 ++	MADV_DONTNEED                    = 0x4
 ++	MADV_HUGEPAGE                    = 0xe
 ++	MADV_HWPOISON                    = 0x64
 ++	MADV_MERGEABLE                   = 0xc
 ++	MADV_NOHUGEPAGE                  = 0xf
 ++	MADV_NORMAL                      = 0x0
 ++	MADV_RANDOM                      = 0x1
 ++	MADV_REMOVE                      = 0x9
 ++	MADV_SEQUENTIAL                  = 0x2
 ++	MADV_UNMERGEABLE                 = 0xd
 ++	MADV_WILLNEED                    = 0x3
 ++	MAP_ANON                         = 0x20
 ++	MAP_ANONYMOUS                    = 0x20
 ++	MAP_DENYWRITE                    = 0x800
 ++	MAP_EXECUTABLE                   = 0x1000
 ++	MAP_FILE                         = 0x0
 ++	MAP_FIXED                        = 0x10
 ++	MAP_GROWSDOWN                    = 0x100
 ++	MAP_GROWSUP                      = 0x200
 ++	MAP_HUGETLB                      = 0x40000
 ++	MAP_LOCKED                       = 0x2000
 ++	MAP_NONBLOCK                     = 0x10000
 ++	MAP_NORESERVE                    = 0x4000
 ++	MAP_POPULATE                     = 0x8000
 ++	MAP_PRIVATE                      = 0x2
 ++	MAP_SHARED                       = 0x1
 ++	MAP_STACK                        = 0x20000
 ++	MAP_TYPE                         = 0xf
 ++	MCL_CURRENT                      = 0x1
 ++	MCL_FUTURE                       = 0x2
 ++	MNT_DETACH                       = 0x2
 ++	MNT_EXPIRE                       = 0x4
 ++	MNT_FORCE                        = 0x1
 ++	MSG_CMSG_CLOEXEC                 = 0x40000000
 ++	MSG_CONFIRM                      = 0x800
 ++	MSG_CTRUNC                       = 0x8
 ++	MSG_DONTROUTE                    = 0x4
 ++	MSG_DONTWAIT                     = 0x40
 ++	MSG_EOR                          = 0x80
 ++	MSG_ERRQUEUE                     = 0x2000
 ++	MSG_FASTOPEN                     = 0x20000000
 ++	MSG_FIN                          = 0x200
 ++	MSG_MORE                         = 0x8000
 ++	MSG_NOSIGNAL                     = 0x4000
 ++	MSG_OOB                          = 0x1
 ++	MSG_PEEK                         = 0x2
 ++	MSG_PROXY                        = 0x10
 ++	MSG_RST                          = 0x1000
 ++	MSG_SYN                          = 0x400
 ++	MSG_TRUNC                        = 0x20
 ++	MSG_TRYHARD                      = 0x4
 ++	MSG_WAITALL                      = 0x100
 ++	MSG_WAITFORONE                   = 0x10000
 ++	MS_ACTIVE                        = 0x40000000
 ++	MS_ASYNC                         = 0x1
 ++	MS_BIND                          = 0x1000
 ++	MS_DIRSYNC                       = 0x80
 ++	MS_INVALIDATE                    = 0x2
 ++	MS_I_VERSION                     = 0x800000
 ++	MS_KERNMOUNT                     = 0x400000
 ++	MS_MANDLOCK                      = 0x40
 ++	MS_MGC_MSK                       = 0xffff0000
 ++	MS_MGC_VAL                       = 0xc0ed0000
 ++	MS_MOVE                          = 0x2000
 ++	MS_NOATIME                       = 0x400
 ++	MS_NODEV                         = 0x4
 ++	MS_NODIRATIME                    = 0x800
 ++	MS_NOEXEC                        = 0x8
 ++	MS_NOSUID                        = 0x2
 ++	MS_NOUSER                        = -0x80000000
 ++	MS_POSIXACL                      = 0x10000
 ++	MS_PRIVATE                       = 0x40000
 ++	MS_RDONLY                        = 0x1
 ++	MS_REC                           = 0x4000
 ++	MS_RELATIME                      = 0x200000
 ++	MS_REMOUNT                       = 0x20
 ++	MS_RMT_MASK                      = 0x800051
 ++	MS_SHARED                        = 0x100000
 ++	MS_SILENT                        = 0x8000
 ++	MS_SLAVE                         = 0x80000
 ++	MS_STRICTATIME                   = 0x1000000
 ++	MS_SYNC                          = 0x4
 ++	MS_SYNCHRONOUS                   = 0x10
 ++	MS_UNBINDABLE                    = 0x20000
 ++	NAME_MAX                         = 0xff
 ++	NETLINK_ADD_MEMBERSHIP           = 0x1
 ++	NETLINK_AUDIT                    = 0x9
 ++	NETLINK_BROADCAST_ERROR          = 0x4
 ++	NETLINK_CONNECTOR                = 0xb
 ++	NETLINK_CRYPTO                   = 0x15
 ++	NETLINK_DNRTMSG                  = 0xe
 ++	NETLINK_DROP_MEMBERSHIP          = 0x2
 ++	NETLINK_ECRYPTFS                 = 0x13
 ++	NETLINK_FIB_LOOKUP               = 0xa
 ++	NETLINK_FIREWALL                 = 0x3
 ++	NETLINK_GENERIC                  = 0x10
 ++	NETLINK_INET_DIAG                = 0x4
 ++	NETLINK_IP6_FW                   = 0xd
 ++	NETLINK_ISCSI                    = 0x8
 ++	NETLINK_KOBJECT_UEVENT           = 0xf
 ++	NETLINK_NETFILTER                = 0xc
 ++	NETLINK_NFLOG                    = 0x5
 ++	NETLINK_NO_ENOBUFS               = 0x5
 ++	NETLINK_PKTINFO                  = 0x3
 ++	NETLINK_RDMA                     = 0x14
 ++	NETLINK_ROUTE                    = 0x0
 ++	NETLINK_RX_RING                  = 0x6
 ++	NETLINK_SCSITRANSPORT            = 0x12
 ++	NETLINK_SELINUX                  = 0x7
 ++	NETLINK_SOCK_DIAG                = 0x4
 ++	NETLINK_TX_RING                  = 0x7
 ++	NETLINK_UNUSED                   = 0x1
 ++	NETLINK_USERSOCK                 = 0x2
 ++	NETLINK_XFRM                     = 0x6
 ++	NLA_ALIGNTO                      = 0x4
 ++	NLA_F_NESTED                     = 0x8000
 ++	NLA_F_NET_BYTEORDER              = 0x4000
 ++	NLA_HDRLEN                       = 0x4
 ++	NLMSG_ALIGNTO                    = 0x4
 ++	NLMSG_DONE                       = 0x3
 ++	NLMSG_ERROR                      = 0x2
 ++	NLMSG_HDRLEN                     = 0x10
 ++	NLMSG_MIN_TYPE                   = 0x10
 ++	NLMSG_NOOP                       = 0x1
 ++	NLMSG_OVERRUN                    = 0x4
 ++	NLM_F_ACK                        = 0x4
 ++	NLM_F_APPEND                     = 0x800
 ++	NLM_F_ATOMIC                     = 0x400
 ++	NLM_F_CREATE                     = 0x400
 ++	NLM_F_DUMP                       = 0x300
 ++	NLM_F_DUMP_INTR                  = 0x10
 ++	NLM_F_ECHO                       = 0x8
 ++	NLM_F_EXCL                       = 0x200
 ++	NLM_F_MATCH                      = 0x200
 ++	NLM_F_MULTI                      = 0x2
 ++	NLM_F_REPLACE                    = 0x100
 ++	NLM_F_REQUEST                    = 0x1
 ++	NLM_F_ROOT                       = 0x100
 ++	NOFLSH                           = 0x80
 ++	OCRNL                            = 0x8
 ++	OFDEL                            = 0x80
 ++	OFILL                            = 0x40
 ++	ONLCR                            = 0x4
 ++	ONLRET                           = 0x20
 ++	ONOCR                            = 0x10
 ++	OPOST                            = 0x1
 ++	O_ACCMODE                        = 0x3
 ++	O_APPEND                         = 0x400
 ++	O_ASYNC                          = 0x2000
 ++	O_CLOEXEC                        = 0x80000
 ++	O_CREAT                          = 0x40
 ++	O_DIRECT                         = 0x4000
 ++	O_DIRECTORY                      = 0x10000
 ++	O_DSYNC                          = 0x1000
 ++	O_EXCL                           = 0x80
 ++	O_FSYNC                          = 0x101000
 ++	O_LARGEFILE                      = 0x0
 ++	O_NDELAY                         = 0x800
 ++	O_NOATIME                        = 0x40000
 ++	O_NOCTTY                         = 0x100
 ++	O_NOFOLLOW                       = 0x20000
 ++	O_NONBLOCK                       = 0x800
 ++	O_PATH                           = 0x200000
 ++	O_RDONLY                         = 0x0
 ++	O_RDWR                           = 0x2
 ++	O_RSYNC                          = 0x101000
 ++	O_SYNC                           = 0x101000
 ++	O_TRUNC                          = 0x200
 ++	O_WRONLY                         = 0x1
 ++	PACKET_ADD_MEMBERSHIP            = 0x1
 ++	PACKET_AUXDATA                   = 0x8
 ++	PACKET_BROADCAST                 = 0x1
 ++	PACKET_COPY_THRESH               = 0x7
 ++	PACKET_DROP_MEMBERSHIP           = 0x2
 ++	PACKET_FANOUT                    = 0x12
 ++	PACKET_FANOUT_CPU                = 0x2
 ++	PACKET_FANOUT_FLAG_DEFRAG        = 0x8000
 ++	PACKET_FANOUT_FLAG_ROLLOVER      = 0x1000
 ++	PACKET_FANOUT_HASH               = 0x0
 ++	PACKET_FANOUT_LB                 = 0x1
 ++	PACKET_FANOUT_RND                = 0x4
 ++	PACKET_FANOUT_ROLLOVER           = 0x3
 ++	PACKET_FASTROUTE                 = 0x6
 ++	PACKET_HDRLEN                    = 0xb
 ++	PACKET_HOST                      = 0x0
 ++	PACKET_LOOPBACK                  = 0x5
 ++	PACKET_LOSS                      = 0xe
 ++	PACKET_MR_ALLMULTI               = 0x2
 ++	PACKET_MR_MULTICAST              = 0x0
 ++	PACKET_MR_PROMISC                = 0x1
 ++	PACKET_MR_UNICAST                = 0x3
 ++	PACKET_MULTICAST                 = 0x2
 ++	PACKET_ORIGDEV                   = 0x9
 ++	PACKET_OTHERHOST                 = 0x3
 ++	PACKET_OUTGOING                  = 0x4
 ++	PACKET_RECV_OUTPUT               = 0x3
 ++	PACKET_RESERVE                   = 0xc
 ++	PACKET_RX_RING                   = 0x5
 ++	PACKET_STATISTICS                = 0x6
 ++	PACKET_TIMESTAMP                 = 0x11
 ++	PACKET_TX_HAS_OFF                = 0x13
 ++	PACKET_TX_RING                   = 0xd
 ++	PACKET_TX_TIMESTAMP              = 0x10
 ++	PACKET_VERSION                   = 0xa
 ++	PACKET_VNET_HDR                  = 0xf
 ++	PARENB                           = 0x100
 ++	PARITY_CRC16_PR0                 = 0x2
 ++	PARITY_CRC16_PR0_CCITT           = 0x4
 ++	PARITY_CRC16_PR1                 = 0x3
 ++	PARITY_CRC16_PR1_CCITT           = 0x5
 ++	PARITY_CRC32_PR0_CCITT           = 0x6
 ++	PARITY_CRC32_PR1_CCITT           = 0x7
 ++	PARITY_DEFAULT                   = 0x0
 ++	PARITY_NONE                      = 0x1
 ++	PARMRK                           = 0x8
 ++	PARODD                           = 0x200
 ++	PENDIN                           = 0x4000
 ++	PRIO_PGRP                        = 0x1
 ++	PRIO_PROCESS                     = 0x0
 ++	PRIO_USER                        = 0x2
 ++	PROT_EXEC                        = 0x4
 ++	PROT_GROWSDOWN                   = 0x1000000
 ++	PROT_GROWSUP                     = 0x2000000
 ++	PROT_NONE                        = 0x0
 ++	PROT_READ                        = 0x1
 ++	PROT_WRITE                       = 0x2
 ++	PR_CAPBSET_DROP                  = 0x18
 ++	PR_CAPBSET_READ                  = 0x17
 ++	PR_ENDIAN_BIG                    = 0x0
 ++	PR_ENDIAN_LITTLE                 = 0x1
 ++	PR_ENDIAN_PPC_LITTLE             = 0x2
 ++	PR_FPEMU_NOPRINT                 = 0x1
 ++	PR_FPEMU_SIGFPE                  = 0x2
 ++	PR_FP_EXC_ASYNC                  = 0x2
 ++	PR_FP_EXC_DISABLED               = 0x0
 ++	PR_FP_EXC_DIV                    = 0x10000
 ++	PR_FP_EXC_INV                    = 0x100000
 ++	PR_FP_EXC_NONRECOV               = 0x1
 ++	PR_FP_EXC_OVF                    = 0x20000
 ++	PR_FP_EXC_PRECISE                = 0x3
 ++	PR_FP_EXC_RES                    = 0x80000
 ++	PR_FP_EXC_SW_ENABLE              = 0x80
 ++	PR_FP_EXC_UND                    = 0x40000
 ++	PR_GET_CHILD_SUBREAPER           = 0x25
 ++	PR_GET_DUMPABLE                  = 0x3
 ++	PR_GET_ENDIAN                    = 0x13
 ++	PR_GET_FPEMU                     = 0x9
 ++	PR_GET_FPEXC                     = 0xb
 ++	PR_GET_KEEPCAPS                  = 0x7
 ++	PR_GET_NAME                      = 0x10
 ++	PR_GET_NO_NEW_PRIVS              = 0x27
 ++	PR_GET_PDEATHSIG                 = 0x2
 ++	PR_GET_SECCOMP                   = 0x15
 ++	PR_GET_SECUREBITS                = 0x1b
 ++	PR_GET_THP_DISABLE               = 0x2a
 ++	PR_GET_TID_ADDRESS               = 0x28
 ++	PR_GET_TIMERSLACK                = 0x1e
 ++	PR_GET_TIMING                    = 0xd
 ++	PR_GET_TSC                       = 0x19
 ++	PR_GET_UNALIGN                   = 0x5
 ++	PR_MCE_KILL                      = 0x21
 ++	PR_MCE_KILL_CLEAR                = 0x0
 ++	PR_MCE_KILL_DEFAULT              = 0x2
 ++	PR_MCE_KILL_EARLY                = 0x1
 ++	PR_MCE_KILL_GET                  = 0x22
 ++	PR_MCE_KILL_LATE                 = 0x0
 ++	PR_MCE_KILL_SET                  = 0x1
 ++	PR_SET_CHILD_SUBREAPER           = 0x24
 ++	PR_SET_DUMPABLE                  = 0x4
 ++	PR_SET_ENDIAN                    = 0x14
 ++	PR_SET_FPEMU                     = 0xa
 ++	PR_SET_FPEXC                     = 0xc
 ++	PR_SET_KEEPCAPS                  = 0x8
 ++	PR_SET_MM                        = 0x23
 ++	PR_SET_MM_ARG_END                = 0x9
 ++	PR_SET_MM_ARG_START              = 0x8
 ++	PR_SET_MM_AUXV                   = 0xc
 ++	PR_SET_MM_BRK                    = 0x7
 ++	PR_SET_MM_END_CODE               = 0x2
 ++	PR_SET_MM_END_DATA               = 0x4
 ++	PR_SET_MM_ENV_END                = 0xb
 ++	PR_SET_MM_ENV_START              = 0xa
 ++	PR_SET_MM_EXE_FILE               = 0xd
 ++	PR_SET_MM_START_BRK              = 0x6
 ++	PR_SET_MM_START_CODE             = 0x1
 ++	PR_SET_MM_START_DATA             = 0x3
 ++	PR_SET_MM_START_STACK            = 0x5
 ++	PR_SET_NAME                      = 0xf
 ++	PR_SET_NO_NEW_PRIVS              = 0x26
 ++	PR_SET_PDEATHSIG                 = 0x1
 ++	PR_SET_PTRACER                   = 0x59616d61
 ++	PR_SET_PTRACER_ANY               = -0x1
 ++	PR_SET_SECCOMP                   = 0x16
 ++	PR_SET_SECUREBITS                = 0x1c
 ++	PR_SET_THP_DISABLE               = 0x29
 ++	PR_SET_TIMERSLACK                = 0x1d
 ++	PR_SET_TIMING                    = 0xe
 ++	PR_SET_TSC                       = 0x1a
 ++	PR_SET_UNALIGN                   = 0x6
 ++	PR_TASK_PERF_EVENTS_DISABLE      = 0x1f
 ++	PR_TASK_PERF_EVENTS_ENABLE       = 0x20
 ++	PR_TIMING_STATISTICAL            = 0x0
 ++	PR_TIMING_TIMESTAMP              = 0x1
 ++	PR_TSC_ENABLE                    = 0x1
 ++	PR_TSC_SIGSEGV                   = 0x2
 ++	PR_UNALIGN_NOPRINT               = 0x1
 ++	PR_UNALIGN_SIGBUS                = 0x2
 ++	PTRACE_ATTACH                    = 0x10
 ++	PTRACE_CONT                      = 0x7
 ++	PTRACE_DETACH                    = 0x11
 ++	PTRACE_DISABLE_TE                = 0x5010
 ++	PTRACE_ENABLE_TE                 = 0x5009
 ++	PTRACE_EVENT_CLONE               = 0x3
 ++	PTRACE_EVENT_EXEC                = 0x4
 ++	PTRACE_EVENT_EXIT                = 0x6
 ++	PTRACE_EVENT_FORK                = 0x1
 ++	PTRACE_EVENT_SECCOMP             = 0x7
 ++	PTRACE_EVENT_STOP                = 0x80
 ++	PTRACE_EVENT_VFORK               = 0x2
 ++	PTRACE_EVENT_VFORK_DONE          = 0x5
 ++	PTRACE_GETEVENTMSG               = 0x4201
 ++	PTRACE_GETREGS                   = 0xc
 ++	PTRACE_GETREGSET                 = 0x4204
 ++	PTRACE_GETSIGINFO                = 0x4202
 ++	PTRACE_GET_LAST_BREAK            = 0x5006
 ++	PTRACE_INTERRUPT                 = 0x4207
 ++	PTRACE_KILL                      = 0x8
 ++	PTRACE_LISTEN                    = 0x4208
 ++	PTRACE_OLDSETOPTIONS             = 0x15
 ++	PTRACE_O_EXITKILL                = 0x100000
 ++	PTRACE_O_MASK                    = 0x1000ff
 ++	PTRACE_O_TRACECLONE              = 0x8
 ++	PTRACE_O_TRACEEXEC               = 0x10
 ++	PTRACE_O_TRACEEXIT               = 0x40
 ++	PTRACE_O_TRACEFORK               = 0x2
 ++	PTRACE_O_TRACESECCOMP            = 0x80
 ++	PTRACE_O_TRACESYSGOOD            = 0x1
 ++	PTRACE_O_TRACEVFORK              = 0x4
 ++	PTRACE_O_TRACEVFORKDONE          = 0x20
 ++	PTRACE_PEEKDATA                  = 0x2
 ++	PTRACE_PEEKDATA_AREA             = 0x5003
 ++	PTRACE_PEEKSIGINFO               = 0x4209
 ++	PTRACE_PEEKSIGINFO_SHARED        = 0x1
 ++	PTRACE_PEEKTEXT                  = 0x1
 ++	PTRACE_PEEKTEXT_AREA             = 0x5002
 ++	PTRACE_PEEKUSR                   = 0x3
 ++	PTRACE_PEEKUSR_AREA              = 0x5000
 ++	PTRACE_PEEK_SYSTEM_CALL          = 0x5007
 ++	PTRACE_POKEDATA                  = 0x5
 ++	PTRACE_POKEDATA_AREA             = 0x5005
 ++	PTRACE_POKETEXT                  = 0x4
 ++	PTRACE_POKETEXT_AREA             = 0x5004
 ++	PTRACE_POKEUSR                   = 0x6
 ++	PTRACE_POKEUSR_AREA              = 0x5001
 ++	PTRACE_POKE_SYSTEM_CALL          = 0x5008
 ++	PTRACE_PROT                      = 0x15
 ++	PTRACE_SEIZE                     = 0x4206
 ++	PTRACE_SETOPTIONS                = 0x4200
 ++	PTRACE_SETREGS                   = 0xd
 ++	PTRACE_SETREGSET                 = 0x4205
 ++	PTRACE_SETSIGINFO                = 0x4203
 ++	PTRACE_SINGLESTEP                = 0x9
 ++	PTRACE_SYSCALL                   = 0x18
 ++	PTRACE_TRACEME                   = 0x0
 ++	PT_ACR0                          = 0x90
 ++	PT_ACR1                          = 0x94
 ++	PT_ACR10                         = 0xb8
 ++	PT_ACR11                         = 0xbc
 ++	PT_ACR12                         = 0xc0
 ++	PT_ACR13                         = 0xc4
 ++	PT_ACR14                         = 0xc8
 ++	PT_ACR15                         = 0xcc
 ++	PT_ACR2                          = 0x98
 ++	PT_ACR3                          = 0x9c
 ++	PT_ACR4                          = 0xa0
 ++	PT_ACR5                          = 0xa4
 ++	PT_ACR6                          = 0xa8
 ++	PT_ACR7                          = 0xac
 ++	PT_ACR8                          = 0xb0
 ++	PT_ACR9                          = 0xb4
 ++	PT_CR_10                         = 0x168
 ++	PT_CR_11                         = 0x170
 ++	PT_CR_9                          = 0x160
 ++	PT_ENDREGS                       = 0x1af
 ++	PT_FPC                           = 0xd8
 ++	PT_FPR0                          = 0xe0
 ++	PT_FPR1                          = 0xe8
 ++	PT_FPR10                         = 0x130
 ++	PT_FPR11                         = 0x138
 ++	PT_FPR12                         = 0x140
 ++	PT_FPR13                         = 0x148
 ++	PT_FPR14                         = 0x150
 ++	PT_FPR15                         = 0x158
 ++	PT_FPR2                          = 0xf0
 ++	PT_FPR3                          = 0xf8
 ++	PT_FPR4                          = 0x100
 ++	PT_FPR5                          = 0x108
 ++	PT_FPR6                          = 0x110
 ++	PT_FPR7                          = 0x118
 ++	PT_FPR8                          = 0x120
 ++	PT_FPR9                          = 0x128
 ++	PT_GPR0                          = 0x10
 ++	PT_GPR1                          = 0x18
 ++	PT_GPR10                         = 0x60
 ++	PT_GPR11                         = 0x68
 ++	PT_GPR12                         = 0x70
 ++	PT_GPR13                         = 0x78
 ++	PT_GPR14                         = 0x80
 ++	PT_GPR15                         = 0x88
 ++	PT_GPR2                          = 0x20
 ++	PT_GPR3                          = 0x28
 ++	PT_GPR4                          = 0x30
 ++	PT_GPR5                          = 0x38
 ++	PT_GPR6                          = 0x40
 ++	PT_GPR7                          = 0x48
 ++	PT_GPR8                          = 0x50
 ++	PT_GPR9                          = 0x58
 ++	PT_IEEE_IP                       = 0x1a8
 ++	PT_LASTOFF                       = 0x1a8
 ++	PT_ORIGGPR2                      = 0xd0
 ++	PT_PSWADDR                       = 0x8
 ++	PT_PSWMASK                       = 0x0
 ++	RLIMIT_AS                        = 0x9
 ++	RLIMIT_CORE                      = 0x4
 ++	RLIMIT_CPU                       = 0x0
 ++	RLIMIT_DATA                      = 0x2
 ++	RLIMIT_FSIZE                     = 0x1
 ++	RLIMIT_NOFILE                    = 0x7
 ++	RLIMIT_STACK                     = 0x3
 ++	RLIM_INFINITY                    = -0x1
 ++	RTAX_ADVMSS                      = 0x8
 ++	RTAX_CWND                        = 0x7
 ++	RTAX_FEATURES                    = 0xc
 ++	RTAX_FEATURE_ALLFRAG             = 0x8
 ++	RTAX_FEATURE_ECN                 = 0x1
 ++	RTAX_FEATURE_SACK                = 0x2
 ++	RTAX_FEATURE_TIMESTAMP           = 0x4
 ++	RTAX_HOPLIMIT                    = 0xa
 ++	RTAX_INITCWND                    = 0xb
 ++	RTAX_INITRWND                    = 0xe
 ++	RTAX_LOCK                        = 0x1
 ++	RTAX_MAX                         = 0x17
 ++	RTAX_MTU                         = 0x2
 ++	RTAX_QUICKACK                    = 0xf
 ++	RTAX_REORDERING                  = 0x9
 ++	RTAX_RTO_MIN                     = 0xd
 ++	RTAX_RTT                         = 0x4
 ++	RTAX_RTTVAR                      = 0x5
 ++	RTAX_SSTHRESH                    = 0x6
 ++	RTAX_UNSPEC                      = 0x0
 ++	RTAX_WINDOW                      = 0x3
 ++	RTA_ALIGNTO                      = 0x4
 ++	RTA_MAX                          = 0x11
 ++	RTCF_DIRECTSRC                   = 0x4000000
 ++	RTCF_DOREDIRECT                  = 0x1000000
 ++	RTCF_LOG                         = 0x2000000
 ++	RTCF_MASQ                        = 0x400000
 ++	RTCF_NAT                         = 0x800000
 ++	RTCF_VALVE                       = 0x200000
 ++	RTF_ADDRCLASSMASK                = 0xf8000000
 ++	RTF_ADDRCONF                     = 0x40000
 ++	RTF_ALLONLINK                    = 0x20000
 ++	RTF_BROADCAST                    = 0x10000000
 ++	RTF_CACHE                        = 0x1000000
 ++	RTF_DEFAULT                      = 0x10000
 ++	RTF_DYNAMIC                      = 0x10
 ++	RTF_FLOW                         = 0x2000000
 ++	RTF_GATEWAY                      = 0x2
 ++	RTF_HOST                         = 0x4
 ++	RTF_INTERFACE                    = 0x40000000
 ++	RTF_IRTT                         = 0x100
 ++	RTF_LINKRT                       = 0x100000
 ++	RTF_LOCAL                        = 0x80000000
 ++	RTF_MODIFIED                     = 0x20
 ++	RTF_MSS                          = 0x40
 ++	RTF_MTU                          = 0x40
 ++	RTF_MULTICAST                    = 0x20000000
 ++	RTF_NAT                          = 0x8000000
 ++	RTF_NOFORWARD                    = 0x1000
 ++	RTF_NONEXTHOP                    = 0x200000
 ++	RTF_NOPMTUDISC                   = 0x4000
 ++	RTF_POLICY                       = 0x4000000
 ++	RTF_REINSTATE                    = 0x8
 ++	RTF_REJECT                       = 0x200
 ++	RTF_STATIC                       = 0x400
 ++	RTF_THROW                        = 0x2000
 ++	RTF_UP                           = 0x1
 ++	RTF_WINDOW                       = 0x80
 ++	RTF_XRESOLVE                     = 0x800
 ++	RTM_BASE                         = 0x10
 ++	RTM_DELACTION                    = 0x31
 ++	RTM_DELADDR                      = 0x15
 ++	RTM_DELADDRLABEL                 = 0x49
 ++	RTM_DELLINK                      = 0x11
 ++	RTM_DELMDB                       = 0x55
 ++	RTM_DELNEIGH                     = 0x1d
 ++	RTM_DELQDISC                     = 0x25
 ++	RTM_DELROUTE                     = 0x19
 ++	RTM_DELRULE                      = 0x21
 ++	RTM_DELTCLASS                    = 0x29
 ++	RTM_DELTFILTER                   = 0x2d
 ++	RTM_F_CLONED                     = 0x200
 ++	RTM_F_EQUALIZE                   = 0x400
 ++	RTM_F_NOTIFY                     = 0x100
 ++	RTM_F_PREFIX                     = 0x800
 ++	RTM_GETACTION                    = 0x32
 ++	RTM_GETADDR                      = 0x16
 ++	RTM_GETADDRLABEL                 = 0x4a
 ++	RTM_GETANYCAST                   = 0x3e
 ++	RTM_GETDCB                       = 0x4e
 ++	RTM_GETLINK                      = 0x12
 ++	RTM_GETMDB                       = 0x56
 ++	RTM_GETMULTICAST                 = 0x3a
 ++	RTM_GETNEIGH                     = 0x1e
 ++	RTM_GETNEIGHTBL                  = 0x42
 ++	RTM_GETNETCONF                   = 0x52
 ++	RTM_GETQDISC                     = 0x26
 ++	RTM_GETROUTE                     = 0x1a
 ++	RTM_GETRULE                      = 0x22
 ++	RTM_GETTCLASS                    = 0x2a
 ++	RTM_GETTFILTER                   = 0x2e
 ++	RTM_MAX                          = 0x57
 ++	RTM_NEWACTION                    = 0x30
 ++	RTM_NEWADDR                      = 0x14
 ++	RTM_NEWADDRLABEL                 = 0x48
 ++	RTM_NEWLINK                      = 0x10
 ++	RTM_NEWMDB                       = 0x54
 ++	RTM_NEWNDUSEROPT                 = 0x44
 ++	RTM_NEWNEIGH                     = 0x1c
 ++	RTM_NEWNEIGHTBL                  = 0x40
 ++	RTM_NEWNETCONF                   = 0x50
 ++	RTM_NEWPREFIX                    = 0x34
 ++	RTM_NEWQDISC                     = 0x24
 ++	RTM_NEWROUTE                     = 0x18
 ++	RTM_NEWRULE                      = 0x20
 ++	RTM_NEWTCLASS                    = 0x28
 ++	RTM_NEWTFILTER                   = 0x2c
 ++	RTM_NR_FAMILIES                  = 0x12
 ++	RTM_NR_MSGTYPES                  = 0x48
 ++	RTM_SETDCB                       = 0x4f
 ++	RTM_SETLINK                      = 0x13
 ++	RTM_SETNEIGHTBL                  = 0x43
 ++	RTNH_ALIGNTO                     = 0x4
 ++	RTNH_F_DEAD                      = 0x1
 ++	RTNH_F_ONLINK                    = 0x4
 ++	RTNH_F_PERVASIVE                 = 0x2
 ++	RTN_MAX                          = 0xb
 ++	RTPROT_BIRD                      = 0xc
 ++	RTPROT_BOOT                      = 0x3
 ++	RTPROT_DHCP                      = 0x10
 ++	RTPROT_DNROUTED                  = 0xd
 ++	RTPROT_GATED                     = 0x8
 ++	RTPROT_KERNEL                    = 0x2
 ++	RTPROT_MROUTED                   = 0x11
 ++	RTPROT_MRT                       = 0xa
 ++	RTPROT_NTK                       = 0xf
 ++	RTPROT_RA                        = 0x9
 ++	RTPROT_REDIRECT                  = 0x1
 ++	RTPROT_STATIC                    = 0x4
 ++	RTPROT_UNSPEC                    = 0x0
 ++	RTPROT_XORP                      = 0xe
 ++	RTPROT_ZEBRA                     = 0xb
 ++	RT_CLASS_DEFAULT                 = 0xfd
 ++	RT_CLASS_LOCAL                   = 0xff
 ++	RT_CLASS_MAIN                    = 0xfe
 ++	RT_CLASS_MAX                     = 0xff
 ++	RT_CLASS_UNSPEC                  = 0x0
 ++	RUSAGE_CHILDREN                  = -0x1
 ++	RUSAGE_SELF                      = 0x0
 ++	RUSAGE_THREAD                    = 0x1
 ++	SCM_CREDENTIALS                  = 0x2
 ++	SCM_RIGHTS                       = 0x1
 ++	SCM_TIMESTAMP                    = 0x1d
 ++	SCM_TIMESTAMPING                 = 0x25
 ++	SCM_TIMESTAMPNS                  = 0x23
 ++	SCM_WIFI_STATUS                  = 0x29
 ++	SHUT_RD                          = 0x0
 ++	SHUT_RDWR                        = 0x2
 ++	SHUT_WR                          = 0x1
 ++	SIOCADDDLCI                      = 0x8980
 ++	SIOCADDMULTI                     = 0x8931
 ++	SIOCADDRT                        = 0x890b
 ++	SIOCATMARK                       = 0x8905
 ++	SIOCDARP                         = 0x8953
 ++	SIOCDELDLCI                      = 0x8981
 ++	SIOCDELMULTI                     = 0x8932
 ++	SIOCDELRT                        = 0x890c
 ++	SIOCDEVPRIVATE                   = 0x89f0
 ++	SIOCDIFADDR                      = 0x8936
 ++	SIOCDRARP                        = 0x8960
 ++	SIOCGARP                         = 0x8954
 ++	SIOCGIFADDR                      = 0x8915
 ++	SIOCGIFBR                        = 0x8940
 ++	SIOCGIFBRDADDR                   = 0x8919
 ++	SIOCGIFCONF                      = 0x8912
 ++	SIOCGIFCOUNT                     = 0x8938
 ++	SIOCGIFDSTADDR                   = 0x8917
 ++	SIOCGIFENCAP                     = 0x8925
 ++	SIOCGIFFLAGS                     = 0x8913
 ++	SIOCGIFHWADDR                    = 0x8927
 ++	SIOCGIFINDEX                     = 0x8933
 ++	SIOCGIFMAP                       = 0x8970
 ++	SIOCGIFMEM                       = 0x891f
 ++	SIOCGIFMETRIC                    = 0x891d
 ++	SIOCGIFMTU                       = 0x8921
 ++	SIOCGIFNAME                      = 0x8910
 ++	SIOCGIFNETMASK                   = 0x891b
 ++	SIOCGIFPFLAGS                    = 0x8935
 ++	SIOCGIFSLAVE                     = 0x8929
 ++	SIOCGIFTXQLEN                    = 0x8942
 ++	SIOCGPGRP                        = 0x8904
 ++	SIOCGRARP                        = 0x8961
 ++	SIOCGSTAMP                       = 0x8906
 ++	SIOCGSTAMPNS                     = 0x8907
 ++	SIOCPROTOPRIVATE                 = 0x89e0
 ++	SIOCRTMSG                        = 0x890d
 ++	SIOCSARP                         = 0x8955
 ++	SIOCSIFADDR                      = 0x8916
 ++	SIOCSIFBR                        = 0x8941
 ++	SIOCSIFBRDADDR                   = 0x891a
 ++	SIOCSIFDSTADDR                   = 0x8918
 ++	SIOCSIFENCAP                     = 0x8926
 ++	SIOCSIFFLAGS                     = 0x8914
 ++	SIOCSIFHWADDR                    = 0x8924
 ++	SIOCSIFHWBROADCAST               = 0x8937
 ++	SIOCSIFLINK                      = 0x8911
 ++	SIOCSIFMAP                       = 0x8971
 ++	SIOCSIFMEM                       = 0x8920
 ++	SIOCSIFMETRIC                    = 0x891e
 ++	SIOCSIFMTU                       = 0x8922
 ++	SIOCSIFNAME                      = 0x8923
 ++	SIOCSIFNETMASK                   = 0x891c
 ++	SIOCSIFPFLAGS                    = 0x8934
 ++	SIOCSIFSLAVE                     = 0x8930
 ++	SIOCSIFTXQLEN                    = 0x8943
 ++	SIOCSPGRP                        = 0x8902
 ++	SIOCSRARP                        = 0x8962
 ++	SOCK_CLOEXEC                     = 0x80000
 ++	SOCK_DCCP                        = 0x6
 ++	SOCK_DGRAM                       = 0x2
 ++	SOCK_NONBLOCK                    = 0x800
 ++	SOCK_PACKET                      = 0xa
 ++	SOCK_RAW                         = 0x3
 ++	SOCK_RDM                         = 0x4
 ++	SOCK_SEQPACKET                   = 0x5
 ++	SOCK_STREAM                      = 0x1
 ++	SOL_AAL                          = 0x109
 ++	SOL_ATM                          = 0x108
 ++	SOL_DECNET                       = 0x105
 ++	SOL_ICMPV6                       = 0x3a
 ++	SOL_IP                           = 0x0
 ++	SOL_IPV6                         = 0x29
 ++	SOL_IRDA                         = 0x10a
 ++	SOL_PACKET                       = 0x107
 ++	SOL_RAW                          = 0xff
 ++	SOL_SOCKET                       = 0x1
 ++	SOL_TCP                          = 0x6
 ++	SOL_X25                          = 0x106
 ++	SOMAXCONN                        = 0x80
 ++	SO_ACCEPTCONN                    = 0x1e
 ++	SO_ATTACH_FILTER                 = 0x1a
 ++	SO_BINDTODEVICE                  = 0x19
 ++	SO_BPF_EXTENSIONS                = 0x30
 ++	SO_BROADCAST                     = 0x6
 ++	SO_BSDCOMPAT                     = 0xe
 ++	SO_BUSY_POLL                     = 0x2e
 ++	SO_DEBUG                         = 0x1
 ++	SO_DETACH_FILTER                 = 0x1b
 ++	SO_DOMAIN                        = 0x27
 ++	SO_DONTROUTE                     = 0x5
 ++	SO_ERROR                         = 0x4
 ++	SO_GET_FILTER                    = 0x1a
 ++	SO_KEEPALIVE                     = 0x9
 ++	SO_LINGER                        = 0xd
 ++	SO_LOCK_FILTER                   = 0x2c
 ++	SO_MARK                          = 0x24
 ++	SO_NOFCS                         = 0x2b
 ++	SO_NO_CHECK                      = 0xb
 ++	SO_OOBINLINE                     = 0xa
 ++	SO_PASSCRED                      = 0x10
 ++	SO_PASSSEC                       = 0x22
 ++	SO_PEEK_OFF                      = 0x2a
 ++	SO_PEERCRED                      = 0x11
 ++	SO_PEERNAME                      = 0x1c
 ++	SO_PEERSEC                       = 0x1f
 ++	SO_PRIORITY                      = 0xc
 ++	SO_PROTOCOL                      = 0x26
 ++	SO_RCVBUF                        = 0x8
 ++	SO_RCVBUFFORCE                   = 0x21
 ++	SO_RCVLOWAT                      = 0x12
 ++	SO_RCVTIMEO                      = 0x14
 ++	SO_REUSEADDR                     = 0x2
 ++	SO_REUSEPORT                     = 0xf
 ++	SO_RXQ_OVFL                      = 0x28
 ++	SO_SECURITY_AUTHENTICATION       = 0x16
 ++	SO_SECURITY_ENCRYPTION_NETWORK   = 0x18
 ++	SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
 ++	SO_SELECT_ERR_QUEUE              = 0x2d
 ++	SO_SNDBUF                        = 0x7
 ++	SO_SNDBUFFORCE                   = 0x20
 ++	SO_SNDLOWAT                      = 0x13
 ++	SO_SNDTIMEO                      = 0x15
 ++	SO_TIMESTAMP                     = 0x1d
 ++	SO_TIMESTAMPING                  = 0x25
 ++	SO_TIMESTAMPNS                   = 0x23
 ++	SO_TYPE                          = 0x3
 ++	SO_WIFI_STATUS                   = 0x29
 ++	S_BLKSIZE                        = 0x200
 ++	S_IEXEC                          = 0x40
 ++	S_IFBLK                          = 0x6000
 ++	S_IFCHR                          = 0x2000
 ++	S_IFDIR                          = 0x4000
 ++	S_IFIFO                          = 0x1000
 ++	S_IFLNK                          = 0xa000
 ++	S_IFMT                           = 0xf000
 ++	S_IFREG                          = 0x8000
 ++	S_IFSOCK                         = 0xc000
 ++	S_IREAD                          = 0x100
 ++	S_IRGRP                          = 0x20
 ++	S_IROTH                          = 0x4
 ++	S_IRUSR                          = 0x100
 ++	S_IRWXG                          = 0x38
 ++	S_IRWXO                          = 0x7
 ++	S_IRWXU                          = 0x1c0
 ++	S_ISGID                          = 0x400
 ++	S_ISUID                          = 0x800
 ++	S_ISVTX                          = 0x200
 ++	S_IWGRP                          = 0x10
 ++	S_IWOTH                          = 0x2
 ++	S_IWRITE                         = 0x80
 ++	S_IWUSR                          = 0x80
 ++	S_IXGRP                          = 0x8
 ++	S_IXOTH                          = 0x1
 ++	S_IXUSR                          = 0x40
 ++	TCFLSH                           = 0x540b
 ++	TCIFLUSH                         = 0x0
 ++	TCIOFLUSH                        = 0x2
 ++	TCOFLUSH                         = 0x1
 ++	TCP_CONGESTION                   = 0xd
 ++	TCP_CORK                         = 0x3
 ++	TCP_DEFER_ACCEPT                 = 0x9
 ++	TCP_INFO                         = 0xb
 ++	TCP_KEEPCNT                      = 0x6
 ++	TCP_KEEPIDLE                     = 0x4
 ++	TCP_KEEPINTVL                    = 0x5
 ++	TCP_LINGER2                      = 0x8
 ++	TCP_MAXSEG                       = 0x2
 ++	TCP_MAXWIN                       = 0xffff
 ++	TCP_MAX_WINSHIFT                 = 0xe
 ++	TCP_MD5SIG                       = 0xe
 ++	TCP_MD5SIG_MAXKEYLEN             = 0x50
 ++	TCP_MSS                          = 0x200
 ++	TCP_NODELAY                      = 0x1
 ++	TCP_QUICKACK                     = 0xc
 ++	TCP_SYNCNT                       = 0x7
 ++	TCP_WINDOW_CLAMP                 = 0xa
 ++	TCSAFLUSH                        = 0x2
 ++	TIOCCBRK                         = 0x5428
 ++	TIOCCONS                         = 0x541d
 ++	TIOCEXCL                         = 0x540c
 ++	TIOCGDEV                         = 0x80045432
 ++	TIOCGETD                         = 0x5424
 ++	TIOCGEXCL                        = 0x80045440
 ++	TIOCGICOUNT                      = 0x545d
 ++	TIOCGLCKTRMIOS                   = 0x5456
 ++	TIOCGPGRP                        = 0x540f
 ++	TIOCGPKT                         = 0x80045438
 ++	TIOCGPTLCK                       = 0x80045439
 ++	TIOCGPTN                         = 0x80045430
 ++	TIOCGRS485                       = 0x542e
 ++	TIOCGSERIAL                      = 0x541e
 ++	TIOCGSID                         = 0x5429
 ++	TIOCGSOFTCAR                     = 0x5419
 ++	TIOCGWINSZ                       = 0x5413
 ++	TIOCINQ                          = 0x541b
 ++	TIOCLINUX                        = 0x541c
 ++	TIOCMBIC                         = 0x5417
 ++	TIOCMBIS                         = 0x5416
 ++	TIOCMGET                         = 0x5415
 ++	TIOCMIWAIT                       = 0x545c
 ++	TIOCMSET                         = 0x5418
 ++	TIOCM_CAR                        = 0x40
 ++	TIOCM_CD                         = 0x40
 ++	TIOCM_CTS                        = 0x20
 ++	TIOCM_DSR                        = 0x100
 ++	TIOCM_DTR                        = 0x2
 ++	TIOCM_LE                         = 0x1
 ++	TIOCM_RI                         = 0x80
 ++	TIOCM_RNG                        = 0x80
 ++	TIOCM_RTS                        = 0x4
 ++	TIOCM_SR                         = 0x10
 ++	TIOCM_ST                         = 0x8
 ++	TIOCNOTTY                        = 0x5422
 ++	TIOCNXCL                         = 0x540d
 ++	TIOCOUTQ                         = 0x5411
 ++	TIOCPKT                          = 0x5420
 ++	TIOCPKT_DATA                     = 0x0
 ++	TIOCPKT_DOSTOP                   = 0x20
 ++	TIOCPKT_FLUSHREAD                = 0x1
 ++	TIOCPKT_FLUSHWRITE               = 0x2
 ++	TIOCPKT_IOCTL                    = 0x40
 ++	TIOCPKT_NOSTOP                   = 0x10
 ++	TIOCPKT_START                    = 0x8
 ++	TIOCPKT_STOP                     = 0x4
 ++	TIOCSBRK                         = 0x5427
 ++	TIOCSCTTY                        = 0x540e
 ++	TIOCSERCONFIG                    = 0x5453
 ++	TIOCSERGETLSR                    = 0x5459
 ++	TIOCSERGETMULTI                  = 0x545a
 ++	TIOCSERGSTRUCT                   = 0x5458
 ++	TIOCSERGWILD                     = 0x5454
 ++	TIOCSERSETMULTI                  = 0x545b
 ++	TIOCSERSWILD                     = 0x5455
 ++	TIOCSER_TEMT                     = 0x1
 ++	TIOCSETD                         = 0x5423
 ++	TIOCSIG                          = 0x40045436
 ++	TIOCSLCKTRMIOS                   = 0x5457
 ++	TIOCSPGRP                        = 0x5410
 ++	TIOCSPTLCK                       = 0x40045431
 ++	TIOCSRS485                       = 0x542f
 ++	TIOCSSERIAL                      = 0x541f
 ++	TIOCSSOFTCAR                     = 0x541a
 ++	TIOCSTI                          = 0x5412
 ++	TIOCSWINSZ                       = 0x5414
 ++	TIOCVHANGUP                      = 0x5437
 ++	TOSTOP                           = 0x100
 ++	TUNATTACHFILTER                  = 0x401054d5
 ++	TUNDETACHFILTER                  = 0x401054d6
 ++	TUNGETFEATURES                   = 0x800454cf
 ++	TUNGETIFF                        = 0x800454d2
 ++	TUNGETSNDBUF                     = 0x800454d3
 ++	TUNGETVNETHDRSZ                  = 0x800454d7
 ++	TUNSETDEBUG                      = 0x400454c9
 ++	TUNSETGROUP                      = 0x400454ce
 ++	TUNSETIFF                        = 0x400454ca
 ++	TUNSETLINK                       = 0x400454cd
 ++	TUNSETNOCSUM                     = 0x400454c8
 ++	TUNSETOFFLOAD                    = 0x400454d0
 ++	TUNSETOWNER                      = 0x400454cc
 ++	TUNSETPERSIST                    = 0x400454cb
 ++	TUNSETQUEUE                      = 0x400454d9
 ++	TUNSETSNDBUF                     = 0x400454d4
 ++	TUNSETTXFILTER                   = 0x400454d1
 ++	TUNSETVNETHDRSZ                  = 0x400454d8
 ++	VDISCARD                         = 0xd
 ++	VEOF                             = 0x4
 ++	VEOL                             = 0xb
 ++	VEOL2                            = 0x10
 ++	VERASE                           = 0x2
 ++	VINTR                            = 0x0
 ++	VKILL                            = 0x3
 ++	VLNEXT                           = 0xf
 ++	VMIN                             = 0x6
 ++	VQUIT                            = 0x1
 ++	VREPRINT                         = 0xc
 ++	VSTART                           = 0x8
 ++	VSTOP                            = 0x9
 ++	VSUSP                            = 0xa
 ++	VSWTC                            = 0x7
 ++	VT0                              = 0x0
 ++	VT1                              = 0x4000
 ++	VTDLY                            = 0x4000
 ++	VTIME                            = 0x5
 ++	VWERASE                          = 0xe
 ++	WALL                             = 0x40000000
 ++	WCLONE                           = 0x80000000
 ++	WCONTINUED                       = 0x8
 ++	WEXITED                          = 0x4
 ++	WNOHANG                          = 0x1
 ++	WNOTHREAD                        = 0x20000000
 ++	WNOWAIT                          = 0x1000000
 ++	WORDSIZE                         = 0x40
 ++	WSTOPPED                         = 0x2
 ++	WUNTRACED                        = 0x2
 ++)
 ++
 ++// Errors
 ++const (
 ++	E2BIG           = Errno(0x7)
 ++	EACCES          = Errno(0xd)
 ++	EADDRINUSE      = Errno(0x62)
 ++	EADDRNOTAVAIL   = Errno(0x63)
 ++	EADV            = Errno(0x44)
 ++	EAFNOSUPPORT    = Errno(0x61)
 ++	EAGAIN          = Errno(0xb)
 ++	EALREADY        = Errno(0x72)
 ++	EBADE           = Errno(0x34)
 ++	EBADF           = Errno(0x9)
 ++	EBADFD          = Errno(0x4d)
 ++	EBADMSG         = Errno(0x4a)
 ++	EBADR           = Errno(0x35)
 ++	EBADRQC         = Errno(0x38)
 ++	EBADSLT         = Errno(0x39)
 ++	EBFONT          = Errno(0x3b)
 ++	EBUSY           = Errno(0x10)
 ++	ECANCELED       = Errno(0x7d)
 ++	ECHILD          = Errno(0xa)
 ++	ECHRNG          = Errno(0x2c)
 ++	ECOMM           = Errno(0x46)
 ++	ECONNABORTED    = Errno(0x67)
 ++	ECONNREFUSED    = Errno(0x6f)
 ++	ECONNRESET      = Errno(0x68)
 ++	EDEADLK         = Errno(0x23)
 ++	EDEADLOCK       = Errno(0x23)
 ++	EDESTADDRREQ    = Errno(0x59)
 ++	EDOM            = Errno(0x21)
 ++	EDOTDOT         = Errno(0x49)
 ++	EDQUOT          = Errno(0x7a)
 ++	EEXIST          = Errno(0x11)
 ++	EFAULT          = Errno(0xe)
 ++	EFBIG           = Errno(0x1b)
 ++	EHOSTDOWN       = Errno(0x70)
 ++	EHOSTUNREACH    = Errno(0x71)
 ++	EHWPOISON       = Errno(0x85)
 ++	EIDRM           = Errno(0x2b)
 ++	EILSEQ          = Errno(0x54)
 ++	EINPROGRESS     = Errno(0x73)
 ++	EINTR           = Errno(0x4)
 ++	EINVAL          = Errno(0x16)
 ++	EIO             = Errno(0x5)
 ++	EISCONN         = Errno(0x6a)
 ++	EISDIR          = Errno(0x15)
 ++	EISNAM          = Errno(0x78)
 ++	EKEYEXPIRED     = Errno(0x7f)
 ++	EKEYREJECTED    = Errno(0x81)
 ++	EKEYREVOKED     = Errno(0x80)
 ++	EL2HLT          = Errno(0x33)
 ++	EL2NSYNC        = Errno(0x2d)
 ++	EL3HLT          = Errno(0x2e)
 ++	EL3RST          = Errno(0x2f)
 ++	ELIBACC         = Errno(0x4f)
 ++	ELIBBAD         = Errno(0x50)
 ++	ELIBEXEC        = Errno(0x53)
 ++	ELIBMAX         = Errno(0x52)
 ++	ELIBSCN         = Errno(0x51)
 ++	ELNRNG          = Errno(0x30)
 ++	ELOOP           = Errno(0x28)
 ++	EMEDIUMTYPE     = Errno(0x7c)
 ++	EMFILE          = Errno(0x18)
 ++	EMLINK          = Errno(0x1f)
 ++	EMSGSIZE        = Errno(0x5a)
 ++	EMULTIHOP       = Errno(0x48)
 ++	ENAMETOOLONG    = Errno(0x24)
 ++	ENAVAIL         = Errno(0x77)
 ++	ENETDOWN        = Errno(0x64)
 ++	ENETRESET       = Errno(0x66)
 ++	ENETUNREACH     = Errno(0x65)
 ++	ENFILE          = Errno(0x17)
 ++	ENOANO          = Errno(0x37)
 ++	ENOBUFS         = Errno(0x69)
 ++	ENOCSI          = Errno(0x32)
 ++	ENODATA         = Errno(0x3d)
 ++	ENODEV          = Errno(0x13)
 ++	ENOENT          = Errno(0x2)
 ++	ENOEXEC         = Errno(0x8)
 ++	ENOKEY          = Errno(0x7e)
 ++	ENOLCK          = Errno(0x25)
 ++	ENOLINK         = Errno(0x43)
 ++	ENOMEDIUM       = Errno(0x7b)
 ++	ENOMEM          = Errno(0xc)
 ++	ENOMSG          = Errno(0x2a)
 ++	ENONET          = Errno(0x40)
 ++	ENOPKG          = Errno(0x41)
 ++	ENOPROTOOPT     = Errno(0x5c)
 ++	ENOSPC          = Errno(0x1c)
 ++	ENOSR           = Errno(0x3f)
 ++	ENOSTR          = Errno(0x3c)
 ++	ENOSYS          = Errno(0x26)
 ++	ENOTBLK         = Errno(0xf)
 ++	ENOTCONN        = Errno(0x6b)
 ++	ENOTDIR         = Errno(0x14)
 ++	ENOTEMPTY       = Errno(0x27)
 ++	ENOTNAM         = Errno(0x76)
 ++	ENOTRECOVERABLE = Errno(0x83)
 ++	ENOTSOCK        = Errno(0x58)
 ++	ENOTSUP         = Errno(0x5f)
 ++	ENOTTY          = Errno(0x19)
 ++	ENOTUNIQ        = Errno(0x4c)
 ++	ENXIO           = Errno(0x6)
 ++	EOPNOTSUPP      = Errno(0x5f)
 ++	EOVERFLOW       = Errno(0x4b)
 ++	EOWNERDEAD      = Errno(0x82)
 ++	EPERM           = Errno(0x1)
 ++	EPFNOSUPPORT    = Errno(0x60)
 ++	EPIPE           = Errno(0x20)
 ++	EPROTO          = Errno(0x47)
 ++	EPROTONOSUPPORT = Errno(0x5d)
 ++	EPROTOTYPE      = Errno(0x5b)
 ++	ERANGE          = Errno(0x22)
 ++	EREMCHG         = Errno(0x4e)
 ++	EREMOTE         = Errno(0x42)
 ++	EREMOTEIO       = Errno(0x79)
 ++	ERESTART        = Errno(0x55)
 ++	ERFKILL         = Errno(0x84)
 ++	EROFS           = Errno(0x1e)
 ++	ESHUTDOWN       = Errno(0x6c)
 ++	ESOCKTNOSUPPORT = Errno(0x5e)
 ++	ESPIPE          = Errno(0x1d)
 ++	ESRCH           = Errno(0x3)
 ++	ESRMNT          = Errno(0x45)
 ++	ESTALE          = Errno(0x74)
 ++	ESTRPIPE        = Errno(0x56)
 ++	ETIME           = Errno(0x3e)
 ++	ETIMEDOUT       = Errno(0x6e)
 ++	ETOOMANYREFS    = Errno(0x6d)
 ++	ETXTBSY         = Errno(0x1a)
 ++	EUCLEAN         = Errno(0x75)
 ++	EUNATCH         = Errno(0x31)
 ++	EUSERS          = Errno(0x57)
 ++	EWOULDBLOCK     = Errno(0xb)
 ++	EXDEV           = Errno(0x12)
 ++	EXFULL          = Errno(0x36)
 ++)
 ++
 ++// Signals
 ++const (
 ++	SIGABRT   = Signal(0x6)
 ++	SIGALRM   = Signal(0xe)
 ++	SIGBUS    = Signal(0x7)
 ++	SIGCHLD   = Signal(0x11)
 ++	SIGCLD    = Signal(0x11)
 ++	SIGCONT   = Signal(0x12)
 ++	SIGFPE    = Signal(0x8)
 ++	SIGHUP    = Signal(0x1)
 ++	SIGILL    = Signal(0x4)
 ++	SIGINT    = Signal(0x2)
 ++	SIGIO     = Signal(0x1d)
 ++	SIGIOT    = Signal(0x6)
 ++	SIGKILL   = Signal(0x9)
 ++	SIGPIPE   = Signal(0xd)
 ++	SIGPOLL   = Signal(0x1d)
 ++	SIGPROF   = Signal(0x1b)
 ++	SIGPWR    = Signal(0x1e)
 ++	SIGQUIT   = Signal(0x3)
 ++	SIGSEGV   = Signal(0xb)
 ++	SIGSTKFLT = Signal(0x10)
 ++	SIGSTOP   = Signal(0x13)
 ++	SIGSYS    = Signal(0x1f)
 ++	SIGTERM   = Signal(0xf)
 ++	SIGTRAP   = Signal(0x5)
 ++	SIGTSTP   = Signal(0x14)
 ++	SIGTTIN   = Signal(0x15)
 ++	SIGTTOU   = Signal(0x16)
 ++	SIGUNUSED = Signal(0x1f)
 ++	SIGURG    = Signal(0x17)
 ++	SIGUSR1   = Signal(0xa)
 ++	SIGUSR2   = Signal(0xc)
 ++	SIGVTALRM = Signal(0x1a)
 ++	SIGWINCH  = Signal(0x1c)
 ++	SIGXCPU   = Signal(0x18)
 ++	SIGXFSZ   = Signal(0x19)
 ++)
 ++
 ++// Error table
 ++var errors = [...]string{
 ++	1:   "operation not permitted",
 ++	2:   "no such file or directory",
 ++	3:   "no such process",
 ++	4:   "interrupted system call",
 ++	5:   "input/output error",
 ++	6:   "no such device or address",
 ++	7:   "argument list too long",
 ++	8:   "exec format error",
 ++	9:   "bad file descriptor",
 ++	10:  "no child processes",
 ++	11:  "resource temporarily unavailable",
 ++	12:  "cannot allocate memory",
 ++	13:  "permission denied",
 ++	14:  "bad address",
 ++	15:  "block device required",
 ++	16:  "device or resource busy",
 ++	17:  "file exists",
 ++	18:  "invalid cross-device link",
 ++	19:  "no such device",
 ++	20:  "not a directory",
 ++	21:  "is a directory",
 ++	22:  "invalid argument",
 ++	23:  "too many open files in system",
 ++	24:  "too many open files",
 ++	25:  "inappropriate ioctl for device",
 ++	26:  "text file busy",
 ++	27:  "file too large",
 ++	28:  "no space left on device",
 ++	29:  "illegal seek",
 ++	30:  "read-only file system",
 ++	31:  "too many links",
 ++	32:  "broken pipe",
 ++	33:  "numerical argument out of domain",
 ++	34:  "numerical result out of range",
 ++	35:  "resource deadlock avoided",
 ++	36:  "file name too long",
 ++	37:  "no locks available",
 ++	38:  "function not implemented",
 ++	39:  "directory not empty",
 ++	40:  "too many levels of symbolic links",
 ++	42:  "no message of desired type",
 ++	43:  "identifier removed",
 ++	44:  "channel number out of range",
 ++	45:  "level 2 not synchronized",
 ++	46:  "level 3 halted",
 ++	47:  "level 3 reset",
 ++	48:  "link number out of range",
 ++	49:  "protocol driver not attached",
 ++	50:  "no CSI structure available",
 ++	51:  "level 2 halted",
 ++	52:  "invalid exchange",
 ++	53:  "invalid request descriptor",
 ++	54:  "exchange full",
 ++	55:  "no anode",
 ++	56:  "invalid request code",
 ++	57:  "invalid slot",
 ++	59:  "bad font file format",
 ++	60:  "device not a stream",
 ++	61:  "no data available",
 ++	62:  "timer expired",
 ++	63:  "out of streams resources",
 ++	64:  "machine is not on the network",
 ++	65:  "package not installed",
 ++	66:  "object is remote",
 ++	67:  "link has been severed",
 ++	68:  "advertise error",
 ++	69:  "srmount error",
 ++	70:  "communication error on send",
 ++	71:  "protocol error",
 ++	72:  "multihop attempted",
 ++	73:  "RFS specific error",
 ++	74:  "bad message",
 ++	75:  "value too large for defined data type",
 ++	76:  "name not unique on network",
 ++	77:  "file descriptor in bad state",
 ++	78:  "remote address changed",
 ++	79:  "can not access a needed shared library",
 ++	80:  "accessing a corrupted shared library",
 ++	81:  ".lib section in a.out corrupted",
 ++	82:  "attempting to link in too many shared libraries",
 ++	83:  "cannot exec a shared library directly",
 ++	84:  "invalid or incomplete multibyte or wide character",
 ++	85:  "interrupted system call should be restarted",
 ++	86:  "streams pipe error",
 ++	87:  "too many users",
 ++	88:  "socket operation on non-socket",
 ++	89:  "destination address required",
 ++	90:  "message too long",
 ++	91:  "protocol wrong type for socket",
 ++	92:  "protocol not available",
 ++	93:  "protocol not supported",
 ++	94:  "socket type not supported",
 ++	95:  "operation not supported",
 ++	96:  "protocol family not supported",
 ++	97:  "address family not supported by protocol",
 ++	98:  "address already in use",
 ++	99:  "cannot assign requested address",
 ++	100: "network is down",
 ++	101: "network is unreachable",
 ++	102: "network dropped connection on reset",
 ++	103: "software caused connection abort",
 ++	104: "connection reset by peer",
 ++	105: "no buffer space available",
 ++	106: "transport endpoint is already connected",
 ++	107: "transport endpoint is not connected",
 ++	108: "cannot send after transport endpoint shutdown",
 ++	109: "too many references: cannot splice",
 ++	110: "connection timed out",
 ++	111: "connection refused",
 ++	112: "host is down",
 ++	113: "no route to host",
 ++	114: "operation already in progress",
 ++	115: "operation now in progress",
 ++	116: "stale file handle",
 ++	117: "structure needs cleaning",
 ++	118: "not a XENIX named type file",
 ++	119: "no XENIX semaphores available",
 ++	120: "is a named type file",
 ++	121: "remote I/O error",
 ++	122: "disk quota exceeded",
 ++	123: "no medium found",
 ++	124: "wrong medium type",
 ++	125: "operation canceled",
 ++	126: "required key not available",
 ++	127: "key has expired",
 ++	128: "key has been revoked",
 ++	129: "key was rejected by service",
 ++	130: "owner died",
 ++	131: "state not recoverable",
 ++	132: "operation not possible due to RF-kill",
 ++	133: "memory page has hardware error",
 ++}
 ++
 ++// Signal table
 ++var signals = [...]string{
 ++	1:  "hangup",
 ++	2:  "interrupt",
 ++	3:  "quit",
 ++	4:  "illegal instruction",
 ++	5:  "trace/breakpoint trap",
 ++	6:  "aborted",
 ++	7:  "bus error",
 ++	8:  "floating point exception",
 ++	9:  "killed",
 ++	10: "user defined signal 1",
 ++	11: "segmentation fault",
 ++	12: "user defined signal 2",
 ++	13: "broken pipe",
 ++	14: "alarm clock",
 ++	15: "terminated",
 ++	16: "stack fault",
 ++	17: "child exited",
 ++	18: "continued",
 ++	19: "stopped (signal)",
 ++	20: "stopped",
 ++	21: "stopped (tty input)",
 ++	22: "stopped (tty output)",
 ++	23: "urgent I/O condition",
 ++	24: "CPU time limit exceeded",
 ++	25: "file size limit exceeded",
 ++	26: "virtual timer expired",
 ++	27: "profiling timer expired",
 ++	28: "window changed",
 ++	29: "I/O possible",
 ++	30: "power failure",
 ++	31: "bad system call",
 ++}
 +diff --git a/src/syscall/zsyscall_linux_s390x.go b/src/syscall/zsyscall_linux_s390x.go
 +new file mode 100644
 +index 0000000..d103c57
 +--- /dev/null
 ++++ b/src/syscall/zsyscall_linux_s390x.go
 +@@ -0,0 +1,1578 @@
 ++// mksyscall.pl syscall_linux.go syscall_linux_s390x.go
 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 ++
 ++// +build s390x,linux
 ++
 ++package syscall
 ++
 ++import "unsafe"
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(oldpath)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(newpath)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	fd = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 unsafe.Pointer
 ++	if len(buf) > 0 {
 ++		_p1 = unsafe.Pointer(&buf[0])
 ++	} else {
 ++		_p1 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(oldpath)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(newpath)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func unlinkat(dirfd int, path string, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func utimes(path string, times *[2]Timeval) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func utimensat(dirfd int, path string, times *[2]Timespec) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
 ++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getcwd(buf []byte) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(buf) > 0 {
 ++		_p0 = unsafe.Pointer(&buf[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
 ++	r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
 ++	wpid = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
 ++	_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(arg)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(source)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(target)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p2 *byte
 ++	_p2, err = BytePtrFromString(fstype)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	use(unsafe.Pointer(_p2))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Acct(path string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Adjtimex(buf *Timex) (state int, err error) {
 ++	r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
 ++	state = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Chdir(path string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Chroot(path string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Close(fd int) (err error) {
 ++	_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Dup(oldfd int) (fd int, err error) {
 ++	r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
 ++	fd = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Dup3(oldfd int, newfd int, flags int) (err error) {
 ++	_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func EpollCreate(size int) (fd int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
 ++	fd = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func EpollCreate1(flag int) (fd int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
 ++	fd = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
 ++	_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(events) > 0 {
 ++		_p0 = unsafe.Pointer(&events[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Exit(code int) {
 ++	Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
 ++	_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fchdir(fd int) (err error) {
 ++	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fchmod(fd int, mode uint32) (err error) {
 ++	_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func fcntl(fd int, cmd int, arg int) (val int, err error) {
 ++	r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
 ++	val = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fdatasync(fd int) (err error) {
 ++	_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Flock(fd int, how int) (err error) {
 ++	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fsync(fd int) (err error) {
 ++	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getdents(fd int, buf []byte) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(buf) > 0 {
 ++		_p0 = unsafe.Pointer(&buf[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getpgid(pid int) (pgid int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
 ++	pgid = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getpid() (pid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
 ++	pid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getppid() (ppid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
 ++	ppid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getpriority(which int, who int) (prio int, err error) {
 ++	r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
 ++	prio = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getrusage(who int, rusage *Rusage) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Gettid() (tid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
 ++	tid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(attr)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p2 unsafe.Pointer
 ++	if len(dest) > 0 {
 ++		_p2 = unsafe.Pointer(&dest[0])
 ++	} else {
 ++		_p2 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	sz = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(pathname)
 ++	if err != nil {
 ++		return
 ++	}
 ++	r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
 ++	use(unsafe.Pointer(_p0))
 ++	watchdesc = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func InotifyInit1(flags int) (fd int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
 ++	fd = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
 ++	success = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Kill(pid int, sig Signal) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Klogctl(typ int, buf []byte) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(buf) > 0 {
 ++		_p0 = unsafe.Pointer(&buf[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Listxattr(path string, dest []byte) (sz int, err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 unsafe.Pointer
 ++	if len(dest) > 0 {
 ++		_p1 = unsafe.Pointer(&dest[0])
 ++	} else {
 ++		_p1 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
 ++	use(unsafe.Pointer(_p0))
 ++	sz = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
 ++	_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Pause() (err error) {
 ++	_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func PivotRoot(newroot string, putold string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(newroot)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(putold)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) {
 ++	_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func read(fd int, p []byte) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(p) > 0 {
 ++		_p0 = unsafe.Pointer(&p[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Removexattr(path string, attr string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(attr)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(oldpath)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(newpath)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setdomainname(p []byte) (err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(p) > 0 {
 ++		_p0 = unsafe.Pointer(&p[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Sethostname(p []byte) (err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(p) > 0 {
 ++		_p0 = unsafe.Pointer(&p[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setpgid(pid int, pgid int) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setsid() (pid int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
 ++	pid = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Settimeofday(tv *Timeval) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setpriority(which int, who int, prio int) (err error) {
 ++	_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p1 *byte
 ++	_p1, err = BytePtrFromString(attr)
 ++	if err != nil {
 ++		return
 ++	}
 ++	var _p2 unsafe.Pointer
 ++	if len(data) > 0 {
 ++		_p2 = unsafe.Pointer(&data[0])
 ++	} else {
 ++		_p2 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	use(unsafe.Pointer(_p1))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Sync() {
 ++	Syscall(SYS_SYNC, 0, 0, 0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Sysinfo(info *Sysinfo_t) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
 ++	r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
 ++	n = int64(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Tgkill(tgid int, tid int, sig Signal) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Times(tms *Tms) (ticks uintptr, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
 ++	ticks = uintptr(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Umask(mask int) (oldmask int) {
 ++	r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
 ++	oldmask = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Uname(buf *Utsname) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Unmount(target string, flags int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(target)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Unshare(flags int) (err error) {
 ++	_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Ustat(dev int, ubuf *Ustat_t) (err error) {
 ++	_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Utime(path string, buf *Utimbuf) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func write(fd int, p []byte) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(p) > 0 {
 ++		_p0 = unsafe.Pointer(&p[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func exitThread(code int) (err error) {
 ++	_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func readlen(fd int, p *byte, np int) (n int, err error) {
 ++	r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func writelen(fd int, p *byte, np int) (n int, err error) {
 ++	r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func munmap(addr uintptr, length uintptr) (err error) {
 ++	_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Madvise(b []byte, advice int) (err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(b) > 0 {
 ++		_p0 = unsafe.Pointer(&b[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Mprotect(b []byte, prot int) (err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(b) > 0 {
 ++		_p0 = unsafe.Pointer(&b[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Mlock(b []byte) (err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(b) > 0 {
 ++		_p0 = unsafe.Pointer(&b[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Munlock(b []byte) (err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(b) > 0 {
 ++		_p0 = unsafe.Pointer(&b[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Mlockall(flags int) (err error) {
 ++	_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Munlockall() (err error) {
 ++	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Dup2(oldfd int, newfd int) (err error) {
 ++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fchown(fd int, uid int, gid int) (err error) {
 ++	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fstat(fd int, stat *Stat_t) (err error) {
 ++	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Fstatfs(fd int, buf *Statfs_t) (err error) {
 ++	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Ftruncate(fd int, length int64) (err error) {
 ++	_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getegid() (egid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
 ++	egid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Geteuid() (euid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
 ++	euid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getgid() (gid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
 ++	gid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getrlimit(resource int, rlim *Rlimit) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Getuid() (uid int) {
 ++	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
 ++	uid = int(r0)
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func InotifyInit() (fd int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
 ++	fd = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Lchown(path string, uid int, gid int) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Lstat(path string, stat *Stat_t) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Pread(fd int, p []byte, offset int64) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(p) > 0 {
 ++		_p0 = unsafe.Pointer(&p[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
 ++	var _p0 unsafe.Pointer
 ++	if len(p) > 0 {
 ++		_p0 = unsafe.Pointer(&p[0])
 ++	} else {
 ++		_p0 = unsafe.Pointer(&_zero)
 ++	}
 ++	r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Seek(fd int, offset int64, whence int) (off int64, err error) {
 ++	r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
 ++	off = int64(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
 ++	r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
 ++	n = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
 ++	r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
 ++	written = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setfsgid(gid int) (err error) {
 ++	_, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setfsuid(uid int) (err error) {
 ++	_, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setregid(rgid int, egid int) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setresgid(rgid int, egid int, sgid int) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setresuid(ruid int, euid int, suid int) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setrlimit(resource int, rlim *Rlimit) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Setreuid(ruid int, euid int) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
 ++	r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
 ++	n = int64(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Stat(path string, stat *Stat_t) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Statfs(path string, buf *Statfs_t) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
 ++	_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Truncate(path string, length int64) (err error) {
 ++	var _p0 *byte
 ++	_p0, err = BytePtrFromString(path)
 ++	if err != nil {
 ++		return
 ++	}
 ++	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
 ++	use(unsafe.Pointer(_p0))
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func getgroups(n int, list *_Gid_t) (nn int, err error) {
 ++	r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
 ++	nn = int(r0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func setgroups(n int, list *_Gid_t) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func Gettimeofday(tv *Timeval) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 ++
 ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 ++
 ++func pipe2(p *[2]_C_int, flags int) (err error) {
 ++	_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
 ++	if e1 != 0 {
 ++		err = errnoErr(e1)
 ++	}
 ++	return
 ++}
 +diff --git a/src/syscall/zsysnum_linux_s390x.go b/src/syscall/zsysnum_linux_s390x.go
 +new file mode 100644
 +index 0000000..90e6b2f
 +--- /dev/null
 ++++ b/src/syscall/zsysnum_linux_s390x.go
 +@@ -0,0 +1,293 @@
 ++// mksysnum_linux.pl /usr/include/asm/unistd.h
 ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
 ++
 ++// +build s390x,linux
 ++
 ++package syscall
 ++
 ++const (
 ++	SYS_EXIT                   = 1
 ++	SYS_FORK                   = 2
 ++	SYS_READ                   = 3
 ++	SYS_WRITE                  = 4
 ++	SYS_OPEN                   = 5
 ++	SYS_CLOSE                  = 6
 ++	SYS_RESTART_SYSCALL        = 7
 ++	SYS_CREAT                  = 8
 ++	SYS_LINK                   = 9
 ++	SYS_UNLINK                 = 10
 ++	SYS_EXECVE                 = 11
 ++	SYS_CHDIR                  = 12
 ++	SYS_MKNOD                  = 14
 ++	SYS_CHMOD                  = 15
 ++	SYS_LSEEK                  = 19
 ++	SYS_GETPID                 = 20
 ++	SYS_MOUNT                  = 21
 ++	SYS_UMOUNT                 = 22
 ++	SYS_PTRACE                 = 26
 ++	SYS_ALARM                  = 27
 ++	SYS_PAUSE                  = 29
 ++	SYS_UTIME                  = 30
 ++	SYS_ACCESS                 = 33
 ++	SYS_NICE                   = 34
 ++	SYS_SYNC                   = 36
 ++	SYS_KILL                   = 37
 ++	SYS_RENAME                 = 38
 ++	SYS_MKDIR                  = 39
 ++	SYS_RMDIR                  = 40
 ++	SYS_DUP                    = 41
 ++	SYS_PIPE                   = 42
 ++	SYS_TIMES                  = 43
 ++	SYS_BRK                    = 45
 ++	SYS_SIGNAL                 = 48
 ++	SYS_ACCT                   = 51
 ++	SYS_UMOUNT2                = 52
 ++	SYS_IOCTL                  = 54
 ++	SYS_FCNTL                  = 55
 ++	SYS_SETPGID                = 57
 ++	SYS_UMASK                  = 60
 ++	SYS_CHROOT                 = 61
 ++	SYS_USTAT                  = 62
 ++	SYS_DUP2                   = 63
 ++	SYS_GETPPID                = 64
 ++	SYS_GETPGRP                = 65
 ++	SYS_SETSID                 = 66
 ++	SYS_SIGACTION              = 67
 ++	SYS_SIGSUSPEND             = 72
 ++	SYS_SIGPENDING             = 73
 ++	SYS_SETHOSTNAME            = 74
 ++	SYS_SETRLIMIT              = 75
 ++	SYS_GETRUSAGE              = 77
 ++	SYS_GETTIMEOFDAY           = 78
 ++	SYS_SETTIMEOFDAY           = 79
 ++	SYS_SYMLINK                = 83
 ++	SYS_READLINK               = 85
 ++	SYS_USELIB                 = 86
 ++	SYS_SWAPON                 = 87
 ++	SYS_REBOOT                 = 88
 ++	SYS_READDIR                = 89
 ++	SYS_MMAP                   = 90
 ++	SYS_MUNMAP                 = 91
 ++	SYS_TRUNCATE               = 92
 ++	SYS_FTRUNCATE              = 93
 ++	SYS_FCHMOD                 = 94
 ++	SYS_GETPRIORITY            = 96
 ++	SYS_SETPRIORITY            = 97
 ++	SYS_STATFS                 = 99
 ++	SYS_FSTATFS                = 100
 ++	SYS_SOCKETCALL             = 102
 ++	SYS_SYSLOG                 = 103
 ++	SYS_SETITIMER              = 104
 ++	SYS_GETITIMER              = 105
 ++	SYS_STAT                   = 106
 ++	SYS_LSTAT                  = 107
 ++	SYS_FSTAT                  = 108
 ++	SYS_LOOKUP_DCOOKIE         = 110
 ++	SYS_VHANGUP                = 111
 ++	SYS_IDLE                   = 112
 ++	SYS_WAIT4                  = 114
 ++	SYS_SWAPOFF                = 115
 ++	SYS_SYSINFO                = 116
 ++	SYS_IPC                    = 117
 ++	SYS_FSYNC                  = 118
 ++	SYS_SIGRETURN              = 119
 ++	SYS_CLONE                  = 120
 ++	SYS_SETDOMAINNAME          = 121
 ++	SYS_UNAME                  = 122
 ++	SYS_ADJTIMEX               = 124
 ++	SYS_MPROTECT               = 125
 ++	SYS_SIGPROCMASK            = 126
 ++	SYS_CREATE_MODULE          = 127
 ++	SYS_INIT_MODULE            = 128
 ++	SYS_DELETE_MODULE          = 129
 ++	SYS_GET_KERNEL_SYMS        = 130
 ++	SYS_QUOTACTL               = 131
 ++	SYS_GETPGID                = 132
 ++	SYS_FCHDIR                 = 133
 ++	SYS_BDFLUSH                = 134
 ++	SYS_SYSFS                  = 135
 ++	SYS_PERSONALITY            = 136
 ++	SYS_AFS_SYSCALL            = 137
 ++	SYS_GETDENTS               = 141
 ++	SYS_FLOCK                  = 143
 ++	SYS_MSYNC                  = 144
 ++	SYS_READV                  = 145
 ++	SYS_WRITEV                 = 146
 ++	SYS_GETSID                 = 147
 ++	SYS_FDATASYNC              = 148
 ++	SYS__SYSCTL                = 149
 ++	SYS_MLOCK                  = 150
 ++	SYS_MUNLOCK                = 151
 ++	SYS_MLOCKALL               = 152
 ++	SYS_MUNLOCKALL             = 153
 ++	SYS_SCHED_SETPARAM         = 154
 ++	SYS_SCHED_GETPARAM         = 155
 ++	SYS_SCHED_SETSCHEDULER     = 156
 ++	SYS_SCHED_GETSCHEDULER     = 157
 ++	SYS_SCHED_YIELD            = 158
 ++	SYS_SCHED_GET_PRIORITY_MAX = 159
 ++	SYS_SCHED_GET_PRIORITY_MIN = 160
 ++	SYS_SCHED_RR_GET_INTERVAL  = 161
 ++	SYS_NANOSLEEP              = 162
 ++	SYS_MREMAP                 = 163
 ++	SYS_QUERY_MODULE           = 167
 ++	SYS_POLL                   = 168
 ++	SYS_NFSSERVCTL             = 169
 ++	SYS_PRCTL                  = 172
 ++	SYS_RT_SIGRETURN           = 173
 ++	SYS_RT_SIGACTION           = 174
 ++	SYS_RT_SIGPROCMASK         = 175
 ++	SYS_RT_SIGPENDING          = 176
 ++	SYS_RT_SIGTIMEDWAIT        = 177
 ++	SYS_RT_SIGQUEUEINFO        = 178
 ++	SYS_RT_SIGSUSPEND          = 179
 ++	SYS_PREAD64                = 180
 ++	SYS_PWRITE64               = 181
 ++	SYS_GETCWD                 = 183
 ++	SYS_CAPGET                 = 184
 ++	SYS_CAPSET                 = 185
 ++	SYS_SIGALTSTACK            = 186
 ++	SYS_SENDFILE               = 187
 ++	SYS_GETPMSG                = 188
 ++	SYS_PUTPMSG                = 189
 ++	SYS_VFORK                  = 190
 ++	SYS_PIVOT_ROOT             = 217
 ++	SYS_MINCORE                = 218
 ++	SYS_MADVISE                = 219
 ++	SYS_GETDENTS64             = 220
 ++	SYS_READAHEAD              = 222
 ++	SYS_SETXATTR               = 224
 ++	SYS_LSETXATTR              = 225
 ++	SYS_FSETXATTR              = 226
 ++	SYS_GETXATTR               = 227
 ++	SYS_LGETXATTR              = 228
 ++	SYS_FGETXATTR              = 229
 ++	SYS_LISTXATTR              = 230
 ++	SYS_LLISTXATTR             = 231
 ++	SYS_FLISTXATTR             = 232
 ++	SYS_REMOVEXATTR            = 233
 ++	SYS_LREMOVEXATTR           = 234
 ++	SYS_FREMOVEXATTR           = 235
 ++	SYS_GETTID                 = 236
 ++	SYS_TKILL                  = 237
 ++	SYS_FUTEX                  = 238
 ++	SYS_SCHED_SETAFFINITY      = 239
 ++	SYS_SCHED_GETAFFINITY      = 240
 ++	SYS_TGKILL                 = 241
 ++	SYS_IO_SETUP               = 243
 ++	SYS_IO_DESTROY             = 244
 ++	SYS_IO_GETEVENTS           = 245
 ++	SYS_IO_SUBMIT              = 246
 ++	SYS_IO_CANCEL              = 247
 ++	SYS_EXIT_GROUP             = 248
 ++	SYS_EPOLL_CREATE           = 249
 ++	SYS_EPOLL_CTL              = 250
 ++	SYS_EPOLL_WAIT             = 251
 ++	SYS_SET_TID_ADDRESS        = 252
 ++	SYS_FADVISE64              = 253
 ++	SYS_TIMER_CREATE           = 254
 ++	SYS_TIMER_SETTIME          = 255
 ++	SYS_TIMER_GETTIME          = 256
 ++	SYS_TIMER_GETOVERRUN       = 257
 ++	SYS_TIMER_DELETE           = 258
 ++	SYS_CLOCK_SETTIME          = 259
 ++	SYS_CLOCK_GETTIME          = 260
 ++	SYS_CLOCK_GETRES           = 261
 ++	SYS_CLOCK_NANOSLEEP        = 262
 ++	SYS_STATFS64               = 265
 ++	SYS_FSTATFS64              = 266
 ++	SYS_REMAP_FILE_PAGES       = 267
 ++	SYS_MQ_OPEN                = 271
 ++	SYS_MQ_UNLINK              = 272
 ++	SYS_MQ_TIMEDSEND           = 273
 ++	SYS_MQ_TIMEDRECEIVE        = 274
 ++	SYS_MQ_NOTIFY              = 275
 ++	SYS_MQ_GETSETATTR          = 276
 ++	SYS_KEXEC_LOAD             = 277
 ++	SYS_ADD_KEY                = 278
 ++	SYS_REQUEST_KEY            = 279
 ++	SYS_KEYCTL                 = 280
 ++	SYS_WAITID                 = 281
 ++	SYS_IOPRIO_SET             = 282
 ++	SYS_IOPRIO_GET             = 283
 ++	SYS_INOTIFY_INIT           = 284
 ++	SYS_INOTIFY_ADD_WATCH      = 285
 ++	SYS_INOTIFY_RM_WATCH       = 286
 ++	SYS_OPENAT                 = 288
 ++	SYS_MKDIRAT                = 289
 ++	SYS_MKNODAT                = 290
 ++	SYS_FCHOWNAT               = 291
 ++	SYS_FUTIMESAT              = 292
 ++	SYS_UNLINKAT               = 294
 ++	SYS_RENAMEAT               = 295
 ++	SYS_LINKAT                 = 296
 ++	SYS_SYMLINKAT              = 297
 ++	SYS_READLINKAT             = 298
 ++	SYS_FCHMODAT               = 299
 ++	SYS_FACCESSAT              = 300
 ++	SYS_PSELECT6               = 301
 ++	SYS_PPOLL                  = 302
 ++	SYS_UNSHARE                = 303
 ++	SYS_SET_ROBUST_LIST        = 304
 ++	SYS_GET_ROBUST_LIST        = 305
 ++	SYS_SPLICE                 = 306
 ++	SYS_SYNC_FILE_RANGE        = 307
 ++	SYS_TEE                    = 308
 ++	SYS_VMSPLICE               = 309
 ++	SYS_GETCPU                 = 311
 ++	SYS_EPOLL_PWAIT            = 312
 ++	SYS_UTIMES                 = 313
 ++	SYS_FALLOCATE              = 314
 ++	SYS_UTIMENSAT              = 315
 ++	SYS_SIGNALFD               = 316
 ++	SYS_TIMERFD                = 317
 ++	SYS_EVENTFD                = 318
 ++	SYS_TIMERFD_CREATE         = 319
 ++	SYS_TIMERFD_SETTIME        = 320
 ++	SYS_TIMERFD_GETTIME        = 321
 ++	SYS_SIGNALFD4              = 322
 ++	SYS_EVENTFD2               = 323
 ++	SYS_INOTIFY_INIT1          = 324
 ++	SYS_PIPE2                  = 325
 ++	SYS_DUP3                   = 326
 ++	SYS_EPOLL_CREATE1          = 327
 ++	SYS_PREADV                 = 328
 ++	SYS_PWRITEV                = 329
 ++	SYS_RT_TGSIGQUEUEINFO      = 330
 ++	SYS_PERF_EVENT_OPEN        = 331
 ++	SYS_FANOTIFY_INIT          = 332
 ++	SYS_FANOTIFY_MARK          = 333
 ++	SYS_PRLIMIT64              = 334
 ++	SYS_NAME_TO_HANDLE_AT      = 335
 ++	SYS_OPEN_BY_HANDLE_AT      = 336
 ++	SYS_CLOCK_ADJTIME          = 337
 ++	SYS_SYNCFS                 = 338
 ++	SYS_SETNS                  = 339
 ++	SYS_PROCESS_VM_READV       = 340
 ++	SYS_PROCESS_VM_WRITEV      = 341
 ++	SYS_S390_RUNTIME_INSTR     = 342
 ++	SYS_KCMP                   = 343
 ++	SYS_FINIT_MODULE           = 344
 ++	SYS_SELECT                 = 142
 ++	SYS_GETRLIMIT              = 191
 ++	SYS_LCHOWN                 = 198
 ++	SYS_GETUID                 = 199
 ++	SYS_GETGID                 = 200
 ++	SYS_GETEUID                = 201
 ++	SYS_GETEGID                = 202
 ++	SYS_SETREUID               = 203
 ++	SYS_SETREGID               = 204
 ++	SYS_GETGROUPS              = 205
 ++	SYS_SETGROUPS              = 206
 ++	SYS_FCHOWN                 = 207
 ++	SYS_SETRESUID              = 208
 ++	SYS_GETRESUID              = 209
 ++	SYS_SETRESGID              = 210
 ++	SYS_GETRESGID              = 211
 ++	SYS_CHOWN                  = 212
 ++	SYS_SETUID                 = 213
 ++	SYS_SETGID                 = 214
 ++	SYS_SETFSUID               = 215
 ++	SYS_SETFSGID               = 216
 ++	SYS_NEWFSTATAT             = 293
 ++)
 +diff --git a/src/syscall/ztypes_linux_s390x.go b/src/syscall/ztypes_linux_s390x.go
 +new file mode 100644
 +index 0000000..87b86e2
 +--- /dev/null
 ++++ b/src/syscall/ztypes_linux_s390x.go
 +@@ -0,0 +1,623 @@
 ++// Created by cgo -godefs - DO NOT EDIT
 ++// cgo -godefs types_linux.go
 ++
 ++// +build s390x,linux
 ++
 ++package syscall
 ++
 ++const (
 ++	sizeofPtr      = 0x8
 ++	sizeofShort    = 0x2
 ++	sizeofInt      = 0x4
 ++	sizeofLong     = 0x8
 ++	sizeofLongLong = 0x8
 ++	PathMax        = 0x1000
 ++)
 ++
 ++type (
 ++	_C_short     int16
 ++	_C_int       int32
 ++	_C_long      int64
 ++	_C_long_long int64
 ++)
 ++
 ++type Timespec struct {
 ++	Sec  int64
 ++	Nsec int64
 ++}
 ++
 ++type Timeval struct {
 ++	Sec  int64
 ++	Usec int64
 ++}
 ++
 ++type Timex struct {
 ++	Modes     uint32
 ++	Pad_cgo_0 [4]byte
 ++	Offset    int64
 ++	Freq      int64
 ++	Maxerror  int64
 ++	Esterror  int64
 ++	Status    int32
 ++	Pad_cgo_1 [4]byte
 ++	Constant  int64
 ++	Precision int64
 ++	Tolerance int64
 ++	Time      Timeval
 ++	Tick      int64
 ++	Ppsfreq   int64
 ++	Jitter    int64
 ++	Shift     int32
 ++	Pad_cgo_2 [4]byte
 ++	Stabil    int64
 ++	Jitcnt    int64
 ++	Calcnt    int64
 ++	Errcnt    int64
 ++	Stbcnt    int64
 ++	Tai       int32
 ++	Pad_cgo_3 [44]byte
 ++}
 ++
 ++type Time_t int64
 ++
 ++type Tms struct {
 ++	Utime  int64
 ++	Stime  int64
 ++	Cutime int64
 ++	Cstime int64
 ++}
 ++
 ++type Utimbuf struct {
 ++	Actime  int64
 ++	Modtime int64
 ++}
 ++
 ++type Rusage struct {
 ++	Utime    Timeval
 ++	Stime    Timeval
 ++	Maxrss   int64
 ++	Ixrss    int64
 ++	Idrss    int64
 ++	Isrss    int64
 ++	Minflt   int64
 ++	Majflt   int64
 ++	Nswap    int64
 ++	Inblock  int64
 ++	Oublock  int64
 ++	Msgsnd   int64
 ++	Msgrcv   int64
 ++	Nsignals int64
 ++	Nvcsw    int64
 ++	Nivcsw   int64
 ++}
 ++
 ++type Rlimit struct {
 ++	Cur uint64
 ++	Max uint64
 ++}
 ++
 ++type _Gid_t uint32
 ++
 ++type Stat_t struct {
 ++	Dev       uint64
 ++	Ino       uint64
 ++	Nlink     uint64
 ++	Mode      uint32
 ++	Uid       uint32
 ++	Gid       uint32
 ++	Pad0      int32
 ++	Rdev      uint64
 ++	Size      int64
 ++	Atim      Timespec
 ++	Mtim      Timespec
 ++	Ctim      Timespec
 ++	Blksize   int64
 ++	Blocks    int64
 ++	X__unused [3]int64
 ++}
 ++
 ++type Statfs_t struct {
 ++	Type      uint32
 ++	Bsize     uint32
 ++	Blocks    uint64
 ++	Bfree     uint64
 ++	Bavail    uint64
 ++	Files     uint64
 ++	Ffree     uint64
 ++	Fsid      Fsid
 ++	Namelen   uint32
 ++	Frsize    uint32
 ++	Flags     uint32
 ++	Spare     [4]uint32
 ++	Pad_cgo_0 [4]byte
 ++}
 ++
 ++type Dirent struct {
 ++	Ino       uint64
 ++	Off       int64
 ++	Reclen    uint16
 ++	Type      uint8
 ++	Name      [256]uint8
 ++	Pad_cgo_0 [5]byte
 ++}
 ++
 ++type Fsid struct {
 ++	X__val [2]int32
 ++}
 ++
 ++type Flock_t struct {
 ++	Type      int16
 ++	Whence    int16
 ++	Pad_cgo_0 [4]byte
 ++	Start     int64
 ++	Len       int64
 ++	Pid       int32
 ++	Pad_cgo_1 [4]byte
 ++}
 ++
 ++type RawSockaddrInet4 struct {
 ++	Family uint16
 ++	Port   uint16
 ++	Addr   [4]byte /* in_addr */
 ++	Zero   [8]uint8
 ++}
 ++
 ++type RawSockaddrInet6 struct {
 ++	Family   uint16
 ++	Port     uint16
 ++	Flowinfo uint32
 ++	Addr     [16]byte /* in6_addr */
 ++	Scope_id uint32
 ++}
 ++
 ++type RawSockaddrUnix struct {
 ++	Family uint16
 ++	Path   [108]int8
 ++}
 ++
 ++type RawSockaddrLinklayer struct {
 ++	Family   uint16
 ++	Protocol uint16
 ++	Ifindex  int32
 ++	Hatype   uint16
 ++	Pkttype  uint8
 ++	Halen    uint8
 ++	Addr     [8]uint8
 ++}
 ++
 ++type RawSockaddrNetlink struct {
 ++	Family uint16
 ++	Pad    uint16
 ++	Pid    uint32
 ++	Groups uint32
 ++}
 ++
 ++type RawSockaddr struct {
 ++	Family uint16
 ++	Data   [14]uint8
 ++}
 ++
 ++type RawSockaddrAny struct {
 ++	Addr RawSockaddr
 ++	Pad  [96]uint8
 ++}
 ++
 ++type _Socklen uint32
 ++
 ++type Linger struct {
 ++	Onoff  int32
 ++	Linger int32
 ++}
 ++
 ++type Iovec struct {
 ++	Base *byte
 ++	Len  uint64
 ++}
 ++
 ++type IPMreq struct {
 ++	Multiaddr [4]byte /* in_addr */
 ++	Interface [4]byte /* in_addr */
 ++}
 ++
 ++type IPMreqn struct {
 ++	Multiaddr [4]byte /* in_addr */
 ++	Address   [4]byte /* in_addr */
 ++	Ifindex   int32
 ++}
 ++
 ++type IPv6Mreq struct {
 ++	Multiaddr [16]byte /* in6_addr */
 ++	Interface uint32
 ++}
 ++
 ++type Msghdr struct {
 ++	Name       *byte
 ++	Namelen    uint32
 ++	Pad_cgo_0  [4]byte
 ++	Iov        *Iovec
 ++	Iovlen     uint64
 ++	Control    *byte
 ++	Controllen uint64
 ++	Flags      int32
 ++	Pad_cgo_1  [4]byte
 ++}
 ++
 ++type Cmsghdr struct {
 ++	Len          uint64
 ++	Level        int32
 ++	Type         int32
 ++	X__cmsg_data [0]uint8
 ++}
 ++
 ++type Inet4Pktinfo struct {
 ++	Ifindex  int32
 ++	Spec_dst [4]byte /* in_addr */
 ++	Addr     [4]byte /* in_addr */
 ++}
 ++
 ++type Inet6Pktinfo struct {
 ++	Addr    [16]byte /* in6_addr */
 ++	Ifindex uint32
 ++}
 ++
 ++type IPv6MTUInfo struct {
 ++	Addr RawSockaddrInet6
 ++	Mtu  uint32
 ++}
 ++
 ++type ICMPv6Filter struct {
 ++	Data [8]uint32
 ++}
 ++
 ++type Ucred struct {
 ++	Pid int32
 ++	Uid uint32
 ++	Gid uint32
 ++}
 ++
 ++type TCPInfo struct {
 ++	State          uint8
 ++	Ca_state       uint8
 ++	Retransmits    uint8
 ++	Probes         uint8
 ++	Backoff        uint8
 ++	Options        uint8
 ++	Pad_cgo_0      [2]byte
 ++	Rto            uint32
 ++	Ato            uint32
 ++	Snd_mss        uint32
 ++	Rcv_mss        uint32
 ++	Unacked        uint32
 ++	Sacked         uint32
 ++	Lost           uint32
 ++	Retrans        uint32
 ++	Fackets        uint32
 ++	Last_data_sent uint32
 ++	Last_ack_sent  uint32
 ++	Last_data_recv uint32
 ++	Last_ack_recv  uint32
 ++	Pmtu           uint32
 ++	Rcv_ssthresh   uint32
 ++	Rtt            uint32
 ++	Rttvar         uint32
 ++	Snd_ssthresh   uint32
 ++	Snd_cwnd       uint32
 ++	Advmss         uint32
 ++	Reordering     uint32
 ++	Rcv_rtt        uint32
 ++	Rcv_space      uint32
 ++	Total_retrans  uint32
 ++}
 ++
 ++const (
 ++	SizeofSockaddrInet4     = 0x10
 ++	SizeofSockaddrInet6     = 0x1c
 ++	SizeofSockaddrAny       = 0x70
 ++	SizeofSockaddrUnix      = 0x6e
 ++	SizeofSockaddrLinklayer = 0x14
 ++	SizeofSockaddrNetlink   = 0xc
 ++	SizeofLinger            = 0x8
 ++	SizeofIPMreq            = 0x8
 ++	SizeofIPMreqn           = 0xc
 ++	SizeofIPv6Mreq          = 0x14
 ++	SizeofMsghdr            = 0x38
 ++	SizeofCmsghdr           = 0x10
 ++	SizeofInet4Pktinfo      = 0xc
 ++	SizeofInet6Pktinfo      = 0x14
 ++	SizeofIPv6MTUInfo       = 0x20
 ++	SizeofICMPv6Filter      = 0x20
 ++	SizeofUcred             = 0xc
 ++	SizeofTCPInfo           = 0x68
 ++)
 ++
 ++const (
 ++	IFA_UNSPEC          = 0x0
 ++	IFA_ADDRESS         = 0x1
 ++	IFA_LOCAL           = 0x2
 ++	IFA_LABEL           = 0x3
 ++	IFA_BROADCAST       = 0x4
 ++	IFA_ANYCAST         = 0x5
 ++	IFA_CACHEINFO       = 0x6
 ++	IFA_MULTICAST       = 0x7
 ++	IFLA_UNSPEC         = 0x0
 ++	IFLA_ADDRESS        = 0x1
 ++	IFLA_BROADCAST      = 0x2
 ++	IFLA_IFNAME         = 0x3
 ++	IFLA_MTU            = 0x4
 ++	IFLA_LINK           = 0x5
 ++	IFLA_QDISC          = 0x6
 ++	IFLA_STATS          = 0x7
 ++	IFLA_COST           = 0x8
 ++	IFLA_PRIORITY       = 0x9
 ++	IFLA_MASTER         = 0xa
 ++	IFLA_WIRELESS       = 0xb
 ++	IFLA_PROTINFO       = 0xc
 ++	IFLA_TXQLEN         = 0xd
 ++	IFLA_MAP            = 0xe
 ++	IFLA_WEIGHT         = 0xf
 ++	IFLA_OPERSTATE      = 0x10
 ++	IFLA_LINKMODE       = 0x11
 ++	IFLA_LINKINFO       = 0x12
 ++	IFLA_NET_NS_PID     = 0x13
 ++	IFLA_IFALIAS        = 0x14
 ++	IFLA_MAX            = 0x22
 ++	RT_SCOPE_UNIVERSE   = 0x0
 ++	RT_SCOPE_SITE       = 0xc8
 ++	RT_SCOPE_LINK       = 0xfd
 ++	RT_SCOPE_HOST       = 0xfe
 ++	RT_SCOPE_NOWHERE    = 0xff
 ++	RT_TABLE_UNSPEC     = 0x0
 ++	RT_TABLE_COMPAT     = 0xfc
 ++	RT_TABLE_DEFAULT    = 0xfd
 ++	RT_TABLE_MAIN       = 0xfe
 ++	RT_TABLE_LOCAL      = 0xff
 ++	RT_TABLE_MAX        = 0xffffffff
 ++	RTA_UNSPEC          = 0x0
 ++	RTA_DST             = 0x1
 ++	RTA_SRC             = 0x2
 ++	RTA_IIF             = 0x3
 ++	RTA_OIF             = 0x4
 ++	RTA_GATEWAY         = 0x5
 ++	RTA_PRIORITY        = 0x6
 ++	RTA_PREFSRC         = 0x7
 ++	RTA_METRICS         = 0x8
 ++	RTA_MULTIPATH       = 0x9
 ++	RTA_FLOW            = 0xb
 ++	RTA_CACHEINFO       = 0xc
 ++	RTA_TABLE           = 0xf
 ++	RTN_UNSPEC          = 0x0
 ++	RTN_UNICAST         = 0x1
 ++	RTN_LOCAL           = 0x2
 ++	RTN_BROADCAST       = 0x3
 ++	RTN_ANYCAST         = 0x4
 ++	RTN_MULTICAST       = 0x5
 ++	RTN_BLACKHOLE       = 0x6
 ++	RTN_UNREACHABLE     = 0x7
 ++	RTN_PROHIBIT        = 0x8
 ++	RTN_THROW           = 0x9
 ++	RTN_NAT             = 0xa
 ++	RTN_XRESOLVE        = 0xb
 ++	RTNLGRP_NONE        = 0x0
 ++	RTNLGRP_LINK        = 0x1
 ++	RTNLGRP_NOTIFY      = 0x2
 ++	RTNLGRP_NEIGH       = 0x3
 ++	RTNLGRP_TC          = 0x4
 ++	RTNLGRP_IPV4_IFADDR = 0x5
 ++	RTNLGRP_IPV4_MROUTE = 0x6
 ++	RTNLGRP_IPV4_ROUTE  = 0x7
 ++	RTNLGRP_IPV4_RULE   = 0x8
 ++	RTNLGRP_IPV6_IFADDR = 0x9
 ++	RTNLGRP_IPV6_MROUTE = 0xa
 ++	RTNLGRP_IPV6_ROUTE  = 0xb
 ++	RTNLGRP_IPV6_IFINFO = 0xc
 ++	RTNLGRP_IPV6_PREFIX = 0x12
 ++	RTNLGRP_IPV6_RULE   = 0x13
 ++	RTNLGRP_ND_USEROPT  = 0x14
 ++	SizeofNlMsghdr      = 0x10
 ++	SizeofNlMsgerr      = 0x14
 ++	SizeofRtGenmsg      = 0x1
 ++	SizeofNlAttr        = 0x4
 ++	SizeofRtAttr        = 0x4
 ++	SizeofIfInfomsg     = 0x10
 ++	SizeofIfAddrmsg     = 0x8
 ++	SizeofRtMsg         = 0xc
 ++	SizeofRtNexthop     = 0x8
 ++)
 ++
 ++type NlMsghdr struct {
 ++	Len   uint32
 ++	Type  uint16
 ++	Flags uint16
 ++	Seq   uint32
 ++	Pid   uint32
 ++}
 ++
 ++type NlMsgerr struct {
 ++	Error int32
 ++	Msg   NlMsghdr
 ++}
 ++
 ++type RtGenmsg struct {
 ++	Family uint8
 ++}
 ++
 ++type NlAttr struct {
 ++	Len  uint16
 ++	Type uint16
 ++}
 ++
 ++type RtAttr struct {
 ++	Len  uint16
 ++	Type uint16
 ++}
 ++
 ++type IfInfomsg struct {
 ++	Family     uint8
 ++	X__ifi_pad uint8
 ++	Type       uint16
 ++	Index      int32
 ++	Flags      uint32
 ++	Change     uint32
 ++}
 ++
 ++type IfAddrmsg struct {
 ++	Family    uint8
 ++	Prefixlen uint8
 ++	Flags     uint8
 ++	Scope     uint8
 ++	Index     uint32
 ++}
 ++
 ++type RtMsg struct {
 ++	Family   uint8
 ++	Dst_len  uint8
 ++	Src_len  uint8
 ++	Tos      uint8
 ++	Table    uint8
 ++	Protocol uint8
 ++	Scope    uint8
 ++	Type     uint8
 ++	Flags    uint32
 ++}
 ++
 ++type RtNexthop struct {
 ++	Len     uint16
 ++	Flags   uint8
 ++	Hops    uint8
 ++	Ifindex int32
 ++}
 ++
 ++const (
 ++	SizeofSockFilter = 0x8
 ++	SizeofSockFprog  = 0x10
 ++)
 ++
 ++type SockFilter struct {
 ++	Code uint16
 ++	Jt   uint8
 ++	Jf   uint8
 ++	K    uint32
 ++}
 ++
 ++type SockFprog struct {
 ++	Len       uint16
 ++	Pad_cgo_0 [6]byte
 ++	Filter    *SockFilter
 ++}
 ++
 ++type InotifyEvent struct {
 ++	Wd     int32
 ++	Mask   uint32
 ++	Cookie uint32
 ++	Len    uint32
 ++	Name   [0]uint8
 ++}
 ++
 ++const SizeofInotifyEvent = 0x10
 ++
 ++type PtraceRegsPsw struct {
 ++	Mask uint64
 ++	Addr uint64
 ++}
 ++
 ++type PtraceRegsFp struct {
 ++	Fpc       uint32
 ++	Pad_cgo_0 [4]byte
 ++	Fprs      [16]float64
 ++}
 ++
 ++type PtraceRegsPer struct {
 ++	Control_regs  [0]uint64
 ++	Pad_cgo_0     [24]byte
 ++	Pad_cgo_1     [8]byte
 ++	Starting_addr uint64
 ++	Ending_addr   uint64
 ++	Perc_atmid    uint16
 ++	Pad_cgo_2     [6]byte
 ++	Address       uint64
 ++	Access_id     uint8
 ++	Pad_cgo_3     [7]byte
 ++}
 ++
 ++type PtraceRegs struct {
 ++	Psw                      PtraceRegsPsw
 ++	Gprs                     [16]uint64
 ++	Acrs                     [16]uint32
 ++	Orig_gpr2                uint64
 ++	Fp_regs                  PtraceRegsFp
 ++	Per_info                 PtraceRegsPer
 ++	Ieee_instruction_pointer uint64
 ++}
 ++
 ++type FdSet struct {
 ++	Bits [16]int64
 ++}
 ++
 ++type Sysinfo_t struct {
 ++	Uptime    int64
 ++	Loads     [3]uint64
 ++	Totalram  uint64
 ++	Freeram   uint64
 ++	Sharedram uint64
 ++	Bufferram uint64
 ++	Totalswap uint64
 ++	Freeswap  uint64
 ++	Procs     uint16
 ++	Pad       uint16
 ++	Pad_cgo_0 [4]byte
 ++	Totalhigh uint64
 ++	Freehigh  uint64
 ++	Unit      uint32
 ++	X_f       [0]uint8
 ++	Pad_cgo_1 [4]byte
 ++}
 ++
 ++type Utsname struct {
 ++	Sysname    [65]uint8
 ++	Nodename   [65]uint8
 ++	Release    [65]uint8
 ++	Version    [65]uint8
 ++	Machine    [65]uint8
 ++	Domainname [65]uint8
 ++}
 ++
 ++type Ustat_t struct {
 ++	Tfree     int32
 ++	Pad_cgo_0 [4]byte
 ++	Tinode    uint64
 ++	Fname     [6]uint8
 ++	Fpack     [6]uint8
 ++	Pad_cgo_1 [4]byte
 ++}
 ++
 ++type EpollEvent struct {
 ++	Events uint32
 ++	Fd     int32
 ++	Pad    int32
 ++}
 ++
 ++const (
 ++	_AT_FDCWD            = -0x64
 ++	_AT_REMOVEDIR        = 0x200
 ++	_AT_SYMLINK_NOFOLLOW = 0x100
 ++)
 ++
 ++type Termios struct {
 ++	Iflag     uint32
 ++	Oflag     uint32
 ++	Cflag     uint32
 ++	Lflag     uint32
 ++	Line      uint8
 ++	Cc        [32]uint8
 ++	Pad_cgo_0 [3]byte
 ++	Ispeed    uint32
 ++	Ospeed    uint32
 ++}
 ++
 ++const (
 ++	IUCLC  = 0x200
 ++	OLCUC  = 0x2
 ++	TCGETS = 0x5401
 ++	TCSETS = 0x5402
 ++	XCASE  = 0x4
 ++)
 +diff --git a/test/fixedbugs/issue11656.go b/test/fixedbugs/issue11656.go
 +index 565e796..08c143e 100644
 +--- a/test/fixedbugs/issue11656.go
 ++++ b/test/fixedbugs/issue11656.go
 +@@ -65,6 +65,8 @@ func f(n int) {
 + 		binary.BigEndian.PutUint32(ill, 0x00000034) // trap
 + 	case "mips64le":
 + 		binary.LittleEndian.PutUint32(ill, 0x00000034) // trap
 ++	case "s390x":
 ++		binary.BigEndian.PutUint32(ill, 0) // undefined
 + 	default:
 + 		// Just leave it as 0 and hope for the best.
 + 	}
 +diff --git a/test/init1.go b/test/init1.go
 +index 62dfb72..a008e3e 100644
 +--- a/test/init1.go
 ++++ b/test/init1.go
 +@@ -40,7 +40,7 @@ func init() {
 + 	sys1, numGC1 := memstats.Sys, memstats.NumGC
 + 	if sys1-sys >= N*MB || numGC1 == numGC {
 + 		println("allocated 1000 chunks of", MB, "and used ", sys1-sys, "memory")
 +-		println("numGC went", numGC, "to", numGC)
 ++		println("numGC went", numGC, "to", numGC1)
 + 		panic("init1")
 + 	}
 + }
 +diff --git a/test/nilptr3.go b/test/nilptr3.go
 +index 6c8aab3..7d579fd 100644
 +--- a/test/nilptr3.go
 ++++ b/test/nilptr3.go
 +@@ -2,7 +2,8 @@
 + // Fails on ppc64x because of incomplete optimization.
 + // See issues 9058.
 + // Same reason for mips64x.
 +-// +build !ppc64,!ppc64le,!mips64,!mips64le
 ++// Same reason for s390x.
 ++// +build !ppc64,!ppc64le,!mips64,!mips64le,!s390x
 + 
 + // Copyright 2013 The Go Authors.  All rights reserved.
 + // Use of this source code is governed by a BSD-style
 +diff --git a/test/nosplit.go b/test/nosplit.go
 +index 3c4ae10..189a320 100644
 +--- a/test/nosplit.go
 ++++ b/test/nosplit.go
 +@@ -275,6 +275,9 @@ TestCases:
 + 		case "amd64":
 + 			ptrSize = 8
 + 			fmt.Fprintf(&buf, "#define REGISTER AX\n")
 ++		case "s390x":
 ++			ptrSize = 8
 ++			fmt.Fprintf(&buf, "#define REGISTER R10\n")
 + 		default:
 + 			fmt.Fprintf(&buf, "#define REGISTER AX\n")
 + 		}
 +-- 
 +2.5.0
 +

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