[chore]: Bump github.com/gin-contrib/gzip from 1.2.2 to 1.2.3 (#4000)

Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/gin-contrib/gzip/releases)
- [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml)
- [Commits](https://github.com/gin-contrib/gzip/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: github.com/gin-contrib/gzip
  dependency-version: 1.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
dependabot[bot] 2025-04-14 09:43:56 +02:00 committed by GitHub
commit 51b9ef5c34
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
220 changed files with 127887 additions and 125516 deletions

14
go.mod
View file

@ -38,7 +38,7 @@ require (
github.com/buckket/go-blurhash v1.1.0 github.com/buckket/go-blurhash v1.1.0
github.com/coreos/go-oidc/v3 v3.12.0 github.com/coreos/go-oidc/v3 v3.12.0
github.com/gin-contrib/cors v1.7.4 github.com/gin-contrib/cors v1.7.4
github.com/gin-contrib/gzip v1.2.2 github.com/gin-contrib/gzip v1.2.3
github.com/gin-contrib/sessions v1.0.2 github.com/gin-contrib/sessions v1.0.2
github.com/gin-gonic/gin v1.10.0 github.com/gin-gonic/gin v1.10.0
github.com/go-playground/form/v4 v4.2.1 github.com/go-playground/form/v4 v4.2.1
@ -108,11 +108,11 @@ require (
github.com/aymerick/douceur v0.2.0 // indirect github.com/aymerick/douceur v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
github.com/bytedance/sonic v1.12.7 // indirect github.com/bytedance/sonic v1.13.2 // indirect
github.com/bytedance/sonic/loader v0.2.2 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/base64x v0.1.5 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dsoprea/go-exif/v3 v3.0.0-20210625224831-a6301f85c82b // indirect github.com/dsoprea/go-exif/v3 v3.0.0-20210625224831-a6301f85c82b // indirect
github.com/dsoprea/go-iptc v0.0.0-20200609062250-162ae6b44feb // indirect github.com/dsoprea/go-iptc v0.0.0-20200609062250-162ae6b44feb // indirect
@ -143,7 +143,7 @@ require (
github.com/go-openapi/validate v0.24.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.24.0 // indirect github.com/go-playground/validator/v10 v10.26.0 // indirect
github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b // indirect github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b // indirect
github.com/goccy/go-json v0.10.5 // indirect github.com/goccy/go-json v0.10.5 // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
@ -213,7 +213,7 @@ require (
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect
go.uber.org/multierr v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect
golang.org/x/arch v0.13.0 // indirect golang.org/x/arch v0.15.0 // indirect
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
golang.org/x/mod v0.24.0 // indirect golang.org/x/mod v0.24.0 // indirect
golang.org/x/sync v0.13.0 // indirect golang.org/x/sync v0.13.0 // indirect
@ -221,7 +221,7 @@ require (
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
google.golang.org/grpc v1.71.0 // indirect google.golang.org/grpc v1.71.0 // indirect
google.golang.org/protobuf v1.36.5 // indirect google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect
modernc.org/libc v1.62.1 // indirect modernc.org/libc v1.62.1 // indirect
modernc.org/mathutil v1.7.1 // indirect modernc.org/mathutil v1.7.1 // indirect

28
go.sum generated
View file

@ -81,17 +81,17 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZc9Do= github.com/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZc9Do=
github.com/buckket/go-blurhash v1.1.0/go.mod h1:aT2iqo5W9vu9GpyoLErKfTHwgODsZp3bQfXjXJUxNb8= github.com/buckket/go-blurhash v1.1.0/go.mod h1:aT2iqo5W9vu9GpyoLErKfTHwgODsZp3bQfXjXJUxNb8=
github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ=
github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I= github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4=
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o= github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY=
github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 h1:ox2F0PSMlrAAiAdknSRMDrAr8mfxPCfSZolH+/qQnyQ= github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 h1:ox2F0PSMlrAAiAdknSRMDrAr8mfxPCfSZolH+/qQnyQ=
github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08/go.mod h1:pCxVEbcm3AMg7ejXyorUXi6HQCzOIBf7zEDVPtw0/U4= github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08/go.mod h1:pCxVEbcm3AMg7ejXyorUXi6HQCzOIBf7zEDVPtw0/U4=
@ -137,8 +137,8 @@ github.com/gavv/httpexpect v2.0.0+incompatible h1:1X9kcRshkSKEjNJJxX9Y9mQ5BRfbxU
github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc=
github.com/gin-contrib/cors v1.7.4 h1:/fC6/wk7rCRtqKqki8lLr2Xq+hnV49aXDLIuSek9g4k= github.com/gin-contrib/cors v1.7.4 h1:/fC6/wk7rCRtqKqki8lLr2Xq+hnV49aXDLIuSek9g4k=
github.com/gin-contrib/cors v1.7.4/go.mod h1:vGc/APSgLMlQfEJV5NAzkrAHb0C8DetL3K6QZuvGii0= github.com/gin-contrib/cors v1.7.4/go.mod h1:vGc/APSgLMlQfEJV5NAzkrAHb0C8DetL3K6QZuvGii0=
github.com/gin-contrib/gzip v1.2.2 h1:iUU/EYCM8ENfkjmZaVrxbjF/ZC267Iqv5S0MMCMEliI= github.com/gin-contrib/gzip v1.2.3 h1:dAhT722RuEG330ce2agAs75z7yB+NKvX/ZM1r8w0u2U=
github.com/gin-contrib/gzip v1.2.2/go.mod h1:C1a5cacjlDsS20cKnHlZRCPUu57D3qH6B2pV0rl+Y/s= github.com/gin-contrib/gzip v1.2.3/go.mod h1:ad72i4Bzmaypk8M762gNXa2wkxxjbz0icRNnuLJ9a/c=
github.com/gin-contrib/sessions v1.0.2 h1:UaIjUvTH1cMeOdj3in6dl+Xb6It8RiKRF9Z1anbUyCA= github.com/gin-contrib/sessions v1.0.2 h1:UaIjUvTH1cMeOdj3in6dl+Xb6It8RiKRF9Z1anbUyCA=
github.com/gin-contrib/sessions v1.0.2/go.mod h1:KxKxWqWP5LJVDCInulOl4WbLzK2KSPlLesfZ66wRvMs= github.com/gin-contrib/sessions v1.0.2/go.mod h1:KxKxWqWP5LJVDCInulOl4WbLzK2KSPlLesfZ66wRvMs=
github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E= github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E=
@ -191,8 +191,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= github.com/go-playground/validator/v10 v10.26.0 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc/iMaVtFbr3Sw2k=
github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo=
github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
@ -521,8 +521,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
golang.org/x/arch v0.13.0 h1:KCkqVVV1kGg0X87TFysjCJ8MxtZEIU4Ja/yXGeoECdA= golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw=
golang.org/x/arch v0.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@ -631,8 +631,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View file

@ -6,9 +6,10 @@ A blazingly fast JSON serializing &amp; deserializing library, accelerated by JI
## Requirement ## Requirement
- Go: 1.17~1.23 - Go: 1.17~1.24
- Notice: Go1.24.0 is not supported due to the [issue](https://github.com/golang/go/issues/71672), please use higher go version or add build tag `--ldflags="-checklinkname=0"`
- OS: Linux / MacOS / Windows - OS: Linux / MacOS / Windows
- CPU: AMD64 / ARM64(need go1.20 above) - CPU: AMD64 / (ARM64, need go1.20 above)
## Features ## Features

View file

@ -6,9 +6,10 @@
## 依赖 ## 依赖
- Go: 1.17~1.23 - Go: 1.17~1.24
- 注意Go1.24.0 由于 [issue](https://github.com/golang/go/issues/71672) 不可用,请升级到更高 Go 版本,或添加编译选项 `--ldflags="-checklinkname=0"`
- OS: Linux / MacOS / Windows - OS: Linux / MacOS / Windows
- CPU: AMD64 / ARM64需要 Go1.20 以上) - CPU: AMD64 / (ARM64, 需要 Go1.20 以上)
## 接口 ## 接口

View file

@ -1,5 +1,5 @@
//go:build (amd64 && go1.17 && !go1.24) || (arm64 && go1.20 && !go1.24) //go:build (amd64 && go1.17 && !go1.25) || (arm64 && go1.20 && !go1.25)
// +build amd64,go1.17,!go1.24 arm64,go1.20,!go1.24 // +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25
/* /*
* Copyright 2022 ByteDance Inc. * Copyright 2022 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build !amd64,!arm64 go1.24 !go1.17 arm64,!go1.20 // +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20
/* /*
* Copyright 2022 ByteDance Inc. * Copyright 2022 ByteDance Inc.
@ -24,10 +24,11 @@ import (
`github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/internal/rt` `github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/compat`
) )
func init() { func init() {
println("WARNING:(ast) sonic only supports go1.17~1.23, but your environment is not suitable") compat.Warn("sonic/ast")
} }
func quote(buf *[]byte, val string) { func quote(buf *[]byte, val string) {

View file

@ -71,7 +71,7 @@ func (self *Node) UnmarshalJSON(data []byte) (err error) {
/** Node Type Accessor **/ /** Node Type Accessor **/
// Type returns json type represented by the node // Type returns json type represented by the node
// It will be one of belows: // It will be one of bellows:
// V_NONE = 0 (empty node, key not exists) // V_NONE = 0 (empty node, key not exists)
// V_ERROR = 1 (error node) // V_ERROR = 1 (error node)
// V_NULL = 2 (json value `null`, key exists) // V_NULL = 2 (json value `null`, key exists)
@ -89,7 +89,7 @@ func (self Node) Type() int {
} }
// Type concurrently-safe returns json type represented by the node // Type concurrently-safe returns json type represented by the node
// It will be one of belows: // It will be one of bellows:
// V_NONE = 0 (empty node, key not exists) // V_NONE = 0 (empty node, key not exists)
// V_ERROR = 1 (error node) // V_ERROR = 1 (error node)
// V_NULL = 2 (json value `null`, key exists) // V_NULL = 2 (json value `null`, key exists)
@ -1678,7 +1678,7 @@ func NewBytes(src []byte) Node {
if len(src) == 0 { if len(src) == 0 {
panic("empty src bytes") panic("empty src bytes")
} }
out := rt.EncodeBase64(src) out := rt.EncodeBase64ToString(src)
return NewString(out) return NewString(out)
} }

View file

@ -17,126 +17,15 @@
package ast package ast
import ( import (
"unicode/utf8"
"unsafe" "unsafe"
"github.com/bytedance/sonic/internal/rt" "github.com/bytedance/sonic/internal/rt"
) )
//go:noescape
//go:linkname memmove runtime.memmove
//goland:noinspection GoUnusedParameter
func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
//go:linkname unsafe_NewArray reflect.unsafe_NewArray
//goland:noinspection GoUnusedParameter
func unsafe_NewArray(typ *rt.GoType, n int) unsafe.Pointer
//go:nosplit //go:nosplit
func mem2ptr(s []byte) unsafe.Pointer { func mem2ptr(s []byte) unsafe.Pointer {
return (*rt.GoSlice)(unsafe.Pointer(&s)).Ptr return (*rt.GoSlice)(unsafe.Pointer(&s)).Ptr
} }
var safeSet = [utf8.RuneSelf]bool{
' ': true,
'!': true,
'"': false,
'#': true,
'$': true,
'%': true,
'&': true,
'\'': true,
'(': true,
')': true,
'*': true,
'+': true,
',': true,
'-': true,
'.': true,
'/': true,
'0': true,
'1': true,
'2': true,
'3': true,
'4': true,
'5': true,
'6': true,
'7': true,
'8': true,
'9': true,
':': true,
';': true,
'<': true,
'=': true,
'>': true,
'?': true,
'@': true,
'A': true,
'B': true,
'C': true,
'D': true,
'E': true,
'F': true,
'G': true,
'H': true,
'I': true,
'J': true,
'K': true,
'L': true,
'M': true,
'N': true,
'O': true,
'P': true,
'Q': true,
'R': true,
'S': true,
'T': true,
'U': true,
'V': true,
'W': true,
'X': true,
'Y': true,
'Z': true,
'[': true,
'\\': false,
']': true,
'^': true,
'_': true,
'`': true,
'a': true,
'b': true,
'c': true,
'd': true,
'e': true,
'f': true,
'g': true,
'h': true,
'i': true,
'j': true,
'k': true,
'l': true,
'm': true,
'n': true,
'o': true,
'p': true,
'q': true,
'r': true,
's': true,
't': true,
'u': true,
'v': true,
'w': true,
'x': true,
'y': true,
'z': true,
'{': true,
'|': true,
'}': true,
'~': true,
'\u007f': true,
}
var hex = "0123456789abcdef"
//go:linkname unquoteBytes encoding/json.unquoteBytes //go:linkname unquoteBytes encoding/json.unquoteBytes
func unquoteBytes(s []byte) (t []byte, ok bool) func unquoteBytes(s []byte) (t []byte, ok bool)

View file

@ -1,4 +1,4 @@
// +build !amd64,!arm64 go1.24 !go1.17 arm64,!go1.20 // +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,5 @@
// +build !amd64,!arm64 go1.24 !go1.17 arm64,!go1.20 //go:build (!amd64 && !arm64) || go1.25 || !go1.17 || (arm64 && !go1.20)
// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20
/* /*
* Copyright 2023 ByteDance Inc. * Copyright 2023 ByteDance Inc.
@ -19,30 +20,33 @@
package decoder package decoder
import ( import (
`bytes` "bytes"
`encoding/json` "encoding/json"
`io` "io"
`reflect` "reflect"
`unsafe` "unsafe"
`github.com/bytedance/sonic/internal/native/types` "github.com/bytedance/sonic/internal/decoder/consts"
`github.com/bytedance/sonic/option` "github.com/bytedance/sonic/internal/native/types"
"github.com/bytedance/sonic/option"
"github.com/bytedance/sonic/internal/compat"
) )
func init() { func init() {
println("WARNING: sonic/decoder only supports (Go1.17~1.23 && CPU amd64) or (go1.20~1.23 && CPU arm64), but your environment is not suitable") compat.Warn("sonic/decoder")
} }
const ( const (
_F_use_int64 = 0 _F_use_int64 = consts.F_use_int64
_F_disable_urc = 2 _F_disable_urc = consts.F_disable_unknown
_F_disable_unknown = 3 _F_disable_unknown = consts.F_disable_unknown
_F_copy_string = 4 _F_copy_string = consts.F_copy_string
_F_use_number = types.B_USE_NUMBER _F_use_number = consts.F_use_number
_F_validate_string = types.B_VALIDATE_STRING _F_validate_string = consts.F_validate_string
_F_allow_control = types.B_ALLOW_CONTROL _F_allow_control = consts.F_allow_control
_F_no_validate_json = types.B_NO_VALIDATE_JSON _F_no_validate_json = consts.F_no_validate_json
_F_case_sensitive = consts.F_case_sensitive
) )
type Options uint64 type Options uint64
@ -55,6 +59,7 @@ const (
OptionCopyString Options = 1 << _F_copy_string OptionCopyString Options = 1 << _F_copy_string
OptionValidateString Options = 1 << _F_validate_string OptionValidateString Options = 1 << _F_validate_string
OptionNoValidateJSON Options = 1 << _F_no_validate_json OptionNoValidateJSON Options = 1 << _F_no_validate_json
OptionCaseSensitive Options = 1 << _F_case_sensitive
) )
func (self *Decoder) SetOptions(opts Options) { func (self *Decoder) SetOptions(opts Options) {

View file

@ -1,5 +1,5 @@
//go:build (amd64 && go1.17 && !go1.24) || (arm64 && go1.20 && !go1.24) //go:build (amd64 && go1.17 && !go1.25) || (arm64 && go1.20 && !go1.25)
// +build amd64,go1.17,!go1.24 arm64,go1.20,!go1.24 // +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25
/* /*
@ -44,6 +44,7 @@ const (
OptionCopyString Options = api.OptionCopyString OptionCopyString Options = api.OptionCopyString
OptionValidateString Options = api.OptionValidateString OptionValidateString Options = api.OptionValidateString
OptionNoValidateJSON Options = api.OptionNoValidateJSON OptionNoValidateJSON Options = api.OptionNoValidateJSON
OptionCaseSensitive Options = api.OptionCaseSensitive
) )
// StreamDecoder is the decoder context object for streaming input. // StreamDecoder is the decoder context object for streaming input.

View file

@ -1,4 +1,4 @@
// +build !amd64,!arm64 go1.24 !go1.17 arm64,!go1.20 // +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20
/* /*
* Copyright 2023 ByteDance Inc. * Copyright 2023 ByteDance Inc.
@ -19,16 +19,17 @@
package encoder package encoder
import ( import (
`io` `io`
`bytes` `bytes`
`encoding/json` `encoding/json`
`reflect` `reflect`
`github.com/bytedance/sonic/option` `github.com/bytedance/sonic/option`
`github.com/bytedance/sonic/internal/compat`
) )
func init() { func init() {
println("WARNING:(encoder) sonic only supports (Go1.17~1.23 && CPU amd64) or (G01.20~1.23 && CPU arm64) , but your environment is not suitable") compat.Warn("sonic/encoder")
} }
// EnableFallback indicates if encoder use fallback // EnableFallback indicates if encoder use fallback

View file

@ -1,4 +1,4 @@
// +build amd64,go1.17,!go1.24 arm64,go1.20,!go1.24 // +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25
/* /*
* Copyright 2023 ByteDance Inc. * Copyright 2023 ByteDance Inc.

View file

@ -1,3 +1,7 @@
github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg=
github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY=
github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=

View file

@ -1,46 +0,0 @@
// +build amd64,go1.17,!go1.24
/**
* Copyright 2023 ByteDance Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package base64
import (
"github.com/cloudwego/base64x"
)
func DecodeBase64(src string) ([]byte, error) {
return base64x.StdEncoding.DecodeString(src)
}
func EncodeBase64(buf []byte, src []byte) []byte {
if len(src) == 0 {
return append(buf, '"', '"')
}
buf = append(buf, '"')
need := base64x.StdEncoding.EncodedLen(len(src))
if cap(buf) - len(buf) < need {
tmp := make([]byte, len(buf), len(buf) + need*2)
copy(tmp, buf)
buf = tmp
}
base64x.StdEncoding.Encode(buf[len(buf):cap(buf)], src)
buf = buf[:len(buf) + need]
buf = append(buf, '"')
return buf
}

View file

@ -1,44 +0,0 @@
// +build !amd64 !go1.17 go1.24
/*
* Copyright 2022 ByteDance Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package base64
import (
"encoding/base64"
)
func EncodeBase64(buf []byte, src []byte) []byte {
if len(src) == 0 {
return append(buf, '"', '"')
}
buf = append(buf, '"')
need := base64.StdEncoding.EncodedLen(len(src))
if cap(buf) - len(buf) < need {
tmp := make([]byte, len(buf), len(buf) + need*2)
copy(tmp, buf)
buf = tmp
}
base64.StdEncoding.Encode(buf[len(buf):cap(buf)], src)
buf = buf[:len(buf) + need]
buf = append(buf, '"')
return buf
}
func DecodeBase64(src string) ([]byte, error) {
return base64.StdEncoding.DecodeString(src)
}

View file

@ -23,16 +23,12 @@ import (
) )
var ( var (
V_strhash = rt.UnpackEface(strhash) V_strhash = rt.UnpackEface(rt.Strhash)
S_strhash = *(*uintptr)(V_strhash.Value) S_strhash = *(*uintptr)(V_strhash.Value)
) )
//go:noescape
//go:linkname strhash runtime.strhash
func strhash(_ unsafe.Pointer, _ uintptr) uintptr
func StrHash(s string) uint64 { func StrHash(s string) uint64 {
if v := strhash(unsafe.Pointer(&s), 0); v == 0 { if v := rt.Strhash(unsafe.Pointer(&s), 0); v == 0 {
return 1 return 1
} else { } else {
return uint64(v) return uint64(v)

View file

@ -0,0 +1,12 @@
// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20
package compat
import (
"fmt"
"os"
)
func Warn(prefix string) {
fmt.Fprintf(os.Stderr, "WARNING: %s only supports (go1.17~1.24 && amd64 CPU) or (go1.20~1.24 && arm64 CPU), but your environment is not suitable and will fallback to encoding/json\n", prefix)
}

View file

@ -35,6 +35,7 @@ const (
_F_use_int64 = consts.F_use_int64 _F_use_int64 = consts.F_use_int64
_F_use_number = consts.F_use_number _F_use_number = consts.F_use_number
_F_validate_string = consts.F_validate_string _F_validate_string = consts.F_validate_string
_F_case_sensitive = consts.F_case_sensitive
_MaxStack = consts.MaxStack _MaxStack = consts.MaxStack
@ -45,6 +46,7 @@ const (
OptionCopyString = consts.OptionCopyString OptionCopyString = consts.OptionCopyString
OptionValidateString = consts.OptionValidateString OptionValidateString = consts.OptionValidateString
OptionNoValidateJSON = consts.OptionNoValidateJSON OptionNoValidateJSON = consts.OptionNoValidateJSON
OptionCaseSensitive = consts.OptionCaseSensitive
) )
type ( type (

View file

@ -1,5 +1,5 @@
//go:build go1.17 && !go1.24 //go:build go1.17 && !go1.25
// +build go1.17,!go1.24 // +build go1.17,!go1.25
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.24 // +build go1.17,!go1.25
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.

View file

@ -12,11 +12,11 @@ const (
F_disable_unknown = 3 F_disable_unknown = 3
F_copy_string = 4 F_copy_string = 4
F_use_number = types.B_USE_NUMBER F_use_number = types.B_USE_NUMBER
F_validate_string = types.B_VALIDATE_STRING F_validate_string = types.B_VALIDATE_STRING
F_allow_control = types.B_ALLOW_CONTROL F_allow_control = types.B_ALLOW_CONTROL
F_no_validate_json = types.B_NO_VALIDATE_JSON F_no_validate_json = types.B_NO_VALIDATE_JSON
F_case_sensitive = 7
) )
type Options uint64 type Options uint64
@ -29,6 +29,7 @@ const (
OptionCopyString Options = 1 << F_copy_string OptionCopyString Options = 1 << F_copy_string
OptionValidateString Options = 1 << F_validate_string OptionValidateString Options = 1 << F_validate_string
OptionNoValidateJSON Options = 1 << F_no_validate_json OptionNoValidateJSON Options = 1 << F_no_validate_json
OptionCaseSensitive Options = 1 << F_case_sensitive
) )
const ( const (

View file

@ -20,21 +20,16 @@ import (
`strconv` `strconv`
`unsafe` `unsafe`
`github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/jit` `github.com/bytedance/sonic/internal/jit`
`github.com/twitchyliquid64/golang-asm/obj` `github.com/twitchyliquid64/golang-asm/obj`
`github.com/twitchyliquid64/golang-asm/obj/x86` `github.com/twitchyliquid64/golang-asm/obj/x86`
) )
//go:linkname _runtime_writeBarrier runtime.writeBarrier
var _runtime_writeBarrier uintptr
//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier
func gcWriteBarrierAX()
var ( var (
_V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&rt.RuntimeWriteBarrier))))
_F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) _F_gcWriteBarrierAX = jit.Func(rt.GcWriteBarrierAX)
) )
func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) {

View file

@ -1,4 +1,4 @@
// +build go1.21,!go1.24 // +build go1.21,!go1.25
// Copyright 2023 CloudWeGo Authors // Copyright 2023 CloudWeGo Authors
// //
@ -20,25 +20,19 @@ import (
`strconv` `strconv`
`unsafe` `unsafe`
`github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/jit` `github.com/bytedance/sonic/internal/jit`
`github.com/twitchyliquid64/golang-asm/obj` `github.com/twitchyliquid64/golang-asm/obj`
`github.com/twitchyliquid64/golang-asm/obj/x86` `github.com/twitchyliquid64/golang-asm/obj/x86`
) )
//go:linkname _runtime_writeBarrier runtime.writeBarrier
var _runtime_writeBarrier uintptr
//go:nosplit
//go:linkname gcWriteBarrier2 runtime.gcWriteBarrier2
func gcWriteBarrier2()
// Notice: gcWriteBarrier must use R11 register!! // Notice: gcWriteBarrier must use R11 register!!
var _R11 = _IC var _R11 = _IC
var ( var (
_V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&rt.RuntimeWriteBarrier))))
_F_gcWriteBarrier2 = jit.Func(gcWriteBarrier2) _F_gcWriteBarrier2 = jit.Func(rt.GcWriteBarrier2)
) )
func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) {

View file

@ -1,5 +1,5 @@
//go:build go1.17 && !go1.24 //go:build go1.17 && !go1.25
// +build go1.17,!go1.24 // +build go1.17,!go1.25
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.
@ -271,6 +271,7 @@ var _OpFuncTab = [256]func(*_Assembler, *_Instr) {
_OP_nil_1 : (*_Assembler)._asm_OP_nil_1, _OP_nil_1 : (*_Assembler)._asm_OP_nil_1,
_OP_nil_2 : (*_Assembler)._asm_OP_nil_2, _OP_nil_2 : (*_Assembler)._asm_OP_nil_2,
_OP_nil_3 : (*_Assembler)._asm_OP_nil_3, _OP_nil_3 : (*_Assembler)._asm_OP_nil_3,
_OP_empty_bytes : (*_Assembler)._asm_OP_empty_bytes,
_OP_deref : (*_Assembler)._asm_OP_deref, _OP_deref : (*_Assembler)._asm_OP_deref,
_OP_index : (*_Assembler)._asm_OP_index, _OP_index : (*_Assembler)._asm_OP_index,
_OP_is_null : (*_Assembler)._asm_OP_is_null, _OP_is_null : (*_Assembler)._asm_OP_is_null,
@ -313,9 +314,10 @@ var _OpFuncTab = [256]func(*_Assembler, *_Instr) {
_OP_check_char_0 : (*_Assembler)._asm_OP_check_char_0, _OP_check_char_0 : (*_Assembler)._asm_OP_check_char_0,
_OP_dismatch_err : (*_Assembler)._asm_OP_dismatch_err, _OP_dismatch_err : (*_Assembler)._asm_OP_dismatch_err,
_OP_go_skip : (*_Assembler)._asm_OP_go_skip, _OP_go_skip : (*_Assembler)._asm_OP_go_skip,
_OP_skip_emtpy : (*_Assembler)._asm_OP_skip_empty, _OP_skip_emtpy : (*_Assembler)._asm_OP_skip_empty,
_OP_add : (*_Assembler)._asm_OP_add, _OP_add : (*_Assembler)._asm_OP_add,
_OP_check_empty : (*_Assembler)._asm_OP_check_empty, _OP_check_empty : (*_Assembler)._asm_OP_check_empty,
_OP_unsupported : (*_Assembler)._asm_OP_unsupported,
_OP_debug : (*_Assembler)._asm_OP_debug, _OP_debug : (*_Assembler)._asm_OP_debug,
} }
@ -456,7 +458,7 @@ func (self *_Assembler) call_vf(fn obj.Addr) {
/** Assembler Error Handlers **/ /** Assembler Error Handlers **/
var ( var (
_F_convT64 = jit.Func(convT64) _F_convT64 = jit.Func(rt.ConvT64)
_F_error_wrap = jit.Func(error_wrap) _F_error_wrap = jit.Func(error_wrap)
_F_error_type = jit.Func(error_type) _F_error_type = jit.Func(error_type)
_F_error_field = jit.Func(error_field) _F_error_field = jit.Func(error_field)
@ -598,7 +600,6 @@ func (self *_Assembler) _asm_OP_dismatch_err(p *_Instr) {
func (self *_Assembler) _asm_OP_go_skip(p *_Instr) { func (self *_Assembler) _asm_OP_go_skip(p *_Instr) {
self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9
self.Xref(p.vi(), 4) self.Xref(p.vi(), 4)
// self.Byte(0xcc)
self.Emit("MOVQ", _R9, _VAR_pc) self.Emit("MOVQ", _R9, _VAR_pc)
self.Sjmp("JMP" , _LB_skip_one) // JMP _skip_one self.Sjmp("JMP" , _LB_skip_one) // JMP _skip_one
} }
@ -606,9 +607,7 @@ func (self *_Assembler) _asm_OP_go_skip(p *_Instr) {
var _F_IndexByte = jit.Func(strings.IndexByte) var _F_IndexByte = jit.Func(strings.IndexByte)
func (self *_Assembler) _asm_OP_skip_empty(p *_Instr) { func (self *_Assembler) _asm_OP_skip_empty(p *_Instr) {
// self.Byte(0xcc)
self.call_sf(_F_skip_one) // CALL_SF skip_one self.call_sf(_F_skip_one) // CALL_SF skip_one
// self.Byte(0xcc)
self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX
self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v
self.Emit("BTQ", jit.Imm(_F_disable_unknown), _ARG_fv) self.Emit("BTQ", jit.Imm(_F_disable_unknown), _ARG_fv)
@ -619,7 +618,6 @@ func (self *_Assembler) _asm_OP_skip_empty(p *_Instr) {
self.Emit("MOVQ", _AX, _ARG_sv_p) self.Emit("MOVQ", _AX, _ARG_sv_p)
self.Emit("MOVQ", jit.Imm(':'), _CX) self.Emit("MOVQ", jit.Imm(':'), _CX)
self.call_go(_F_IndexByte) self.call_go(_F_IndexByte)
// self.Byte(0xcc)
self.Emit("TESTQ", _AX, _AX) self.Emit("TESTQ", _AX, _AX)
// disallow unknown field // disallow unknown field
self.Sjmp("JNS", _LB_field_error) self.Sjmp("JNS", _LB_field_error)
@ -662,7 +660,7 @@ func (self *_Assembler) skip_key_value() {
var ( var (
_T_byte = jit.Type(byteType) _T_byte = jit.Type(byteType)
_F_mallocgc = jit.Func(mallocgc) _F_mallocgc = jit.Func(rt.Mallocgc)
) )
func (self *_Assembler) malloc_AX(nb obj.Addr, ret obj.Addr) { func (self *_Assembler) malloc_AX(nb obj.Addr, ret obj.Addr) {
@ -964,8 +962,8 @@ func (self *_Assembler) unquote_twice(p obj.Addr, n obj.Addr, stack bool) {
/** Memory Clearing Routines **/ /** Memory Clearing Routines **/
var ( var (
_F_memclrHasPointers = jit.Func(memclrHasPointers) _F_memclrHasPointers = jit.Func(rt.MemclrHasPointers)
_F_memclrNoHeapPointers = jit.Func(memclrNoHeapPointers) _F_memclrNoHeapPointers = jit.Func(rt.MemclrNoHeapPointers)
) )
func (self *_Assembler) mem_clear_fn(ptrfree bool) { func (self *_Assembler) mem_clear_fn(ptrfree bool) {
@ -989,10 +987,10 @@ func (self *_Assembler) mem_clear_rem(size int64, ptrfree bool) {
/** Map Assigning Routines **/ /** Map Assigning Routines **/
var ( var (
_F_mapassign = jit.Func(mapassign) _F_mapassign = jit.Func(rt.Mapassign)
_F_mapassign_fast32 = jit.Func(mapassign_fast32) _F_mapassign_fast32 = jit.Func(rt.Mapassign_fast32)
_F_mapassign_faststr = jit.Func(mapassign_faststr) _F_mapassign_faststr = jit.Func(rt.Mapassign_faststr)
_F_mapassign_fast64ptr = jit.Func(mapassign_fast64ptr) _F_mapassign_fast64ptr = jit.Func(rt.Mapassign_fast64ptr)
) )
var ( var (
@ -1183,12 +1181,12 @@ func (self *_Assembler) decode_dynamic(vt obj.Addr, vp obj.Addr) {
/** OpCode Assembler Functions **/ /** OpCode Assembler Functions **/
var ( var (
_F_memequal = jit.Func(memequal) _F_memequal = jit.Func(rt.MemEqual)
_F_memmove = jit.Func(memmove) _F_memmove = jit.Func(rt.Memmove)
_F_growslice = jit.Func(rt.GrowSlice) _F_growslice = jit.Func(rt.GrowSlice)
_F_makeslice = jit.Func(makeslice) _F_makeslice = jit.Func(rt.MakeSliceStd)
_F_makemap_small = jit.Func(makemap_small) _F_makemap_small = jit.Func(rt.MakemapSmall)
_F_mapassign_fast64 = jit.Func(mapassign_fast64) _F_mapassign_fast64 = jit.Func(rt.Mapassign_fast64)
) )
var ( var (
@ -1197,7 +1195,7 @@ var (
) )
var ( var (
_F_b64decode = jit.Imm(int64(_subr__b64decode)) _F_b64decode = jit.Imm(int64(rt.SubrB64Decode))
_F_decodeValue = jit.Imm(int64(_subr_decode_value)) _F_decodeValue = jit.Imm(int64(_subr_decode_value))
) )
@ -1253,18 +1251,42 @@ func (self *_Assembler) _asm_OP_any(_ *_Instr) {
func (self *_Assembler) _asm_OP_dyn(p *_Instr) { func (self *_Assembler) _asm_OP_dyn(p *_Instr) {
self.Emit("MOVQ" , jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET self.Emit("MOVQ" , jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET
self.Emit("CMPQ" , jit.Ptr(_VP, 8), jit.Imm(0)) // CMPQ 8(VP), $0 self.Emit("CMPQ" , jit.Ptr(_VP, 8), jit.Imm(0)) // CMPQ 8(VP), $0
self.Sjmp("JE" , _LB_type_error) // JE _type_error self.Sjmp("JNE" , "_decode_dyn_non_nil_{n}") // JE _type_error
/* if nil iface, call skip one */
self.Emit("MOVQ", _IC, _VAR_ic)
self.Emit("MOVQ", _ET, _VAR_et)
self.Byte(0x4c, 0x8d, 0x0d)
self.Sref("_decode_end_{n}", 4)
self.Emit("MOVQ", _R9, _VAR_pc)
self.Sjmp("JMP" , _LB_skip_one)
self.Link("_decode_dyn_non_nil_{n}") // _decode_dyn_non_nil_{n}:
self.Emit("MOVQ" , jit.Ptr(_VP, 0), _CX) // MOVQ (VP), CX self.Emit("MOVQ" , jit.Ptr(_VP, 0), _CX) // MOVQ (VP), CX
self.Emit("MOVQ" , jit.Ptr(_CX, 8), _CX) // MOVQ 8(CX), CX self.Emit("MOVQ" , jit.Ptr(_CX, 8), _CX) // MOVQ 8(CX), CX
self.Emit("MOVBLZX", jit.Ptr(_CX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(CX), DX self.Emit("MOVBLZX", jit.Ptr(_CX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(CX), DX
self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX
self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr}
self.Sjmp("JNE" , _LB_type_error) // JNE _type_error self.Sjmp("JE" , "_decode_dyn_ptr_{n}") // JNE _type_error
self.Emit("MOVQ", _IC, _VAR_ic)
self.Emit("MOVQ", _ET, _VAR_et)
self.Byte(0x4c, 0x8d, 0x0d)
self.Sref("_decode_end_{n}", 4)
self.Emit("MOVQ", _R9, _VAR_pc)
self.Sjmp("JMP" , _LB_skip_one)
self.Link("_decode_dyn_ptr_{n}") // _decode_dyn_ptr_{n}:
self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI
self.decode_dynamic(_CX, _DI) // DECODE CX, DI self.decode_dynamic(_CX, _DI) // DECODE CX, DI
self.Link("_decode_end_{n}") // _decode_end_{n}: self.Link("_decode_end_{n}") // _decode_end_{n}:
} }
func (self *_Assembler) _asm_OP_unsupported(p *_Instr) {
self.Emit("MOVQ", jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET
self.Sjmp("JMP" , _LB_type_error) // JMP _LB_type_error
}
func (self *_Assembler) _asm_OP_str(_ *_Instr) { func (self *_Assembler) _asm_OP_str(_ *_Instr) {
self.parse_string() // PARSE STRING self.parse_string() // PARSE STRING
self.unquote_once(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false, true) // UNQUOTE once, (VP), 8(VP) self.unquote_once(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false, true) // UNQUOTE once, (VP), 8(VP)
@ -1488,6 +1510,19 @@ func (self *_Assembler) _asm_OP_nil_3(_ *_Instr) {
self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 16)) // MOVOU AX, 16(VP) self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 16)) // MOVOU AX, 16(VP)
} }
var (
bytes []byte = make([]byte, 0)
zerobytes = (*rt.GoSlice)(unsafe.Pointer(&bytes)).Ptr
_ZERO_PTR = jit.Imm(int64(uintptr(zerobytes)))
)
func (self *_Assembler) _asm_OP_empty_bytes(_ *_Instr) {
self.Emit("MOVQ", _ZERO_PTR, _AX)
self.Emit("PXOR" , _X0, _X0)
self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0))
self.Emit("MOVOU", _X0, jit.Ptr(_VP, 8))
}
func (self *_Assembler) _asm_OP_deref(p *_Instr) { func (self *_Assembler) _asm_OP_deref(p *_Instr) {
self.vfollow(p.vt()) self.vfollow(p.vt())
} }
@ -1547,7 +1582,7 @@ func (self *_Assembler) _asm_OP_map_key_i32(p *_Instr) {
self.parse_signed(int32Type, "", p.vi()) // PARSE int32 self.parse_signed(int32Type, "", p.vi()) // PARSE int32
self.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 self.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32
self.match_char('"') self.match_char('"')
if vt := p.vt(); !mapfast(vt) { if vt := p.vt(); !rt.IsMapfast(vt) {
self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int32, mapassign, st.Iv self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int32, mapassign, st.Iv
} else { } else {
self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX
@ -1558,7 +1593,7 @@ func (self *_Assembler) _asm_OP_map_key_i32(p *_Instr) {
func (self *_Assembler) _asm_OP_map_key_i64(p *_Instr) { func (self *_Assembler) _asm_OP_map_key_i64(p *_Instr) {
self.parse_signed(int64Type, "", p.vi()) // PARSE int64 self.parse_signed(int64Type, "", p.vi()) // PARSE int64
self.match_char('"') self.match_char('"')
if vt := p.vt(); !mapfast(vt) { if vt := p.vt(); !rt.IsMapfast(vt) {
self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int64, mapassign, st.Iv self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int64, mapassign, st.Iv
} else { } else {
self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX
@ -1584,7 +1619,7 @@ func (self *_Assembler) _asm_OP_map_key_u32(p *_Instr) {
self.parse_unsigned(uint32Type, "", p.vi()) // PARSE uint32 self.parse_unsigned(uint32Type, "", p.vi()) // PARSE uint32
self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32
self.match_char('"') self.match_char('"')
if vt := p.vt(); !mapfast(vt) { if vt := p.vt(); !rt.IsMapfast(vt) {
self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint32, vt.Iv self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint32, vt.Iv
} else { } else {
self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX
@ -1595,7 +1630,7 @@ func (self *_Assembler) _asm_OP_map_key_u32(p *_Instr) {
func (self *_Assembler) _asm_OP_map_key_u64(p *_Instr) { func (self *_Assembler) _asm_OP_map_key_u64(p *_Instr) {
self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64 self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64
self.match_char('"') self.match_char('"')
if vt := p.vt(); !mapfast(vt) { if vt := p.vt(); !rt.IsMapfast(vt) {
self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint64, vt.Iv self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint64, vt.Iv
} else { } else {
self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX
@ -1620,7 +1655,7 @@ func (self *_Assembler) _asm_OP_map_key_f64(p *_Instr) {
func (self *_Assembler) _asm_OP_map_key_str(p *_Instr) { func (self *_Assembler) _asm_OP_map_key_str(p *_Instr) {
self.parse_string() // PARSE STRING self.parse_string() // PARSE STRING
self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n
if vt := p.vt(); !mapfast(vt) { if vt := p.vt(); !rt.IsMapfast(vt) {
self.valloc(vt.Key(), _DI) self.valloc(vt.Key(), _DI)
self.Emit("MOVOU", _ARG_sv, _X0) self.Emit("MOVOU", _ARG_sv, _X0)
self.Emit("MOVOU", _X0, jit.Ptr(_DI, 0)) self.Emit("MOVOU", _X0, jit.Ptr(_DI, 0))
@ -1794,6 +1829,8 @@ func (self *_Assembler) _asm_OP_struct_field(p *_Instr) {
self.Emit("MOVQ" , _R8, _VAR_sr) // MOVQ R8, sr self.Emit("MOVQ" , _R8, _VAR_sr) // MOVQ R8, sr
self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n}
self.Link("_try_lowercase_{n}") // _try_lowercase_{n}: self.Link("_try_lowercase_{n}") // _try_lowercase_{n}:
self.Emit("BTQ" , jit.Imm(_F_case_sensitive), _ARG_fv) // check if enable option CaseSensitive
self.Sjmp("JC" , "_unknown_{n}")
self.Emit("MOVQ" , jit.Imm(referenceFields(p.vf())), _AX) // MOVQ ${p.vf()}, AX self.Emit("MOVQ" , jit.Imm(referenceFields(p.vf())), _AX) // MOVQ ${p.vf()}, AX
self.Emit("MOVQ", _ARG_sv_p, _BX) // MOVQ sv, BX self.Emit("MOVQ", _ARG_sv_p, _BX) // MOVQ sv, BX
self.Emit("MOVQ", _ARG_sv_n, _CX) // MOVQ sv, CX self.Emit("MOVQ", _ARG_sv_n, _CX) // MOVQ sv, CX
@ -1801,6 +1838,10 @@ func (self *_Assembler) _asm_OP_struct_field(p *_Instr) {
self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, _VAR_sr self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, _VAR_sr
self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX
self.Sjmp("JNS" , "_end_{n}") // JNS _end_{n} self.Sjmp("JNS" , "_end_{n}") // JNS _end_{n}
self.Link("_unknown_{n}")
// HACK: because `_VAR_sr` maybe used in `F_vstring`, so we should clear here again for `_OP_switch`.
self.Emit("MOVQ" , jit.Imm(-1), _AX) // MOVQ $-1, AX
self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, sr
self.Emit("BTQ" , jit.Imm(_F_disable_unknown), _ARG_fv) // BTQ ${_F_disable_unknown}, fv self.Emit("BTQ" , jit.Imm(_F_disable_unknown), _ARG_fv) // BTQ ${_F_disable_unknown}, fv
self.Sjmp("JC" , _LB_field_error) // JC _field_error self.Sjmp("JC" , _LB_field_error) // JC _field_error
self.Link("_end_{n}") // _end_{n}: self.Link("_end_{n}") // _end_{n}:

View file

@ -54,6 +54,7 @@ const (
_OP_nil_1 _OP_nil_1
_OP_nil_2 _OP_nil_2
_OP_nil_3 _OP_nil_3
_OP_empty_bytes
_OP_deref _OP_deref
_OP_index _OP_index
_OP_is_null _OP_is_null
@ -99,6 +100,7 @@ const (
_OP_skip_emtpy _OP_skip_emtpy
_OP_add _OP_add
_OP_check_empty _OP_check_empty
_OP_unsupported
_OP_debug _OP_debug
) )
@ -134,6 +136,7 @@ var _OpNames = [256]string {
_OP_nil_1 : "nil_1", _OP_nil_1 : "nil_1",
_OP_nil_2 : "nil_2", _OP_nil_2 : "nil_2",
_OP_nil_3 : "nil_3", _OP_nil_3 : "nil_3",
_OP_empty_bytes : "empty bytes",
_OP_deref : "deref", _OP_deref : "deref",
_OP_index : "index", _OP_index : "index",
_OP_is_null : "is_null", _OP_is_null : "is_null",
@ -176,6 +179,7 @@ var _OpNames = [256]string {
_OP_add : "add", _OP_add : "add",
_OP_go_skip : "go_skip", _OP_go_skip : "go_skip",
_OP_check_empty : "check_empty", _OP_check_empty : "check_empty",
_OP_unsupported : "unsupported type",
_OP_debug : "debug", _OP_debug : "debug",
} }
@ -630,10 +634,17 @@ func (self *_Compiler) compileOps(p *_Program, sp int, vt reflect.Type) {
case reflect.Ptr : self.compilePtr (p, sp, vt) case reflect.Ptr : self.compilePtr (p, sp, vt)
case reflect.Slice : self.compileSlice (p, sp, vt) case reflect.Slice : self.compileSlice (p, sp, vt)
case reflect.Struct : self.compileStruct (p, sp, vt) case reflect.Struct : self.compileStruct (p, sp, vt)
default : panic (&json.UnmarshalTypeError{Type: vt}) default : self.compileUnsupportedType (p, vt)
} }
} }
func (self *_Compiler) compileUnsupportedType(p *_Program, vt reflect.Type) {
i := p.pc()
p.add(_OP_is_null)
p.rtt(_OP_unsupported, vt)
p.pin(i)
}
func (self *_Compiler) compileMap(p *_Program, sp int, vt reflect.Type) { func (self *_Compiler) compileMap(p *_Program, sp int, vt reflect.Type) {
if reflect.PtrTo(vt.Key()).Implements(encodingTextUnmarshalerType) { if reflect.PtrTo(vt.Key()).Implements(encodingTextUnmarshalerType) {
self.compileMapOp(p, sp, vt, _OP_map_key_utext_p) self.compileMapOp(p, sp, vt, _OP_map_key_utext_p)
@ -819,12 +830,19 @@ func (self *_Compiler) compileSliceBin(p *_Program, sp int, vt reflect.Type) {
self.compileSliceBody(p, sp, vt.Elem()) self.compileSliceBody(p, sp, vt.Elem())
y := p.pc() y := p.pc()
p.add(_OP_goto) p.add(_OP_goto)
// unmarshal `null` and `"` is different
p.pin(i) p.pin(i)
p.pin(k)
p.add(_OP_nil_3) p.add(_OP_nil_3)
y2 := p.pc()
p.add(_OP_goto)
p.pin(k)
p.add(_OP_empty_bytes)
p.pin(x) p.pin(x)
p.pin(skip) p.pin(skip)
p.pin(y) p.pin(y)
p.pin(y2)
} }
func (self *_Compiler) compileSliceList(p *_Program, sp int, vt reflect.Type) { func (self *_Compiler) compileSliceList(p *_Program, sp int, vt reflect.Type) {
@ -1135,13 +1153,11 @@ func (self *_Compiler) compileInterface(p *_Program, vt reflect.Type) {
p.pin(j) p.pin(j)
} }
func (self *_Compiler) compilePrimitive(vt reflect.Type, p *_Program, op _Op) { func (self *_Compiler) compilePrimitive(_ reflect.Type, p *_Program, op _Op) {
i := p.pc() i := p.pc()
p.add(_OP_is_null) p.add(_OP_is_null)
// skip := self.checkPrimitive(p, vt)
p.add(op) p.add(op)
p.pin(i) p.pin(i)
// p.pin(skip)
} }
func (self *_Compiler) compileUnmarshalEnd(p *_Program, vt reflect.Type, i int) { func (self *_Compiler) compileUnmarshalEnd(p *_Program, vt reflect.Type, i int) {

View file

@ -27,6 +27,7 @@ const (
_F_use_number = consts.F_use_number _F_use_number = consts.F_use_number
_F_no_validate_json = consts.F_no_validate_json _F_no_validate_json = consts.F_no_validate_json
_F_validate_string = consts.F_validate_string _F_validate_string = consts.F_validate_string
_F_case_sensitive = consts.F_case_sensitive
) )
var ( var (

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.24 // +build go1.17,!go1.25
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.
@ -27,6 +27,7 @@ import (
`github.com/bytedance/sonic/internal/native` `github.com/bytedance/sonic/internal/native`
`github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/native/types`
`github.com/twitchyliquid64/golang-asm/obj` `github.com/twitchyliquid64/golang-asm/obj`
`github.com/bytedance/sonic/internal/rt`
) )
/** Crucial Registers: /** Crucial Registers:
@ -173,8 +174,8 @@ var (
) )
var ( var (
_F_convTslice = jit.Func(convTslice) _F_convTslice = jit.Func(rt.ConvTslice)
_F_convTstring = jit.Func(convTstring) _F_convTstring = jit.Func(rt.ConvTstring)
_F_invalid_vtype = jit.Func(invalid_vtype) _F_invalid_vtype = jit.Func(invalid_vtype)
) )
@ -725,5 +726,5 @@ var (
//go:nosplit //go:nosplit
func invalid_vtype(vt types.ValueType) { func invalid_vtype(vt types.ValueType) {
throw(fmt.Sprintf("invalid value type: %d", vt)) rt.Throw(fmt.Sprintf("invalid value type: %d", vt))
} }

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.24 // +build go1.17,!go1.25
// //
// Copyright 2021 ByteDance Inc. // Copyright 2021 ByteDance Inc.

View file

@ -102,7 +102,7 @@ func newStack() *_Stack {
} }
func resetStack(p *_Stack) { func resetStack(p *_Stack) {
memclrNoHeapPointers(unsafe.Pointer(p), _StackSize) rt.MemclrNoHeapPointers(unsafe.Pointer(p), _StackSize)
} }
func freeStack(p *_Stack) { func freeStack(p *_Stack) {

View file

@ -1,106 +0,0 @@
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jitdec
import (
`unsafe`
`reflect`
_ `github.com/cloudwego/base64x`
`github.com/bytedance/sonic/internal/rt`
)
//go:linkname _subr__b64decode github.com/cloudwego/base64x._subr__b64decode
var _subr__b64decode uintptr
// runtime.maxElementSize
const _max_map_element_size uintptr = 128
func mapfast(vt reflect.Type) bool {
return vt.Elem().Size() <= _max_map_element_size
}
//go:nosplit
//go:linkname throw runtime.throw
//goland:noinspection GoUnusedParameter
func throw(s string)
//go:linkname convT64 runtime.convT64
//goland:noinspection GoUnusedParameter
func convT64(v uint64) unsafe.Pointer
//go:linkname convTslice runtime.convTslice
//goland:noinspection GoUnusedParameter
func convTslice(v []byte) unsafe.Pointer
//go:linkname convTstring runtime.convTstring
//goland:noinspection GoUnusedParameter
func convTstring(v string) unsafe.Pointer
//go:noescape
//go:linkname memequal runtime.memequal
//goland:noinspection GoUnusedParameter
func memequal(a unsafe.Pointer, b unsafe.Pointer, size uintptr) bool
//go:noescape
//go:linkname memmove runtime.memmove
//goland:noinspection GoUnusedParameter
func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
//go:linkname mallocgc runtime.mallocgc
//goland:noinspection GoUnusedParameter
func mallocgc(size uintptr, typ *rt.GoType, needzero bool) unsafe.Pointer
//go:linkname makeslice runtime.makeslice
//goland:noinspection GoUnusedParameter
func makeslice(et *rt.GoType, len int, cap int) unsafe.Pointer
//go:linkname makemap_small runtime.makemap_small
func makemap_small() unsafe.Pointer
//go:linkname mapassign runtime.mapassign
//goland:noinspection GoUnusedParameter
func mapassign(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
//go:linkname mapassign_fast32 runtime.mapassign_fast32
//goland:noinspection GoUnusedParameter
func mapassign_fast32(t *rt.GoType, h unsafe.Pointer, k uint32) unsafe.Pointer
//go:linkname mapassign_fast64 runtime.mapassign_fast64
//goland:noinspection GoUnusedParameter
func mapassign_fast64(t *rt.GoType, h unsafe.Pointer, k uint64) unsafe.Pointer
//go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr
//goland:noinspection GoUnusedParameter
func mapassign_fast64ptr(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
//go:linkname mapassign_faststr runtime.mapassign_faststr
//goland:noinspection GoUnusedParameter
func mapassign_faststr(t *rt.GoType, h unsafe.Pointer, s string) unsafe.Pointer
//go:nosplit
//go:linkname memclrHasPointers runtime.memclrHasPointers
//goland:noinspection GoUnusedParameter
func memclrHasPointers(ptr unsafe.Pointer, n uintptr)
//go:noescape
//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers
//goland:noinspection GoUnusedParameter
func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr)

View file

@ -1,106 +0,0 @@
// +build go1.20
/*
* Copyright 2021 ByteDance Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jitdec
import (
`unsafe`
`reflect`
_ `github.com/cloudwego/base64x`
`github.com/bytedance/sonic/internal/rt`
)
//go:linkname _subr__b64decode github.com/cloudwego/base64x._subr__b64decode
var _subr__b64decode uintptr
// runtime.maxElementSize
const _max_map_element_size uintptr = 128
func mapfast(vt reflect.Type) bool {
return vt.Elem().Size() <= _max_map_element_size
}
//go:nosplit
//go:linkname throw runtime.throw
//goland:noinspection GoUnusedParameter
func throw(s string)
//go:linkname convT64 runtime.convT64
//goland:noinspection GoUnusedParameter
func convT64(v uint64) unsafe.Pointer
//go:linkname convTslice runtime.convTslice
//goland:noinspection GoUnusedParameter
func convTslice(v []byte) unsafe.Pointer
//go:linkname convTstring runtime.convTstring
//goland:noinspection GoUnusedParameter
func convTstring(v string) unsafe.Pointer
//go:noescape
//go:linkname memequal runtime.memequal
//goland:noinspection GoUnusedParameter
func memequal(a unsafe.Pointer, b unsafe.Pointer, size uintptr) bool
//go:noescape
//go:linkname memmove runtime.memmove
//goland:noinspection GoUnusedParameter
func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
//go:linkname mallocgc runtime.mallocgc
//goland:noinspection GoUnusedParameter
func mallocgc(size uintptr, typ *rt.GoType, needzero bool) unsafe.Pointer
//go:linkname makeslice runtime.makeslice
//goland:noinspection GoUnusedParameter
func makeslice(et *rt.GoType, len int, cap int) unsafe.Pointer
//go:linkname makemap_small runtime.makemap_small
func makemap_small() unsafe.Pointer
//go:linkname mapassign runtime.mapassign
//goland:noinspection GoUnusedParameter
func mapassign(t *rt.GoMapType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
//go:linkname mapassign_fast32 runtime.mapassign_fast32
//goland:noinspection GoUnusedParameter
func mapassign_fast32(t *rt.GoMapType, h unsafe.Pointer, k uint32) unsafe.Pointer
//go:linkname mapassign_fast64 runtime.mapassign_fast64
//goland:noinspection GoUnusedParameter
func mapassign_fast64(t *rt.GoMapType, h unsafe.Pointer, k uint64) unsafe.Pointer
//go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr
//goland:noinspection GoUnusedParameter
func mapassign_fast64ptr(t *rt.GoMapType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
//go:linkname mapassign_faststr runtime.mapassign_faststr
//goland:noinspection GoUnusedParameter
func mapassign_faststr(t *rt.GoMapType, h unsafe.Pointer, s string) unsafe.Pointer
//go:nosplit
//go:linkname memclrHasPointers runtime.memclrHasPointers
//goland:noinspection GoUnusedParameter
func memclrHasPointers(ptr unsafe.Pointer, n uintptr)
//go:noescape
//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers
//goland:noinspection GoUnusedParameter
func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr)

View file

@ -1,7 +1,6 @@
package optdec package optdec
import ( import (
"encoding/json"
"fmt" "fmt"
"reflect" "reflect"
@ -169,7 +168,9 @@ func (c *compiler) compileBasic(vt reflect.Type) decFunc {
case reflect.Struct: case reflect.Struct:
return c.compileStruct(vt) return c.compileStruct(vt)
default: default:
panic(&json.UnmarshalTypeError{Type: vt}) return &unsupportedTypeDecoder{
typ: rt.UnpackType(vt),
}
} }
} }
@ -263,7 +264,7 @@ func (c *compiler) compileSlice(vt reflect.Type) decFunc {
if et.IsUint64() { if et.IsUint64() {
return &sliceU64Decoder{} return &sliceU64Decoder{}
} }
if et.Kind() == reflect.String { if et.Kind() == reflect.String && et != rt.JsonNumberType {
return &sliceStringDecoder{} return &sliceStringDecoder{}
} }
@ -343,7 +344,7 @@ func (c *compiler) compileMap(vt reflect.Type) decFunc {
// Some common integer map later // Some common integer map later
mt := rt.MapType(rt.UnpackType(vt)) mt := rt.MapType(rt.UnpackType(vt))
if mt.Key.Kind() == reflect.String { if mt.Key.Kind() == reflect.String && mt.Key != rt.JsonNumberType {
return &mapStrKeyDecoder{ return &mapStrKeyDecoder{
mapType: mt, mapType: mt,
assign: rt.GetMapStrAssign(vt), assign: rt.GetMapStrAssign(vt),
@ -399,7 +400,7 @@ func tryCompileKeyUnmarshaler(vt reflect.Type) decKey {
return decodeKeyTextUnmarshaler return decodeKeyTextUnmarshaler
} }
/* not support map key with `json.Unmarshaler` */ /* NOTE: encoding/json not support map key with `json.Unmarshaler` */
return nil return nil
} }
@ -413,8 +414,18 @@ func (c *compiler) compileMapKey(vt reflect.Type) decKey {
return decodeKeyU8 return decodeKeyU8
case reflect.Uint16: case reflect.Uint16:
return decodeKeyU16 return decodeKeyU16
// NOTE: actually, encoding/json can't use float as map key
case reflect.Float32:
return decodeFloat32Key
case reflect.Float64:
return decodeFloat64Key
case reflect.String:
if rt.UnpackType(vt.Key()) == rt.JsonNumberType {
return decodeJsonNumberKey
}
fallthrough
default: default:
panic(&json.UnmarshalTypeError{Type: vt}) return nil
} }
} }

View file

@ -71,3 +71,9 @@
} }
} }
func error_unsuppoted(typ *rt.GoType) error {
return &json.UnsupportedTypeError{
Type: typ.Pack(),
}
}

View file

@ -279,3 +279,16 @@ func (d *recuriveDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) er
} }
return dec.FromDom(vp, node, ctx) return dec.FromDom(vp, node, ctx)
} }
type unsupportedTypeDecoder struct {
typ *rt.GoType
}
func (d *unsupportedTypeDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error {
if node.IsNull() {
return nil
}
return error_unsuppoted(d.typ)
}

View file

@ -13,32 +13,44 @@ type efaceDecoder struct {
} }
func (d *efaceDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error { func (d *efaceDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error {
if node.IsNull() { /* check the defined pointer type for issue 379 */
*(*interface{})(vp) = interface{}(nil) eface := (*rt.GoEface)(vp)
return nil
}
eface := *(*rt.GoEface)(vp) /*
not pointer type, or nil pointer, or self-pointed interface{}, such as
// not pointer type, or nil pointer, or *interface{} ```go
if eface.Value == nil || eface.Type.Kind() != reflect.Ptr || rt.PtrElem(eface.Type) == anyType { var v interface{}
v = &v
return v
``` see `issue758_test.go`.
*/
if eface.Value == nil || eface.Type.Kind() != reflect.Ptr || eface.Value == vp {
ret, err := node.AsEface(ctx) ret, err := node.AsEface(ctx)
if err != nil { if err != nil {
return err return err
} }
*(*interface{})(vp) = ret *(*interface{})(vp) = ret
return nil return nil
} }
if node.IsNull() {
if eface.Type.Indirect() || (!eface.Type.Indirect() && eface.Type.Pack().Elem().Kind() != reflect.Ptr) {
*(*interface{})(vp) = nil
return nil
}
}
etp := rt.PtrElem(eface.Type) etp := rt.PtrElem(eface.Type)
vp = eface.Value vp = eface.Value
/* check the defined pointer type for issue 379 */
if eface.Type.IsNamed() { if eface.Type.IsNamed() {
// check named pointer type, avoid call its `Unmarshaler`
newp := vp newp := vp
etp = eface.Type etp = eface.Type
vp = unsafe.Pointer(&newp) vp = unsafe.Pointer(&newp)
} else if !eface.Type.Indirect() {
// check direct value
etp = rt.UnpackType(eface.Type.Pack().Elem())
} }
dec, err := findOrCompile(etp) dec, err := findOrCompile(etp)
@ -65,19 +77,10 @@ func (d *ifaceDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error
} }
vt := iface.Itab.Vt vt := iface.Itab.Vt
if vt.Kind() != reflect.Ptr || iface.Value == nil {
// not pointer type, or nil pointer, or *interface{} return error_type(d.typ)
if vp == nil || vt.Kind() != reflect.Ptr || rt.PtrElem(vt) == anyType {
ret, err := node.AsEface(ctx)
if err != nil {
return err
}
*(*interface{})(vp) = ret
return nil
} }
etp := rt.PtrElem(vt) etp := rt.PtrElem(vt)
vp = iface.Value vp = iface.Value

View file

@ -292,9 +292,9 @@ func (d *mapU64KeyDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) e
/** Decoder for generic cases */ /** Decoder for generic cases */
type decKey func(dec *mapDecoder, raw string, ctx *context) (interface{}, error) type decKey func(dec *mapDecoder, raw string) (interface{}, error)
func decodeKeyU8(dec *mapDecoder, raw string, ctx *context) (interface{}, error) { func decodeKeyU8(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw) key, err := Unquote(raw)
if err != nil { if err != nil {
return nil, err return nil, err
@ -309,7 +309,7 @@ func decodeKeyU8(dec *mapDecoder, raw string, ctx *context) (interface{}, error)
return uint8(ret), nil return uint8(ret), nil
} }
func decodeKeyU16(dec *mapDecoder, raw string, ctx *context) (interface{}, error) { func decodeKeyU16(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw) key, err := Unquote(raw)
if err != nil { if err != nil {
return nil, err return nil, err
@ -324,7 +324,7 @@ func decodeKeyU16(dec *mapDecoder, raw string, ctx *context) (interface{}, error
return uint16(ret), nil return uint16(ret), nil
} }
func decodeKeyI8(dec *mapDecoder, raw string, ctx *context) (interface{}, error) { func decodeKeyI8(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw) key, err := Unquote(raw)
if err != nil { if err != nil {
return nil, err return nil, err
@ -339,7 +339,7 @@ func decodeKeyI8(dec *mapDecoder, raw string, ctx *context) (interface{}, error)
return int8(ret), nil return int8(ret), nil
} }
func decodeKeyI16(dec *mapDecoder, raw string, ctx *context) (interface{}, error) { func decodeKeyI16(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw) key, err := Unquote(raw)
if err != nil { if err != nil {
return nil, err return nil, err
@ -354,26 +354,53 @@ func decodeKeyI16(dec *mapDecoder, raw string, ctx *context) (interface{}, error
return int16(ret), nil return int16(ret), nil
} }
func decodeKeyJSONUnmarshaler(dec *mapDecoder, raw string, _ *context) (interface{}, error) { func decodeKeyTextUnmarshaler(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw)
if err != nil {
return nil, err
}
ret := reflect.New(dec.mapType.Key.Pack()).Interface() ret := reflect.New(dec.mapType.Key.Pack()).Interface()
err := ret.(json.Unmarshaler).UnmarshalJSON([]byte(raw)) err = ret.(encoding.TextUnmarshaler).UnmarshalText(rt.Str2Mem(key))
if err != nil { if err != nil {
return nil, err return nil, err
} }
return ret, nil return ret, nil
} }
func decodeKeyTextUnmarshaler(dec *mapDecoder, raw string, ctx *context) (interface{}, error) { func decodeFloat32Key(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw) key, err := Unquote(raw)
if err != nil { if err != nil {
return nil, err return nil, err
} }
ret := reflect.New(dec.mapType.Key.Pack()).Interface() ret, err := ParseF64(key)
err = ret.(encoding.TextUnmarshaler).UnmarshalText([]byte(key))
if err != nil { if err != nil {
return nil, err return nil, err
} }
return ret, nil if ret > math.MaxFloat32 || ret < -math.MaxFloat32 {
return nil, error_value(key, dec.mapType.Key.Pack())
}
return float32(ret), nil
}
func decodeFloat64Key(dec *mapDecoder, raw string) (interface{}, error) {
key, err := Unquote(raw)
if err != nil {
return nil, err
}
return ParseF64(key)
}
func decodeJsonNumberKey(dec *mapDecoder, raw string) (interface{}, error) {
// skip the quote
raw = raw[1:len(raw)-1]
end, ok := SkipNumberFast(raw, 0)
// check trailing chars
if !ok || end != len(raw) {
return nil, error_value(raw, rt.JsonNumberType.Pack())
}
return json.Number(raw[0:end]), nil
} }
type mapDecoder struct { type mapDecoder struct {
@ -389,8 +416,8 @@ func (d *mapDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error {
} }
obj, ok := node.AsObj() obj, ok := node.AsObj()
if !ok { if !ok || d.keyDec == nil {
return error_mismatch(node, ctx, d.mapType.Pack()) return error_mismatch(node, ctx, d.mapType.Pack())
} }
// allocate map // allocate map
@ -404,7 +431,8 @@ func (d *mapDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error {
for i := 0; i < obj.Len(); i++ { for i := 0; i < obj.Len(); i++ {
keyn := NewNode(next) keyn := NewNode(next)
raw := keyn.AsRaw(ctx) raw := keyn.AsRaw(ctx)
key, err := d.keyDec(d, raw, ctx)
key, err := d.keyDec(d, raw)
if err != nil { if err != nil {
if gerr == nil { if gerr == nil {
gerr = error_mismatch(keyn, ctx, d.mapType.Pack()) gerr = error_mismatch(keyn, ctx, d.mapType.Pack())

View file

@ -74,6 +74,7 @@ type nodeBuf struct {
depth uint64 depth uint64
nstart uintptr nstart uintptr
nend uintptr nend uintptr
iskey bool
stat jsonStat stat jsonStat
} }
@ -196,14 +197,14 @@ func (p *Parser) parse() ErrorCode {
// check OoB here // check OoB here
offset := p.nbuf.ncur - p.nbuf.nstart offset := p.nbuf.ncur - p.nbuf.nstart
curLen := offset / unsafe.Sizeof(node{}) curLen := int(offset / unsafe.Sizeof(node{}))
if curLen != uintptr(len(p.nodes)) { if curLen != len(p.nodes) {
panic(fmt.Sprintf("current len: %d, real len: %d cap: %d", curLen, len(p.nodes), cap(p.nodes))) panic(fmt.Sprintf("current len: %d, real len: %d cap: %d", curLen, len(p.nodes), cap(p.nodes)))
} }
// node buf is not enough, continue parse // node buf is not enough, continue parse
// the maxCap is always meet all valid JSON // the maxCap is always meet all valid JSON
maxCap := calMaxNodeCap(len(p.Json)) maxCap := curLen + calMaxNodeCap(len(p.Json) - int(p.cur - p.start))
slice := rt.GoSlice{ slice := rt.GoSlice{
Ptr: rt.Mallocgc(uintptr(maxCap) * nodeType.Size, nodeType, false), Ptr: rt.Mallocgc(uintptr(maxCap) * nodeType.Size, nodeType, false),
Len: maxCap, Len: maxCap,

View file

@ -301,6 +301,17 @@ func (self Node) AsI64(ctx *Context) (int64, bool) {
} }
} }
func (self Node) AsByte(ctx *Context) (uint8, bool) {
typ := self.Type()
if typ == KUint && self.U64() <= math.MaxUint8 {
return uint8(self.U64()), true
} else if typ == KSint && self.I64() == 0 {
return 0, true
} else {
return 0, false
}
}
/********* Parse Node String into Value ***************/ /********* Parse Node String into Value ***************/
func (val Node) ParseI64(ctx *Context) (int64, bool) { func (val Node) ParseI64(ctx *Context) (int64, bool) {
@ -457,20 +468,6 @@ func (val Node) AsStrRef(ctx *Context) (string, bool) {
} }
} }
func (val Node) AsBytesRef(ctx *Context) ([]byte, bool) {
switch val.Type() {
case KStringEscaped:
node := ptrCast(val.cptr)
offset := val.Position()
len := int(node.val)
return ctx.Parser.JsonBytes()[offset : offset + len], true
case KStringCommon:
return rt.Str2Mem(val.StringRef(ctx)), true
default:
return nil, false
}
}
func (val Node) AsStringText(ctx *Context) ([]byte, bool) { func (val Node) AsStringText(ctx *Context) ([]byte, bool) {
if !val.IsStr() { if !val.IsStr() {
return nil, false return nil, false
@ -551,7 +548,7 @@ func (val Node) AsRaw(ctx *Context) string {
node := ptrCast(val.cptr) node := ptrCast(val.cptr)
len := int(node.val) len := int(node.val)
offset := val.Position() offset := val.Position()
// add start abd end quote // add start and end quote
ref := rt.Str2Mem(ctx.Parser.Json)[offset-1 : offset+len+1] ref := rt.Str2Mem(ctx.Parser.Json)[offset-1 : offset+len+1]
return rt.Mem2Str(ref) return rt.Mem2Str(ref)
case KRawNumber: fallthrough case KRawNumber: fallthrough
@ -867,15 +864,38 @@ func (node *Node) AsSliceString(ctx *Context, vp unsafe.Pointer) error {
return gerr return gerr
} }
func (node *Node) AsSliceBytes(ctx *Context) ([]byte, error) { func (val *Node) AsSliceBytes(ctx *Context) ([]byte, error) {
b, ok := node.AsBytesRef(ctx) var origin []byte
if !ok { switch val.Type() {
return nil, newUnmatched(node.Position(), rt.BytesType) case KStringEscaped:
node := ptrCast(val.cptr)
offset := val.Position()
len := int(node.val)
origin = ctx.Parser.JsonBytes()[offset : offset + len]
case KStringCommon:
origin = rt.Str2Mem(val.StringRef(ctx))
case KArray:
arr := val.Array()
size := arr.Len()
a := make([]byte, size)
elem := NewNode(arr.Children())
var gerr error
var ok bool
for i := 0; i < size; i++ {
a[i], ok = elem.AsByte(ctx)
if !ok && gerr == nil {
gerr = newUnmatched(val.Position(), rt.BytesType)
}
elem = NewNode(PtrOffset(elem.cptr, 1))
}
return a, gerr
default:
return nil, newUnmatched(val.Position(), rt.BytesType)
} }
b64, err := rt.DecodeBase64(b) b64, err := rt.DecodeBase64(origin)
if err != nil { if err != nil {
return nil, newUnmatched(node.Position(), rt.BytesType) return nil, newUnmatched(val.Position(), rt.BytesType)
} }
return b64, nil return b64, nil
} }

View file

@ -80,9 +80,13 @@ func (d *arrayDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error
} }
/* zero rest of array */ /* zero rest of array */
ptr := unsafe.Pointer(uintptr(vp) + uintptr(i)*d.elemType.Size) addr := uintptr(vp) + uintptr(i)*d.elemType.Size
n := uintptr(d.len-i) * d.elemType.Size n := uintptr(d.len-i) * d.elemType.Size
rt.ClearMemory(d.elemType, ptr, n)
/* the boundary pointer may points to another unknown object, so we need to avoid using it */
if n != 0 {
rt.ClearMemory(d.elemType, unsafe.Pointer(addr), n)
}
return gerr return gerr
} }
@ -95,7 +99,18 @@ func (d *sliceEfaceDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context)
return nil return nil
} }
return node.AsSliceEface(ctx, vp) /* if slice is empty, just call `AsSliceEface` */
if ((*rt.GoSlice)(vp)).Len == 0 {
return node.AsSliceEface(ctx, vp)
}
decoder := sliceDecoder{
elemType: rt.AnyType,
elemDec: &efaceDecoder{},
typ: rt.SliceEfaceType.Pack(),
}
return decoder.FromDom(vp, node, ctx)
} }
type sliceI32Decoder struct { type sliceI32Decoder struct {
@ -168,12 +183,8 @@ func (d *sliceBytesDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context)
} }
s, err := node.AsSliceBytes(ctx) s, err := node.AsSliceBytes(ctx)
if err != nil {
return err
}
*(*[]byte)(vp) = s *(*[]byte)(vp) = s
return nil return err
} }
type sliceBytesUnmarshalerDecoder struct { type sliceBytesUnmarshalerDecoder struct {

View file

@ -4,6 +4,7 @@ import (
"reflect" "reflect"
"unsafe" "unsafe"
"github.com/bytedance/sonic/internal/decoder/consts"
caching "github.com/bytedance/sonic/internal/optcaching" caching "github.com/bytedance/sonic/internal/optcaching"
"github.com/bytedance/sonic/internal/resolver" "github.com/bytedance/sonic/internal/resolver"
) )
@ -38,7 +39,7 @@ func (d *structDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) erro
next = val.Next() next = val.Next()
// find field idx // find field idx
idx := d.fieldMap.Get(key) idx := d.fieldMap.Get(key, ctx.Options()&uint64(consts.OptionCaseSensitive) != 0)
if idx == -1 { if idx == -1 {
if Options(ctx.Options())&OptionDisableUnknown != 0 { if Options(ctx.Options())&OptionDisableUnknown != 0 {
return error_field(key) return error_field(key)

View file

@ -165,19 +165,20 @@ func IteratorNext(p *MapIterator) {
p.ki++ p.ki++
} }
func IteratorStart(t *rt.GoMapType, m *rt.GoMap, fv uint64) (*MapIterator, error) { func IteratorStart(t *rt.GoMapType, m unsafe.Pointer, fv uint64) (*MapIterator, error) {
it := newIterator() it := newIterator()
rt.Mapiterinit(t, m, &it.It) rt.Mapiterinit(t, m, &it.It)
count := rt.Maplen(m)
/* check for key-sorting, empty map don't need sorting */ /* check for key-sorting, empty map don't need sorting */
if m.Count == 0 || (fv & (1<<BitSortMapKeys)) == 0 { if count == 0 || (fv & (1<<BitSortMapKeys)) == 0 {
it.ki = -1 it.ki = -1
return it, nil return it, nil
} }
/* pre-allocate space if needed */ /* pre-allocate space if needed */
if m.Count > it.kv.Cap { if count > it.kv.Cap {
it.kv = rt.GrowSlice(iteratorPair, it.kv, m.Count) it.kv = rt.GrowSlice(iteratorPair, it.kv, count)
} }
/* dump all the key-value pairs */ /* dump all the key-value pairs */
@ -189,7 +190,7 @@ func IteratorStart(t *rt.GoMapType, m *rt.GoMap, fv uint64) (*MapIterator, error
} }
/* sort the keys, map with only 1 item don't need sorting */ /* sort the keys, map with only 1 item don't need sorting */
if it.ki = 1; m.Count > 1 { if it.ki = 1; count > 1 {
radixQsort(it.data(), 0, maxDepth(it.kv.Len)) radixQsort(it.data(), 0, maxDepth(it.kv.Len))
} }

View file

@ -19,8 +19,11 @@ package alg
import ( import (
"encoding" "encoding"
"encoding/json" "encoding/json"
"reflect"
"unsafe"
"github.com/bytedance/sonic/internal/encoder/vars" "github.com/bytedance/sonic/internal/encoder/vars"
"github.com/bytedance/sonic/internal/resolver"
"github.com/bytedance/sonic/internal/rt" "github.com/bytedance/sonic/internal/rt"
) )
@ -93,3 +96,9 @@ func EncodeTextMarshaler(buf *[]byte, val encoding.TextMarshaler, opt uint64) er
} }
} }
func IsZero(val unsafe.Pointer, fv *resolver.FieldMeta) bool {
rv := reflect.NewAt(fv.Type, val).Elem()
b1 := fv.IsZero == nil && rv.IsZero()
b2 := fv.IsZero != nil && fv.IsZero(rv)
return b1 || b2
}

View file

@ -1,5 +1,5 @@
//go:build (amd64 && go1.16 && !go1.24) || (arm64 && go1.20 && !go1.24) //go:build (amd64 && go1.16 && !go1.25) || (arm64 && go1.20 && !go1.25)
// +build amd64,go1.16,!go1.24 arm64,go1.20,!go1.24 // +build amd64,go1.16,!go1.25 arm64,go1.20,!go1.25
/** /**
* Copyright 2024 ByteDance Inc. * Copyright 2024 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build !amd64,!arm64 go1.24 !go1.16 arm64,!go1.20 // +build !amd64,!arm64 go1.25 !go1.16 arm64,!go1.20
/** /**
* Copyright 2024 ByteDance Inc. * Copyright 2024 ByteDance Inc.

View file

@ -219,7 +219,7 @@ func (self *Compiler) compileOps(p *ir.Program, sp int, vt reflect.Type) {
case reflect.Struct: case reflect.Struct:
self.compileStruct(p, sp, vt) self.compileStruct(p, sp, vt)
default: default:
panic(vars.Error_type(vt)) self.compileUnsupportedType(p, vt)
} }
} }
@ -440,7 +440,8 @@ func (self *Compiler) compileStructBody(p *ir.Program, sp int, vt reflect.Type)
p.Add(ir.OP_cond_set) p.Add(ir.OP_cond_set)
/* compile each field */ /* compile each field */
for _, fv := range resolver.ResolveStruct(vt) { fvs := resolver.ResolveStruct(vt)
for i, fv := range fvs {
var s []int var s []int
var o resolver.Offset var o resolver.Offset
@ -463,7 +464,12 @@ func (self *Compiler) compileStructBody(p *ir.Program, sp int, vt reflect.Type)
/* check for "omitempty" option */ /* check for "omitempty" option */
if fv.Type.Kind() != reflect.Struct && fv.Type.Kind() != reflect.Array && (fv.Opts&resolver.F_omitempty) != 0 { if fv.Type.Kind() != reflect.Struct && fv.Type.Kind() != reflect.Array && (fv.Opts&resolver.F_omitempty) != 0 {
s = append(s, p.PC()) s = append(s, p.PC())
self.compileStructFieldZero(p, fv.Type) self.compileStructFieldEmpty(p, fv.Type)
}
/* check for "omitzero" option */
if fv.Opts&resolver.F_omitzero != 0 {
s = append(s, p.PC())
p.VField(ir.OP_is_zero, &fvs[i])
} }
/* add the comma if not the first element */ /* add the comma if not the first element */
@ -574,7 +580,7 @@ func (self *Compiler) compileStructFieldStr(p *ir.Program, sp int, vt reflect.Ty
} }
} }
func (self *Compiler) compileStructFieldZero(p *ir.Program, vt reflect.Type) { func (self *Compiler) compileStructFieldEmpty(p *ir.Program, vt reflect.Type) {
switch vt.Kind() { switch vt.Kind() {
case reflect.Bool: case reflect.Bool:
p.Add(ir.OP_is_zero_1) p.Add(ir.OP_is_zero_1)
@ -626,16 +632,16 @@ func (self *Compiler) compileStructFieldQuoted(p *ir.Program, sp int, vt reflect
} }
func (self *Compiler) compileInterface(p *ir.Program, vt reflect.Type) { func (self *Compiler) compileInterface(p *ir.Program, vt reflect.Type) {
x := p.PC()
p.Add(ir.OP_is_nil_p1)
/* iface and efaces are different */ /* iface and efaces are different */
if vt.NumMethod() == 0 { if vt.NumMethod() == 0 {
p.Add(ir.OP_eface) p.Add(ir.OP_eface)
} else { return
p.Add(ir.OP_iface)
} }
x := p.PC()
p.Add(ir.OP_is_nil_p1)
p.Add(ir.OP_iface)
/* the "null" value */ /* the "null" value */
e := p.PC() e := p.PC()
p.Add(ir.OP_goto) p.Add(ir.OP_goto)
@ -644,6 +650,11 @@ func (self *Compiler) compileInterface(p *ir.Program, vt reflect.Type) {
p.Pin(e) p.Pin(e)
} }
func (self *Compiler) compileUnsupportedType(p *ir.Program, vt reflect.Type) {
p.Rtt(ir.OP_unsupported, vt)
}
func (self *Compiler) compileMarshaler(p *ir.Program, op ir.Op, vt reflect.Type, mt reflect.Type) { func (self *Compiler) compileMarshaler(p *ir.Program, op ir.Op, vt reflect.Type, mt reflect.Type) {
pc := p.PC() pc := p.PC()
vk := vt.Kind() vk := vt.Kind()

View file

@ -24,6 +24,7 @@ import (
"unsafe" "unsafe"
"github.com/bytedance/sonic/internal/encoder/vars" "github.com/bytedance/sonic/internal/encoder/vars"
"github.com/bytedance/sonic/internal/resolver"
"github.com/bytedance/sonic/internal/rt" "github.com/bytedance/sonic/internal/rt"
) )
@ -80,6 +81,8 @@ const (
OP_marshal_text_p OP_marshal_text_p
OP_cond_set OP_cond_set
OP_cond_testc OP_cond_testc
OP_unsupported
OP_is_zero
) )
const ( const (
@ -141,6 +144,7 @@ var OpNames = [256]string{
OP_marshal_text_p: "marshal_text_p", OP_marshal_text_p: "marshal_text_p",
OP_cond_set: "cond_set", OP_cond_set: "cond_set",
OP_cond_testc: "cond_testc", OP_cond_testc: "cond_testc",
OP_unsupported: "unsupported type",
} }
func (self Op) String() string { func (self Op) String() string {
@ -229,6 +233,11 @@ type typAndTab struct {
itab *rt.GoItab itab *rt.GoItab
} }
type typAndField struct {
vt reflect.Type
fv *resolver.FieldMeta
}
func NewInsVtab(op Op, vt reflect.Type, itab *rt.GoItab) Instr { func NewInsVtab(op Op, vt reflect.Type, itab *rt.GoItab) Instr {
return Instr{ return Instr{
o: op, o: op,
@ -239,6 +248,13 @@ func NewInsVtab(op Op, vt reflect.Type, itab *rt.GoItab) Instr {
} }
} }
func NewInsField(op Op, fv *resolver.FieldMeta) Instr {
return Instr{
o: op,
p: unsafe.Pointer(fv),
}
}
func NewInsVp(op Op, vt reflect.Type, pv bool) Instr { func NewInsVp(op Op, vt reflect.Type, pv bool) Instr {
i := 0 i := 0
if pv { if pv {
@ -263,6 +279,10 @@ func (self Instr) Vf() uint8 {
return (*rt.GoType)(self.p).KindFlags return (*rt.GoType)(self.p).KindFlags
} }
func (self Instr) VField() (*resolver.FieldMeta) {
return (*resolver.FieldMeta)(self.p)
}
func (self Instr) Vs() (v string) { func (self Instr) Vs() (v string) {
(*rt.GoString)(unsafe.Pointer(&v)).Ptr = self.p (*rt.GoString)(unsafe.Pointer(&v)).Ptr = self.p
(*rt.GoString)(unsafe.Pointer(&v)).Len = self.Vi() (*rt.GoString)(unsafe.Pointer(&v)).Len = self.Vi()
@ -273,6 +293,10 @@ func (self Instr) Vk() reflect.Kind {
return (*rt.GoType)(self.p).Kind() return (*rt.GoType)(self.p).Kind()
} }
func (self Instr) GoType() *rt.GoType {
return (*rt.GoType)(self.p)
}
func (self Instr) Vt() reflect.Type { func (self Instr) Vt() reflect.Type {
return (*rt.GoType)(self.p).Pack() return (*rt.GoType)(self.p).Pack()
} }
@ -442,6 +466,10 @@ func (self *Program) Vtab(op Op, vt reflect.Type, itab *rt.GoItab) {
*self = append(*self, NewInsVtab(op, vt, itab)) *self = append(*self, NewInsVtab(op, vt, itab))
} }
func (self *Program) VField(op Op, fv *resolver.FieldMeta) {
*self = append(*self, NewInsField(op, fv))
}
func (self Program) Disassemble() string { func (self Program) Disassemble() string {
nb := len(self) nb := len(self)
tab := make([]bool, nb+1) tab := make([]bool, nb+1)

View file

@ -17,7 +17,6 @@
package encoder package encoder
import ( import (
"errors"
"reflect" "reflect"
"unsafe" "unsafe"
@ -52,24 +51,6 @@ var _KeepAlive struct {
frame [x86.FP_offs]byte frame [x86.FP_offs]byte
} }
var errCallShadow = errors.New("DON'T CALL THIS!")
// Faker func of _Encoder, used to export its stackmap as _Encoder's
func _Encoder_Shadow(rb *[]byte, vp unsafe.Pointer, sb *vars.Stack, fv uint64) (err error) {
// align to assembler_amd64.go: x86.FP_offs
var frame [x86.FP_offs]byte
// must keep all args and frames noticeable to GC
_KeepAlive.rb = rb
_KeepAlive.vp = vp
_KeepAlive.sb = sb
_KeepAlive.fv = fv
_KeepAlive.err = err
_KeepAlive.frame = frame
return errCallShadow
}
func makeEncoderX86(vt *rt.GoType, ex ...interface{}) (interface{}, error) { func makeEncoderX86(vt *rt.GoType, ex ...interface{}) (interface{}, error) {
pp, err := NewCompiler().Compile(vt.Pack(), ex[0].(bool)) pp, err := NewCompiler().Compile(vt.Pack(), ex[0].(bool))
if err != nil { if err != nil {

View file

@ -47,6 +47,10 @@ func Error_number(number json.Number) error {
} }
} }
func Error_unsuppoted(typ *rt.GoType) error {
return &json.UnsupportedTypeError{Type: typ.Pack() }
}
func Error_marshaler(ret []byte, pos int) error { func Error_marshaler(ret []byte, pos int) error {
return fmt.Errorf("invalid Marshaler output json syntax at %d: %q", pos, ret) return fmt.Errorf("invalid Marshaler output json syntax at %d: %q", pos, ret)
} }

View file

@ -26,7 +26,6 @@ import (
"github.com/bytedance/sonic/internal/encoder/ir" "github.com/bytedance/sonic/internal/encoder/ir"
"github.com/bytedance/sonic/internal/encoder/vars" "github.com/bytedance/sonic/internal/encoder/vars"
"github.com/bytedance/sonic/internal/rt" "github.com/bytedance/sonic/internal/rt"
"github.com/bytedance/sonic/internal/base64"
) )
const ( const (
@ -176,7 +175,7 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
buf = alg.F64toa(buf, v) buf = alg.F64toa(buf, v)
case ir.OP_bin: case ir.OP_bin:
v := *(*[]byte)(p) v := *(*[]byte)(p)
buf = base64.EncodeBase64(buf, v) buf = rt.EncodeBase64(buf, v)
case ir.OP_quote: case ir.OP_quote:
v := *(*string)(p) v := *(*string)(p)
buf = alg.Quote(buf, v, true) buf = alg.Quote(buf, v, true)
@ -202,13 +201,13 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
} }
buf = *b buf = *b
case ir.OP_is_zero_map: case ir.OP_is_zero_map:
v := *(**rt.GoMap)(p) v := *(*unsafe.Pointer)(p)
if v == nil || v.Count == 0 { if v == nil || rt.Maplen(v) == 0 {
pc = ins.Vi() pc = ins.Vi()
continue continue
} }
case ir.OP_map_iter: case ir.OP_map_iter:
v := *(**rt.GoMap)(p) v := *(*unsafe.Pointer)(p)
vt := ins.Vr() vt := ins.Vr()
it, err := alg.IteratorStart(rt.MapType(vt), v, flags) it, err := alg.IteratorStart(rt.MapType(vt), v, flags)
if err != nil { if err != nil {
@ -284,6 +283,12 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
pc = ins.Vi() pc = ins.Vi()
continue continue
} }
case ir.OP_is_zero:
fv := ins.VField()
if alg.IsZero(p, fv) {
pc = ins.Vi()
continue
}
case ir.OP_is_zero_1: case ir.OP_is_zero_1:
if *(*uint8)(p) == 0 { if *(*uint8)(p) == 0 {
pc = ins.Vi() pc = ins.Vi()
@ -338,6 +343,8 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
if err := alg.EncodeJsonMarshaler(&buf, *(*json.Marshaler)(unsafe.Pointer(&it)), (flags)); err != nil { if err := alg.EncodeJsonMarshaler(&buf, *(*json.Marshaler)(unsafe.Pointer(&it)), (flags)); err != nil {
return err return err
} }
case ir.OP_unsupported:
return vars.Error_unsuppoted(ins.GoType())
default: default:
panic(fmt.Sprintf("not implement %s at %d", ins.Op().String(), pc)) panic(fmt.Sprintf("not implement %s at %d", ins.Op().String(), pc))
} }
@ -347,13 +354,6 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
return nil return nil
} }
// func to_buf(w unsafe.Pointer, l int, c int) []byte {
// return rt.BytesFrom(unsafe.Pointer(uintptr(w)-uintptr(l)), l, c)
// }
// func from_buf(buf []byte) (unsafe.Pointer, int, int) {
// return rt.IndexByte(buf, len(buf)), len(buf), cap(buf)
// }
func has_opts(opts uint64, bit int) bool { func has_opts(opts uint64, bit int) bool {
return opts & (1<<bit) != 0 return opts & (1<<bit) != 0

View file

@ -1,5 +1,5 @@
//go:build go1.21 && !go1.24 //go:build go1.21 && !go1.25
// +build go1.21,!go1.24 // +build go1.21,!go1.25
// Copyright 2023 CloudWeGo Authors // Copyright 2023 CloudWeGo Authors
// //

View file

@ -1,5 +1,5 @@
//go:build go1.17 && !go1.24 //go:build go1.17 && !go1.25
// +build go1.17,!go1.24 // +build go1.17,!go1.25
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.
@ -265,6 +265,8 @@ var _OpFuncTab = [256]func(*Assembler, *ir.Instr){
ir.OP_marshal_text_p: (*Assembler)._asm_OP_marshal_text_p, ir.OP_marshal_text_p: (*Assembler)._asm_OP_marshal_text_p,
ir.OP_cond_set: (*Assembler)._asm_OP_cond_set, ir.OP_cond_set: (*Assembler)._asm_OP_cond_set,
ir.OP_cond_testc: (*Assembler)._asm_OP_cond_testc, ir.OP_cond_testc: (*Assembler)._asm_OP_cond_testc,
ir.OP_unsupported: (*Assembler)._asm_OP_unsupported,
ir.OP_is_zero: (*Assembler)._asm_OP_is_zero,
} }
func (self *Assembler) instr(v *ir.Instr) { func (self *Assembler) instr(v *ir.Instr) {
@ -756,7 +758,7 @@ var (
_F_f32toa = jit.Imm(int64(native.S_f32toa)) _F_f32toa = jit.Imm(int64(native.S_f32toa))
_F_i64toa = jit.Imm(int64(native.S_i64toa)) _F_i64toa = jit.Imm(int64(native.S_i64toa))
_F_u64toa = jit.Imm(int64(native.S_u64toa)) _F_u64toa = jit.Imm(int64(native.S_u64toa))
_F_b64encode = jit.Imm(int64(_subr__b64encode)) _F_b64encode = jit.Imm(int64(rt.SubrB64Encode))
) )
var ( var (
@ -1097,6 +1099,20 @@ func (self *Assembler) _asm_OP_is_zero_map(p *ir.Instr) {
self.Xjmp("JE", p.Vi()) // JE p.Vi() self.Xjmp("JE", p.Vi()) // JE p.Vi()
} }
var (
_F_is_zero = jit.Func(alg.IsZero)
_T_reflect_Type = rt.UnpackIface(reflect.Type(nil))
)
func (self *Assembler) _asm_OP_is_zero(p *ir.Instr) {
fv := p.VField()
self.Emit("MOVQ", _SP_p, _AX) // ptr
self.Emit("MOVQ", jit.ImmPtr(unsafe.Pointer(fv)), _BX) // fv
self.call_go(_F_is_zero) // CALL $fn
self.Emit("CMPB", _AX, jit.Imm(0)) // CMPB (SP.p), $0
self.Xjmp("JNE", p.Vi()) // JE p.Vi()
}
func (self *Assembler) _asm_OP_goto(p *ir.Instr) { func (self *Assembler) _asm_OP_goto(p *ir.Instr) {
self.Xjmp("JMP", p.Vi()) self.Xjmp("JMP", p.Vi())
} }
@ -1187,6 +1203,15 @@ func (self *Assembler) _asm_OP_cond_testc(p *ir.Instr) {
self.Xjmp("JC", p.Vi()) self.Xjmp("JC", p.Vi())
} }
var _F_error_unsupported = jit.Func(vars.Error_unsuppoted)
func (self *Assembler) _asm_OP_unsupported(i *ir.Instr) {
typ := int64(uintptr(unsafe.Pointer(i.GoType())))
self.Emit("MOVQ", jit.Imm(typ), _AX)
self.call_go(_F_error_unsupported)
self.Sjmp("JMP", _LB_error)
}
func (self *Assembler) print_gc(i int, p1 *ir.Instr, p2 *ir.Instr) { func (self *Assembler) print_gc(i int, p1 *ir.Instr, p2 *ir.Instr) {
self.Emit("MOVQ", jit.Imm(int64(p2.Op())), _CX) // MOVQ $(p2.Op()), AX self.Emit("MOVQ", jit.Imm(int64(p2.Op())), _CX) // MOVQ $(p2.Op()), AX
self.Emit("MOVQ", jit.Imm(int64(p1.Op())), _BX) // MOVQ $(p1.Op()), BX self.Emit("MOVQ", jit.Imm(int64(p1.Op())), _BX) // MOVQ $(p1.Op()), BX

View file

@ -1,5 +1,5 @@
//go:build go1.17 && !go1.24 //go:build go1.17 && !go1.25
// +build go1.17,!go1.24 // +build go1.17,!go1.25
/* /*
* Copyright 2021 ByteDance Inc. * Copyright 2021 ByteDance Inc.

View file

@ -27,9 +27,6 @@ import (
_ "github.com/cloudwego/base64x" _ "github.com/cloudwego/base64x"
) )
//go:linkname _subr__b64encode github.com/cloudwego/base64x._subr__b64encode
var _subr__b64encode uintptr
var compiler func(*rt.GoType, ... interface{}) (interface{}, error) var compiler func(*rt.GoType, ... interface{}) (interface{}, error)
func SetCompiler(c func(*rt.GoType, ... interface{}) (interface{}, error)) { func SetCompiler(c func(*rt.GoType, ... interface{}) (interface{}, error)) {

View file

@ -17,8 +17,10 @@
package jit package jit
import ( import (
`github.com/twitchyliquid64/golang-asm/asm/arch` "unsafe"
`github.com/twitchyliquid64/golang-asm/obj`
"github.com/twitchyliquid64/golang-asm/asm/arch"
"github.com/twitchyliquid64/golang-asm/obj"
) )
var ( var (
@ -33,6 +35,13 @@ func As(op string) obj.As {
} }
} }
func ImmPtr(imm unsafe.Pointer) obj.Addr {
return obj.Addr {
Type : obj.TYPE_CONST,
Offset : int64(uintptr(imm)),
}
}
func Imm(imm int64) obj.Addr { func Imm(imm int64) obj.Addr {
return obj.Addr { return obj.Addr {
Type : obj.TYPE_CONST, Type : obj.TYPE_CONST,

View file

@ -21,6 +21,7 @@ import (
`sync` `sync`
_ `unsafe` _ `unsafe`
`github.com/bytedance/sonic/internal/rt`
`github.com/twitchyliquid64/golang-asm/asm/arch` `github.com/twitchyliquid64/golang-asm/asm/arch`
`github.com/twitchyliquid64/golang-asm/obj` `github.com/twitchyliquid64/golang-asm/obj`
`github.com/twitchyliquid64/golang-asm/objabi` `github.com/twitchyliquid64/golang-asm/objabi`
@ -38,10 +39,6 @@ var (
_progPool sync.Pool _progPool sync.Pool
) )
//go:nosplit
//go:linkname throw runtime.throw
func throw(_ string)
func newProg() *obj.Prog { func newProg() *obj.Prog {
if val := _progPool.Get(); val == nil { if val := _progPool.Get(); val == nil {
return new(obj.Prog) return new(obj.Prog)
@ -71,7 +68,7 @@ func newLinkContext(arch *obj.LinkArch) (ret *obj.Link) {
} }
func diagLinkContext(str string, args ...interface{}) { func diagLinkContext(str string, args ...interface{}) {
throw(fmt.Sprintf(str, args...)) rt.Throw(fmt.Sprintf(str, args...))
} }
func (self *Backend) New() (ret *obj.Prog) { func (self *Backend) New() (ret *obj.Prog) {

View file

@ -12,11 +12,11 @@ const (
) )
const ( const (
_stack__f32toa = 56 _stack__f32toa = 64
) )
const ( const (
_size__f32toa = 3776 _size__f32toa = 3792
) )
var ( var (
@ -27,16 +27,16 @@ var (
{0xa, 24}, {0xa, 24},
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0xe, 48}, {0x11, 48},
{0xe8a, 56}, {0xe9a, 64},
{0xe8b, 48}, {0xe9b, 48},
{0xe8d, 40}, {0xe9d, 40},
{0xe8f, 32}, {0xe9f, 32},
{0xe91, 24}, {0xea1, 24},
{0xe93, 16}, {0xea3, 16},
{0xe94, 8}, {0xea4, 8},
{0xe98, 0}, {0xea8, 0},
{0xec0, 56}, {0xed0, 64},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__f64toa = 5072 _size__f64toa = 5088
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x11, 48}, {0x11, 48},
{0x136d, 72}, {0x137d, 72},
{0x136e, 48}, {0x137e, 48},
{0x1370, 40}, {0x1380, 40},
{0x1372, 32}, {0x1382, 32},
{0x1374, 24}, {0x1384, 24},
{0x1376, 16}, {0x1386, 16},
{0x1377, 8}, {0x1387, 8},
{0x137b, 0}, {0x138b, 0},
{0x13d0, 72}, {0x13e0, 72},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__get_by_path = 21184 _size__get_by_path = 21452
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0x4907, 240}, {0x4a1c, 240},
{0x4908, 48}, {0x4a1d, 48},
{0x490a, 40}, {0x4a1f, 40},
{0x490c, 32}, {0x4a21, 32},
{0x490e, 24}, {0x4a23, 24},
{0x4910, 16}, {0x4a25, 16},
{0x4911, 8}, {0x4a26, 8},
{0x4915, 0}, {0x4a2a, 0},
{0x52c0, 240}, {0x53cc, 240},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -57,19 +57,18 @@ var _text_html_escape = []byte{
0x4d, 0x85, 0xc9, //0x00000130 testq %r9, %r9 0x4d, 0x85, 0xc9, //0x00000130 testq %r9, %r9
0x0f, 0x8e, 0x5e, 0x07, 0x00, 0x00, //0x00000133 jle LBB0_3 0x0f, 0x8e, 0x5e, 0x07, 0x00, 0x00, //0x00000133 jle LBB0_3
0x48, 0x83, 0xfe, 0x20, //0x00000139 cmpq $32, %rsi 0x48, 0x83, 0xfe, 0x20, //0x00000139 cmpq $32, %rsi
0x0f, 0x93, 0xc1, //0x0000013d setae %cl 0x0f, 0x9d, 0xc1, //0x0000013d setge %cl
0x4c, 0x89, 0xc8, //0x00000140 movq %r9, %rax 0x4c, 0x89, 0xc8, //0x00000140 movq %r9, %rax
0x4d, 0x89, 0xf8, //0x00000143 movq %r15, %r8 0x4d, 0x89, 0xf8, //0x00000143 movq %r15, %r8
0x49, 0x89, 0xf2, //0x00000146 movq %rsi, %r10 0x49, 0x89, 0xf2, //0x00000146 movq %rsi, %r10
0x4d, 0x89, 0xdc, //0x00000149 movq %r11, %r12 0x4d, 0x89, 0xdc, //0x00000149 movq %r11, %r12
0x49, 0x83, 0xf9, 0x20, //0x0000014c cmpq $32, %r9 0x0f, 0x8c, 0x7e, 0x00, 0x00, 0x00, //0x0000014c jl LBB0_12
0x0f, 0x82, 0x7a, 0x00, 0x00, 0x00, //0x00000150 jb LBB0_12 0x49, 0x83, 0xf9, 0x20, //0x00000152 cmpq $32, %r9
0x48, 0x83, 0xfe, 0x20, //0x00000156 cmpq $32, %rsi 0x0f, 0x8c, 0x74, 0x00, 0x00, 0x00, //0x00000156 jl LBB0_12
0x0f, 0x82, 0x70, 0x00, 0x00, 0x00, //0x0000015a jb LBB0_12 0x45, 0x31, 0xc0, //0x0000015c xorl %r8d, %r8d
0x45, 0x31, 0xc0, //0x00000160 xorl %r8d, %r8d 0x48, 0x89, 0xf3, //0x0000015f movq %rsi, %rbx
0x48, 0x89, 0xf3, //0x00000163 movq %rsi, %rbx 0x4c, 0x89, 0xcf, //0x00000162 movq %r9, %rdi
0x4c, 0x89, 0xcf, //0x00000166 movq %r9, %rdi 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000165 .p2align 4, 0x90
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000169 .p2align 4, 0x90
//0x00000170 LBB0_7 //0x00000170 LBB0_7
0xc4, 0x81, 0x7e, 0x6f, 0x04, 0x03, //0x00000170 vmovdqu (%r11,%r8), %ymm0 0xc4, 0x81, 0x7e, 0x6f, 0x04, 0x03, //0x00000170 vmovdqu (%r11,%r8), %ymm0
0xc5, 0xfd, 0x74, 0xcb, //0x00000176 vpcmpeqb %ymm3, %ymm0, %ymm1 0xc5, 0xfd, 0x74, 0xcb, //0x00000176 vpcmpeqb %ymm3, %ymm0, %ymm1
@ -314,7 +313,7 @@ var _text_html_escape = []byte{
0x48, 0x83, 0xc0, 0xf8, //0x0000055f addq $-8, %rax 0x48, 0x83, 0xc0, 0xf8, //0x0000055f addq $-8, %rax
//0x00000563 LBB0_19 //0x00000563 LBB0_19
0x48, 0x83, 0xf8, 0x04, //0x00000563 cmpq $4, %rax 0x48, 0x83, 0xf8, 0x04, //0x00000563 cmpq $4, %rax
0x0f, 0x83, 0x62, 0x00, 0x00, 0x00, //0x00000567 jae LBB0_20 0x0f, 0x8d, 0x62, 0x00, 0x00, 0x00, //0x00000567 jge LBB0_20
0x48, 0x83, 0xf8, 0x02, //0x0000056d cmpq $2, %rax 0x48, 0x83, 0xf8, 0x02, //0x0000056d cmpq $2, %rax
0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x00000571 jae LBB0_22 0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x00000571 jae LBB0_22
//0x00000577 LBB0_23 //0x00000577 LBB0_23
@ -370,7 +369,7 @@ var _text_html_escape = []byte{
0x49, 0x83, 0xc0, 0x08, //0x00000625 addq $8, %r8 0x49, 0x83, 0xc0, 0x08, //0x00000625 addq $8, %r8
0x48, 0x8d, 0x78, 0xf8, //0x00000629 leaq $-8(%rax), %rdi 0x48, 0x8d, 0x78, 0xf8, //0x00000629 leaq $-8(%rax), %rdi
0x48, 0x83, 0xff, 0x04, //0x0000062d cmpq $4, %rdi 0x48, 0x83, 0xff, 0x04, //0x0000062d cmpq $4, %rdi
0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x00000631 jae LBB0_63 0x0f, 0x8d, 0x6a, 0x00, 0x00, 0x00, //0x00000631 jge LBB0_63
0xe9, 0x77, 0x00, 0x00, 0x00, //0x00000637 jmp LBB0_64 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00000637 jmp LBB0_64
//0x0000063c LBB0_80 //0x0000063c LBB0_80
0x4d, 0x29, 0xdc, //0x0000063c subq %r11, %r12 0x4d, 0x29, 0xdc, //0x0000063c subq %r11, %r12
@ -405,7 +404,7 @@ var _text_html_escape = []byte{
0x4d, 0x89, 0xe2, //0x00000691 movq %r12, %r10 0x4d, 0x89, 0xe2, //0x00000691 movq %r12, %r10
0x48, 0x89, 0xc7, //0x00000694 movq %rax, %rdi 0x48, 0x89, 0xc7, //0x00000694 movq %rax, %rdi
0x48, 0x83, 0xff, 0x04, //0x00000697 cmpq $4, %rdi 0x48, 0x83, 0xff, 0x04, //0x00000697 cmpq $4, %rdi
0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000069b jb LBB0_64 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x0000069b jl LBB0_64
//0x000006a1 LBB0_63 //0x000006a1 LBB0_63
0x41, 0x8b, 0x0a, //0x000006a1 movl (%r10), %ecx 0x41, 0x8b, 0x0a, //0x000006a1 movl (%r10), %ecx
0x41, 0x89, 0x08, //0x000006a4 movl %ecx, (%r8) 0x41, 0x89, 0x08, //0x000006a4 movl %ecx, (%r8)
@ -506,11 +505,11 @@ var _text_html_escape = []byte{
0x49, 0x89, 0xc3, //0x000007ee movq %rax, %r11 0x49, 0x89, 0xc3, //0x000007ee movq %rax, %r11
0x48, 0x83, 0xfe, 0x01, //0x000007f1 cmpq $1, %rsi 0x48, 0x83, 0xfe, 0x01, //0x000007f1 cmpq $1, %rsi
0x48, 0x89, 0xce, //0x000007f5 movq %rcx, %rsi 0x48, 0x89, 0xce, //0x000007f5 movq %rcx, %rsi
0x0f, 0x87, 0x32, 0xf9, 0xff, 0xff, //0x000007f8 ja LBB0_2 0x0f, 0x8f, 0x32, 0xf9, 0xff, 0xff, //0x000007f8 jg LBB0_2
0xe9, 0x75, 0x00, 0x00, 0x00, //0x000007fe jmp LBB0_106 0xe9, 0x75, 0x00, 0x00, 0x00, //0x000007fe jmp LBB0_106
//0x00000803 LBB0_89 //0x00000803 LBB0_89
0x48, 0x83, 0xfe, 0x03, //0x00000803 cmpq $3, %rsi 0x48, 0x83, 0xfe, 0x03, //0x00000803 cmpq $3, %rsi
0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00000807 jb LBB0_95 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00000807 jl LBB0_95
0x41, 0x80, 0x7b, 0x01, 0x80, //0x0000080d cmpb $-128, $1(%r11) 0x41, 0x80, 0x7b, 0x01, 0x80, //0x0000080d cmpb $-128, $1(%r11)
0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000812 jne LBB0_95 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000812 jne LBB0_95
0x41, 0x8a, 0x4b, 0x02, //0x00000818 movb $2(%r11), %cl 0x41, 0x8a, 0x4b, 0x02, //0x00000818 movb $2(%r11), %cl

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__lookup_small_key = 794 _size__lookup_small_key = 810
) )
var ( var (
@ -28,14 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0xe, 48}, {0xe, 48},
{0x30c, 56}, {0x2fc, 56},
{0x30d, 48}, {0x2fd, 48},
{0x30f, 40}, {0x2ff, 40},
{0x311, 32}, {0x301, 32},
{0x313, 24}, {0x303, 24},
{0x315, 16}, {0x305, 16},
{0x316, 8}, {0x306, 8},
{0x31a, 0}, {0x30a, 0},
{0x32a, 56},
} }
) )

View file

@ -6,14 +6,14 @@ package avx2
var _text_lookup_small_key = []byte{ var _text_lookup_small_key = []byte{
// .p2align 5, 0x00 // .p2align 5, 0x00
// LCPI0_0 // LCPI0_0
0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, // QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@'
0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00000010 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00000010 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@'
//0x00000020 LCPI0_1 //0x00000020 LCPI0_1
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //0x00000020 QUAD $0x1818181818181818; QUAD $0x1818181818181818 // .space 16, '\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18' 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, //0x00000020 QUAD $0x5a5a5a5a5a5a5a5a; QUAD $0x5a5a5a5a5a5a5a5a // .space 16, 'ZZZZZZZZZZZZZZZZ'
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //0x00000030 QUAD $0x1818181818181818; QUAD $0x1818181818181818 // .space 16, '\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18' 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, //0x00000030 QUAD $0x5a5a5a5a5a5a5a5a; QUAD $0x5a5a5a5a5a5a5a5a // .space 16, 'ZZZZZZZZZZZZZZZZ'
//0x00000040 LCPI0_2 //0x00000040 LCPI0_2
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00000040 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01'
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00000050 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01'
//0x00000060 .p2align 4, 0x90 //0x00000060 .p2align 4, 0x90
//0x00000060 _lookup_small_key //0x00000060 _lookup_small_key
0x55, //0x00000060 pushq %rbp 0x55, //0x00000060 pushq %rbp
@ -31,49 +31,49 @@ var _text_lookup_small_key = []byte{
0x45, 0x0f, 0xb6, 0x4c, 0x0d, 0x00, //0x0000007d movzbl (%r13,%rcx), %r9d 0x45, 0x0f, 0xb6, 0x4c, 0x0d, 0x00, //0x0000007d movzbl (%r13,%rcx), %r9d
0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000083 movq $-1, %rax 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000083 movq $-1, %rax
0x45, 0x85, 0xc9, //0x0000008a testl %r9d, %r9d 0x45, 0x85, 0xc9, //0x0000008a testl %r9d, %r9d
0x0f, 0x84, 0xd5, 0x02, 0x00, 0x00, //0x0000008d je LBB0_39 0x0f, 0x84, 0xc5, 0x02, 0x00, 0x00, //0x0000008d je LBB0_40
0x48, 0x89, 0x55, 0xd0, //0x00000093 movq %rdx, $-48(%rbp) 0x4c, 0x8b, 0x1f, //0x00000093 movq (%rdi), %r11
0x4c, 0x8b, 0x37, //0x00000097 movq (%rdi), %r14 0x41, 0x8b, 0x44, 0x0d, 0x01, //0x00000096 movl $1(%r13,%rcx), %eax
0x41, 0x8b, 0x44, 0x0d, 0x01, //0x0000009a movl $1(%r13,%rcx), %eax 0x8d, 0xb8, 0xa5, 0x00, 0x00, 0x00, //0x0000009b leal $165(%rax), %edi
0x8d, 0xb8, 0xa5, 0x00, 0x00, 0x00, //0x0000009f leal $165(%rax), %edi 0x4c, 0x01, 0xef, //0x000000a1 addq %r13, %rdi
0x4c, 0x01, 0xef, //0x000000a5 addq %r13, %rdi 0x41, 0x0f, 0xb6, 0xca, //0x000000a4 movzbl %r10b, %ecx
0x41, 0x0f, 0xb6, 0xca, //0x000000a8 movzbl %r10b, %ecx 0x41, 0x83, 0xf8, 0x09, //0x000000a8 cmpl $9, %r8d
0x41, 0x83, 0xf8, 0x09, //0x000000ac cmpl $9, %r8d 0x48, 0x89, 0x45, 0xd0, //0x000000ac movq %rax, $-48(%rbp)
0x0f, 0x83, 0xc6, 0x00, 0x00, 0x00, //0x000000b0 jae LBB0_2 0x0f, 0x83, 0xc6, 0x00, 0x00, 0x00, //0x000000b0 jae LBB0_2
0x45, 0x8a, 0x3e, //0x000000b6 movb (%r14), %r15b 0x45, 0x8a, 0x3b, //0x000000b6 movb (%r11), %r15b
0x45, 0x8d, 0x60, 0x01, //0x000000b9 leal $1(%r8), %r12d 0x45, 0x8d, 0x60, 0x01, //0x000000b9 leal $1(%r8), %r12d
0x44, 0x89, 0xcb, //0x000000bd movl %r9d, %ebx 0x44, 0x89, 0xcb, //0x000000bd movl %r9d, %ebx
//0x000000c0 .p2align 4, 0x90 //0x000000c0 .p2align 4, 0x90
//0x000000c0 LBB0_7 //0x000000c0 LBB0_7
0x44, 0x38, 0x3f, //0x000000c0 cmpb %r15b, (%rdi) 0x44, 0x38, 0x3f, //0x000000c0 cmpb %r15b, (%rdi)
0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x000000c3 jne LBB0_8 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x000000c3 jne LBB0_8
0x44, 0x0f, 0xb6, 0x5f, 0x01, //0x000000c9 movzbl $1(%rdi), %r11d 0x44, 0x0f, 0xb6, 0x77, 0x01, //0x000000c9 movzbl $1(%rdi), %r14d
0xbe, 0x01, 0x00, 0x00, 0x00, //0x000000ce movl $1, %esi 0xbe, 0x01, 0x00, 0x00, 0x00, //0x000000ce movl $1, %esi
0x45, 0x3a, 0x5e, 0x01, //0x000000d3 cmpb $1(%r14), %r11b 0x45, 0x3a, 0x73, 0x01, //0x000000d3 cmpb $1(%r11), %r14b
0x0f, 0x85, 0x85, 0x00, 0x00, 0x00, //0x000000d7 jne LBB0_16 0x0f, 0x85, 0x85, 0x00, 0x00, 0x00, //0x000000d7 jne LBB0_16
0x0f, 0xb6, 0x57, 0x02, //0x000000dd movzbl $2(%rdi), %edx 0x0f, 0xb6, 0x47, 0x02, //0x000000dd movzbl $2(%rdi), %eax
0xbe, 0x02, 0x00, 0x00, 0x00, //0x000000e1 movl $2, %esi 0xbe, 0x02, 0x00, 0x00, 0x00, //0x000000e1 movl $2, %esi
0x41, 0x3a, 0x56, 0x02, //0x000000e6 cmpb $2(%r14), %dl 0x41, 0x3a, 0x43, 0x02, //0x000000e6 cmpb $2(%r11), %al
0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x000000ea jne LBB0_16 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x000000ea jne LBB0_16
0x0f, 0xb6, 0x57, 0x03, //0x000000f0 movzbl $3(%rdi), %edx 0x0f, 0xb6, 0x47, 0x03, //0x000000f0 movzbl $3(%rdi), %eax
0xbe, 0x03, 0x00, 0x00, 0x00, //0x000000f4 movl $3, %esi 0xbe, 0x03, 0x00, 0x00, 0x00, //0x000000f4 movl $3, %esi
0x41, 0x3a, 0x56, 0x03, //0x000000f9 cmpb $3(%r14), %dl 0x41, 0x3a, 0x43, 0x03, //0x000000f9 cmpb $3(%r11), %al
0x0f, 0x85, 0x5f, 0x00, 0x00, 0x00, //0x000000fd jne LBB0_16 0x0f, 0x85, 0x5f, 0x00, 0x00, 0x00, //0x000000fd jne LBB0_16
0x0f, 0xb6, 0x57, 0x04, //0x00000103 movzbl $4(%rdi), %edx 0x0f, 0xb6, 0x47, 0x04, //0x00000103 movzbl $4(%rdi), %eax
0xbe, 0x04, 0x00, 0x00, 0x00, //0x00000107 movl $4, %esi 0xbe, 0x04, 0x00, 0x00, 0x00, //0x00000107 movl $4, %esi
0x41, 0x3a, 0x56, 0x04, //0x0000010c cmpb $4(%r14), %dl 0x41, 0x3a, 0x43, 0x04, //0x0000010c cmpb $4(%r11), %al
0x0f, 0x85, 0x4c, 0x00, 0x00, 0x00, //0x00000110 jne LBB0_16 0x0f, 0x85, 0x4c, 0x00, 0x00, 0x00, //0x00000110 jne LBB0_16
0x0f, 0xb6, 0x57, 0x05, //0x00000116 movzbl $5(%rdi), %edx 0x0f, 0xb6, 0x47, 0x05, //0x00000116 movzbl $5(%rdi), %eax
0xbe, 0x05, 0x00, 0x00, 0x00, //0x0000011a movl $5, %esi 0xbe, 0x05, 0x00, 0x00, 0x00, //0x0000011a movl $5, %esi
0x41, 0x3a, 0x56, 0x05, //0x0000011f cmpb $5(%r14), %dl 0x41, 0x3a, 0x43, 0x05, //0x0000011f cmpb $5(%r11), %al
0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00000123 jne LBB0_16 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00000123 jne LBB0_16
0x0f, 0xb6, 0x57, 0x06, //0x00000129 movzbl $6(%rdi), %edx 0x0f, 0xb6, 0x47, 0x06, //0x00000129 movzbl $6(%rdi), %eax
0xbe, 0x06, 0x00, 0x00, 0x00, //0x0000012d movl $6, %esi 0xbe, 0x06, 0x00, 0x00, 0x00, //0x0000012d movl $6, %esi
0x41, 0x3a, 0x56, 0x06, //0x00000132 cmpb $6(%r14), %dl 0x41, 0x3a, 0x43, 0x06, //0x00000132 cmpb $6(%r11), %al
0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000136 jne LBB0_16 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000136 jne LBB0_16
0x0f, 0xb6, 0x57, 0x07, //0x0000013c movzbl $7(%rdi), %edx 0x0f, 0xb6, 0x47, 0x07, //0x0000013c movzbl $7(%rdi), %eax
0x31, 0xf6, //0x00000140 xorl %esi, %esi 0x31, 0xf6, //0x00000140 xorl %esi, %esi
0x41, 0x3a, 0x56, 0x07, //0x00000142 cmpb $7(%r14), %dl 0x41, 0x3a, 0x43, 0x07, //0x00000142 cmpb $7(%r11), %al
0x40, 0x0f, 0x94, 0xc6, //0x00000146 sete %sil 0x40, 0x0f, 0x94, 0xc6, //0x00000146 sete %sil
0x48, 0x83, 0xc6, 0x07, //0x0000014a addq $7, %rsi 0x48, 0x83, 0xc6, 0x07, //0x0000014a addq $7, %rsi
0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000014e jmp LBB0_16 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000014e jmp LBB0_16
@ -82,13 +82,13 @@ var _text_lookup_small_key = []byte{
0x31, 0xf6, //0x00000160 xorl %esi, %esi 0x31, 0xf6, //0x00000160 xorl %esi, %esi
//0x00000162 LBB0_16 //0x00000162 LBB0_16
0x48, 0x39, 0xce, //0x00000162 cmpq %rcx, %rsi 0x48, 0x39, 0xce, //0x00000162 cmpq %rcx, %rsi
0x0f, 0x83, 0x71, 0x01, 0x00, 0x00, //0x00000165 jae LBB0_17 0x0f, 0x83, 0x81, 0x01, 0x00, 0x00, //0x00000165 jae LBB0_17
0x4c, 0x01, 0xe7, //0x0000016b addq %r12, %rdi 0x4c, 0x01, 0xe7, //0x0000016b addq %r12, %rdi
0x83, 0xc3, 0xff, //0x0000016e addl $-1, %ebx 0x83, 0xc3, 0xff, //0x0000016e addl $-1, %ebx
0x0f, 0x85, 0x49, 0xff, 0xff, 0xff, //0x00000171 jne LBB0_7 0x0f, 0x85, 0x49, 0xff, 0xff, 0xff, //0x00000171 jne LBB0_7
0xe9, 0x43, 0x00, 0x00, 0x00, //0x00000177 jmp LBB0_20 0xe9, 0x43, 0x00, 0x00, 0x00, //0x00000177 jmp LBB0_20
//0x0000017c LBB0_2 //0x0000017c LBB0_2
0xc4, 0xc1, 0x7e, 0x6f, 0x06, //0x0000017c vmovdqu (%r14), %ymm0 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x0000017c vmovdqu (%r11), %ymm0
0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000181 movq $-1, %rsi 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000181 movq $-1, %rsi
0x48, 0xd3, 0xe6, //0x00000188 shlq %cl, %rsi 0x48, 0xd3, 0xe6, //0x00000188 shlq %cl, %rsi
0x45, 0x8d, 0x78, 0x01, //0x0000018b leal $1(%r8), %r15d 0x45, 0x8d, 0x78, 0x01, //0x0000018b leal $1(%r8), %r15d
@ -96,121 +96,126 @@ var _text_lookup_small_key = []byte{
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000192 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000192 .p2align 4, 0x90
//0x000001a0 LBB0_3 //0x000001a0 LBB0_3
0xc5, 0xfd, 0x74, 0x0f, //0x000001a0 vpcmpeqb (%rdi), %ymm0, %ymm1 0xc5, 0xfd, 0x74, 0x0f, //0x000001a0 vpcmpeqb (%rdi), %ymm0, %ymm1
0xc5, 0xfd, 0xd7, 0xd1, //0x000001a4 vpmovmskb %ymm1, %edx 0xc5, 0xfd, 0xd7, 0xc1, //0x000001a4 vpmovmskb %ymm1, %eax
0x09, 0xf2, //0x000001a8 orl %esi, %edx 0x09, 0xf0, //0x000001a8 orl %esi, %eax
0x83, 0xfa, 0xff, //0x000001aa cmpl $-1, %edx 0x83, 0xf8, 0xff, //0x000001aa cmpl $-1, %eax
0x0f, 0x84, 0x38, 0x01, 0x00, 0x00, //0x000001ad je LBB0_4 0x0f, 0x84, 0x48, 0x01, 0x00, 0x00, //0x000001ad je LBB0_4
0x4c, 0x01, 0xff, //0x000001b3 addq %r15, %rdi 0x4c, 0x01, 0xff, //0x000001b3 addq %r15, %rdi
0x83, 0xc3, 0xff, //0x000001b6 addl $-1, %ebx 0x83, 0xc3, 0xff, //0x000001b6 addl $-1, %ebx
0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x000001b9 jne LBB0_3 0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x000001b9 jne LBB0_3
//0x000001bf LBB0_20 //0x000001bf LBB0_20
0xc4, 0xc1, 0x7e, 0x6f, 0x06, //0x000001bf vmovdqu (%r14), %ymm0 0x48, 0x83, 0xfa, 0xff, //0x000001bf cmpq $-1, %rdx
0xc5, 0xfd, 0xfc, 0x0d, 0x34, 0xfe, 0xff, 0xff, //0x000001c4 vpaddb $-460(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */ 0x0f, 0x84, 0x88, 0x01, 0x00, 0x00, //0x000001c3 je LBB0_39
0xc5, 0xf5, 0xda, 0x15, 0x4c, 0xfe, 0xff, 0xff, //0x000001cc vpminub $-436(%rip), %ymm1, %ymm2 /* LCPI0_1+0(%rip) */ 0x48, 0x8b, 0x45, 0xd0, //0x000001c9 movq $-48(%rbp), %rax
0x48, 0x03, 0x45, 0xd0, //0x000001d4 addq $-48(%rbp), %rax 0x48, 0x01, 0xd0, //0x000001cd addq %rdx, %rax
0xc5, 0xf5, 0x74, 0xca, //0x000001d8 vpcmpeqb %ymm2, %ymm1, %ymm1 0x49, 0x01, 0xc5, //0x000001d0 addq %rax, %r13
0xc5, 0xf5, 0xdb, 0x0d, 0x5c, 0xfe, 0xff, 0xff, //0x000001dc vpand $-420(%rip), %ymm1, %ymm1 /* LCPI0_2+0(%rip) */ 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x000001d3 vmovdqu (%r11), %ymm0
0x49, 0x01, 0xc5, //0x000001e4 addq %rax, %r13 0xc5, 0xfd, 0x64, 0x0d, 0x20, 0xfe, 0xff, 0xff, //0x000001d8 vpcmpgtb $-480(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */
0xc5, 0xf5, 0xfc, 0xc0, //0x000001e7 vpaddb %ymm0, %ymm1, %ymm0 0xc5, 0xfe, 0x6f, 0x15, 0x38, 0xfe, 0xff, 0xff, //0x000001e0 vmovdqu $-456(%rip), %ymm2 /* LCPI0_1+0(%rip) */
0x41, 0x0f, 0xb6, 0xca, //0x000001eb movzbl %r10b, %ecx 0xc5, 0xed, 0x64, 0xd0, //0x000001e8 vpcmpgtb %ymm0, %ymm2, %ymm2
0x41, 0x83, 0xf8, 0x09, //0x000001ef cmpl $9, %r8d 0xc5, 0xed, 0xdb, 0xc9, //0x000001ec vpand %ymm1, %ymm2, %ymm1
0x0f, 0x83, 0xfd, 0x00, 0x00, 0x00, //0x000001f3 jae LBB0_21 0xc5, 0xf5, 0xdb, 0x0d, 0x48, 0xfe, 0xff, 0xff, //0x000001f0 vpand $-440(%rip), %ymm1, %ymm1 /* LCPI0_2+0(%rip) */
0xc4, 0xe3, 0x79, 0x14, 0xc2, 0x01, //0x000001f9 vpextrb $1, %xmm0, %edx 0xc5, 0xf5, 0x71, 0xf1, 0x05, //0x000001f8 vpsllw $5, %ymm1, %ymm1
0xc4, 0xc3, 0x79, 0x14, 0xc4, 0x02, //0x000001ff vpextrb $2, %xmm0, %r12d 0xc5, 0xf5, 0xfc, 0xc0, //0x000001fd vpaddb %ymm0, %ymm1, %ymm0
0xc4, 0xc3, 0x79, 0x14, 0xc7, 0x03, //0x00000205 vpextrb $3, %xmm0, %r15d 0x41, 0x0f, 0xb6, 0xca, //0x00000201 movzbl %r10b, %ecx
0xc4, 0xc3, 0x79, 0x14, 0xc2, 0x04, //0x0000020b vpextrb $4, %xmm0, %r10d 0x41, 0x83, 0xf8, 0x09, //0x00000205 cmpl $9, %r8d
0xc4, 0xc3, 0x79, 0x14, 0xc3, 0x05, //0x00000211 vpextrb $5, %xmm0, %r11d 0x0f, 0x83, 0xf7, 0x00, 0x00, 0x00, //0x00000209 jae LBB0_22
0xc4, 0xc3, 0x79, 0x14, 0xc6, 0x06, //0x00000217 vpextrb $6, %xmm0, %r14d 0xc4, 0xe3, 0x79, 0x14, 0xc2, 0x01, //0x0000020f vpextrb $1, %xmm0, %edx
0xc5, 0xf9, 0x7e, 0xc3, //0x0000021d vmovd %xmm0, %ebx 0xc4, 0xc3, 0x79, 0x14, 0xc4, 0x02, //0x00000215 vpextrb $2, %xmm0, %r12d
0xc4, 0xe3, 0x79, 0x14, 0xc0, 0x07, //0x00000221 vpextrb $7, %xmm0, %eax 0xc4, 0xc3, 0x79, 0x14, 0xc7, 0x03, //0x0000021b vpextrb $3, %xmm0, %r15d
0x41, 0x83, 0xc0, 0x01, //0x00000227 addl $1, %r8d 0xc4, 0xc3, 0x79, 0x14, 0xc2, 0x04, //0x00000221 vpextrb $4, %xmm0, %r10d
0x41, 0x83, 0xf9, 0x02, //0x0000022b cmpl $2, %r9d 0xc4, 0xc3, 0x79, 0x14, 0xc3, 0x05, //0x00000227 vpextrb $5, %xmm0, %r11d
0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000022f movl $1, %edi 0xc4, 0xc3, 0x79, 0x14, 0xc6, 0x06, //0x0000022d vpextrb $6, %xmm0, %r14d
0x41, 0x0f, 0x43, 0xf9, //0x00000234 cmovael %r9d, %edi 0xc5, 0xf9, 0x7e, 0xc3, //0x00000233 vmovd %xmm0, %ebx
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000238 .p2align 4, 0x90 0xc4, 0xe3, 0x79, 0x14, 0xc0, 0x07, //0x00000237 vpextrb $7, %xmm0, %eax
//0x00000240 LBB0_25 0x41, 0x83, 0xc0, 0x01, //0x0000023d addl $1, %r8d
0x41, 0x38, 0x5d, 0x00, //0x00000240 cmpb %bl, (%r13) 0x41, 0x83, 0xf9, 0x02, //0x00000241 cmpl $2, %r9d
0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00000244 jne LBB0_26 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000245 movl $1, %edi
0xbe, 0x01, 0x00, 0x00, 0x00, //0x0000024a movl $1, %esi 0x41, 0x0f, 0x43, 0xf9, //0x0000024a cmovael %r9d, %edi
0x41, 0x38, 0x55, 0x01, //0x0000024f cmpb %dl, $1(%r13) 0x90, 0x90, //0x0000024e .p2align 4, 0x90
0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x00000253 jne LBB0_34 //0x00000250 LBB0_26
0xbe, 0x02, 0x00, 0x00, 0x00, //0x00000259 movl $2, %esi 0x41, 0x38, 0x5d, 0x00, //0x00000250 cmpb %bl, (%r13)
0x45, 0x38, 0x65, 0x02, //0x0000025e cmpb %r12b, $2(%r13) 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00000254 jne LBB0_27
0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00000262 jne LBB0_34 0xbe, 0x01, 0x00, 0x00, 0x00, //0x0000025a movl $1, %esi
0xbe, 0x03, 0x00, 0x00, 0x00, //0x00000268 movl $3, %esi 0x41, 0x38, 0x55, 0x01, //0x0000025f cmpb %dl, $1(%r13)
0x45, 0x38, 0x7d, 0x03, //0x0000026d cmpb %r15b, $3(%r13) 0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x00000263 jne LBB0_35
0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00000271 jne LBB0_34 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00000269 movl $2, %esi
0xbe, 0x04, 0x00, 0x00, 0x00, //0x00000277 movl $4, %esi 0x45, 0x38, 0x65, 0x02, //0x0000026e cmpb %r12b, $2(%r13)
0x45, 0x38, 0x55, 0x04, //0x0000027c cmpb %r10b, $4(%r13) 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00000272 jne LBB0_35
0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000280 jne LBB0_34 0xbe, 0x03, 0x00, 0x00, 0x00, //0x00000278 movl $3, %esi
0xbe, 0x05, 0x00, 0x00, 0x00, //0x00000286 movl $5, %esi 0x45, 0x38, 0x7d, 0x03, //0x0000027d cmpb %r15b, $3(%r13)
0x45, 0x38, 0x5d, 0x05, //0x0000028b cmpb %r11b, $5(%r13) 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00000281 jne LBB0_35
0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000028f jne LBB0_34 0xbe, 0x04, 0x00, 0x00, 0x00, //0x00000287 movl $4, %esi
0xbe, 0x06, 0x00, 0x00, 0x00, //0x00000295 movl $6, %esi 0x45, 0x38, 0x55, 0x04, //0x0000028c cmpb %r10b, $4(%r13)
0x45, 0x38, 0x75, 0x06, //0x0000029a cmpb %r14b, $6(%r13) 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000290 jne LBB0_35
0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x0000029e jne LBB0_34 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00000296 movl $5, %esi
0x31, 0xf6, //0x000002a4 xorl %esi, %esi 0x45, 0x38, 0x5d, 0x05, //0x0000029b cmpb %r11b, $5(%r13)
0x41, 0x38, 0x45, 0x07, //0x000002a6 cmpb %al, $7(%r13) 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000029f jne LBB0_35
0x40, 0x0f, 0x94, 0xc6, //0x000002aa sete %sil 0xbe, 0x06, 0x00, 0x00, 0x00, //0x000002a5 movl $6, %esi
0x48, 0x83, 0xc6, 0x07, //0x000002ae addq $7, %rsi 0x45, 0x38, 0x75, 0x06, //0x000002aa cmpb %r14b, $6(%r13)
0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000002b2 jmp LBB0_34 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x000002ae jne LBB0_35
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002b7 .p2align 4, 0x90 0x31, 0xf6, //0x000002b4 xorl %esi, %esi
//0x000002c0 LBB0_26 0x41, 0x38, 0x45, 0x07, //0x000002b6 cmpb %al, $7(%r13)
0x31, 0xf6, //0x000002c0 xorl %esi, %esi 0x40, 0x0f, 0x94, 0xc6, //0x000002ba sete %sil
//0x000002c2 LBB0_34 0x48, 0x83, 0xc6, 0x07, //0x000002be addq $7, %rsi
0x48, 0x39, 0xce, //0x000002c2 cmpq %rcx, %rsi 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000002c2 jmp LBB0_35
0x0f, 0x83, 0x82, 0x00, 0x00, 0x00, //0x000002c5 jae LBB0_35 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002c7 .p2align 4, 0x90
0x4d, 0x01, 0xc5, //0x000002cb addq %r8, %r13 //0x000002d0 LBB0_27
0x83, 0xc7, 0xff, //0x000002ce addl $-1, %edi 0x31, 0xf6, //0x000002d0 xorl %esi, %esi
0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x000002d1 jne LBB0_25 //0x000002d2 LBB0_35
0xe9, 0x65, 0x00, 0x00, 0x00, //0x000002d7 jmp LBB0_38 0x48, 0x39, 0xce, //0x000002d2 cmpq %rcx, %rsi
//0x000002dc LBB0_17 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000002d5 jae LBB0_36
0x4c, 0x01, 0xe7, //0x000002dc addq %r12, %rdi 0x4d, 0x01, 0xc5, //0x000002db addq %r8, %r13
0x48, 0x83, 0xc7, 0xff, //0x000002df addq $-1, %rdi 0x83, 0xc7, 0xff, //0x000002de addl $-1, %edi
0x0f, 0xb6, 0x07, //0x000002e3 movzbl (%rdi), %eax 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x000002e1 jne LBB0_26
0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000002e6 jmp LBB0_39 0xe9, 0x65, 0x00, 0x00, 0x00, //0x000002e7 jmp LBB0_39
//0x000002eb LBB0_4 //0x000002ec LBB0_17
0x48, 0x01, 0xcf, //0x000002eb addq %rcx, %rdi 0x4c, 0x01, 0xe7, //0x000002ec addq %r12, %rdi
0x0f, 0xb6, 0x07, //0x000002ee movzbl (%rdi), %eax 0x48, 0x83, 0xc7, 0xff, //0x000002ef addq $-1, %rdi
0xe9, 0x72, 0x00, 0x00, 0x00, //0x000002f1 jmp LBB0_39 0x0f, 0xb6, 0x07, //0x000002f3 movzbl (%rdi), %eax
//0x000002f6 LBB0_21 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x000002f6 jmp LBB0_40
0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000002f6 movq $-1, %rax //0x000002fb LBB0_4
0x48, 0xd3, 0xe0, //0x000002fd shlq %cl, %rax 0x48, 0x01, 0xcf, //0x000002fb addq %rcx, %rdi
0x41, 0x83, 0xc0, 0x01, //0x00000300 addl $1, %r8d 0x0f, 0xb6, 0x07, //0x000002fe movzbl (%rdi), %eax
0x41, 0x83, 0xf9, 0x02, //0x00000304 cmpl $2, %r9d 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00000301 jmp LBB0_40
0xba, 0x01, 0x00, 0x00, 0x00, //0x00000308 movl $1, %edx //0x00000306 LBB0_22
0x41, 0x0f, 0x43, 0xd1, //0x0000030d cmovael %r9d, %edx 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000306 movq $-1, %rax
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000311 .p2align 4, 0x90 0x48, 0xd3, 0xe0, //0x0000030d shlq %cl, %rax
//0x00000320 LBB0_22 0x41, 0x83, 0xc0, 0x01, //0x00000310 addl $1, %r8d
0xc4, 0xc1, 0x7d, 0x74, 0x4d, 0x00, //0x00000320 vpcmpeqb (%r13), %ymm0, %ymm1 0x41, 0x83, 0xf9, 0x02, //0x00000314 cmpl $2, %r9d
0xc5, 0xfd, 0xd7, 0xf1, //0x00000326 vpmovmskb %ymm1, %esi 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000318 movl $1, %edx
0x09, 0xc6, //0x0000032a orl %eax, %esi 0x41, 0x0f, 0x43, 0xd1, //0x0000031d cmovael %r9d, %edx
0x83, 0xfe, 0xff, //0x0000032c cmpl $-1, %esi 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000321 .p2align 4, 0x90
0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x0000032f je LBB0_23 //0x00000330 LBB0_23
0x4d, 0x01, 0xc5, //0x00000335 addq %r8, %r13 0xc4, 0xc1, 0x7d, 0x74, 0x4d, 0x00, //0x00000330 vpcmpeqb (%r13), %ymm0, %ymm1
0x83, 0xc2, 0xff, //0x00000338 addl $-1, %edx 0xc5, 0xfd, 0xd7, 0xf1, //0x00000336 vpmovmskb %ymm1, %esi
0x0f, 0x85, 0xdf, 0xff, 0xff, 0xff, //0x0000033b jne LBB0_22 0x09, 0xc6, //0x0000033a orl %eax, %esi
//0x00000341 LBB0_38 0x83, 0xfe, 0xff, //0x0000033c cmpl $-1, %esi
0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000341 movq $-1, %rax 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x0000033f je LBB0_24
0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00000348 jmp LBB0_39 0x4d, 0x01, 0xc5, //0x00000345 addq %r8, %r13
//0x0000034d LBB0_35 0x83, 0xc2, 0xff, //0x00000348 addl $-1, %edx
0x4b, 0x8d, 0x3c, 0x28, //0x0000034d leaq (%r8,%r13), %rdi 0x0f, 0x85, 0xdf, 0xff, 0xff, 0xff, //0x0000034b jne LBB0_23
0x48, 0x83, 0xc7, 0xff, //0x00000351 addq $-1, %rdi //0x00000351 LBB0_39
0x0f, 0xb6, 0x07, //0x00000355 movzbl (%rdi), %eax 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000351 movq $-1, %rax
0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000358 jmp LBB0_39 //0x00000358 LBB0_40
//0x0000035d LBB0_23 0x48, 0x83, 0xc4, 0x08, //0x00000358 addq $8, %rsp
0x49, 0x01, 0xcd, //0x0000035d addq %rcx, %r13 0x5b, //0x0000035c popq %rbx
0x4c, 0x89, 0xef, //0x00000360 movq %r13, %rdi 0x41, 0x5c, //0x0000035d popq %r12
0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00000363 movzbl (%r13), %eax 0x41, 0x5d, //0x0000035f popq %r13
//0x00000368 LBB0_39 0x41, 0x5e, //0x00000361 popq %r14
0x48, 0x83, 0xc4, 0x08, //0x00000368 addq $8, %rsp 0x41, 0x5f, //0x00000363 popq %r15
0x5b, //0x0000036c popq %rbx 0x5d, //0x00000365 popq %rbp
0x41, 0x5c, //0x0000036d popq %r12 0xc5, 0xf8, 0x77, //0x00000366 vzeroupper
0x41, 0x5d, //0x0000036f popq %r13 0xc3, //0x00000369 retq
0x41, 0x5e, //0x00000371 popq %r14 //0x0000036a LBB0_36
0x41, 0x5f, //0x00000373 popq %r15 0x4b, 0x8d, 0x3c, 0x28, //0x0000036a leaq (%r8,%r13), %rdi
0x5d, //0x00000375 popq %rbp 0x48, 0x83, 0xc7, 0xff, //0x0000036e addq $-1, %rdi
0xc5, 0xf8, 0x77, //0x00000376 vzeroupper 0x0f, 0xb6, 0x07, //0x00000372 movzbl (%rdi), %eax
0xc3, //0x00000379 retq 0xe9, 0xde, 0xff, 0xff, 0xff, //0x00000375 jmp LBB0_40
//0x0000037a LBB0_24
0x49, 0x01, 0xcd, //0x0000037a addq %rcx, %r13
0x4c, 0x89, 0xef, //0x0000037d movq %r13, %rdi
0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00000380 movzbl (%r13), %eax
0xe9, 0xce, 0xff, 0xff, 0xff, //0x00000385 jmp LBB0_40
} }

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__lspace = 240 _size__lspace = 232
) )
var ( var (
@ -24,11 +24,11 @@ var (
{0x1, 0}, {0x1, 0},
{0xbb, 8}, {0xbb, 8},
{0xbf, 0}, {0xbf, 0},
{0xd0, 8}, {0xc8, 8},
{0xd4, 0}, {0xcc, 0},
{0xdb, 8}, {0xd3, 8},
{0xdf, 0}, {0xd7, 0},
{0xf0, 8}, {0xe8, 8},
} }
) )

View file

@ -46,7 +46,7 @@ var _text_lspace = []byte{
0x48, 0x89, 0xf1, //0x00000027 movq %rsi, %rcx 0x48, 0x89, 0xf1, //0x00000027 movq %rsi, %rcx
0x48, 0x29, 0xd1, //0x0000002a subq %rdx, %rcx 0x48, 0x29, 0xd1, //0x0000002a subq %rdx, %rcx
0x48, 0x83, 0xf9, 0x20, //0x0000002d cmpq $32, %rcx 0x48, 0x83, 0xf9, 0x20, //0x0000002d cmpq $32, %rcx
0x0f, 0x82, 0xc8, 0x00, 0x00, 0x00, //0x00000031 jb LBB0_1 0x0f, 0x82, 0xc0, 0x00, 0x00, 0x00, //0x00000031 jb LBB0_1
0x48, 0x89, 0xc1, //0x00000037 movq %rax, %rcx 0x48, 0x89, 0xc1, //0x00000037 movq %rax, %rcx
0x48, 0xf7, 0xd9, //0x0000003a negq %rcx 0x48, 0xf7, 0xd9, //0x0000003a negq %rcx
0xc5, 0xfe, 0x6f, 0x05, 0xbb, 0xff, 0xff, 0xff, //0x0000003d vmovdqu $-69(%rip), %ymm0 /* LCPI0_0+0(%rip) */ 0xc5, 0xfe, 0x6f, 0x05, 0xbb, 0xff, 0xff, 0xff, //0x0000003d vmovdqu $-69(%rip), %ymm0 /* LCPI0_0+0(%rip) */
@ -54,32 +54,33 @@ var _text_lspace = []byte{
//0x00000050 LBB0_10 //0x00000050 LBB0_10
0xc5, 0xfe, 0x6f, 0x0c, 0x07, //0x00000050 vmovdqu (%rdi,%rax), %ymm1 0xc5, 0xfe, 0x6f, 0x0c, 0x07, //0x00000050 vmovdqu (%rdi,%rax), %ymm1
0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000055 vpshufb %ymm1, %ymm0, %ymm2 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000055 vpshufb %ymm1, %ymm0, %ymm2
0xc5, 0xf5, 0xf8, 0xda, //0x0000005a vpsubb %ymm2, %ymm1, %ymm3 0xc5, 0xf5, 0x74, 0xca, //0x0000005a vpcmpeqb %ymm2, %ymm1, %ymm1
0xc4, 0xe2, 0x7d, 0x17, 0xdb, //0x0000005e vptest %ymm3, %ymm3 0xc5, 0xfd, 0xd7, 0xd1, //0x0000005e vpmovmskb %ymm1, %edx
0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00000063 jne LBB0_11 0x83, 0xfa, 0xff, //0x00000062 cmpl $-1, %edx
0x48, 0x83, 0xc0, 0x20, //0x00000069 addq $32, %rax 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00000065 jne LBB0_11
0x48, 0x8d, 0x14, 0x0e, //0x0000006d leaq (%rsi,%rcx), %rdx 0x48, 0x83, 0xc0, 0x20, //0x0000006b addq $32, %rax
0x48, 0x83, 0xc2, 0xe0, //0x00000071 addq $-32, %rdx 0x48, 0x8d, 0x14, 0x0e, //0x0000006f leaq (%rsi,%rcx), %rdx
0x48, 0x83, 0xc1, 0xe0, //0x00000075 addq $-32, %rcx 0x48, 0x83, 0xc2, 0xe0, //0x00000073 addq $-32, %rdx
0x48, 0x83, 0xfa, 0x1f, //0x00000079 cmpq $31, %rdx 0x48, 0x83, 0xc1, 0xe0, //0x00000077 addq $-32, %rcx
0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000007d ja LBB0_10 0x48, 0x83, 0xfa, 0x1f, //0x0000007b cmpq $31, %rdx
0x48, 0x89, 0xf8, //0x00000083 movq %rdi, %rax 0x0f, 0x87, 0xcb, 0xff, 0xff, 0xff, //0x0000007f ja LBB0_10
0x48, 0x29, 0xc8, //0x00000086 subq %rcx, %rax 0x48, 0x89, 0xf8, //0x00000085 movq %rdi, %rax
0x48, 0x01, 0xce, //0x00000089 addq %rcx, %rsi 0x48, 0x29, 0xc8, //0x00000088 subq %rcx, %rax
0x48, 0x89, 0xf1, //0x0000008c movq %rsi, %rcx 0x48, 0x01, 0xce, //0x0000008b addq %rcx, %rsi
0x48, 0x85, 0xc9, //0x0000008f testq %rcx, %rcx 0x48, 0x89, 0xf1, //0x0000008e movq %rsi, %rcx
0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00000092 je LBB0_14 0x48, 0x85, 0xc9, //0x00000091 testq %rcx, %rcx
//0x00000098 LBB0_5 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00000094 je LBB0_14
0x4c, 0x8d, 0x04, 0x08, //0x00000098 leaq (%rax,%rcx), %r8 //0x0000009a LBB0_5
0x31, 0xd2, //0x0000009c xorl %edx, %edx 0x4c, 0x8d, 0x04, 0x08, //0x0000009a leaq (%rax,%rcx), %r8
0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000009e movabsq $4294977024, %r9 0x31, 0xd2, //0x0000009e xorl %edx, %edx
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000a8 .p2align 4, 0x90 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000a0 movabsq $4294977024, %r9
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000aa .p2align 4, 0x90
//0x000000b0 LBB0_6 //0x000000b0 LBB0_6
0x0f, 0xbe, 0x34, 0x10, //0x000000b0 movsbl (%rax,%rdx), %esi 0x0f, 0xbe, 0x34, 0x10, //0x000000b0 movsbl (%rax,%rdx), %esi
0x83, 0xfe, 0x20, //0x000000b4 cmpl $32, %esi 0x83, 0xfe, 0x20, //0x000000b4 cmpl $32, %esi
0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x000000b7 ja LBB0_8 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000000b7 ja LBB0_8
0x49, 0x0f, 0xa3, 0xf1, //0x000000bd btq %rsi, %r9 0x49, 0x0f, 0xa3, 0xf1, //0x000000bd btq %rsi, %r9
0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x000000c1 jae LBB0_8 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000000c1 jae LBB0_8
0x48, 0x83, 0xc2, 0x01, //0x000000c7 addq $1, %rdx 0x48, 0x83, 0xc2, 0x01, //0x000000c7 addq $1, %rdx
0x48, 0x39, 0xd1, //0x000000cb cmpq %rdx, %rcx 0x48, 0x39, 0xd1, //0x000000cb cmpq %rdx, %rcx
0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000000ce jne LBB0_6 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000000ce jne LBB0_6
@ -90,24 +91,22 @@ var _text_lspace = []byte{
0xc5, 0xf8, 0x77, //0x000000db vzeroupper 0xc5, 0xf8, 0x77, //0x000000db vzeroupper
0xc3, //0x000000de retq 0xc3, //0x000000de retq
//0x000000df LBB0_11 //0x000000df LBB0_11
0xc5, 0xf5, 0x74, 0xc2, //0x000000df vpcmpeqb %ymm2, %ymm1, %ymm0 0xf7, 0xd2, //0x000000df notl %edx
0xc5, 0xfd, 0xd7, 0xc0, //0x000000e3 vpmovmskb %ymm0, %eax 0x0f, 0xbc, 0xc2, //0x000000e1 bsfl %edx, %eax
0xf7, 0xd0, //0x000000e7 notl %eax 0x48, 0x29, 0xc8, //0x000000e4 subq %rcx, %rax
0x0f, 0xbc, 0xc0, //0x000000e9 bsfl %eax, %eax 0x5d, //0x000000e7 popq %rbp
0x48, 0x29, 0xc8, //0x000000ec subq %rcx, %rax 0xc5, 0xf8, 0x77, //0x000000e8 vzeroupper
0x5d, //0x000000ef popq %rbp 0xc3, //0x000000eb retq
0xc5, 0xf8, 0x77, //0x000000f0 vzeroupper //0x000000ec LBB0_8
0xc3, //0x000000f3 retq 0x48, 0x29, 0xf8, //0x000000ec subq %rdi, %rax
//0x000000f4 LBB0_8 0x48, 0x01, 0xd0, //0x000000ef addq %rdx, %rax
0x48, 0x29, 0xf8, //0x000000f4 subq %rdi, %rax 0x5d, //0x000000f2 popq %rbp
0x48, 0x01, 0xd0, //0x000000f7 addq %rdx, %rax 0xc5, 0xf8, 0x77, //0x000000f3 vzeroupper
0x5d, //0x000000fa popq %rbp 0xc3, //0x000000f6 retq
0xc5, 0xf8, 0x77, //0x000000fb vzeroupper //0x000000f7 LBB0_1
0xc3, //0x000000fe retq 0x48, 0x01, 0xf8, //0x000000f7 addq %rdi, %rax
//0x000000ff LBB0_1 0x48, 0x85, 0xc9, //0x000000fa testq %rcx, %rcx
0x48, 0x01, 0xf8, //0x000000ff addq %rdi, %rax 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x000000fd jne LBB0_5
0x48, 0x85, 0xc9, //0x00000102 testq %rcx, %rcx 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00000103 jmp LBB0_14
0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00000105 jne LBB0_5
0xe9, 0xc7, 0xff, 0xff, 0xff, //0x0000010b jmp LBB0_14
} }

View file

@ -12,11 +12,11 @@ const (
) )
const ( const (
_stack__parse_with_padding = 192 _stack__parse_with_padding = 200
) )
const ( const (
_size__parse_with_padding = 49496 _size__parse_with_padding = 48876
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0xf22, 192}, {0xbea, 200},
{0xf23, 48}, {0xbeb, 48},
{0xf25, 40}, {0xbed, 40},
{0xf27, 32}, {0xbef, 32},
{0xf29, 24}, {0xbf1, 24},
{0xf2b, 16}, {0xbf3, 16},
{0xf2c, 8}, {0xbf4, 8},
{0xf30, 0}, {0xbf8, 0},
{0xc158, 192}, {0xbeec, 200},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__quote = 2720 _size__quote = 2880
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x11, 48}, {0x11, 48},
{0xa6c, 72}, {0xb10, 72},
{0xa6d, 48}, {0xb11, 48},
{0xa6f, 40}, {0xb13, 40},
{0xa71, 32}, {0xb15, 32},
{0xa73, 24}, {0xb17, 24},
{0xa75, 16}, {0xb19, 16},
{0xa76, 8}, {0xb1a, 8},
{0xa7a, 0}, {0xb1e, 0},
{0xaa0, 72}, {0xb40, 72},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__skip_array = 15888 _size__skip_array = 15136
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0x3b41, 208}, {0x38dd, 208},
{0x3b42, 48}, {0x38de, 48},
{0x3b44, 40}, {0x38e0, 40},
{0x3b46, 32}, {0x38e2, 32},
{0x3b48, 24}, {0x38e4, 24},
{0x3b4a, 16}, {0x38e6, 16},
{0x3b4b, 8}, {0x38e7, 8},
{0x3b4f, 0}, {0x38eb, 0},
{0x3e10, 208}, {0x3b20, 208},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -6,35 +6,35 @@ package avx2
var _text_skip_number = []byte{ var _text_skip_number = []byte{
// .p2align 5, 0x00 // .p2align 5, 0x00
// LCPI0_0 // LCPI0_0
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, // QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, // QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////'
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000010 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////'
//0x00000020 LCPI0_1 //0x00000020 LCPI0_1
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000020 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::'
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000030 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000030 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::'
//0x00000040 LCPI0_2 //0x00000040 LCPI0_2
0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000040 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000040 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++'
0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000050 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++'
//0x00000060 LCPI0_3 //0x00000060 LCPI0_3
0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000060 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------'
0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000070 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------'
//0x00000080 LCPI0_4 //0x00000080 LCPI0_4
0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00000080 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000080 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf'
0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00000090 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000090 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf'
//0x000000a0 LCPI0_5 //0x000000a0 LCPI0_5
0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, //0x000000a0 QUAD $0xd0d0d0d0d0d0d0d0; QUAD $0xd0d0d0d0d0d0d0d0 // .space 16, '\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0' 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000000a0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................'
0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, //0x000000b0 QUAD $0xd0d0d0d0d0d0d0d0; QUAD $0xd0d0d0d0d0d0d0d0 // .space 16, '\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0' 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000000b0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................'
//0x000000c0 LCPI0_6 //0x000000c0 LCPI0_6
0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, //0x000000c0 QUAD $0x0909090909090909; QUAD $0x0909090909090909 // .space 16, '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x000000c0 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE'
0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, //0x000000d0 QUAD $0x0909090909090909; QUAD $0x0909090909090909 // .space 16, '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x000000d0 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE'
//0x000000e0 .p2align 4, 0x00 //0x000000e0 .p2align 4, 0x00
//0x000000e0 LCPI0_7 //0x000000e0 LCPI0_7
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000e0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x000000e0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////'
//0x000000f0 LCPI0_8 //0x000000f0 LCPI0_8
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000f0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000f0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::'
//0x00000100 LCPI0_9 //0x00000100 LCPI0_9
0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, //0x00000100 QUAD $0xd0d0d0d0d0d0d0d0; QUAD $0xd0d0d0d0d0d0d0d0 // .space 16, '\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0\xd0' 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000100 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++'
//0x00000110 LCPI0_10 //0x00000110 LCPI0_10
0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, //0x00000110 QUAD $0x0909090909090909; QUAD $0x0909090909090909 // .space 16, '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000110 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------'
//0x00000120 LCPI0_11 //0x00000120 LCPI0_11
0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000120 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000120 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf'
//0x00000130 LCPI0_12 //0x00000130 LCPI0_12
@ -63,10 +63,10 @@ var _text_skip_number = []byte{
0x49, 0x29, 0xda, //0x00000180 subq %rbx, %r10 0x49, 0x29, 0xda, //0x00000180 subq %rbx, %r10
0x0f, 0x84, 0x90, 0x05, 0x00, 0x00, //0x00000183 je LBB0_1 0x0f, 0x84, 0x90, 0x05, 0x00, 0x00, //0x00000183 je LBB0_1
0x41, 0x8a, 0x3e, //0x00000189 movb (%r14), %dil 0x41, 0x8a, 0x3e, //0x00000189 movb (%r14), %dil
0x8d, 0x4f, 0xc6, //0x0000018c leal $-58(%rdi), %ecx 0x8d, 0x4f, 0xd0, //0x0000018c leal $-48(%rdi), %ecx
0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000018f movq $-2, %rax 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000018f movq $-2, %rax
0x80, 0xf9, 0xf6, //0x00000196 cmpb $-10, %cl 0x80, 0xf9, 0x09, //0x00000196 cmpb $9, %cl
0x0f, 0x82, 0x62, 0x05, 0x00, 0x00, //0x00000199 jb LBB0_83 0x0f, 0x87, 0x62, 0x05, 0x00, 0x00, //0x00000199 ja LBB0_83
0x48, 0x89, 0x55, 0xb0, //0x0000019f movq %rdx, $-80(%rbp) 0x48, 0x89, 0x55, 0xb0, //0x0000019f movq %rdx, $-80(%rbp)
0x40, 0x80, 0xff, 0x30, //0x000001a3 cmpb $48, %dil 0x40, 0x80, 0xff, 0x30, //0x000001a3 cmpb $48, %dil
0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000001a7 jne LBB0_7 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000001a7 jne LBB0_7
@ -100,20 +100,20 @@ var _text_skip_number = []byte{
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000242 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000242 .p2align 4, 0x90
//0x00000250 LBB0_10 //0x00000250 LBB0_10
0xc4, 0xc1, 0x7e, 0x6f, 0x3c, 0x16, //0x00000250 vmovdqu (%r14,%rdx), %ymm7 0xc4, 0xc1, 0x7e, 0x6f, 0x3c, 0x16, //0x00000250 vmovdqu (%r14,%rdx), %ymm7
0xc5, 0x45, 0x74, 0xc0, //0x00000256 vpcmpeqb %ymm0, %ymm7, %ymm8 0xc5, 0x45, 0x64, 0xc0, //0x00000256 vpcmpgtb %ymm0, %ymm7, %ymm8
0xc5, 0x45, 0x74, 0xc9, //0x0000025a vpcmpeqb %ymm1, %ymm7, %ymm9 0xc5, 0x75, 0x64, 0xcf, //0x0000025a vpcmpgtb %ymm7, %ymm1, %ymm9
0xc4, 0x41, 0x35, 0xeb, 0xc0, //0x0000025e vpor %ymm8, %ymm9, %ymm8 0xc4, 0x41, 0x35, 0xdb, 0xc0, //0x0000025e vpand %ymm8, %ymm9, %ymm8
0xc5, 0x45, 0xdb, 0xca, //0x00000263 vpand %ymm2, %ymm7, %ymm9 0xc5, 0x45, 0x74, 0xca, //0x00000263 vpcmpeqb %ymm2, %ymm7, %ymm9
0xc5, 0x35, 0x74, 0xcc, //0x00000267 vpcmpeqb %ymm4, %ymm9, %ymm9 0xc5, 0x45, 0x74, 0xd3, //0x00000267 vpcmpeqb %ymm3, %ymm7, %ymm10
0xc5, 0x45, 0x74, 0xd3, //0x0000026b vpcmpeqb %ymm3, %ymm7, %ymm10 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x0000026b vpor %ymm9, %ymm10, %ymm9
0xc4, 0xc1, 0x7d, 0xd7, 0xc2, //0x0000026f vpmovmskb %ymm10, %eax 0xc5, 0x45, 0xdb, 0xd4, //0x00000270 vpand %ymm4, %ymm7, %ymm10
0xc4, 0xc1, 0x7d, 0xd7, 0xf9, //0x00000274 vpmovmskb %ymm9, %edi 0xc5, 0x2d, 0x74, 0xd6, //0x00000274 vpcmpeqb %ymm6, %ymm10, %ymm10
0xc4, 0x41, 0x7d, 0xd7, 0xc0, //0x00000279 vpmovmskb %ymm8, %r8d 0xc5, 0xc5, 0x74, 0xfd, //0x00000278 vpcmpeqb %ymm5, %ymm7, %ymm7
0xc5, 0xc5, 0xfc, 0xfd, //0x0000027e vpaddb %ymm5, %ymm7, %ymm7 0xc5, 0xfd, 0xd7, 0xc7, //0x0000027c vpmovmskb %ymm7, %eax
0xc5, 0x45, 0xda, 0xde, //0x00000282 vpminub %ymm6, %ymm7, %ymm11 0xc4, 0xc1, 0x7d, 0xd7, 0xfa, //0x00000280 vpmovmskb %ymm10, %edi
0xc5, 0xa5, 0x74, 0xff, //0x00000286 vpcmpeqb %ymm7, %ymm11, %ymm7 0xc4, 0x41, 0x7d, 0xd7, 0xc1, //0x00000285 vpmovmskb %ymm9, %r8d
0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x0000028a vpor %ymm9, %ymm10, %ymm9 0xc5, 0xbd, 0xeb, 0xff, //0x0000028a vpor %ymm7, %ymm8, %ymm7
0xc5, 0xb5, 0xeb, 0xff, //0x0000028f vpor %ymm7, %ymm9, %ymm7 0xc4, 0x41, 0x2d, 0xeb, 0xc1, //0x0000028e vpor %ymm9, %ymm10, %ymm8
0xc5, 0xbd, 0xeb, 0xff, //0x00000293 vpor %ymm7, %ymm8, %ymm7 0xc5, 0xbd, 0xeb, 0xff, //0x00000293 vpor %ymm7, %ymm8, %ymm7
0xc5, 0xfd, 0xd7, 0xcf, //0x00000297 vpmovmskb %ymm7, %ecx 0xc5, 0xfd, 0xd7, 0xcf, //0x00000297 vpmovmskb %ymm7, %ecx
0x48, 0xf7, 0xd1, //0x0000029b notq %rcx 0x48, 0xf7, 0xd1, //0x0000029b notq %rcx
@ -172,7 +172,7 @@ var _text_skip_number = []byte{
0x4c, 0x01, 0xf2, //0x00000357 addq %r14, %rdx 0x4c, 0x01, 0xf2, //0x00000357 addq %r14, %rdx
0x49, 0x89, 0xd3, //0x0000035a movq %rdx, %r11 0x49, 0x89, 0xd3, //0x0000035a movq %rdx, %r11
0x49, 0x83, 0xfa, 0x10, //0x0000035d cmpq $16, %r10 0x49, 0x83, 0xfa, 0x10, //0x0000035d cmpq $16, %r10
0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x00000361 jb LBB0_51 0x0f, 0x82, 0x6a, 0x01, 0x00, 0x00, //0x00000361 jb LBB0_51
//0x00000367 LBB0_30 //0x00000367 LBB0_30
0x4c, 0x89, 0x4d, 0xb8, //0x00000367 movq %r9, $-72(%rbp) 0x4c, 0x89, 0x4d, 0xb8, //0x00000367 movq %r9, $-72(%rbp)
0x48, 0x89, 0xf3, //0x0000036b movq %rsi, %rbx 0x48, 0x89, 0xf3, //0x0000036b movq %rsi, %rbx
@ -191,97 +191,97 @@ var _text_skip_number = []byte{
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003b5 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003b5 .p2align 4, 0x90
//0x000003c0 LBB0_31 //0x000003c0 LBB0_31
0xc4, 0xc1, 0x7a, 0x6f, 0x3c, 0x13, //0x000003c0 vmovdqu (%r11,%rdx), %xmm7 0xc4, 0xc1, 0x7a, 0x6f, 0x3c, 0x13, //0x000003c0 vmovdqu (%r11,%rdx), %xmm7
0xc5, 0xb9, 0x74, 0xc7, //0x000003c6 vpcmpeqb %xmm7, %xmm8, %xmm0 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x000003c6 vpcmpgtb %xmm8, %xmm7, %xmm0
0xc5, 0xb1, 0x74, 0xcf, //0x000003ca vpcmpeqb %xmm7, %xmm9, %xmm1 0xc5, 0xb1, 0x64, 0xcf, //0x000003cb vpcmpgtb %xmm7, %xmm9, %xmm1
0xc5, 0xf1, 0xeb, 0xc0, //0x000003ce vpor %xmm0, %xmm1, %xmm0 0xc5, 0xf9, 0xdb, 0xc1, //0x000003cf vpand %xmm1, %xmm0, %xmm0
0xc5, 0xa9, 0xfc, 0xcf, //0x000003d2 vpaddb %xmm7, %xmm10, %xmm1 0xc5, 0xa9, 0x74, 0xcf, //0x000003d3 vpcmpeqb %xmm7, %xmm10, %xmm1
0xc5, 0xa1, 0xda, 0xd1, //0x000003d6 vpminub %xmm1, %xmm11, %xmm2 0xc5, 0xa1, 0x74, 0xd7, //0x000003d7 vpcmpeqb %xmm7, %xmm11, %xmm2
0xc5, 0xf1, 0x74, 0xca, //0x000003da vpcmpeqb %xmm2, %xmm1, %xmm1 0xc5, 0xe9, 0xeb, 0xc9, //0x000003db vpor %xmm1, %xmm2, %xmm1
0xc5, 0xc1, 0xdb, 0xd4, //0x000003de vpand %xmm4, %xmm7, %xmm2 0xc5, 0xc1, 0xdb, 0xd4, //0x000003df vpand %xmm4, %xmm7, %xmm2
0xc5, 0xe9, 0x74, 0xd6, //0x000003e2 vpcmpeqb %xmm6, %xmm2, %xmm2 0xc5, 0xe9, 0x74, 0xd6, //0x000003e3 vpcmpeqb %xmm6, %xmm2, %xmm2
0xc5, 0xc1, 0x74, 0xfd, //0x000003e6 vpcmpeqb %xmm5, %xmm7, %xmm7 0xc5, 0xc1, 0x74, 0xfd, //0x000003e7 vpcmpeqb %xmm5, %xmm7, %xmm7
0xc5, 0xe9, 0xeb, 0xdf, //0x000003ea vpor %xmm7, %xmm2, %xmm3 0xc5, 0xe9, 0xeb, 0xdf, //0x000003eb vpor %xmm7, %xmm2, %xmm3
0xc5, 0xe1, 0xeb, 0xd8, //0x000003ee vpor %xmm0, %xmm3, %xmm3 0xc5, 0xf1, 0xeb, 0xc0, //0x000003ef vpor %xmm0, %xmm1, %xmm0
0xc5, 0xe1, 0xeb, 0xc9, //0x000003f2 vpor %xmm1, %xmm3, %xmm1 0xc5, 0xe1, 0xeb, 0xc0, //0x000003f3 vpor %xmm0, %xmm3, %xmm0
0xc5, 0xf9, 0xd7, 0xf7, //0x000003f6 vpmovmskb %xmm7, %esi 0xc5, 0xf9, 0xd7, 0xf7, //0x000003f7 vpmovmskb %xmm7, %esi
0xc5, 0x79, 0xd7, 0xc2, //0x000003fa vpmovmskb %xmm2, %r8d 0xc5, 0x79, 0xd7, 0xc2, //0x000003fb vpmovmskb %xmm2, %r8d
0xc5, 0xf9, 0xd7, 0xc0, //0x000003fe vpmovmskb %xmm0, %eax 0xc5, 0xf9, 0xd7, 0xc1, //0x000003ff vpmovmskb %xmm1, %eax
0xc5, 0xf9, 0xd7, 0xc9, //0x00000402 vpmovmskb %xmm1, %ecx 0xc5, 0xf9, 0xd7, 0xc8, //0x00000403 vpmovmskb %xmm0, %ecx
0xf7, 0xd1, //0x00000406 notl %ecx 0xf7, 0xd1, //0x00000407 notl %ecx
0x0f, 0xbc, 0xc9, //0x00000408 bsfl %ecx, %ecx 0x0f, 0xbc, 0xc9, //0x00000409 bsfl %ecx, %ecx
0x83, 0xf9, 0x10, //0x0000040b cmpl $16, %ecx 0x83, 0xf9, 0x10, //0x0000040c cmpl $16, %ecx
0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000040e je LBB0_33 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000040f je LBB0_33
0xbf, 0xff, 0xff, 0xff, 0xff, //0x00000414 movl $-1, %edi 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00000415 movl $-1, %edi
0xd3, 0xe7, //0x00000419 shll %cl, %edi 0xd3, 0xe7, //0x0000041a shll %cl, %edi
0xf7, 0xd7, //0x0000041b notl %edi 0xf7, 0xd7, //0x0000041c notl %edi
0x21, 0xfe, //0x0000041d andl %edi, %esi 0x21, 0xfe, //0x0000041e andl %edi, %esi
0x41, 0x21, 0xf8, //0x0000041f andl %edi, %r8d 0x41, 0x21, 0xf8, //0x00000420 andl %edi, %r8d
0x21, 0xc7, //0x00000422 andl %eax, %edi 0x21, 0xc7, //0x00000423 andl %eax, %edi
0x89, 0xf8, //0x00000424 movl %edi, %eax 0x89, 0xf8, //0x00000425 movl %edi, %eax
//0x00000426 LBB0_33 //0x00000427 LBB0_33
0x44, 0x8d, 0x4e, 0xff, //0x00000426 leal $-1(%rsi), %r9d 0x44, 0x8d, 0x4e, 0xff, //0x00000427 leal $-1(%rsi), %r9d
0x41, 0x21, 0xf1, //0x0000042a andl %esi, %r9d 0x41, 0x21, 0xf1, //0x0000042b andl %esi, %r9d
0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x0000042d jne LBB0_34 0x0f, 0x85, 0x93, 0x02, 0x00, 0x00, //0x0000042e jne LBB0_34
0x41, 0x8d, 0x78, 0xff, //0x00000433 leal $-1(%r8), %edi 0x41, 0x8d, 0x78, 0xff, //0x00000434 leal $-1(%r8), %edi
0x44, 0x21, 0xc7, //0x00000437 andl %r8d, %edi 0x44, 0x21, 0xc7, //0x00000438 andl %r8d, %edi
0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x0000043a jne LBB0_37 0x0f, 0x85, 0x6a, 0x02, 0x00, 0x00, //0x0000043b jne LBB0_37
0x8d, 0x78, 0xff, //0x00000440 leal $-1(%rax), %edi 0x8d, 0x78, 0xff, //0x00000441 leal $-1(%rax), %edi
0x21, 0xc7, //0x00000443 andl %eax, %edi 0x21, 0xc7, //0x00000444 andl %eax, %edi
0x0f, 0x85, 0x60, 0x02, 0x00, 0x00, //0x00000445 jne LBB0_37 0x0f, 0x85, 0x5f, 0x02, 0x00, 0x00, //0x00000446 jne LBB0_37
0x85, 0xf6, //0x0000044b testl %esi, %esi 0x85, 0xf6, //0x0000044c testl %esi, %esi
0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000044d je LBB0_42 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000044e je LBB0_42
0x0f, 0xbc, 0xf6, //0x00000453 bsfl %esi, %esi 0x0f, 0xbc, 0xf6, //0x00000454 bsfl %esi, %esi
0x49, 0x83, 0xfc, 0xff, //0x00000456 cmpq $-1, %r12 0x49, 0x83, 0xfc, 0xff, //0x00000457 cmpq $-1, %r12
0x0f, 0x85, 0x60, 0x02, 0x00, 0x00, //0x0000045a jne LBB0_87 0x0f, 0x85, 0x5f, 0x02, 0x00, 0x00, //0x0000045b jne LBB0_87
0x4c, 0x01, 0xf6, //0x00000460 addq %r14, %rsi 0x4c, 0x01, 0xf6, //0x00000461 addq %r14, %rsi
0x48, 0x01, 0xd6, //0x00000463 addq %rdx, %rsi 0x48, 0x01, 0xd6, //0x00000464 addq %rdx, %rsi
0x49, 0x89, 0xf4, //0x00000466 movq %rsi, %r12 0x49, 0x89, 0xf4, //0x00000467 movq %rsi, %r12
//0x00000469 LBB0_42 //0x0000046a LBB0_42
0x45, 0x85, 0xc0, //0x00000469 testl %r8d, %r8d 0x45, 0x85, 0xc0, //0x0000046a testl %r8d, %r8d
0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x0000046c je LBB0_45 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x0000046d je LBB0_45
0x41, 0x0f, 0xbc, 0xf0, //0x00000472 bsfl %r8d, %esi 0x41, 0x0f, 0xbc, 0xf0, //0x00000473 bsfl %r8d, %esi
0x49, 0x83, 0xff, 0xff, //0x00000476 cmpq $-1, %r15 0x49, 0x83, 0xff, 0xff, //0x00000477 cmpq $-1, %r15
0x0f, 0x85, 0x40, 0x02, 0x00, 0x00, //0x0000047a jne LBB0_87 0x0f, 0x85, 0x3f, 0x02, 0x00, 0x00, //0x0000047b jne LBB0_87
0x4c, 0x01, 0xf6, //0x00000480 addq %r14, %rsi 0x4c, 0x01, 0xf6, //0x00000481 addq %r14, %rsi
0x48, 0x01, 0xd6, //0x00000483 addq %rdx, %rsi 0x48, 0x01, 0xd6, //0x00000484 addq %rdx, %rsi
0x49, 0x89, 0xf7, //0x00000486 movq %rsi, %r15 0x49, 0x89, 0xf7, //0x00000487 movq %rsi, %r15
//0x00000489 LBB0_45 //0x0000048a LBB0_45
0x85, 0xc0, //0x00000489 testl %eax, %eax 0x85, 0xc0, //0x0000048a testl %eax, %eax
0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000048b je LBB0_48 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000048c je LBB0_48
0x0f, 0xbc, 0xc0, //0x00000491 bsfl %eax, %eax 0x0f, 0xbc, 0xc0, //0x00000492 bsfl %eax, %eax
0x49, 0x83, 0xfd, 0xff, //0x00000494 cmpq $-1, %r13 0x49, 0x83, 0xfd, 0xff, //0x00000495 cmpq $-1, %r13
0x0f, 0x85, 0x32, 0x02, 0x00, 0x00, //0x00000498 jne LBB0_88 0x0f, 0x85, 0x31, 0x02, 0x00, 0x00, //0x00000499 jne LBB0_88
0x4c, 0x01, 0xf0, //0x0000049e addq %r14, %rax 0x4c, 0x01, 0xf0, //0x0000049f addq %r14, %rax
0x48, 0x01, 0xd0, //0x000004a1 addq %rdx, %rax 0x48, 0x01, 0xd0, //0x000004a2 addq %rdx, %rax
0x49, 0x89, 0xc5, //0x000004a4 movq %rax, %r13 0x49, 0x89, 0xc5, //0x000004a5 movq %rax, %r13
//0x000004a7 LBB0_48 //0x000004a8 LBB0_48
0x83, 0xf9, 0x10, //0x000004a7 cmpl $16, %ecx 0x83, 0xf9, 0x10, //0x000004a8 cmpl $16, %ecx
0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x000004aa jne LBB0_89 0x0f, 0x85, 0xd6, 0x00, 0x00, 0x00, //0x000004ab jne LBB0_89
0x49, 0x83, 0xc2, 0xf0, //0x000004b0 addq $-16, %r10 0x49, 0x83, 0xc2, 0xf0, //0x000004b1 addq $-16, %r10
0x48, 0x83, 0xc2, 0x10, //0x000004b4 addq $16, %rdx 0x48, 0x83, 0xc2, 0x10, //0x000004b5 addq $16, %rdx
0x49, 0x83, 0xfa, 0x0f, //0x000004b8 cmpq $15, %r10 0x49, 0x83, 0xfa, 0x0f, //0x000004b9 cmpq $15, %r10
0x0f, 0x87, 0xfe, 0xfe, 0xff, 0xff, //0x000004bc ja LBB0_31 0x0f, 0x87, 0xfd, 0xfe, 0xff, 0xff, //0x000004bd ja LBB0_31
0x49, 0x01, 0xd3, //0x000004c2 addq %rdx, %r11 0x49, 0x01, 0xd3, //0x000004c3 addq %rdx, %r11
0x48, 0x89, 0xde, //0x000004c5 movq %rbx, %rsi 0x48, 0x89, 0xde, //0x000004c6 movq %rbx, %rsi
0x4c, 0x8b, 0x4d, 0xb8, //0x000004c8 movq $-72(%rbp), %r9 0x4c, 0x8b, 0x4d, 0xb8, //0x000004c9 movq $-72(%rbp), %r9
0x4c, 0x8b, 0x75, 0xc0, //0x000004cc movq $-64(%rbp), %r14 0x4c, 0x8b, 0x75, 0xc0, //0x000004cd movq $-64(%rbp), %r14
//0x000004d0 LBB0_51 //0x000004d1 LBB0_51
0x4d, 0x85, 0xd2, //0x000004d0 testq %r10, %r10 0x4d, 0x85, 0xd2, //0x000004d1 testq %r10, %r10
0x0f, 0x84, 0xd9, 0x00, 0x00, 0x00, //0x000004d3 je LBB0_66 0x0f, 0x84, 0xd8, 0x00, 0x00, 0x00, //0x000004d4 je LBB0_66
0x4f, 0x8d, 0x04, 0x13, //0x000004d9 leaq (%r11,%r10), %r8 0x4f, 0x8d, 0x04, 0x13, //0x000004da leaq (%r11,%r10), %r8
0x4c, 0x89, 0xd9, //0x000004dd movq %r11, %rcx 0x4c, 0x89, 0xd9, //0x000004de movq %r11, %rcx
0x4c, 0x29, 0xf1, //0x000004e0 subq %r14, %rcx 0x4c, 0x29, 0xf1, //0x000004e1 subq %r14, %rcx
0x31, 0xd2, //0x000004e3 xorl %edx, %edx 0x31, 0xd2, //0x000004e4 xorl %edx, %edx
0x48, 0x8d, 0x3d, 0x5c, 0x02, 0x00, 0x00, //0x000004e5 leaq $604(%rip), %rdi /* LJTI0_0+0(%rip) */ 0x48, 0x8d, 0x3d, 0x5b, 0x02, 0x00, 0x00, //0x000004e6 leaq $603(%rip), %rdi /* LJTI0_0+0(%rip) */
0xe9, 0x2c, 0x00, 0x00, 0x00, //0x000004ec jmp LBB0_53 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000004ed jmp LBB0_53
//0x000004f1 LBB0_55 //0x000004f2 LBB0_55
0x83, 0xfb, 0x65, //0x000004f1 cmpl $101, %ebx 0x83, 0xfb, 0x65, //0x000004f2 cmpl $101, %ebx
0x0f, 0x85, 0xb5, 0x00, 0x00, 0x00, //0x000004f4 jne LBB0_65 0x0f, 0x85, 0xb4, 0x00, 0x00, 0x00, //0x000004f5 jne LBB0_65
//0x000004fa LBB0_56 //0x000004fb LBB0_56
0x49, 0x83, 0xff, 0xff, //0x000004fa cmpq $-1, %r15 0x49, 0x83, 0xff, 0xff, //0x000004fb cmpq $-1, %r15
0x0f, 0x85, 0x8a, 0x01, 0x00, 0x00, //0x000004fe jne LBB0_90 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x000004ff jne LBB0_90
0x4c, 0x8d, 0x3c, 0x11, //0x00000504 leaq (%rcx,%rdx), %r15 0x4c, 0x8d, 0x3c, 0x11, //0x00000505 leaq (%rcx,%rdx), %r15
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000508 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000509 .p2align 4, 0x90
//0x00000510 LBB0_63 //0x00000510 LBB0_63
0x48, 0x83, 0xc2, 0x01, //0x00000510 addq $1, %rdx 0x48, 0x83, 0xc2, 0x01, //0x00000510 addq $1, %rdx
0x49, 0x39, 0xd2, //0x00000514 cmpq %rdx, %r10 0x49, 0x39, 0xd2, //0x00000514 cmpq %rdx, %r10
@ -293,7 +293,7 @@ var _text_skip_number = []byte{
0x0f, 0x82, 0xe2, 0xff, 0xff, 0xff, //0x00000528 jb LBB0_63 0x0f, 0x82, 0xe2, 0xff, 0xff, 0xff, //0x00000528 jb LBB0_63
0x8d, 0x43, 0xd5, //0x0000052e leal $-43(%rbx), %eax 0x8d, 0x43, 0xd5, //0x0000052e leal $-43(%rbx), %eax
0x83, 0xf8, 0x1a, //0x00000531 cmpl $26, %eax 0x83, 0xf8, 0x1a, //0x00000531 cmpl $26, %eax
0x0f, 0x87, 0xb7, 0xff, 0xff, 0xff, //0x00000534 ja LBB0_55 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000534 ja LBB0_55
0x48, 0x63, 0x04, 0x87, //0x0000053a movslq (%rdi,%rax,4), %rax 0x48, 0x63, 0x04, 0x87, //0x0000053a movslq (%rdi,%rax,4), %rax
0x48, 0x01, 0xf8, //0x0000053e addq %rdi, %rax 0x48, 0x01, 0xf8, //0x0000053e addq %rdi, %rax
0xff, 0xe0, //0x00000541 jmpq *%rax 0xff, 0xe0, //0x00000541 jmpq *%rax
@ -453,7 +453,7 @@ var _text_skip_number = []byte{
0x4d, 0x89, 0xf3, //0x00000733 movq %r14, %r11 0x4d, 0x89, 0xf3, //0x00000733 movq %r14, %r11
0x49, 0x83, 0xfa, 0x10, //0x00000736 cmpq $16, %r10 0x49, 0x83, 0xfa, 0x10, //0x00000736 cmpq $16, %r10
0x0f, 0x83, 0x27, 0xfc, 0xff, 0xff, //0x0000073a jae LBB0_30 0x0f, 0x83, 0x27, 0xfc, 0xff, 0xff, //0x0000073a jae LBB0_30
0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x00000740 jmp LBB0_51 0xe9, 0x8c, 0xfd, 0xff, 0xff, //0x00000740 jmp LBB0_51
0x90, 0x90, 0x90, //0x00000745 .p2align 2, 0x90 0x90, 0x90, 0x90, //0x00000745 .p2align 2, 0x90
// // .set L0_0_set_61, LBB0_61-LJTI0_0 // // .set L0_0_set_61, LBB0_61-LJTI0_0
// // .set L0_0_set_65, LBB0_65-LJTI0_0 // // .set L0_0_set_65, LBB0_65-LJTI0_0
@ -486,7 +486,7 @@ var _text_skip_number = []byte{
0x67, 0xfe, 0xff, 0xff, //0x000007a4 .long L0_0_set_65 0x67, 0xfe, 0xff, 0xff, //0x000007a4 .long L0_0_set_65
0x67, 0xfe, 0xff, 0xff, //0x000007a8 .long L0_0_set_65 0x67, 0xfe, 0xff, 0xff, //0x000007a8 .long L0_0_set_65
0x67, 0xfe, 0xff, 0xff, //0x000007ac .long L0_0_set_65 0x67, 0xfe, 0xff, 0xff, //0x000007ac .long L0_0_set_65
0xb2, 0xfd, 0xff, 0xff, //0x000007b0 .long L0_0_set_56 0xb3, 0xfd, 0xff, 0xff, //0x000007b0 .long L0_0_set_56
//0x000007b4 .p2align 2, 0x00 //0x000007b4 .p2align 2, 0x00
//0x000007b4 _MASK_USE_NUMBER //0x000007b4 _MASK_USE_NUMBER
0x02, 0x00, 0x00, 0x00, //0x000007b4 .long 2 0x02, 0x00, 0x00, 0x00, //0x000007b4 .long 2

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__skip_object = 15888 _size__skip_object = 15136
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0x3b41, 208}, {0x38dd, 208},
{0x3b42, 48}, {0x38de, 48},
{0x3b44, 40}, {0x38e0, 40},
{0x3b46, 32}, {0x38e2, 32},
{0x3b48, 24}, {0x38e4, 24},
{0x3b4a, 16}, {0x38e6, 16},
{0x3b4b, 8}, {0x38e7, 8},
{0x3b4f, 0}, {0x38eb, 0},
{0x3e10, 208}, {0x3b20, 208},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__skip_one_fast = 2840 _size__skip_one_fast = 2824
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0x33c, 176}, {0x32c, 176},
{0x33d, 48}, {0x32d, 48},
{0x33f, 40}, {0x32f, 40},
{0x341, 32}, {0x331, 32},
{0x343, 24}, {0x333, 24},
{0x345, 16}, {0x335, 16},
{0x346, 8}, {0x336, 8},
{0x34a, 0}, {0x33a, 0},
{0xb18, 176}, {0xb08, 176},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__skip_one = 12508 _size__skip_one = 13564
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0x2ea6, 208}, {0x323f, 208},
{0x2ea7, 48}, {0x3240, 48},
{0x2ea9, 40}, {0x3242, 40},
{0x2eab, 32}, {0x3244, 32},
{0x2ead, 24}, {0x3246, 24},
{0x2eaf, 16}, {0x3248, 16},
{0x2eb0, 8}, {0x3249, 8},
{0x2eb4, 0}, {0x324d, 0},
{0x30dc, 208}, {0x34fc, 208},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__unquote = 2096 _size__unquote = 2288
) )
var ( var (
@ -36,7 +36,7 @@ var (
{0x601, 16}, {0x601, 16},
{0x602, 8}, {0x602, 8},
{0x606, 0}, {0x606, 0},
{0x830, 80}, {0x8f0, 80},
} }
) )

View file

@ -27,7 +27,7 @@ var _text_unquote = []byte{
0x4c, 0x89, 0xc0, //0x0000004e movq %r8, %rax 0x4c, 0x89, 0xc0, //0x0000004e movq %r8, %rax
0x4c, 0x89, 0x45, 0xb8, //0x00000051 movq %r8, $-72(%rbp) 0x4c, 0x89, 0x45, 0xb8, //0x00000051 movq %r8, $-72(%rbp)
0x41, 0x83, 0xe0, 0x01, //0x00000055 andl $1, %r8d 0x41, 0x83, 0xe0, 0x01, //0x00000055 andl $1, %r8d
0x4c, 0x8d, 0x1d, 0x00, 0x08, 0x00, 0x00, //0x00000059 leaq $2048(%rip), %r11 /* __UnquoteTab+0(%rip) */ 0x4c, 0x8d, 0x1d, 0xc0, 0x08, 0x00, 0x00, //0x00000059 leaq $2240(%rip), %r11 /* __UnquoteTab+0(%rip) */
0xc5, 0xfe, 0x6f, 0x0d, 0x98, 0xff, 0xff, 0xff, //0x00000060 vmovdqu $-104(%rip), %ymm1 /* LCPI0_0+0(%rip) */ 0xc5, 0xfe, 0x6f, 0x0d, 0x98, 0xff, 0xff, 0xff, //0x00000060 vmovdqu $-104(%rip), %ymm1 /* LCPI0_0+0(%rip) */
0xc5, 0xfa, 0x6f, 0x15, 0xb0, 0xff, 0xff, 0xff, //0x00000068 vmovdqu $-80(%rip), %xmm2 /* LCPI0_1+0(%rip) */ 0xc5, 0xfa, 0x6f, 0x15, 0xb0, 0xff, 0xff, 0xff, //0x00000068 vmovdqu $-80(%rip), %xmm2 /* LCPI0_1+0(%rip) */
0x48, 0x89, 0x7d, 0xc8, //0x00000070 movq %rdi, $-56(%rbp) 0x48, 0x89, 0x7d, 0xc8, //0x00000070 movq %rdi, $-56(%rbp)
@ -38,102 +38,103 @@ var _text_unquote = []byte{
0x49, 0x89, 0xd0, //0x00000081 movq %rdx, %r8 0x49, 0x89, 0xd0, //0x00000081 movq %rdx, %r8
0xe9, 0x77, 0x02, 0x00, 0x00, //0x00000084 jmp LBB0_3 0xe9, 0x77, 0x02, 0x00, 0x00, //0x00000084 jmp LBB0_3
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000089 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000089 .p2align 4, 0x90
//0x00000090 LBB0_60 //0x00000090 LBB0_64
0x41, 0x81, 0xff, 0xff, 0x07, 0x00, 0x00, //0x00000090 cmpl $2047, %r15d 0x44, 0x89, 0xf8, //0x00000090 movl %r15d, %eax
0x0f, 0x86, 0xbd, 0x01, 0x00, 0x00, //0x00000097 jbe LBB0_61 0x41, 0x81, 0xff, 0xff, 0x07, 0x00, 0x00, //0x00000093 cmpl $2047, %r15d
0x41, 0x8d, 0x87, 0x00, 0x20, 0xff, 0xff, //0x0000009d leal $-57344(%r15), %eax 0x0f, 0x86, 0xba, 0x01, 0x00, 0x00, //0x0000009a jbe LBB0_65
0x3d, 0xff, 0xf7, 0xff, 0xff, //0x000000a4 cmpl $-2049, %eax 0x25, 0x00, 0xf8, 0xff, 0xff, //0x000000a0 andl $-2048, %eax
0x0f, 0x86, 0x71, 0x01, 0x00, 0x00, //0x000000a9 jbe LBB0_63 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x000000a5 cmpl $55296, %eax
0x48, 0x85, 0xf6, //0x000000af testq %rsi, %rsi 0x0f, 0x85, 0x70, 0x01, 0x00, 0x00, //0x000000aa jne LBB0_67
0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x000000b2 jne LBB0_65 0x48, 0x85, 0xf6, //0x000000b0 testq %rsi, %rsi
0x49, 0x83, 0xfa, 0x06, //0x000000b8 cmpq $6, %r10 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x000000b3 jne LBB0_69
0x0f, 0x8c, 0x2f, 0x01, 0x00, 0x00, //0x000000bc jl LBB0_74 0x49, 0x83, 0xfa, 0x06, //0x000000b9 cmpq $6, %r10
//0x000000c2 LBB0_71 0x0f, 0x8c, 0x2f, 0x01, 0x00, 0x00, //0x000000bd jl LBB0_78
0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x000000c2 cmpl $56319, %r15d //0x000000c3 LBB0_75
0x0f, 0x87, 0x22, 0x01, 0x00, 0x00, //0x000000c9 ja LBB0_74 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x000000c3 cmpl $56319, %r15d
0x41, 0x80, 0x39, 0x5c, //0x000000cf cmpb $92, (%r9) 0x0f, 0x87, 0x22, 0x01, 0x00, 0x00, //0x000000ca ja LBB0_78
0x0f, 0x85, 0x18, 0x01, 0x00, 0x00, //0x000000d3 jne LBB0_74 0x41, 0x80, 0x39, 0x5c, //0x000000d0 cmpb $92, (%r9)
0x41, 0x80, 0x79, 0x01, 0x75, //0x000000d9 cmpb $117, $1(%r9) 0x0f, 0x85, 0x18, 0x01, 0x00, 0x00, //0x000000d4 jne LBB0_78
0x0f, 0x85, 0x0d, 0x01, 0x00, 0x00, //0x000000de jne LBB0_74 0x41, 0x80, 0x79, 0x01, 0x75, //0x000000da cmpb $117, $1(%r9)
0x45, 0x8b, 0x71, 0x02, //0x000000e4 movl $2(%r9), %r14d 0x0f, 0x85, 0x0d, 0x01, 0x00, 0x00, //0x000000df jne LBB0_78
0x44, 0x89, 0xf1, //0x000000e8 movl %r14d, %ecx 0x45, 0x8b, 0x71, 0x02, //0x000000e5 movl $2(%r9), %r14d
0xf7, 0xd1, //0x000000eb notl %ecx 0x44, 0x89, 0xf1, //0x000000e9 movl %r14d, %ecx
0x41, 0x8d, 0x86, 0xd0, 0xcf, 0xcf, 0xcf, //0x000000ed leal $-808464432(%r14), %eax 0xf7, 0xd1, //0x000000ec notl %ecx
0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000000f4 andl $-2139062144, %ecx 0x41, 0x8d, 0x86, 0xd0, 0xcf, 0xcf, 0xcf, //0x000000ee leal $-808464432(%r14), %eax
0x85, 0xc1, //0x000000fa testl %eax, %ecx 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000000f5 andl $-2139062144, %ecx
0x0f, 0x85, 0x02, 0x06, 0x00, 0x00, //0x000000fc jne LBB0_84 0x85, 0xc1, //0x000000fb testl %eax, %ecx
0x41, 0x8d, 0x86, 0x19, 0x19, 0x19, 0x19, //0x00000102 leal $421075225(%r14), %eax 0x0f, 0x85, 0x6d, 0x06, 0x00, 0x00, //0x000000fd jne LBB0_88
0x44, 0x09, 0xf0, //0x00000109 orl %r14d, %eax 0x41, 0x8d, 0x86, 0x19, 0x19, 0x19, 0x19, //0x00000103 leal $421075225(%r14), %eax
0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000010c testl $-2139062144, %eax 0x44, 0x09, 0xf0, //0x0000010a orl %r14d, %eax
0x0f, 0x85, 0xed, 0x05, 0x00, 0x00, //0x00000111 jne LBB0_84 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000010d testl $-2139062144, %eax
0x44, 0x89, 0xf3, //0x00000117 movl %r14d, %ebx 0x0f, 0x85, 0x58, 0x06, 0x00, 0x00, //0x00000112 jne LBB0_88
0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000011a andl $2139062143, %ebx 0x44, 0x89, 0xf3, //0x00000118 movl %r14d, %ebx
0xb8, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000120 movl $-1061109568, %eax 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000011b andl $2139062143, %ebx
0x29, 0xd8, //0x00000125 subl %ebx, %eax 0xb8, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000121 movl $-1061109568, %eax
0x8d, 0x93, 0x46, 0x46, 0x46, 0x46, //0x00000127 leal $1179010630(%rbx), %edx 0x29, 0xd8, //0x00000126 subl %ebx, %eax
0x21, 0xc8, //0x0000012d andl %ecx, %eax 0x8d, 0x93, 0x46, 0x46, 0x46, 0x46, //0x00000128 leal $1179010630(%rbx), %edx
0x85, 0xd0, //0x0000012f testl %edx, %eax 0x21, 0xc8, //0x0000012e andl %ecx, %eax
0x0f, 0x85, 0xcd, 0x05, 0x00, 0x00, //0x00000131 jne LBB0_84 0x85, 0xd0, //0x00000130 testl %edx, %eax
0xb8, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000137 movl $-522133280, %eax 0x0f, 0x85, 0x38, 0x06, 0x00, 0x00, //0x00000132 jne LBB0_88
0x29, 0xd8, //0x0000013c subl %ebx, %eax 0xb8, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000138 movl $-522133280, %eax
0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000013e addl $960051513, %ebx 0x29, 0xd8, //0x0000013d subl %ebx, %eax
0x21, 0xc1, //0x00000144 andl %eax, %ecx 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000013f addl $960051513, %ebx
0x85, 0xd9, //0x00000146 testl %ebx, %ecx 0x21, 0xc1, //0x00000145 andl %eax, %ecx
0x0f, 0x85, 0xb6, 0x05, 0x00, 0x00, //0x00000148 jne LBB0_84 0x85, 0xd9, //0x00000147 testl %ebx, %ecx
0x41, 0x0f, 0xce, //0x0000014e bswapl %r14d 0x0f, 0x85, 0x21, 0x06, 0x00, 0x00, //0x00000149 jne LBB0_88
0x44, 0x89, 0xf0, //0x00000151 movl %r14d, %eax 0x41, 0x0f, 0xce, //0x0000014f bswapl %r14d
0xc1, 0xe8, 0x04, //0x00000154 shrl $4, %eax 0x44, 0x89, 0xf0, //0x00000152 movl %r14d, %eax
0xf7, 0xd0, //0x00000157 notl %eax 0xc1, 0xe8, 0x04, //0x00000155 shrl $4, %eax
0x25, 0x01, 0x01, 0x01, 0x01, //0x00000159 andl $16843009, %eax 0xf7, 0xd0, //0x00000158 notl %eax
0x8d, 0x04, 0xc0, //0x0000015e leal (%rax,%rax,8), %eax 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000015a andl $16843009, %eax
0x41, 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000161 andl $252645135, %r14d 0x8d, 0x04, 0xc0, //0x0000015f leal (%rax,%rax,8), %eax
0x41, 0x01, 0xc6, //0x00000168 addl %eax, %r14d 0x41, 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000162 andl $252645135, %r14d
0x44, 0x89, 0xf0, //0x0000016b movl %r14d, %eax 0x41, 0x01, 0xc6, //0x00000169 addl %eax, %r14d
0xc1, 0xe8, 0x04, //0x0000016e shrl $4, %eax 0x44, 0x89, 0xf0, //0x0000016c movl %r14d, %eax
0x44, 0x09, 0xf0, //0x00000171 orl %r14d, %eax 0xc1, 0xe8, 0x04, //0x0000016f shrl $4, %eax
0x0f, 0xb6, 0xc8, //0x00000174 movzbl %al, %ecx 0x44, 0x09, 0xf0, //0x00000172 orl %r14d, %eax
0xc1, 0xe8, 0x08, //0x00000177 shrl $8, %eax 0x89, 0xc1, //0x00000175 movl %eax, %ecx
0x25, 0x00, 0xff, 0x00, 0x00, //0x0000017a andl $65280, %eax 0xc1, 0xe9, 0x08, //0x00000177 shrl $8, %ecx
0x8d, 0x1c, 0x08, //0x0000017f leal (%rax,%rcx), %ebx 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000017a andl $65280, %ecx
0x49, 0x83, 0xc1, 0x06, //0x00000182 addq $6, %r9 0x0f, 0xb6, 0xd8, //0x00000180 movzbl %al, %ebx
0x49, 0x83, 0xc2, 0xfa, //0x00000186 addq $-6, %r10 0x09, 0xcb, //0x00000183 orl %ecx, %ebx
0x01, 0xc8, //0x0000018a addl %ecx, %eax 0x49, 0x83, 0xc1, 0x06, //0x00000185 addq $6, %r9
0x05, 0x00, 0x20, 0xff, 0xff, //0x0000018c addl $-57344, %eax 0x49, 0x83, 0xc2, 0xfa, //0x00000189 addq $-6, %r10
0x3d, 0xff, 0xfb, 0xff, 0xff, //0x00000191 cmpl $-1025, %eax 0x25, 0x00, 0x00, 0xfc, 0x00, //0x0000018d andl $16515072, %eax
0x0f, 0x87, 0xe7, 0x00, 0x00, 0x00, //0x00000196 ja LBB0_96 0x3d, 0x00, 0x00, 0xdc, 0x00, //0x00000192 cmpl $14417920, %eax
0xf6, 0x45, 0xb8, 0x02, //0x0000019c testb $2, $-72(%rbp) 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00000197 je LBB0_103
0x0f, 0x84, 0x4e, 0x06, 0x00, 0x00, //0x000001a0 je LBB0_78 0xf6, 0x45, 0xb8, 0x02, //0x0000019d testb $2, $-72(%rbp)
0x4c, 0x89, 0xda, //0x000001a6 movq %r11, %rdx 0x0f, 0x84, 0x17, 0x07, 0x00, 0x00, //0x000001a1 je LBB0_82
0x66, 0x41, 0xc7, 0x40, 0xfe, 0xef, 0xbf, //0x000001a9 movw $-16401, $-2(%r8) 0x4c, 0x89, 0xda, //0x000001a7 movq %r11, %rdx
0x41, 0xc6, 0x00, 0xbd, //0x000001b0 movb $-67, (%r8) 0x66, 0x41, 0xc7, 0x40, 0xfe, 0xef, 0xbf, //0x000001aa movw $-16401, $-2(%r8)
0x49, 0x83, 0xc0, 0x03, //0x000001b4 addq $3, %r8 0x41, 0xc6, 0x00, 0xbd, //0x000001b1 movb $-67, (%r8)
0x41, 0x89, 0xdf, //0x000001b8 movl %ebx, %r15d 0x49, 0x83, 0xc0, 0x03, //0x000001b5 addq $3, %r8
0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000001bb cmpl $128, %ebx 0x41, 0x89, 0xdf, //0x000001b9 movl %ebx, %r15d
0x0f, 0x83, 0xc9, 0xfe, 0xff, 0xff, //0x000001c1 jae LBB0_60 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000001bc cmpl $128, %ebx
0xe9, 0x10, 0x01, 0x00, 0x00, //0x000001c7 jmp LBB0_57 0x0f, 0x83, 0xc8, 0xfe, 0xff, 0xff, //0x000001c2 jae LBB0_64
//0x000001cc LBB0_65 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x000001c8 jmp LBB0_61
0x4d, 0x85, 0xd2, //0x000001cc testq %r10, %r10 //0x000001cd LBB0_69
0x0f, 0x8e, 0x46, 0x06, 0x00, 0x00, //0x000001cf jle LBB0_66 0x4d, 0x85, 0xd2, //0x000001cd testq %r10, %r10
0x41, 0x80, 0x39, 0x5c, //0x000001d5 cmpb $92, (%r9) 0x0f, 0x8e, 0x0f, 0x07, 0x00, 0x00, //0x000001d0 jle LBB0_70
0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x000001d9 jne LBB0_76 0x41, 0x80, 0x39, 0x5c, //0x000001d6 cmpb $92, (%r9)
0x49, 0x83, 0xc2, 0xff, //0x000001df addq $-1, %r10 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x000001da jne LBB0_80
0x49, 0x83, 0xc1, 0x01, //0x000001e3 addq $1, %r9 0x49, 0x83, 0xc2, 0xff, //0x000001e0 addq $-1, %r10
0x49, 0x83, 0xfa, 0x06, //0x000001e7 cmpq $6, %r10 0x49, 0x83, 0xc1, 0x01, //0x000001e4 addq $1, %r9
0x0f, 0x8d, 0xd1, 0xfe, 0xff, 0xff, //0x000001eb jge LBB0_71 0x49, 0x83, 0xfa, 0x06, //0x000001e8 cmpq $6, %r10
//0x000001f1 LBB0_74 0x0f, 0x8d, 0xd1, 0xfe, 0xff, 0xff, //0x000001ec jge LBB0_75
0xf6, 0x45, 0xb8, 0x02, //0x000001f1 testb $2, $-72(%rbp) //0x000001f2 LBB0_78
0x0f, 0x84, 0x14, 0x06, 0x00, 0x00, //0x000001f5 je LBB0_75 0xf6, 0x45, 0xb8, 0x02, //0x000001f2 testb $2, $-72(%rbp)
//0x000001fb LBB0_77 0x0f, 0x84, 0xdd, 0x06, 0x00, 0x00, //0x000001f6 je LBB0_79
0x66, 0x41, 0xc7, 0x40, 0xfe, 0xef, 0xbf, //0x000001fb movw $-16401, $-2(%r8) //0x000001fc LBB0_81
0x41, 0xc6, 0x00, 0xbd, //0x00000202 movb $-67, (%r8) 0x66, 0x41, 0xc7, 0x40, 0xfe, 0xef, 0xbf, //0x000001fc movw $-16401, $-2(%r8)
0x49, 0x83, 0xc0, 0x01, //0x00000206 addq $1, %r8 0x41, 0xc6, 0x00, 0xbd, //0x00000203 movb $-67, (%r8)
0x4c, 0x89, 0xda, //0x0000020a movq %r11, %rdx 0x49, 0x83, 0xc0, 0x01, //0x00000207 addq $1, %r8
0x49, 0x89, 0xfb, //0x0000020d movq %rdi, %r11 0x4c, 0x89, 0xda, //0x0000020b movq %r11, %rdx
0x4d, 0x85, 0xd2, //0x00000210 testq %r10, %r10 0x49, 0x89, 0xfb, //0x0000020e movq %rdi, %r11
0x0f, 0x85, 0xe7, 0x00, 0x00, 0x00, //0x00000213 jne LBB0_3 0x4d, 0x85, 0xd2, //0x00000211 testq %r10, %r10
0xe9, 0xef, 0x03, 0x00, 0x00, //0x00000219 jmp LBB0_99 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00000214 jne LBB0_3
0x90, 0x90, //0x0000021e .p2align 4, 0x90 0xe9, 0xee, 0x03, 0x00, 0x00, //0x0000021a jmp LBB0_106
//0x00000220 LBB0_63 0x90, //0x0000021f .p2align 4, 0x90
//0x00000220 LBB0_67
0x44, 0x89, 0xf8, //0x00000220 movl %r15d, %eax 0x44, 0x89, 0xf8, //0x00000220 movl %r15d, %eax
0xc1, 0xe8, 0x0c, //0x00000223 shrl $12, %eax 0xc1, 0xe8, 0x0c, //0x00000223 shrl $12, %eax
0x0c, 0xe0, //0x00000226 orb $-32, %al 0x0c, 0xe0, //0x00000226 orb $-32, %al
@ -150,56 +151,55 @@ var _text_unquote = []byte{
0x49, 0x89, 0xfb, //0x00000249 movq %rdi, %r11 0x49, 0x89, 0xfb, //0x00000249 movq %rdi, %r11
0x4d, 0x85, 0xd2, //0x0000024c testq %r10, %r10 0x4d, 0x85, 0xd2, //0x0000024c testq %r10, %r10
0x0f, 0x85, 0xab, 0x00, 0x00, 0x00, //0x0000024f jne LBB0_3 0x0f, 0x85, 0xab, 0x00, 0x00, 0x00, //0x0000024f jne LBB0_3
0xe9, 0xb3, 0x03, 0x00, 0x00, //0x00000255 jmp LBB0_99 0xe9, 0xb3, 0x03, 0x00, 0x00, //0x00000255 jmp LBB0_106
//0x0000025a LBB0_61 //0x0000025a LBB0_65
0x44, 0x89, 0xf8, //0x0000025a movl %r15d, %eax 0xc1, 0xe8, 0x06, //0x0000025a shrl $6, %eax
0xc1, 0xe8, 0x06, //0x0000025d shrl $6, %eax 0x0c, 0xc0, //0x0000025d orb $-64, %al
0x0c, 0xc0, //0x00000260 orb $-64, %al 0x41, 0x88, 0x40, 0xfe, //0x0000025f movb %al, $-2(%r8)
0x41, 0x88, 0x40, 0xfe, //0x00000262 movb %al, $-2(%r8) 0x41, 0x80, 0xe7, 0x3f, //0x00000263 andb $63, %r15b
0x41, 0x80, 0xe7, 0x3f, //0x00000266 andb $63, %r15b 0x41, 0x80, 0xcf, 0x80, //0x00000267 orb $-128, %r15b
0x41, 0x80, 0xcf, 0x80, //0x0000026a orb $-128, %r15b 0x45, 0x88, 0x78, 0xff, //0x0000026b movb %r15b, $-1(%r8)
0x45, 0x88, 0x78, 0xff, //0x0000026e movb %r15b, $-1(%r8) 0x49, 0x89, 0xfb, //0x0000026f movq %rdi, %r11
0x49, 0x89, 0xfb, //0x00000272 movq %rdi, %r11 0x4d, 0x85, 0xd2, //0x00000272 testq %r10, %r10
0x4d, 0x85, 0xd2, //0x00000275 testq %r10, %r10 0x0f, 0x85, 0x85, 0x00, 0x00, 0x00, //0x00000275 jne LBB0_3
0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00000278 jne LBB0_3 0xe9, 0x8d, 0x03, 0x00, 0x00, //0x0000027b jmp LBB0_106
0xe9, 0x8a, 0x03, 0x00, 0x00, //0x0000027e jmp LBB0_99 //0x00000280 LBB0_103
//0x00000283 LBB0_96 0x41, 0xc1, 0xe7, 0x0a, //0x00000280 shll $10, %r15d
0x41, 0xc1, 0xe7, 0x0a, //0x00000283 shll $10, %r15d 0x89, 0xd8, //0x00000284 movl %ebx, %eax
0x89, 0xd9, //0x00000287 movl %ebx, %ecx 0x44, 0x01, 0xf8, //0x00000286 addl %r15d, %eax
0x44, 0x01, 0xf9, //0x00000289 addl %r15d, %ecx 0x42, 0x8d, 0x0c, 0x3b, //0x00000289 leal (%rbx,%r15), %ecx
0x42, 0x8d, 0x04, 0x3b, //0x0000028c leal (%rbx,%r15), %eax 0x81, 0xc1, 0x00, 0x24, 0xa0, 0xfc, //0x0000028d addl $-56613888, %ecx
0x05, 0x00, 0x24, 0xa0, 0xfc, //0x00000290 addl $-56613888, %eax 0x89, 0xca, //0x00000293 movl %ecx, %edx
0x89, 0xc2, //0x00000295 movl %eax, %edx 0xc1, 0xea, 0x12, //0x00000295 shrl $18, %edx
0xc1, 0xea, 0x12, //0x00000297 shrl $18, %edx 0x80, 0xca, 0xf0, //0x00000298 orb $-16, %dl
0x80, 0xca, 0xf0, //0x0000029a orb $-16, %dl 0x41, 0x88, 0x50, 0xfe, //0x0000029b movb %dl, $-2(%r8)
0x41, 0x88, 0x50, 0xfe, //0x0000029d movb %dl, $-2(%r8) 0x89, 0xca, //0x0000029f movl %ecx, %edx
0x89, 0xc2, //0x000002a1 movl %eax, %edx 0xc1, 0xea, 0x0c, //0x000002a1 shrl $12, %edx
0xc1, 0xea, 0x0c, //0x000002a3 shrl $12, %edx 0x80, 0xe2, 0x3f, //0x000002a4 andb $63, %dl
0x80, 0xe2, 0x3f, //0x000002a6 andb $63, %dl 0x80, 0xca, 0x80, //0x000002a7 orb $-128, %dl
0x80, 0xca, 0x80, //0x000002a9 orb $-128, %dl 0x41, 0x88, 0x50, 0xff, //0x000002aa movb %dl, $-1(%r8)
0x41, 0x88, 0x50, 0xff, //0x000002ac movb %dl, $-1(%r8) 0x4c, 0x89, 0xda, //0x000002ae movq %r11, %rdx
0x4c, 0x89, 0xda, //0x000002b0 movq %r11, %rdx 0xc1, 0xe9, 0x06, //0x000002b1 shrl $6, %ecx
0xc1, 0xe8, 0x06, //0x000002b3 shrl $6, %eax 0x80, 0xe1, 0x3f, //0x000002b4 andb $63, %cl
0x24, 0x3f, //0x000002b6 andb $63, %al 0x80, 0xc9, 0x80, //0x000002b7 orb $-128, %cl
0x0c, 0x80, //0x000002b8 orb $-128, %al 0x41, 0x88, 0x08, //0x000002ba movb %cl, (%r8)
0x41, 0x88, 0x00, //0x000002ba movb %al, (%r8) 0x24, 0x3f, //0x000002bd andb $63, %al
0x80, 0xe1, 0x3f, //0x000002bd andb $63, %cl 0x0c, 0x80, //0x000002bf orb $-128, %al
0x80, 0xc9, 0x80, //0x000002c0 orb $-128, %cl 0x41, 0x88, 0x40, 0x01, //0x000002c1 movb %al, $1(%r8)
0x41, 0x88, 0x48, 0x01, //0x000002c3 movb %cl, $1(%r8) 0x49, 0x83, 0xc0, 0x02, //0x000002c5 addq $2, %r8
0x49, 0x83, 0xc0, 0x02, //0x000002c7 addq $2, %r8 0x49, 0x89, 0xfb, //0x000002c9 movq %rdi, %r11
0x49, 0x89, 0xfb, //0x000002cb movq %rdi, %r11 0x4d, 0x85, 0xd2, //0x000002cc testq %r10, %r10
0x4d, 0x85, 0xd2, //0x000002ce testq %r10, %r10 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000002cf jne LBB0_3
0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x000002d1 jne LBB0_3 0xe9, 0x33, 0x03, 0x00, 0x00, //0x000002d5 jmp LBB0_106
0xe9, 0x31, 0x03, 0x00, 0x00, //0x000002d7 jmp LBB0_99 //0x000002da LBB0_61
//0x000002dc LBB0_57 0x49, 0x83, 0xc0, 0xfe, //0x000002da addq $-2, %r8
0x49, 0x83, 0xc0, 0xfe, //0x000002dc addq $-2, %r8 0x4d, 0x89, 0xc4, //0x000002de movq %r8, %r12
0x4d, 0x89, 0xc4, //0x000002e0 movq %r8, %r12 0xe9, 0x10, 0x03, 0x00, 0x00, //0x000002e1 jmp LBB0_62
0xe9, 0x0e, 0x03, 0x00, 0x00, //0x000002e3 jmp LBB0_58 //0x000002e6 LBB0_80
//0x000002e8 LBB0_76 0xf6, 0x45, 0xb8, 0x02, //0x000002e6 testb $2, $-72(%rbp)
0xf6, 0x45, 0xb8, 0x02, //0x000002e8 testb $2, $-72(%rbp) 0x0f, 0x85, 0x0c, 0xff, 0xff, 0xff, //0x000002ea jne LBB0_81
0x0f, 0x85, 0x09, 0xff, 0xff, 0xff, //0x000002ec jne LBB0_77 0xe9, 0xc9, 0x05, 0x00, 0x00, //0x000002f0 jmp LBB0_82
0xe9, 0xfd, 0x04, 0x00, 0x00, //0x000002f2 jmp LBB0_78 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002f5 .p2align 4, 0x90
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002f7 .p2align 4, 0x90
//0x00000300 LBB0_3 //0x00000300 LBB0_3
0x41, 0x80, 0x39, 0x5c, //0x00000300 cmpb $92, (%r9) 0x41, 0x80, 0x39, 0x5c, //0x00000300 cmpb $92, (%r9)
0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000304 jne LBB0_5 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000304 jne LBB0_5
@ -251,7 +251,7 @@ var _text_unquote = []byte{
0x49, 0x83, 0xc4, 0xf0, //0x000003c6 addq $-16, %r12 0x49, 0x83, 0xc4, 0xf0, //0x000003c6 addq $-16, %r12
0x49, 0x83, 0xff, 0x1f, //0x000003ca cmpq $31, %r15 0x49, 0x83, 0xff, 0x1f, //0x000003ca cmpq $31, %r15
0x4d, 0x89, 0xf7, //0x000003ce movq %r14, %r15 0x4d, 0x89, 0xf7, //0x000003ce movq %r14, %r15
0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000003d1 ja LBB0_18 0x0f, 0x8f, 0xc9, 0xff, 0xff, 0xff, //0x000003d1 jg LBB0_18
0xe9, 0x13, 0x00, 0x00, 0x00, //0x000003d7 jmp LBB0_13 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000003d7 jmp LBB0_13
//0x000003dc LBB0_12 //0x000003dc LBB0_12
0x4d, 0x89, 0xfe, //0x000003dc movq %r15, %r14 0x4d, 0x89, 0xfe, //0x000003dc movq %r15, %r14
@ -259,7 +259,7 @@ var _text_unquote = []byte{
0xc5, 0xfa, 0x6f, 0x15, 0x31, 0xfc, 0xff, 0xff, //0x000003e7 vmovdqu $-975(%rip), %xmm2 /* LCPI0_1+0(%rip) */ 0xc5, 0xfa, 0x6f, 0x15, 0x31, 0xfc, 0xff, 0xff, //0x000003e7 vmovdqu $-975(%rip), %xmm2 /* LCPI0_1+0(%rip) */
//0x000003ef LBB0_13 //0x000003ef LBB0_13
0x4d, 0x85, 0xf6, //0x000003ef testq %r14, %r14 0x4d, 0x85, 0xf6, //0x000003ef testq %r14, %r14
0x0f, 0x84, 0x23, 0x02, 0x00, 0x00, //0x000003f2 je LBB0_100 0x0f, 0x84, 0x23, 0x02, 0x00, 0x00, //0x000003f2 je LBB0_107
0x31, 0xc9, //0x000003f8 xorl %ecx, %ecx 0x31, 0xc9, //0x000003f8 xorl %ecx, %ecx
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003fa .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003fa .p2align 4, 0x90
//0x00000400 LBB0_15 //0x00000400 LBB0_15
@ -270,30 +270,30 @@ var _text_unquote = []byte{
0x48, 0x83, 0xc1, 0x01, //0x00000412 addq $1, %rcx 0x48, 0x83, 0xc1, 0x01, //0x00000412 addq $1, %rcx
0x49, 0x39, 0xce, //0x00000416 cmpq %rcx, %r14 0x49, 0x39, 0xce, //0x00000416 cmpq %rcx, %r14
0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x00000419 jne LBB0_15 0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x00000419 jne LBB0_15
0xe9, 0xf7, 0x01, 0x00, 0x00, //0x0000041f jmp LBB0_100 0xe9, 0xf7, 0x01, 0x00, 0x00, //0x0000041f jmp LBB0_107
//0x00000424 LBB0_21 //0x00000424 LBB0_21
0x4d, 0x29, 0xcd, //0x00000424 subq %r9, %r13 0x4d, 0x29, 0xcd, //0x00000424 subq %r9, %r13
0x49, 0x01, 0xcd, //0x00000427 addq %rcx, %r13 0x49, 0x01, 0xcd, //0x00000427 addq %rcx, %r13
0x49, 0x83, 0xfd, 0xff, //0x0000042a cmpq $-1, %r13 0x49, 0x83, 0xfd, 0xff, //0x0000042a cmpq $-1, %r13
0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x0000042e jne LBB0_23 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x0000042e jne LBB0_23
0xe9, 0xe2, 0x01, 0x00, 0x00, //0x00000434 jmp LBB0_100 0xe9, 0xe2, 0x01, 0x00, 0x00, //0x00000434 jmp LBB0_107
//0x00000439 LBB0_8 //0x00000439 LBB0_8
0x44, 0x0f, 0xbc, 0xeb, //0x00000439 bsfl %ebx, %r13d 0x44, 0x0f, 0xbc, 0xeb, //0x00000439 bsfl %ebx, %r13d
0x49, 0x01, 0xc5, //0x0000043d addq %rax, %r13 0x49, 0x01, 0xc5, //0x0000043d addq %rax, %r13
0x49, 0x83, 0xfd, 0xff, //0x00000440 cmpq $-1, %r13 0x49, 0x83, 0xfd, 0xff, //0x00000440 cmpq $-1, %r13
0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000444 jne LBB0_23 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000444 jne LBB0_23
0xe9, 0xcc, 0x01, 0x00, 0x00, //0x0000044a jmp LBB0_100 0xe9, 0xcc, 0x01, 0x00, 0x00, //0x0000044a jmp LBB0_107
//0x0000044f LBB0_19 //0x0000044f LBB0_19
0x66, 0x0f, 0xbc, 0xc1, //0x0000044f bsfw %cx, %ax 0x66, 0x0f, 0xbc, 0xc1, //0x0000044f bsfw %cx, %ax
0x44, 0x0f, 0xb7, 0xe8, //0x00000453 movzwl %ax, %r13d 0x44, 0x0f, 0xb7, 0xe8, //0x00000453 movzwl %ax, %r13d
0x4d, 0x29, 0xe5, //0x00000457 subq %r12, %r13 0x4d, 0x29, 0xe5, //0x00000457 subq %r12, %r13
0x49, 0x83, 0xfd, 0xff, //0x0000045a cmpq $-1, %r13 0x49, 0x83, 0xfd, 0xff, //0x0000045a cmpq $-1, %r13
0x0f, 0x84, 0xb7, 0x01, 0x00, 0x00, //0x0000045e je LBB0_100 0x0f, 0x84, 0xb7, 0x01, 0x00, 0x00, //0x0000045e je LBB0_107
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000464 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000464 .p2align 4, 0x90
//0x00000470 LBB0_23 //0x00000470 LBB0_23
0x49, 0x8d, 0x45, 0x02, //0x00000470 leaq $2(%r13), %rax 0x49, 0x8d, 0x45, 0x02, //0x00000470 leaq $2(%r13), %rax
0x49, 0x29, 0xc2, //0x00000474 subq %rax, %r10 0x49, 0x29, 0xc2, //0x00000474 subq %rax, %r10
0x0f, 0x88, 0xc2, 0x03, 0x00, 0x00, //0x00000477 js LBB0_24 0x0f, 0x88, 0x8c, 0x04, 0x00, 0x00, //0x00000477 js LBB0_24
0x4d, 0x01, 0xe9, //0x0000047d addq %r13, %r9 0x4d, 0x01, 0xe9, //0x0000047d addq %r13, %r9
0x49, 0x83, 0xc1, 0x02, //0x00000480 addq $2, %r9 0x49, 0x83, 0xc1, 0x02, //0x00000480 addq $2, %r9
0x48, 0x85, 0xf6, //0x00000484 testq %rsi, %rsi 0x48, 0x85, 0xf6, //0x00000484 testq %rsi, %rsi
@ -305,17 +305,17 @@ var _text_unquote = []byte{
0x80, 0xf9, 0xff, //0x0000049a cmpb $-1, %cl 0x80, 0xf9, 0xff, //0x0000049a cmpb $-1, %cl
0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x0000049d je LBB0_41 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x0000049d je LBB0_41
0x84, 0xc9, //0x000004a3 testb %cl, %cl 0x84, 0xc9, //0x000004a3 testb %cl, %cl
0x0f, 0x84, 0x3c, 0x02, 0x00, 0x00, //0x000004a5 je LBB0_39 0x0f, 0x84, 0xa8, 0x02, 0x00, 0x00, //0x000004a5 je LBB0_39
0x41, 0x88, 0x0c, 0x24, //0x000004ab movb %cl, (%r12) 0x41, 0x88, 0x0c, 0x24, //0x000004ab movb %cl, (%r12)
0x49, 0x83, 0xc4, 0x01, //0x000004af addq $1, %r12 0x49, 0x83, 0xc4, 0x01, //0x000004af addq $1, %r12
0x4d, 0x89, 0xe0, //0x000004b3 movq %r12, %r8 0x4d, 0x89, 0xe0, //0x000004b3 movq %r12, %r8
0x4d, 0x85, 0xd2, //0x000004b6 testq %r10, %r10 0x4d, 0x85, 0xd2, //0x000004b6 testq %r10, %r10
0x0f, 0x85, 0x41, 0xfe, 0xff, 0xff, //0x000004b9 jne LBB0_3 0x0f, 0x85, 0x41, 0xfe, 0xff, 0xff, //0x000004b9 jne LBB0_3
0xe9, 0x49, 0x01, 0x00, 0x00, //0x000004bf jmp LBB0_99 0xe9, 0x49, 0x01, 0x00, 0x00, //0x000004bf jmp LBB0_106
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004c4 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004c4 .p2align 4, 0x90
//0x000004d0 LBB0_41 //0x000004d0 LBB0_41
0x49, 0x83, 0xfa, 0x03, //0x000004d0 cmpq $3, %r10 0x49, 0x83, 0xfa, 0x03, //0x000004d0 cmpq $3, %r10
0x0f, 0x86, 0x65, 0x03, 0x00, 0x00, //0x000004d4 jbe LBB0_24 0x0f, 0x8e, 0x2f, 0x04, 0x00, 0x00, //0x000004d4 jle LBB0_24
0x45, 0x8b, 0x31, //0x000004da movl (%r9), %r14d 0x45, 0x8b, 0x31, //0x000004da movl (%r9), %r14d
0x44, 0x89, 0xf1, //0x000004dd movl %r14d, %ecx 0x44, 0x89, 0xf1, //0x000004dd movl %r14d, %ecx
0xf7, 0xd1, //0x000004e0 notl %ecx 0xf7, 0xd1, //0x000004e0 notl %ecx
@ -362,24 +362,24 @@ var _text_unquote = []byte{
0x49, 0x83, 0xc1, 0x04, //0x00000581 addq $4, %r9 0x49, 0x83, 0xc1, 0x04, //0x00000581 addq $4, %r9
0x49, 0x83, 0xc2, 0xfc, //0x00000585 addq $-4, %r10 0x49, 0x83, 0xc2, 0xfc, //0x00000585 addq $-4, %r10
0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00000589 cmpl $128, %r15d 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00000589 cmpl $128, %r15d
0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x00000590 jb LBB0_56 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x00000590 jb LBB0_60
0x4d, 0x01, 0xe8, //0x00000596 addq %r13, %r8 0x4d, 0x01, 0xe8, //0x00000596 addq %r13, %r8
0x49, 0x83, 0xc0, 0x02, //0x00000599 addq $2, %r8 0x49, 0x83, 0xc0, 0x02, //0x00000599 addq $2, %r8
0xe9, 0xee, 0xfa, 0xff, 0xff, //0x0000059d jmp LBB0_60 0xe9, 0xee, 0xfa, 0xff, 0xff, //0x0000059d jmp LBB0_64
//0x000005a2 LBB0_26 //0x000005a2 LBB0_26
0x45, 0x85, 0xd2, //0x000005a2 testl %r10d, %r10d 0x45, 0x85, 0xd2, //0x000005a2 testl %r10d, %r10d
0x0f, 0x84, 0x94, 0x02, 0x00, 0x00, //0x000005a5 je LBB0_24 0x0f, 0x84, 0x5e, 0x03, 0x00, 0x00, //0x000005a5 je LBB0_24
0x41, 0x80, 0x79, 0xff, 0x5c, //0x000005ab cmpb $92, $-1(%r9) 0x41, 0x80, 0x79, 0xff, 0x5c, //0x000005ab cmpb $92, $-1(%r9)
0x0f, 0x85, 0x14, 0x02, 0x00, 0x00, //0x000005b0 jne LBB0_28 0x0f, 0x85, 0xde, 0x02, 0x00, 0x00, //0x000005b0 jne LBB0_28
0x41, 0x80, 0x39, 0x5c, //0x000005b6 cmpb $92, (%r9) 0x41, 0x80, 0x39, 0x5c, //0x000005b6 cmpb $92, (%r9)
0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000005ba jne LBB0_36 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000005ba jne LBB0_36
0x41, 0x83, 0xfa, 0x01, //0x000005c0 cmpl $1, %r10d 0x41, 0x83, 0xfa, 0x01, //0x000005c0 cmpl $1, %r10d
0x0f, 0x8e, 0x75, 0x02, 0x00, 0x00, //0x000005c4 jle LBB0_24 0x0f, 0x8e, 0x3f, 0x03, 0x00, 0x00, //0x000005c4 jle LBB0_24
0x41, 0x8a, 0x41, 0x01, //0x000005ca movb $1(%r9), %al 0x41, 0x8a, 0x41, 0x01, //0x000005ca movb $1(%r9), %al
0x3c, 0x22, //0x000005ce cmpb $34, %al 0x3c, 0x22, //0x000005ce cmpb $34, %al
0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000005d0 je LBB0_35 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000005d0 je LBB0_35
0x3c, 0x5c, //0x000005d6 cmpb $92, %al 0x3c, 0x5c, //0x000005d6 cmpb $92, %al
0x0f, 0x85, 0x09, 0x02, 0x00, 0x00, //0x000005d8 jne LBB0_33 0x0f, 0x85, 0xd3, 0x02, 0x00, 0x00, //0x000005d8 jne LBB0_33
//0x000005de LBB0_35 //0x000005de LBB0_35
0x49, 0x83, 0xc1, 0x01, //0x000005de addq $1, %r9 0x49, 0x83, 0xc1, 0x01, //0x000005de addq $1, %r9
0x49, 0x83, 0xc2, 0xff, //0x000005e2 addq $-1, %r10 0x49, 0x83, 0xc2, 0xff, //0x000005e2 addq $-1, %r10
@ -387,25 +387,25 @@ var _text_unquote = []byte{
0x49, 0x83, 0xc1, 0x01, //0x000005e6 addq $1, %r9 0x49, 0x83, 0xc1, 0x01, //0x000005e6 addq $1, %r9
0x49, 0x83, 0xc2, 0xff, //0x000005ea addq $-1, %r10 0x49, 0x83, 0xc2, 0xff, //0x000005ea addq $-1, %r10
0xe9, 0x9a, 0xfe, 0xff, 0xff, //0x000005ee jmp LBB0_37 0xe9, 0x9a, 0xfe, 0xff, 0xff, //0x000005ee jmp LBB0_37
//0x000005f3 LBB0_56 //0x000005f3 LBB0_60
0x44, 0x89, 0xfb, //0x000005f3 movl %r15d, %ebx 0x44, 0x89, 0xfb, //0x000005f3 movl %r15d, %ebx
//0x000005f6 LBB0_58 //0x000005f6 LBB0_62
0x41, 0x88, 0x1c, 0x24, //0x000005f6 movb %bl, (%r12) 0x41, 0x88, 0x1c, 0x24, //0x000005f6 movb %bl, (%r12)
0x49, 0x83, 0xc4, 0x01, //0x000005fa addq $1, %r12 0x49, 0x83, 0xc4, 0x01, //0x000005fa addq $1, %r12
0x4d, 0x89, 0xe0, //0x000005fe movq %r12, %r8 0x4d, 0x89, 0xe0, //0x000005fe movq %r12, %r8
0x49, 0x89, 0xfb, //0x00000601 movq %rdi, %r11 0x49, 0x89, 0xfb, //0x00000601 movq %rdi, %r11
0x4d, 0x85, 0xd2, //0x00000604 testq %r10, %r10 0x4d, 0x85, 0xd2, //0x00000604 testq %r10, %r10
0x0f, 0x85, 0xf3, 0xfc, 0xff, 0xff, //0x00000607 jne LBB0_3 0x0f, 0x85, 0xf3, 0xfc, 0xff, 0xff, //0x00000607 jne LBB0_3
//0x0000060d LBB0_99 //0x0000060d LBB0_106
0x45, 0x31, 0xd2, //0x0000060d xorl %r10d, %r10d 0x45, 0x31, 0xd2, //0x0000060d xorl %r10d, %r10d
0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000610 jmp LBB0_100 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000610 jmp LBB0_107
//0x00000615 LBB0_1 //0x00000615 LBB0_1
0x45, 0x31, 0xd2, //0x00000615 xorl %r10d, %r10d 0x45, 0x31, 0xd2, //0x00000615 xorl %r10d, %r10d
0x49, 0x89, 0xd0, //0x00000618 movq %rdx, %r8 0x49, 0x89, 0xd0, //0x00000618 movq %rdx, %r8
//0x0000061b LBB0_100 //0x0000061b LBB0_107
0x4d, 0x01, 0xd0, //0x0000061b addq %r10, %r8 0x4d, 0x01, 0xd0, //0x0000061b addq %r10, %r8
0x49, 0x29, 0xd0, //0x0000061e subq %rdx, %r8 0x49, 0x29, 0xd0, //0x0000061e subq %rdx, %r8
//0x00000621 LBB0_101 //0x00000621 LBB0_108
0x4c, 0x89, 0xc0, //0x00000621 movq %r8, %rax 0x4c, 0x89, 0xc0, //0x00000621 movq %r8, %rax
0x48, 0x83, 0xc4, 0x20, //0x00000624 addq $32, %rsp 0x48, 0x83, 0xc4, 0x20, //0x00000624 addq $32, %rsp
0x5b, //0x00000628 popq %rbx 0x5b, //0x00000628 popq %rbx
@ -422,173 +422,201 @@ var _text_unquote = []byte{
0x48, 0x8b, 0x75, 0xd0, //0x0000063d movq $-48(%rbp), %rsi 0x48, 0x8b, 0x75, 0xd0, //0x0000063d movq $-48(%rbp), %rsi
0x48, 0x89, 0x06, //0x00000641 movq %rax, (%rsi) 0x48, 0x89, 0x06, //0x00000641 movq %rax, (%rsi)
0x41, 0x8a, 0x09, //0x00000644 movb (%r9), %cl 0x41, 0x8a, 0x09, //0x00000644 movb (%r9), %cl
0x8d, 0x51, 0xc6, //0x00000647 leal $-58(%rcx), %edx 0x8d, 0x51, 0xd0, //0x00000647 leal $-48(%rcx), %edx
0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000064a movq $-2, %r8 0x80, 0xfa, 0x0a, //0x0000064a cmpb $10, %dl
0x80, 0xfa, 0xf5, //0x00000651 cmpb $-11, %dl 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x0000064d jb LBB0_49
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000654 ja LBB0_48 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000653 movq $-2, %r8
0x80, 0xe1, 0xdf, //0x0000065a andb $-33, %cl 0x80, 0xc1, 0xbf, //0x0000065a addb $-65, %cl
0x80, 0xc1, 0xb9, //0x0000065d addb $-71, %cl 0x80, 0xf9, 0x25, //0x0000065d cmpb $37, %cl
0x80, 0xf9, 0xfa, //0x00000660 cmpb $-6, %cl 0x0f, 0x87, 0xbb, 0xff, 0xff, 0xff, //0x00000660 ja LBB0_108
0x0f, 0x82, 0xb8, 0xff, 0xff, 0xff, //0x00000663 jb LBB0_101 0x0f, 0xb6, 0xc9, //0x00000666 movzbl %cl, %ecx
//0x00000669 LBB0_48 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00000669 movabsq $270582939711, %rdx
0x48, 0x8d, 0x48, 0x01, //0x00000669 leaq $1(%rax), %rcx 0x48, 0x0f, 0xa3, 0xca, //0x00000673 btq %rcx, %rdx
0x48, 0x89, 0x0e, //0x0000066d movq %rcx, (%rsi) 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x00000677 jae LBB0_108
0x41, 0x8a, 0x49, 0x01, //0x00000670 movb $1(%r9), %cl //0x0000067d LBB0_49
0x8d, 0x51, 0xc6, //0x00000674 leal $-58(%rcx), %edx 0x48, 0x8d, 0x48, 0x01, //0x0000067d leaq $1(%rax), %rcx
0x80, 0xfa, 0xf5, //0x00000677 cmpb $-11, %dl 0x48, 0x89, 0x0e, //0x00000681 movq %rcx, (%rsi)
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000067a ja LBB0_50 0x41, 0x8a, 0x49, 0x01, //0x00000684 movb $1(%r9), %cl
0x80, 0xe1, 0xdf, //0x00000680 andb $-33, %cl 0x8d, 0x51, 0xd0, //0x00000688 leal $-48(%rcx), %edx
0x80, 0xc1, 0xb9, //0x00000683 addb $-71, %cl 0x80, 0xfa, 0x09, //0x0000068b cmpb $9, %dl
0x80, 0xf9, 0xfa, //0x00000686 cmpb $-6, %cl 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x0000068e jbe LBB0_52
0x0f, 0x82, 0x92, 0xff, 0xff, 0xff, //0x00000689 jb LBB0_101 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000694 movq $-2, %r8
//0x0000068f LBB0_50 0x80, 0xc1, 0xbf, //0x0000069b addb $-65, %cl
0x48, 0x8d, 0x48, 0x02, //0x0000068f leaq $2(%rax), %rcx 0x80, 0xf9, 0x25, //0x0000069e cmpb $37, %cl
0x48, 0x89, 0x0e, //0x00000693 movq %rcx, (%rsi) 0x0f, 0x87, 0x7a, 0xff, 0xff, 0xff, //0x000006a1 ja LBB0_108
0x41, 0x8a, 0x49, 0x02, //0x00000696 movb $2(%r9), %cl 0x0f, 0xb6, 0xc9, //0x000006a7 movzbl %cl, %ecx
0x8d, 0x51, 0xc6, //0x0000069a leal $-58(%rcx), %edx 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000006aa movabsq $270582939711, %rdx
0x80, 0xfa, 0xf5, //0x0000069d cmpb $-11, %dl 0x48, 0x0f, 0xa3, 0xca, //0x000006b4 btq %rcx, %rdx
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000006a0 ja LBB0_52 0x0f, 0x83, 0x63, 0xff, 0xff, 0xff, //0x000006b8 jae LBB0_108
0x80, 0xe1, 0xdf, //0x000006a6 andb $-33, %cl //0x000006be LBB0_52
0x80, 0xc1, 0xb9, //0x000006a9 addb $-71, %cl 0x48, 0x8d, 0x48, 0x02, //0x000006be leaq $2(%rax), %rcx
0x80, 0xf9, 0xfa, //0x000006ac cmpb $-6, %cl 0x48, 0x89, 0x0e, //0x000006c2 movq %rcx, (%rsi)
0x0f, 0x82, 0x6c, 0xff, 0xff, 0xff, //0x000006af jb LBB0_101 0x41, 0x8a, 0x49, 0x02, //0x000006c5 movb $2(%r9), %cl
//0x000006b5 LBB0_52 0x8d, 0x51, 0xd0, //0x000006c9 leal $-48(%rcx), %edx
0x48, 0x8d, 0x48, 0x03, //0x000006b5 leaq $3(%rax), %rcx 0x80, 0xfa, 0x0a, //0x000006cc cmpb $10, %dl
0x48, 0x89, 0x0e, //0x000006b9 movq %rcx, (%rsi) 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000006cf jb LBB0_55
0x41, 0x8a, 0x49, 0x03, //0x000006bc movb $3(%r9), %cl 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000006d5 movq $-2, %r8
0x8d, 0x51, 0xc6, //0x000006c0 leal $-58(%rcx), %edx 0x80, 0xc1, 0xbf, //0x000006dc addb $-65, %cl
0x80, 0xfa, 0xf5, //0x000006c3 cmpb $-11, %dl 0x80, 0xf9, 0x25, //0x000006df cmpb $37, %cl
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000006c6 ja LBB0_54 0x0f, 0x87, 0x39, 0xff, 0xff, 0xff, //0x000006e2 ja LBB0_108
0x80, 0xe1, 0xdf, //0x000006cc andb $-33, %cl 0x0f, 0xb6, 0xc9, //0x000006e8 movzbl %cl, %ecx
0x80, 0xc1, 0xb9, //0x000006cf addb $-71, %cl 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000006eb movabsq $270582939711, %rdx
0x80, 0xf9, 0xfa, //0x000006d2 cmpb $-6, %cl 0x48, 0x0f, 0xa3, 0xca, //0x000006f5 btq %rcx, %rdx
0x0f, 0x82, 0x46, 0xff, 0xff, 0xff, //0x000006d5 jb LBB0_101 0x0f, 0x83, 0x22, 0xff, 0xff, 0xff, //0x000006f9 jae LBB0_108
//0x000006db LBB0_54 //0x000006ff LBB0_55
0x48, 0x83, 0xc0, 0x04, //0x000006db addq $4, %rax 0x48, 0x8d, 0x48, 0x03, //0x000006ff leaq $3(%rax), %rcx
0x48, 0x89, 0x06, //0x000006df movq %rax, (%rsi) 0x48, 0x89, 0x0e, //0x00000703 movq %rcx, (%rsi)
0xe9, 0x3a, 0xff, 0xff, 0xff, //0x000006e2 jmp LBB0_101 0x41, 0x8a, 0x49, 0x03, //0x00000706 movb $3(%r9), %cl
//0x000006e7 LBB0_39 0x8d, 0x51, 0xd0, //0x0000070a leal $-48(%rcx), %edx
0x48, 0x8b, 0x45, 0xc8, //0x000006e7 movq $-56(%rbp), %rax 0x80, 0xfa, 0x0a, //0x0000070d cmpb $10, %dl
0x48, 0xf7, 0xd0, //0x000006eb notq %rax 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00000710 jb LBB0_58
0x49, 0x01, 0xc1, //0x000006ee addq %rax, %r9 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000716 movq $-2, %r8
0x48, 0x8b, 0x45, 0xd0, //0x000006f1 movq $-48(%rbp), %rax 0x80, 0xc1, 0xbf, //0x0000071d addb $-65, %cl
0x4c, 0x89, 0x08, //0x000006f5 movq %r9, (%rax) 0x80, 0xf9, 0x25, //0x00000720 cmpb $37, %cl
0x49, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x000006f8 movq $-3, %r8 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00000723 ja LBB0_108
0xe9, 0x1d, 0xff, 0xff, 0xff, //0x000006ff jmp LBB0_101 0x0f, 0xb6, 0xc9, //0x00000729 movzbl %cl, %ecx
//0x00000704 LBB0_84 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x0000072c movabsq $270582939711, %rdx
0x4c, 0x89, 0xc8, //0x00000704 movq %r9, %rax 0x48, 0x0f, 0xa3, 0xca, //0x00000736 btq %rcx, %rdx
0x48, 0x2b, 0x45, 0xc8, //0x00000707 subq $-56(%rbp), %rax 0x0f, 0x83, 0xe1, 0xfe, 0xff, 0xff, //0x0000073a jae LBB0_108
0x48, 0x83, 0xc0, 0x02, //0x0000070b addq $2, %rax //0x00000740 LBB0_58
0x48, 0x8b, 0x4d, 0xd0, //0x0000070f movq $-48(%rbp), %rcx 0x48, 0x83, 0xc0, 0x04, //0x00000740 addq $4, %rax
0x48, 0x89, 0x01, //0x00000713 movq %rax, (%rcx) 0x48, 0x89, 0x06, //0x00000744 movq %rax, (%rsi)
0x41, 0x8a, 0x49, 0x02, //0x00000716 movb $2(%r9), %cl 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000747 movq $-2, %r8
0x8d, 0x51, 0xc6, //0x0000071a leal $-58(%rcx), %edx 0xe9, 0xce, 0xfe, 0xff, 0xff, //0x0000074e jmp LBB0_108
0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000071d movq $-2, %r8 //0x00000753 LBB0_39
0x80, 0xfa, 0xf5, //0x00000724 cmpb $-11, %dl 0x48, 0x8b, 0x45, 0xc8, //0x00000753 movq $-56(%rbp), %rax
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000727 ja LBB0_86 0x48, 0xf7, 0xd0, //0x00000757 notq %rax
0x80, 0xe1, 0xdf, //0x0000072d andb $-33, %cl 0x49, 0x01, 0xc1, //0x0000075a addq %rax, %r9
0x80, 0xc1, 0xb9, //0x00000730 addb $-71, %cl 0x48, 0x8b, 0x45, 0xd0, //0x0000075d movq $-48(%rbp), %rax
0x80, 0xf9, 0xfa, //0x00000733 cmpb $-6, %cl 0x4c, 0x89, 0x08, //0x00000761 movq %r9, (%rax)
0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00000736 jb LBB0_101 0x49, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00000764 movq $-3, %r8
//0x0000073c LBB0_86 0xe9, 0xb1, 0xfe, 0xff, 0xff, //0x0000076b jmp LBB0_108
0x48, 0x8d, 0x48, 0x01, //0x0000073c leaq $1(%rax), %rcx //0x00000770 LBB0_88
0x48, 0x8b, 0x55, 0xd0, //0x00000740 movq $-48(%rbp), %rdx 0x4c, 0x89, 0xc8, //0x00000770 movq %r9, %rax
0x48, 0x89, 0x0a, //0x00000744 movq %rcx, (%rdx) 0x48, 0x2b, 0x45, 0xc8, //0x00000773 subq $-56(%rbp), %rax
0x41, 0x8a, 0x49, 0x03, //0x00000747 movb $3(%r9), %cl 0x48, 0x83, 0xc0, 0x02, //0x00000777 addq $2, %rax
0x8d, 0x51, 0xc6, //0x0000074b leal $-58(%rcx), %edx 0x48, 0x8b, 0x75, 0xd0, //0x0000077b movq $-48(%rbp), %rsi
0x80, 0xfa, 0xf5, //0x0000074e cmpb $-11, %dl 0x48, 0x89, 0x06, //0x0000077f movq %rax, (%rsi)
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000751 ja LBB0_88 0x41, 0x8a, 0x49, 0x02, //0x00000782 movb $2(%r9), %cl
0x80, 0xe1, 0xdf, //0x00000757 andb $-33, %cl 0x8d, 0x51, 0xd0, //0x00000786 leal $-48(%rcx), %edx
0x80, 0xc1, 0xb9, //0x0000075a addb $-71, %cl 0x80, 0xfa, 0x0a, //0x00000789 cmpb $10, %dl
0x80, 0xf9, 0xfa, //0x0000075d cmpb $-6, %cl 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x0000078c jb LBB0_91
0x0f, 0x82, 0xbb, 0xfe, 0xff, 0xff, //0x00000760 jb LBB0_101 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000792 movq $-2, %r8
//0x00000766 LBB0_88 0x80, 0xc1, 0xbf, //0x00000799 addb $-65, %cl
0x48, 0x8d, 0x48, 0x02, //0x00000766 leaq $2(%rax), %rcx 0x80, 0xf9, 0x25, //0x0000079c cmpb $37, %cl
0x48, 0x8b, 0x55, 0xd0, //0x0000076a movq $-48(%rbp), %rdx 0x0f, 0x87, 0x7c, 0xfe, 0xff, 0xff, //0x0000079f ja LBB0_108
0x48, 0x89, 0x0a, //0x0000076e movq %rcx, (%rdx) 0x0f, 0xb6, 0xc9, //0x000007a5 movzbl %cl, %ecx
0x41, 0x8a, 0x49, 0x04, //0x00000771 movb $4(%r9), %cl 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000007a8 movabsq $270582939711, %rdx
0x8d, 0x51, 0xc6, //0x00000775 leal $-58(%rcx), %edx 0x48, 0x0f, 0xa3, 0xca, //0x000007b2 btq %rcx, %rdx
0x80, 0xfa, 0xf5, //0x00000778 cmpb $-11, %dl 0x48, 0x8b, 0x75, 0xd0, //0x000007b6 movq $-48(%rbp), %rsi
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000077b ja LBB0_90 0x0f, 0x83, 0x61, 0xfe, 0xff, 0xff, //0x000007ba jae LBB0_108
0x80, 0xe1, 0xdf, //0x00000781 andb $-33, %cl //0x000007c0 LBB0_91
0x80, 0xc1, 0xb9, //0x00000784 addb $-71, %cl 0x48, 0x8d, 0x48, 0x01, //0x000007c0 leaq $1(%rax), %rcx
0x80, 0xf9, 0xfa, //0x00000787 cmpb $-6, %cl 0x48, 0x89, 0x0e, //0x000007c4 movq %rcx, (%rsi)
0x0f, 0x82, 0x91, 0xfe, 0xff, 0xff, //0x0000078a jb LBB0_101 0x41, 0x8a, 0x49, 0x03, //0x000007c7 movb $3(%r9), %cl
//0x00000790 LBB0_90 0x8d, 0x51, 0xd0, //0x000007cb leal $-48(%rcx), %edx
0x48, 0x8d, 0x48, 0x03, //0x00000790 leaq $3(%rax), %rcx 0x80, 0xfa, 0x09, //0x000007ce cmpb $9, %dl
0x48, 0x8b, 0x55, 0xd0, //0x00000794 movq $-48(%rbp), %rdx 0x0f, 0x86, 0x2e, 0x00, 0x00, 0x00, //0x000007d1 jbe LBB0_94
0x48, 0x89, 0x0a, //0x00000798 movq %rcx, (%rdx) 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000007d7 movq $-2, %r8
0x41, 0x8a, 0x49, 0x05, //0x0000079b movb $5(%r9), %cl 0x80, 0xc1, 0xbf, //0x000007de addb $-65, %cl
0x8d, 0x51, 0xc6, //0x0000079f leal $-58(%rcx), %edx 0x80, 0xf9, 0x25, //0x000007e1 cmpb $37, %cl
0x80, 0xfa, 0xf5, //0x000007a2 cmpb $-11, %dl 0x0f, 0x87, 0x37, 0xfe, 0xff, 0xff, //0x000007e4 ja LBB0_108
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000007a5 ja LBB0_92 0x0f, 0xb6, 0xc9, //0x000007ea movzbl %cl, %ecx
0x80, 0xe1, 0xdf, //0x000007ab andb $-33, %cl 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000007ed movabsq $270582939711, %rdx
0x80, 0xc1, 0xb9, //0x000007ae addb $-71, %cl 0x48, 0x0f, 0xa3, 0xca, //0x000007f7 btq %rcx, %rdx
0x80, 0xf9, 0xfa, //0x000007b1 cmpb $-6, %cl 0x48, 0x8b, 0x75, 0xd0, //0x000007fb movq $-48(%rbp), %rsi
0x0f, 0x82, 0x67, 0xfe, 0xff, 0xff, //0x000007b4 jb LBB0_101 0x0f, 0x83, 0x1c, 0xfe, 0xff, 0xff, //0x000007ff jae LBB0_108
//0x000007ba LBB0_92 //0x00000805 LBB0_94
0x48, 0x83, 0xc0, 0x04, //0x000007ba addq $4, %rax 0x48, 0x8d, 0x48, 0x02, //0x00000805 leaq $2(%rax), %rcx
0x48, 0x8b, 0x4d, 0xd0, //0x000007be movq $-48(%rbp), %rcx 0x48, 0x89, 0x0e, //0x00000809 movq %rcx, (%rsi)
0x48, 0x89, 0x01, //0x000007c2 movq %rax, (%rcx) 0x41, 0x8a, 0x49, 0x04, //0x0000080c movb $4(%r9), %cl
0xe9, 0x57, 0xfe, 0xff, 0xff, //0x000007c5 jmp LBB0_101 0x8d, 0x51, 0xd0, //0x00000810 leal $-48(%rcx), %edx
//0x000007ca LBB0_28 0x80, 0xfa, 0x0a, //0x00000813 cmpb $10, %dl
0x48, 0x8b, 0x45, 0xc8, //0x000007ca movq $-56(%rbp), %rax 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00000816 jb LBB0_97
0x48, 0xf7, 0xd0, //0x000007ce notq %rax 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000081c movq $-2, %r8
0x49, 0x01, 0xc1, //0x000007d1 addq %rax, %r9 0x80, 0xc1, 0xbf, //0x00000823 addb $-65, %cl
//0x000007d4 LBB0_34 0x80, 0xf9, 0x25, //0x00000826 cmpb $37, %cl
0x48, 0x8b, 0x45, 0xd0, //0x000007d4 movq $-48(%rbp), %rax 0x0f, 0x87, 0xf2, 0xfd, 0xff, 0xff, //0x00000829 ja LBB0_108
0x4c, 0x89, 0x08, //0x000007d8 movq %r9, (%rax) 0x0f, 0xb6, 0xc9, //0x0000082f movzbl %cl, %ecx
0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000007db movq $-2, %r8 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00000832 movabsq $270582939711, %rdx
0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x000007e2 jmp LBB0_101 0x48, 0x0f, 0xa3, 0xca, //0x0000083c btq %rcx, %rdx
//0x000007e7 LBB0_33 0x48, 0x8b, 0x75, 0xd0, //0x00000840 movq $-48(%rbp), %rsi
0x4c, 0x2b, 0x4d, 0xc8, //0x000007e7 subq $-56(%rbp), %r9 0x0f, 0x83, 0xd7, 0xfd, 0xff, 0xff, //0x00000844 jae LBB0_108
0x49, 0x83, 0xc1, 0x01, //0x000007eb addq $1, %r9 //0x0000084a LBB0_97
0xe9, 0xe0, 0xff, 0xff, 0xff, //0x000007ef jmp LBB0_34 0x48, 0x8d, 0x48, 0x03, //0x0000084a leaq $3(%rax), %rcx
//0x000007f4 LBB0_78 0x48, 0x89, 0x0e, //0x0000084e movq %rcx, (%rsi)
0x4c, 0x2b, 0x4d, 0xc8, //0x000007f4 subq $-56(%rbp), %r9 0x41, 0x8a, 0x49, 0x05, //0x00000851 movb $5(%r9), %cl
//0x000007f8 LBB0_79 0x8d, 0x51, 0xd0, //0x00000855 leal $-48(%rcx), %edx
0x49, 0x83, 0xc1, 0xfc, //0x000007f8 addq $-4, %r9 0x80, 0xfa, 0x0a, //0x00000858 cmpb $10, %dl
0x48, 0x8b, 0x45, 0xd0, //0x000007fc movq $-48(%rbp), %rax 0x0f, 0x82, 0xdf, 0xfe, 0xff, 0xff, //0x0000085b jb LBB0_58
0x4c, 0x89, 0x08, //0x00000800 movq %r9, (%rax) 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000861 movq $-2, %r8
0x49, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00000803 movq $-4, %r8 0x80, 0xc1, 0xbf, //0x00000868 addb $-65, %cl
0xe9, 0x12, 0xfe, 0xff, 0xff, //0x0000080a jmp LBB0_101 0x80, 0xf9, 0x25, //0x0000086b cmpb $37, %cl
//0x0000080f LBB0_75 0x0f, 0x87, 0xad, 0xfd, 0xff, 0xff, //0x0000086e ja LBB0_108
0x48, 0x03, 0x75, 0xc8, //0x0000080f addq $-56(%rbp), %rsi 0x0f, 0xb6, 0xc9, //0x00000874 movzbl %cl, %ecx
0x49, 0x29, 0xf1, //0x00000813 subq %rsi, %r9 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00000877 movabsq $270582939711, %rdx
0xe9, 0xdd, 0xff, 0xff, 0xff, //0x00000816 jmp LBB0_79 0x48, 0x0f, 0xa3, 0xca, //0x00000881 btq %rcx, %rdx
//0x0000081b LBB0_66 0x48, 0x8b, 0x75, 0xd0, //0x00000885 movq $-48(%rbp), %rsi
0xf6, 0x45, 0xb8, 0x02, //0x0000081b testb $2, $-72(%rbp) 0x0f, 0x82, 0xb1, 0xfe, 0xff, 0xff, //0x00000889 jb LBB0_58
0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000081f je LBB0_24 0xe9, 0x8d, 0xfd, 0xff, 0xff, //0x0000088f jmp LBB0_108
0x66, 0x41, 0xc7, 0x40, 0xfe, 0xef, 0xbf, //0x00000825 movw $-16401, $-2(%r8) //0x00000894 LBB0_28
0x41, 0xc6, 0x00, 0xbd, //0x0000082c movb $-67, (%r8) 0x48, 0x8b, 0x45, 0xc8, //0x00000894 movq $-56(%rbp), %rax
0x49, 0x83, 0xc0, 0x01, //0x00000830 addq $1, %r8 0x48, 0xf7, 0xd0, //0x00000898 notq %rax
0x45, 0x31, 0xd2, //0x00000834 xorl %r10d, %r10d 0x49, 0x01, 0xc1, //0x0000089b addq %rax, %r9
0x4c, 0x89, 0xda, //0x00000837 movq %r11, %rdx //0x0000089e LBB0_34
0xe9, 0xdc, 0xfd, 0xff, 0xff, //0x0000083a jmp LBB0_100 0x48, 0x8b, 0x45, 0xd0, //0x0000089e movq $-48(%rbp), %rax
//0x0000083f LBB0_24 0x4c, 0x89, 0x08, //0x000008a2 movq %r9, (%rax)
0x48, 0x8b, 0x45, 0xd0, //0x0000083f movq $-48(%rbp), %rax 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000008a5 movq $-2, %r8
0x48, 0x8b, 0x4d, 0xc0, //0x00000843 movq $-64(%rbp), %rcx 0xe9, 0x70, 0xfd, 0xff, 0xff, //0x000008ac jmp LBB0_108
0x48, 0x89, 0x08, //0x00000847 movq %rcx, (%rax) //0x000008b1 LBB0_33
0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000084a movq $-1, %r8 0x4c, 0x2b, 0x4d, 0xc8, //0x000008b1 subq $-56(%rbp), %r9
0xe9, 0xcb, 0xfd, 0xff, 0xff, //0x00000851 jmp LBB0_101 0x49, 0x83, 0xc1, 0x01, //0x000008b5 addq $1, %r9
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000856 .p2align 4, 0x00 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x000008b9 jmp LBB0_34
//0x00000860 __UnquoteTab //0x000008be LBB0_82
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x4c, 0x2b, 0x4d, 0xc8, //0x000008be subq $-56(%rbp), %r9
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' //0x000008c2 LBB0_83
0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00000880 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' 0x49, 0x83, 0xc1, 0xfc, //0x000008c2 addq $-4, %r9
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x48, 0x8b, 0x45, 0xd0, //0x000008c6 movq $-48(%rbp), %rax
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x4c, 0x89, 0x08, //0x000008ca movq %r9, (%rax)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x000008b0 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' 0x49, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x000008cd movq $-4, %r8
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x000008c0 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' 0xe9, 0x48, 0xfd, 0xff, 0xff, //0x000008d4 jmp LBB0_108
0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x000008d0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' //0x000008d9 LBB0_79
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x48, 0x03, 0x75, 0xc8, //0x000008d9 addq $-56(%rbp), %rsi
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x49, 0x29, 0xf1, //0x000008dd subq %rsi, %r9
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0xe9, 0xdd, 0xff, 0xff, 0xff, //0x000008e0 jmp LBB0_83
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000906 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' //0x000008e5 LBB0_70
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000916 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0xf6, 0x45, 0xb8, 0x02, //0x000008e5 testb $2, $-72(%rbp)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000926 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000008e9 je LBB0_24
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000936 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x66, 0x41, 0xc7, 0x40, 0xfe, 0xef, 0xbf, //0x000008ef movw $-16401, $-2(%r8)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000946 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x41, 0xc6, 0x00, 0xbd, //0x000008f6 movb $-67, (%r8)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000956 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x49, 0x83, 0xc0, 0x01, //0x000008fa addq $1, %r8
0x45, 0x31, 0xd2, //0x000008fe xorl %r10d, %r10d
0x4c, 0x89, 0xda, //0x00000901 movq %r11, %rdx
0xe9, 0x12, 0xfd, 0xff, 0xff, //0x00000904 jmp LBB0_107
//0x00000909 LBB0_24
0x48, 0x8b, 0x45, 0xd0, //0x00000909 movq $-48(%rbp), %rax
0x48, 0x8b, 0x4d, 0xc0, //0x0000090d movq $-64(%rbp), %rcx
0x48, 0x89, 0x08, //0x00000911 movq %rcx, (%rax)
0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000914 movq $-1, %r8
0xe9, 0x01, 0xfd, 0xff, 0xff, //0x0000091b jmp LBB0_108
//0x00000920 .p2align 4, 0x00
//0x00000920 __UnquoteTab
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00000940 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00000970 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00'
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00000980 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00'
0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00000990 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000996 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a06 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a16 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
} }

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__validate_one = 15888 _size__validate_one = 15136
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x14, 48}, {0x14, 48},
{0x3b41, 208}, {0x38dd, 208},
{0x3b42, 48}, {0x38de, 48},
{0x3b44, 40}, {0x38e0, 40},
{0x3b46, 32}, {0x38e2, 32},
{0x3b48, 24}, {0x38e4, 24},
{0x3b4a, 16}, {0x38e6, 16},
{0x3b4b, 8}, {0x38e7, 8},
{0x3b4f, 0}, {0x38eb, 0},
{0x3e10, 208}, {0x3b20, 208},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -630,8 +630,9 @@ var _text_validate_utf8_fast = []byte{
0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00000916 je LBB0_34 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00000916 je LBB0_34
0x4c, 0x89, 0xc2, //0x0000091c movq %r8, %rdx 0x4c, 0x89, 0xc2, //0x0000091c movq %r8, %rdx
0x48, 0x83, 0xe2, 0xfe, //0x0000091f andq $-2, %rdx 0x48, 0x83, 0xe2, 0xfe, //0x0000091f andq $-2, %rdx
0x31, 0xc9, //0x00000923 xorl %ecx, %ecx 0x48, 0xf7, 0xda, //0x00000923 negq %rdx
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000925 .p2align 4, 0x90 0x31, 0xc9, //0x00000926 xorl %ecx, %ecx
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000928 .p2align 4, 0x90
//0x00000930 LBB0_33 //0x00000930 LBB0_33
0xc5, 0xfc, 0x10, 0x1c, 0x08, //0x00000930 vmovups (%rax,%rcx), %ymm3 0xc5, 0xfc, 0x10, 0x1c, 0x08, //0x00000930 vmovups (%rax,%rcx), %ymm3
0xc5, 0xfc, 0x10, 0x64, 0x08, 0x20, //0x00000935 vmovups $32(%rax,%rcx), %ymm4 0xc5, 0xfc, 0x10, 0x64, 0x08, 0x20, //0x00000935 vmovups $32(%rax,%rcx), %ymm4
@ -650,7 +651,7 @@ var _text_validate_utf8_fast = []byte{
0xc5, 0xfe, 0x7f, 0xac, 0x0c, 0xe0, 0x00, 0x00, 0x00, //0x00000998 vmovdqu %ymm5, $224(%rsp,%rcx) 0xc5, 0xfe, 0x7f, 0xac, 0x0c, 0xe0, 0x00, 0x00, 0x00, //0x00000998 vmovdqu %ymm5, $224(%rsp,%rcx)
0xc5, 0xfe, 0x7f, 0xb4, 0x0c, 0x00, 0x01, 0x00, 0x00, //0x000009a1 vmovdqu %ymm6, $256(%rsp,%rcx) 0xc5, 0xfe, 0x7f, 0xb4, 0x0c, 0x00, 0x01, 0x00, 0x00, //0x000009a1 vmovdqu %ymm6, $256(%rsp,%rcx)
0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x000009aa addq $256, %rcx 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x000009aa addq $256, %rcx
0x48, 0x83, 0xc2, 0xfe, //0x000009b1 addq $-2, %rdx 0x48, 0x83, 0xc2, 0x02, //0x000009b1 addq $2, %rdx
0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000009b5 jne LBB0_33 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000009b5 jne LBB0_33
0xe9, 0x02, 0x00, 0x00, 0x00, //0x000009bb jmp LBB0_35 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000009bb jmp LBB0_35
//0x000009c0 LBB0_34 //0x000009c0 LBB0_34

View file

@ -12,11 +12,11 @@ const (
) )
const ( const (
_stack__value = 120 _stack__value = 128
) )
const ( const (
_size__value = 12840 _size__value = 12468
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x11, 48}, {0x11, 48},
{0x11ca, 120}, {0x10cf, 128},
{0x11cb, 48}, {0x10d0, 48},
{0x11cd, 40}, {0x10d2, 40},
{0x11cf, 32}, {0x10d4, 32},
{0x11d1, 24}, {0x10d6, 24},
{0x11d3, 16}, {0x10d8, 16},
{0x11d4, 8}, {0x10d9, 8},
{0x11d8, 0}, {0x10dd, 0},
{0x3228, 120}, {0x30b4, 128},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__vnumber = 8700 _size__vnumber = 8496
) )
var ( var (
@ -28,15 +28,14 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x11, 48}, {0x11, 48},
{0xc71, 136}, {0x211f, 136},
{0xc72, 48}, {0x2120, 48},
{0xc74, 40}, {0x2122, 40},
{0xc76, 32}, {0x2124, 32},
{0xc78, 24}, {0x2126, 24},
{0xc7a, 16}, {0x2128, 16},
{0xc7b, 8}, {0x2129, 8},
{0xc7f, 0}, {0x2130, 0},
{0x21fc, 136},
} }
) )

File diff suppressed because it is too large Load diff

View file

@ -29,9 +29,9 @@ var _text_vsigned = []byte{
0x41, 0x8a, 0x0c, 0x01, //0x0000004f movb (%r9,%rax), %cl 0x41, 0x8a, 0x0c, 0x01, //0x0000004f movb (%r9,%rax), %cl
0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000053 movq $-1, %r8 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000053 movq $-1, %r8
//0x0000005a LBB0_5 //0x0000005a LBB0_5
0x8d, 0x79, 0xc6, //0x0000005a leal $-58(%rcx), %edi 0x8d, 0x79, 0xd0, //0x0000005a leal $-48(%rcx), %edi
0x40, 0x80, 0xff, 0xf5, //0x0000005d cmpb $-11, %dil 0x40, 0x80, 0xff, 0x0a, //0x0000005d cmpb $10, %dil
0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x00000061 ja LBB0_7 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00000061 jb LBB0_7
0x48, 0x89, 0x06, //0x00000067 movq %rax, (%rsi) 0x48, 0x89, 0x06, //0x00000067 movq %rax, (%rsi)
0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x0000006a movq $-2, (%rdx) 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x0000006a movq $-2, (%rdx)
0x5b, //0x00000071 popq %rbx 0x5b, //0x00000071 popq %rbx
@ -64,8 +64,8 @@ var _text_vsigned = []byte{
0x31, 0xc9, //0x000000c9 xorl %ecx, %ecx 0x31, 0xc9, //0x000000c9 xorl %ecx, %ecx
0x90, 0x90, 0x90, 0x90, 0x90, //0x000000cb .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000cb .p2align 4, 0x90
//0x000000d0 LBB0_13 //0x000000d0 LBB0_13
0x4c, 0x39, 0xd8, //0x000000d0 cmpq %r11, %rax 0x49, 0x39, 0xc2, //0x000000d0 cmpq %rax, %r10
0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x000000d3 jae LBB0_23 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x000000d3 je LBB0_23
0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x000000d9 movsbq (%r9,%rax), %rdi 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x000000d9 movsbq (%r9,%rax), %rdi
0x8d, 0x5f, 0xd0, //0x000000de leal $-48(%rdi), %ebx 0x8d, 0x5f, 0xd0, //0x000000de leal $-48(%rdi), %ebx
0x80, 0xfb, 0x09, //0x000000e1 cmpb $9, %bl 0x80, 0xfb, 0x09, //0x000000e1 cmpb $9, %bl

View file

@ -16,7 +16,7 @@ const (
) )
const ( const (
_size__vstring = 1808 _size__vstring = 1832
) )
var ( var (
@ -28,15 +28,15 @@ var (
{0xc, 32}, {0xc, 32},
{0xd, 40}, {0xd, 40},
{0x11, 48}, {0x11, 48},
{0x65f, 72}, {0x679, 72},
{0x660, 48}, {0x67a, 48},
{0x662, 40}, {0x67c, 40},
{0x664, 32}, {0x67e, 32},
{0x666, 24}, {0x680, 24},
{0x668, 16}, {0x682, 16},
{0x669, 8}, {0x683, 8},
{0x66d, 0}, {0x687, 0},
{0x710, 72}, {0x728, 72},
} }
) )

View file

@ -12,8 +12,8 @@ var _text_vstring = []byte{
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000030 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000030 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
//0x00000040 LCPI0_2 //0x00000040 LCPI0_2
0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, //0x00000040 QUAD $0x1f1f1f1f1f1f1f1f; QUAD $0x1f1f1f1f1f1f1f1f // .space 16, '\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f' 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' '
0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, //0x00000050 QUAD $0x1f1f1f1f1f1f1f1f; QUAD $0x1f1f1f1f1f1f1f1f // .space 16, '\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f' 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' '
//0x00000060 .p2align 4, 0x90 //0x00000060 .p2align 4, 0x90
//0x00000060 _vstring //0x00000060 _vstring
0x55, //0x00000060 pushq %rbp 0x55, //0x00000060 pushq %rbp
@ -30,10 +30,10 @@ var _text_vstring = []byte{
0x4c, 0x8b, 0x6f, 0x08, //0x0000007d movq $8(%rdi), %r13 0x4c, 0x8b, 0x6f, 0x08, //0x0000007d movq $8(%rdi), %r13
0x4c, 0x89, 0x6d, 0xc8, //0x00000081 movq %r13, $-56(%rbp) 0x4c, 0x89, 0x6d, 0xc8, //0x00000081 movq %r13, $-56(%rbp)
0x4d, 0x29, 0xd5, //0x00000085 subq %r10, %r13 0x4d, 0x29, 0xd5, //0x00000085 subq %r10, %r13
0x0f, 0x84, 0x8a, 0x03, 0x00, 0x00, //0x00000088 je LBB0_41 0x0f, 0x84, 0x9e, 0x03, 0x00, 0x00, //0x00000088 je LBB0_41
0x4c, 0x8b, 0x1f, //0x0000008e movq (%rdi), %r11 0x4c, 0x8b, 0x1f, //0x0000008e movq (%rdi), %r11
0x49, 0x83, 0xfd, 0x40, //0x00000091 cmpq $64, %r13 0x49, 0x83, 0xfd, 0x40, //0x00000091 cmpq $64, %r13
0x0f, 0x82, 0x89, 0x03, 0x00, 0x00, //0x00000095 jb LBB0_42 0x0f, 0x82, 0x9d, 0x03, 0x00, 0x00, //0x00000095 jb LBB0_42
0x4c, 0x89, 0xd3, //0x0000009b movq %r10, %rbx 0x4c, 0x89, 0xd3, //0x0000009b movq %r10, %rbx
0x48, 0xf7, 0xd3, //0x0000009e notq %rbx 0x48, 0xf7, 0xd3, //0x0000009e notq %rbx
0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000000a1 movq $-1, $-48(%rbp) 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000000a1 movq $-1, $-48(%rbp)
@ -70,7 +70,7 @@ var _text_vstring = []byte{
0x49, 0x83, 0xc0, 0x40, //0x0000012e addq $64, %r8 0x49, 0x83, 0xc0, 0x40, //0x0000012e addq $64, %r8
0x49, 0x83, 0xfd, 0x3f, //0x00000132 cmpq $63, %r13 0x49, 0x83, 0xfd, 0x3f, //0x00000132 cmpq $63, %r13
0x0f, 0x87, 0x94, 0xff, 0xff, 0xff, //0x00000136 ja LBB0_4 0x0f, 0x87, 0x94, 0xff, 0xff, 0xff, //0x00000136 ja LBB0_4
0xe9, 0x20, 0x02, 0x00, 0x00, //0x0000013c jmp LBB0_30 0xe9, 0x28, 0x02, 0x00, 0x00, //0x0000013c jmp LBB0_30
//0x00000141 LBB0_8 //0x00000141 LBB0_8
0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00000141 cmpq $-1, $-48(%rbp) 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00000141 cmpq $-1, $-48(%rbp)
0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x00000146 jne LBB0_10 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x00000146 jne LBB0_10
@ -100,15 +100,15 @@ var _text_vstring = []byte{
0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x00000199 je LBB0_7 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x00000199 je LBB0_7
//0x0000019f LBB0_11 //0x0000019f LBB0_11
0x4d, 0x0f, 0xbc, 0xf1, //0x0000019f bsfq %r9, %r14 0x4d, 0x0f, 0xbc, 0xf1, //0x0000019f bsfq %r9, %r14
0xe9, 0x84, 0x01, 0x00, 0x00, //0x000001a3 jmp LBB0_27 0xe9, 0x8c, 0x01, 0x00, 0x00, //0x000001a3 jmp LBB0_27
//0x000001a8 LBB0_12 //0x000001a8 LBB0_12
0x4c, 0x8b, 0x6f, 0x08, //0x000001a8 movq $8(%rdi), %r13 0x4c, 0x8b, 0x6f, 0x08, //0x000001a8 movq $8(%rdi), %r13
0x4c, 0x89, 0x6d, 0xc8, //0x000001ac movq %r13, $-56(%rbp) 0x4c, 0x89, 0x6d, 0xc8, //0x000001ac movq %r13, $-56(%rbp)
0x4d, 0x29, 0xd5, //0x000001b0 subq %r10, %r13 0x4d, 0x29, 0xd5, //0x000001b0 subq %r10, %r13
0x0f, 0x84, 0x5f, 0x02, 0x00, 0x00, //0x000001b3 je LBB0_41 0x0f, 0x84, 0x73, 0x02, 0x00, 0x00, //0x000001b3 je LBB0_41
0x4c, 0x8b, 0x1f, //0x000001b9 movq (%rdi), %r11 0x4c, 0x8b, 0x1f, //0x000001b9 movq (%rdi), %r11
0x49, 0x83, 0xfd, 0x40, //0x000001bc cmpq $64, %r13 0x49, 0x83, 0xfd, 0x40, //0x000001bc cmpq $64, %r13
0x0f, 0x82, 0x7c, 0x02, 0x00, 0x00, //0x000001c0 jb LBB0_43 0x0f, 0x82, 0x90, 0x02, 0x00, 0x00, //0x000001c0 jb LBB0_43
0x4c, 0x89, 0xd3, //0x000001c6 movq %r10, %rbx 0x4c, 0x89, 0xd3, //0x000001c6 movq %r10, %rbx
0x48, 0xf7, 0xd3, //0x000001c9 notq %rbx 0x48, 0xf7, 0xd3, //0x000001c9 notq %rbx
0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000001cc movq $-1, $-48(%rbp) 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000001cc movq $-1, $-48(%rbp)
@ -116,390 +116,398 @@ var _text_vstring = []byte{
0xc5, 0xfe, 0x6f, 0x05, 0x21, 0xfe, 0xff, 0xff, //0x000001d7 vmovdqu $-479(%rip), %ymm0 /* LCPI0_0+0(%rip) */ 0xc5, 0xfe, 0x6f, 0x05, 0x21, 0xfe, 0xff, 0xff, //0x000001d7 vmovdqu $-479(%rip), %ymm0 /* LCPI0_0+0(%rip) */
0xc5, 0xfe, 0x6f, 0x0d, 0x39, 0xfe, 0xff, 0xff, //0x000001df vmovdqu $-455(%rip), %ymm1 /* LCPI0_1+0(%rip) */ 0xc5, 0xfe, 0x6f, 0x0d, 0x39, 0xfe, 0xff, 0xff, //0x000001df vmovdqu $-455(%rip), %ymm1 /* LCPI0_1+0(%rip) */
0xc5, 0xfe, 0x6f, 0x15, 0x51, 0xfe, 0xff, 0xff, //0x000001e7 vmovdqu $-431(%rip), %ymm2 /* LCPI0_2+0(%rip) */ 0xc5, 0xfe, 0x6f, 0x15, 0x51, 0xfe, 0xff, 0xff, //0x000001e7 vmovdqu $-431(%rip), %ymm2 /* LCPI0_2+0(%rip) */
0x4d, 0x89, 0xd1, //0x000001ef movq %r10, %r9 0xc5, 0xe5, 0x76, 0xdb, //0x000001ef vpcmpeqd %ymm3, %ymm3, %ymm3
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001f2 .p2align 4, 0x90 0x4d, 0x89, 0xd1, //0x000001f3 movq %r10, %r9
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001f6 .p2align 4, 0x90
//0x00000200 LBB0_15 //0x00000200 LBB0_15
0xc4, 0x81, 0x7e, 0x6f, 0x1c, 0x0b, //0x00000200 vmovdqu (%r11,%r9), %ymm3 0xc4, 0x81, 0x7e, 0x6f, 0x24, 0x0b, //0x00000200 vmovdqu (%r11,%r9), %ymm4
0xc4, 0x81, 0x7e, 0x6f, 0x64, 0x0b, 0x20, //0x00000206 vmovdqu $32(%r11,%r9), %ymm4 0xc4, 0x81, 0x7e, 0x6f, 0x6c, 0x0b, 0x20, //0x00000206 vmovdqu $32(%r11,%r9), %ymm5
0xc5, 0xe5, 0x74, 0xe8, //0x0000020d vpcmpeqb %ymm0, %ymm3, %ymm5 0xc5, 0xdd, 0x74, 0xf0, //0x0000020d vpcmpeqb %ymm0, %ymm4, %ymm6
0xc5, 0xfd, 0xd7, 0xcd, //0x00000211 vpmovmskb %ymm5, %ecx 0xc5, 0xfd, 0xd7, 0xce, //0x00000211 vpmovmskb %ymm6, %ecx
0xc5, 0xdd, 0x74, 0xe8, //0x00000215 vpcmpeqb %ymm0, %ymm4, %ymm5 0xc5, 0xd5, 0x74, 0xf0, //0x00000215 vpcmpeqb %ymm0, %ymm5, %ymm6
0xc5, 0x7d, 0xd7, 0xfd, //0x00000219 vpmovmskb %ymm5, %r15d 0xc5, 0x7d, 0xd7, 0xfe, //0x00000219 vpmovmskb %ymm6, %r15d
0xc5, 0xe5, 0x74, 0xe9, //0x0000021d vpcmpeqb %ymm1, %ymm3, %ymm5 0xc5, 0xdd, 0x74, 0xf1, //0x0000021d vpcmpeqb %ymm1, %ymm4, %ymm6
0xc5, 0x7d, 0xd7, 0xf5, //0x00000221 vpmovmskb %ymm5, %r14d 0xc5, 0x7d, 0xd7, 0xf6, //0x00000221 vpmovmskb %ymm6, %r14d
0xc5, 0xdd, 0x74, 0xe9, //0x00000225 vpcmpeqb %ymm1, %ymm4, %ymm5 0xc5, 0xd5, 0x74, 0xf1, //0x00000225 vpcmpeqb %ymm1, %ymm5, %ymm6
0xc5, 0x7d, 0xd7, 0xc5, //0x00000229 vpmovmskb %ymm5, %r8d 0xc5, 0x7d, 0xd7, 0xc6, //0x00000229 vpmovmskb %ymm6, %r8d
0xc5, 0xdd, 0xda, 0xea, //0x0000022d vpminub %ymm2, %ymm4, %ymm5 0xc5, 0xed, 0x64, 0xf5, //0x0000022d vpcmpgtb %ymm5, %ymm2, %ymm6
0xc5, 0xdd, 0x74, 0xe5, //0x00000231 vpcmpeqb %ymm5, %ymm4, %ymm4 0xc5, 0xd5, 0x64, 0xeb, //0x00000231 vpcmpgtb %ymm3, %ymm5, %ymm5
0xc5, 0xfd, 0xd7, 0xc4, //0x00000235 vpmovmskb %ymm4, %eax 0xc5, 0xcd, 0xdb, 0xed, //0x00000235 vpand %ymm5, %ymm6, %ymm5
0x49, 0xc1, 0xe7, 0x20, //0x00000239 shlq $32, %r15 0xc5, 0xfd, 0xd7, 0xc5, //0x00000239 vpmovmskb %ymm5, %eax
0x4c, 0x09, 0xf9, //0x0000023d orq %r15, %rcx 0x49, 0xc1, 0xe7, 0x20, //0x0000023d shlq $32, %r15
0x49, 0xc1, 0xe0, 0x20, //0x00000240 shlq $32, %r8 0x4c, 0x09, 0xf9, //0x00000241 orq %r15, %rcx
0x48, 0xc1, 0xe0, 0x20, //0x00000244 shlq $32, %rax 0x49, 0xc1, 0xe0, 0x20, //0x00000244 shlq $32, %r8
0x4d, 0x09, 0xc6, //0x00000248 orq %r8, %r14 0x48, 0xc1, 0xe0, 0x20, //0x00000248 shlq $32, %rax
0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x0000024b jne LBB0_21 0x4d, 0x09, 0xc6, //0x0000024c orq %r8, %r14
0x4d, 0x85, 0xe4, //0x00000251 testq %r12, %r12 0x0f, 0x85, 0x4c, 0x00, 0x00, 0x00, //0x0000024f jne LBB0_21
0x0f, 0x85, 0x55, 0x00, 0x00, 0x00, //0x00000254 jne LBB0_23 0x4d, 0x85, 0xe4, //0x00000255 testq %r12, %r12
0x45, 0x31, 0xe4, //0x0000025a xorl %r12d, %r12d 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00000258 jne LBB0_23
//0x0000025d LBB0_18 0x45, 0x31, 0xe4, //0x0000025e xorl %r12d, %r12d
0xc5, 0xe5, 0xda, 0xe2, //0x0000025d vpminub %ymm2, %ymm3, %ymm4 //0x00000261 LBB0_18
0xc5, 0xe5, 0x74, 0xdc, //0x00000261 vpcmpeqb %ymm4, %ymm3, %ymm3 0xc5, 0xed, 0x64, 0xec, //0x00000261 vpcmpgtb %ymm4, %ymm2, %ymm5
0xc5, 0xfd, 0xd7, 0xfb, //0x00000265 vpmovmskb %ymm3, %edi 0xc5, 0xdd, 0x64, 0xe3, //0x00000265 vpcmpgtb %ymm3, %ymm4, %ymm4
0x48, 0x09, 0xf8, //0x00000269 orq %rdi, %rax 0xc5, 0xd5, 0xdb, 0xe4, //0x00000269 vpand %ymm4, %ymm5, %ymm4
0x48, 0x85, 0xc9, //0x0000026c testq %rcx, %rcx 0xc5, 0xfd, 0xd7, 0xfc, //0x0000026d vpmovmskb %ymm4, %edi
0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x0000026f jne LBB0_24 0x48, 0x09, 0xf8, //0x00000271 orq %rdi, %rax
0x48, 0x85, 0xc0, //0x00000275 testq %rax, %rax 0x48, 0x85, 0xc9, //0x00000274 testq %rcx, %rcx
0x0f, 0x85, 0x2c, 0x04, 0x00, 0x00, //0x00000278 jne LBB0_80 0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x00000277 jne LBB0_24
0x49, 0x83, 0xc5, 0xc0, //0x0000027e addq $-64, %r13 0x48, 0x85, 0xc0, //0x0000027d testq %rax, %rax
0x48, 0x83, 0xc3, 0xc0, //0x00000282 addq $-64, %rbx 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x00000280 jne LBB0_80
0x49, 0x83, 0xc1, 0x40, //0x00000286 addq $64, %r9 0x49, 0x83, 0xc5, 0xc0, //0x00000286 addq $-64, %r13
0x49, 0x83, 0xfd, 0x3f, //0x0000028a cmpq $63, %r13 0x48, 0x83, 0xc3, 0xc0, //0x0000028a addq $-64, %rbx
0x0f, 0x87, 0x6c, 0xff, 0xff, 0xff, //0x0000028e ja LBB0_15 0x49, 0x83, 0xc1, 0x40, //0x0000028e addq $64, %r9
0xe9, 0x23, 0x01, 0x00, 0x00, //0x00000294 jmp LBB0_35 0x49, 0x83, 0xfd, 0x3f, //0x00000292 cmpq $63, %r13
//0x00000299 LBB0_21 0x0f, 0x87, 0x64, 0xff, 0xff, 0xff, //0x00000296 ja LBB0_15
0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00000299 cmpq $-1, $-48(%rbp) 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000029c jmp LBB0_35
0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x0000029e jne LBB0_23 //0x000002a1 LBB0_21
0x49, 0x0f, 0xbc, 0xfe, //0x000002a4 bsfq %r14, %rdi 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000002a1 cmpq $-1, $-48(%rbp)
0x4c, 0x01, 0xcf, //0x000002a8 addq %r9, %rdi 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x000002a6 jne LBB0_23
0x48, 0x89, 0x7d, 0xd0, //0x000002ab movq %rdi, $-48(%rbp) 0x49, 0x0f, 0xbc, 0xfe, //0x000002ac bsfq %r14, %rdi
//0x000002af LBB0_23 0x4c, 0x01, 0xcf, //0x000002b0 addq %r9, %rdi
0x4d, 0x89, 0xe0, //0x000002af movq %r12, %r8 0x48, 0x89, 0x7d, 0xd0, //0x000002b3 movq %rdi, $-48(%rbp)
0x49, 0xf7, 0xd0, //0x000002b2 notq %r8 //0x000002b7 LBB0_23
0x4d, 0x21, 0xf0, //0x000002b5 andq %r14, %r8 0x4d, 0x89, 0xe0, //0x000002b7 movq %r12, %r8
0x4f, 0x8d, 0x3c, 0x00, //0x000002b8 leaq (%r8,%r8), %r15 0x49, 0xf7, 0xd0, //0x000002ba notq %r8
0x4d, 0x09, 0xe7, //0x000002bc orq %r12, %r15 0x4d, 0x21, 0xf0, //0x000002bd andq %r14, %r8
0x4c, 0x89, 0x7d, 0xc0, //0x000002bf movq %r15, $-64(%rbp) 0x4f, 0x8d, 0x3c, 0x00, //0x000002c0 leaq (%r8,%r8), %r15
0x49, 0xf7, 0xd7, //0x000002c3 notq %r15 0x4d, 0x09, 0xe7, //0x000002c4 orq %r12, %r15
0x4d, 0x21, 0xf7, //0x000002c6 andq %r14, %r15 0x4c, 0x89, 0x7d, 0xc0, //0x000002c7 movq %r15, $-64(%rbp)
0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000002c9 movabsq $-6148914691236517206, %rdi 0x49, 0xf7, 0xd7, //0x000002cb notq %r15
0x49, 0x21, 0xff, //0x000002d3 andq %rdi, %r15 0x4d, 0x21, 0xf7, //0x000002ce andq %r14, %r15
0x45, 0x31, 0xe4, //0x000002d6 xorl %r12d, %r12d 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000002d1 movabsq $-6148914691236517206, %rdi
0x4d, 0x01, 0xc7, //0x000002d9 addq %r8, %r15 0x49, 0x21, 0xff, //0x000002db andq %rdi, %r15
0x41, 0x0f, 0x92, 0xc4, //0x000002dc setb %r12b 0x45, 0x31, 0xe4, //0x000002de xorl %r12d, %r12d
0x4d, 0x01, 0xff, //0x000002e0 addq %r15, %r15 0x4d, 0x01, 0xc7, //0x000002e1 addq %r8, %r15
0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000002e3 movabsq $6148914691236517205, %rdi 0x41, 0x0f, 0x92, 0xc4, //0x000002e4 setb %r12b
0x49, 0x31, 0xff, //0x000002ed xorq %rdi, %r15 0x4d, 0x01, 0xff, //0x000002e8 addq %r15, %r15
0x4c, 0x23, 0x7d, 0xc0, //0x000002f0 andq $-64(%rbp), %r15 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000002eb movabsq $6148914691236517205, %rdi
0x49, 0xf7, 0xd7, //0x000002f4 notq %r15 0x49, 0x31, 0xff, //0x000002f5 xorq %rdi, %r15
0x4c, 0x21, 0xf9, //0x000002f7 andq %r15, %rcx 0x4c, 0x23, 0x7d, 0xc0, //0x000002f8 andq $-64(%rbp), %r15
0xe9, 0x5e, 0xff, 0xff, 0xff, //0x000002fa jmp LBB0_18 0x49, 0xf7, 0xd7, //0x000002fc notq %r15
//0x000002ff LBB0_24 0x4c, 0x21, 0xf9, //0x000002ff andq %r15, %rcx
0x4c, 0x0f, 0xbc, 0xf1, //0x000002ff bsfq %rcx, %r14 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00000302 jmp LBB0_18
0x48, 0x85, 0xc0, //0x00000303 testq %rax, %rax //0x00000307 LBB0_24
0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000306 je LBB0_26 0x4c, 0x0f, 0xbc, 0xf1, //0x00000307 bsfq %rcx, %r14
0x48, 0x0f, 0xbc, 0xc0, //0x0000030c bsfq %rax, %rax 0x48, 0x85, 0xc0, //0x0000030b testq %rax, %rax
0x4c, 0x39, 0xf0, //0x00000310 cmpq %r14, %rax 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000030e je LBB0_26
0x0f, 0x83, 0x13, 0x00, 0x00, 0x00, //0x00000313 jae LBB0_27 0x48, 0x0f, 0xbc, 0xc0, //0x00000314 bsfq %rax, %rax
0xe9, 0x8c, 0x03, 0x00, 0x00, //0x00000319 jmp LBB0_80 0x4c, 0x39, 0xf0, //0x00000318 cmpq %r14, %rax
//0x0000031e LBB0_26 0x0f, 0x83, 0x13, 0x00, 0x00, 0x00, //0x0000031b jae LBB0_27
0xb8, 0x40, 0x00, 0x00, 0x00, //0x0000031e movl $64, %eax 0xe9, 0x9e, 0x03, 0x00, 0x00, //0x00000321 jmp LBB0_80
0x4c, 0x39, 0xf0, //0x00000323 cmpq %r14, %rax //0x00000326 LBB0_26
0x0f, 0x82, 0x7e, 0x03, 0x00, 0x00, //0x00000326 jb LBB0_80 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00000326 movl $64, %eax
//0x0000032c LBB0_27 0x4c, 0x39, 0xf0, //0x0000032b cmpq %r14, %rax
0x49, 0x29, 0xde, //0x0000032c subq %rbx, %r14 0x0f, 0x82, 0x90, 0x03, 0x00, 0x00, //0x0000032e jb LBB0_80
//0x0000032f LBB0_28 //0x00000334 LBB0_27
0x4d, 0x85, 0xf6, //0x0000032f testq %r14, %r14 0x49, 0x29, 0xde, //0x00000334 subq %rbx, %r14
0x0f, 0x88, 0x79, 0x03, 0x00, 0x00, //0x00000332 js LBB0_81 //0x00000337 LBB0_28
0x4c, 0x89, 0x36, //0x00000338 movq %r14, (%rsi) 0x4d, 0x85, 0xf6, //0x00000337 testq %r14, %r14
0x4c, 0x89, 0x52, 0x10, //0x0000033b movq %r10, $16(%rdx) 0x0f, 0x88, 0x8b, 0x03, 0x00, 0x00, //0x0000033a js LBB0_81
0x48, 0xc7, 0x02, 0x07, 0x00, 0x00, 0x00, //0x0000033f movq $7, (%rdx) 0x4c, 0x89, 0x36, //0x00000340 movq %r14, (%rsi)
0x48, 0x8b, 0x4d, 0xd0, //0x00000346 movq $-48(%rbp), %rcx 0x4c, 0x89, 0x52, 0x10, //0x00000343 movq %r10, $16(%rdx)
0x4c, 0x39, 0xf1, //0x0000034a cmpq %r14, %rcx 0x48, 0xc7, 0x02, 0x07, 0x00, 0x00, 0x00, //0x00000347 movq $7, (%rdx)
0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000034d movq $-1, %rax 0x48, 0x8b, 0x4d, 0xd0, //0x0000034e movq $-48(%rbp), %rcx
0x48, 0x0f, 0x4c, 0xc1, //0x00000354 cmovlq %rcx, %rax 0x4c, 0x39, 0xf1, //0x00000352 cmpq %r14, %rcx
0x48, 0x89, 0x42, 0x18, //0x00000358 movq %rax, $24(%rdx) 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000355 movq $-1, %rax
0xe9, 0x5a, 0x03, 0x00, 0x00, //0x0000035c jmp LBB0_83 0x48, 0x0f, 0x4c, 0xc1, //0x0000035c cmovlq %rcx, %rax
//0x00000361 LBB0_30 0x48, 0x89, 0x42, 0x18, //0x00000360 movq %rax, $24(%rdx)
0x4d, 0x01, 0xd8, //0x00000361 addq %r11, %r8 0xe9, 0x6c, 0x03, 0x00, 0x00, //0x00000364 jmp LBB0_83
0x49, 0x83, 0xfd, 0x20, //0x00000364 cmpq $32, %r13 //0x00000369 LBB0_30
0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x00000368 jb LBB0_48 0x4d, 0x01, 0xd8, //0x00000369 addq %r11, %r8
//0x0000036e LBB0_31 0x49, 0x83, 0xfd, 0x20, //0x0000036c cmpq $32, %r13
0xc4, 0xc1, 0x7e, 0x6f, 0x00, //0x0000036e vmovdqu (%r8), %ymm0 0x0f, 0x82, 0x5b, 0x01, 0x00, 0x00, //0x00000370 jb LBB0_48
0xc5, 0xfd, 0x74, 0x0d, 0x85, 0xfc, 0xff, 0xff, //0x00000373 vpcmpeqb $-891(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */ //0x00000376 LBB0_31
0xc5, 0xfd, 0xd7, 0xf9, //0x0000037b vpmovmskb %ymm1, %edi 0xc4, 0xc1, 0x7e, 0x6f, 0x00, //0x00000376 vmovdqu (%r8), %ymm0
0xc5, 0xfd, 0x74, 0x05, 0x99, 0xfc, 0xff, 0xff, //0x0000037f vpcmpeqb $-871(%rip), %ymm0, %ymm0 /* LCPI0_1+0(%rip) */ 0xc5, 0xfd, 0x74, 0x0d, 0x7d, 0xfc, 0xff, 0xff, //0x0000037b vpcmpeqb $-899(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */
0xc5, 0xfd, 0xd7, 0xc0, //0x00000387 vpmovmskb %ymm0, %eax 0xc5, 0xfd, 0xd7, 0xf9, //0x00000383 vpmovmskb %ymm1, %edi
0x85, 0xc0, //0x0000038b testl %eax, %eax 0xc5, 0xfd, 0x74, 0x05, 0x91, 0xfc, 0xff, 0xff, //0x00000387 vpcmpeqb $-879(%rip), %ymm0, %ymm0 /* LCPI0_1+0(%rip) */
0x0f, 0x85, 0xcd, 0x00, 0x00, 0x00, //0x0000038d jne LBB0_44 0xc5, 0xfd, 0xd7, 0xc0, //0x0000038f vpmovmskb %ymm0, %eax
0x4d, 0x85, 0xe4, //0x00000393 testq %r12, %r12 0x85, 0xc0, //0x00000393 testl %eax, %eax
0x0f, 0x85, 0xe0, 0x00, 0x00, 0x00, //0x00000396 jne LBB0_46 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00000395 jne LBB0_44
0x45, 0x31, 0xe4, //0x0000039c xorl %r12d, %r12d 0x4d, 0x85, 0xe4, //0x0000039b testq %r12, %r12
0x48, 0x85, 0xff, //0x0000039f testq %rdi, %rdi 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x0000039e jne LBB0_46
0x0f, 0x84, 0x0d, 0x01, 0x00, 0x00, //0x000003a2 je LBB0_47 0x45, 0x31, 0xe4, //0x000003a4 xorl %r12d, %r12d
//0x000003a8 LBB0_34 0x48, 0x85, 0xff, //0x000003a7 testq %rdi, %rdi
0x48, 0x0f, 0xbc, 0xc7, //0x000003a8 bsfq %rdi, %rax 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x000003aa je LBB0_47
0x4d, 0x29, 0xd8, //0x000003ac subq %r11, %r8 //0x000003b0 LBB0_34
0x4d, 0x8d, 0x34, 0x00, //0x000003af leaq (%r8,%rax), %r14 0x48, 0x0f, 0xbc, 0xc7, //0x000003b0 bsfq %rdi, %rax
0x49, 0x83, 0xc6, 0x01, //0x000003b3 addq $1, %r14 0x4d, 0x29, 0xd8, //0x000003b4 subq %r11, %r8
0xe9, 0x73, 0xff, 0xff, 0xff, //0x000003b7 jmp LBB0_28 0x4d, 0x8d, 0x34, 0x00, //0x000003b7 leaq (%r8,%rax), %r14
//0x000003bc LBB0_35 0x49, 0x83, 0xc6, 0x01, //0x000003bb addq $1, %r14
0x4d, 0x01, 0xd9, //0x000003bc addq %r11, %r9 0xe9, 0x73, 0xff, 0xff, 0xff, //0x000003bf jmp LBB0_28
0x49, 0x83, 0xfd, 0x20, //0x000003bf cmpq $32, %r13 //0x000003c4 LBB0_35
0x0f, 0x82, 0x59, 0x02, 0x00, 0x00, //0x000003c3 jb LBB0_70 0x4d, 0x01, 0xd9, //0x000003c4 addq %r11, %r9
//0x000003c9 LBB0_36 0x49, 0x83, 0xfd, 0x20, //0x000003c7 cmpq $32, %r13
0xc4, 0xc1, 0x7e, 0x6f, 0x01, //0x000003c9 vmovdqu (%r9), %ymm0 0x0f, 0x82, 0x6b, 0x02, 0x00, 0x00, //0x000003cb jb LBB0_70
0xc5, 0xfd, 0x74, 0x0d, 0x2a, 0xfc, 0xff, 0xff, //0x000003ce vpcmpeqb $-982(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */ //0x000003d1 LBB0_36
0xc5, 0xfd, 0xd7, 0xc1, //0x000003d6 vpmovmskb %ymm1, %eax 0xc4, 0xc1, 0x7e, 0x6f, 0x09, //0x000003d1 vmovdqu (%r9), %ymm1
0xc5, 0xfd, 0x74, 0x0d, 0x3e, 0xfc, 0xff, 0xff, //0x000003da vpcmpeqb $-962(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ 0xc5, 0xf5, 0x74, 0x05, 0x22, 0xfc, 0xff, 0xff, //0x000003d6 vpcmpeqb $-990(%rip), %ymm1, %ymm0 /* LCPI0_0+0(%rip) */
0xc5, 0xfd, 0xd7, 0xc9, //0x000003e2 vpmovmskb %ymm1, %ecx 0xc5, 0xfd, 0xd7, 0xc8, //0x000003de vpmovmskb %ymm0, %ecx
0xc5, 0xfd, 0xda, 0x0d, 0x52, 0xfc, 0xff, 0xff, //0x000003e6 vpminub $-942(%rip), %ymm0, %ymm1 /* LCPI0_2+0(%rip) */ 0xc5, 0xf5, 0x74, 0x05, 0x36, 0xfc, 0xff, 0xff, //0x000003e2 vpcmpeqb $-970(%rip), %ymm1, %ymm0 /* LCPI0_1+0(%rip) */
0x85, 0xc9, //0x000003ee testl %ecx, %ecx 0xc5, 0xfd, 0xd7, 0xc0, //0x000003ea vpmovmskb %ymm0, %eax
0x0f, 0x85, 0x8d, 0x01, 0x00, 0x00, //0x000003f0 jne LBB0_61 0xc5, 0xfe, 0x6f, 0x05, 0x4a, 0xfc, 0xff, 0xff, //0x000003ee vmovdqu $-950(%rip), %ymm0 /* LCPI0_2+0(%rip) */
0x4d, 0x85, 0xe4, //0x000003f6 testq %r12, %r12 0xc5, 0xfd, 0x64, 0xc1, //0x000003f6 vpcmpgtb %ymm1, %ymm0, %ymm0
0x0f, 0x85, 0xa0, 0x01, 0x00, 0x00, //0x000003f9 jne LBB0_63 0xc5, 0xed, 0x76, 0xd2, //0x000003fa vpcmpeqd %ymm2, %ymm2, %ymm2
0x45, 0x31, 0xe4, //0x000003ff xorl %r12d, %r12d 0xc5, 0xf5, 0x64, 0xca, //0x000003fe vpcmpgtb %ymm2, %ymm1, %ymm1
0xc5, 0xfd, 0x74, 0xc1, //0x00000402 vpcmpeqb %ymm1, %ymm0, %ymm0 0x85, 0xc0, //0x00000402 testl %eax, %eax
0x48, 0x85, 0xc0, //0x00000406 testq %rax, %rax 0x0f, 0x85, 0x91, 0x01, 0x00, 0x00, //0x00000404 jne LBB0_61
0x0f, 0x84, 0xcd, 0x01, 0x00, 0x00, //0x00000409 je LBB0_64 0x4d, 0x85, 0xe4, //0x0000040a testq %r12, %r12
//0x0000040f LBB0_39 0x0f, 0x85, 0xa4, 0x01, 0x00, 0x00, //0x0000040d jne LBB0_63
0x48, 0x0f, 0xbc, 0xc8, //0x0000040f bsfq %rax, %rcx 0x45, 0x31, 0xe4, //0x00000413 xorl %r12d, %r12d
0xe9, 0xc9, 0x01, 0x00, 0x00, //0x00000413 jmp LBB0_65 0xc5, 0xfd, 0xdb, 0xc1, //0x00000416 vpand %ymm1, %ymm0, %ymm0
//0x00000418 LBB0_41 0x48, 0x85, 0xc9, //0x0000041a testq %rcx, %rcx
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000418 movq $-1, %r14 0x0f, 0x84, 0xd1, 0x01, 0x00, 0x00, //0x0000041d je LBB0_64
0xe9, 0x91, 0x02, 0x00, 0x00, //0x0000041f jmp LBB0_82 //0x00000423 LBB0_39
//0x00000424 LBB0_42 0x48, 0x0f, 0xbc, 0xc1, //0x00000423 bsfq %rcx, %rax
0x4f, 0x8d, 0x04, 0x13, //0x00000424 leaq (%r11,%r10), %r8 0xe9, 0xcd, 0x01, 0x00, 0x00, //0x00000427 jmp LBB0_65
0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00000428 movq $-1, $-48(%rbp) //0x0000042c LBB0_41
0x45, 0x31, 0xe4, //0x00000430 xorl %r12d, %r12d 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000042c movq $-1, %r14
0x49, 0x83, 0xfd, 0x20, //0x00000433 cmpq $32, %r13 0xe9, 0x97, 0x02, 0x00, 0x00, //0x00000433 jmp LBB0_82
0x0f, 0x83, 0x31, 0xff, 0xff, 0xff, //0x00000437 jae LBB0_31 //0x00000438 LBB0_42
0xe9, 0x7b, 0x00, 0x00, 0x00, //0x0000043d jmp LBB0_48 0x4f, 0x8d, 0x04, 0x13, //0x00000438 leaq (%r11,%r10), %r8
//0x00000442 LBB0_43 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x0000043c movq $-1, $-48(%rbp)
0x4f, 0x8d, 0x0c, 0x13, //0x00000442 leaq (%r11,%r10), %r9 0x45, 0x31, 0xe4, //0x00000444 xorl %r12d, %r12d
0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00000446 movq $-1, $-48(%rbp) 0x49, 0x83, 0xfd, 0x20, //0x00000447 cmpq $32, %r13
0x45, 0x31, 0xe4, //0x0000044e xorl %r12d, %r12d 0x0f, 0x83, 0x25, 0xff, 0xff, 0xff, //0x0000044b jae LBB0_31
0x49, 0x83, 0xfd, 0x20, //0x00000451 cmpq $32, %r13 0xe9, 0x7b, 0x00, 0x00, 0x00, //0x00000451 jmp LBB0_48
0x0f, 0x83, 0x6e, 0xff, 0xff, 0xff, //0x00000455 jae LBB0_36 //0x00000456 LBB0_43
0xe9, 0xc2, 0x01, 0x00, 0x00, //0x0000045b jmp LBB0_70 0x4f, 0x8d, 0x0c, 0x13, //0x00000456 leaq (%r11,%r10), %r9
//0x00000460 LBB0_44 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x0000045a movq $-1, $-48(%rbp)
0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00000460 cmpq $-1, $-48(%rbp) 0x45, 0x31, 0xe4, //0x00000462 xorl %r12d, %r12d
0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00000465 jne LBB0_46 0x49, 0x83, 0xfd, 0x20, //0x00000465 cmpq $32, %r13
0x4c, 0x89, 0xc1, //0x0000046b movq %r8, %rcx 0x0f, 0x83, 0x62, 0xff, 0xff, 0xff, //0x00000469 jae LBB0_36
0x4c, 0x29, 0xd9, //0x0000046e subq %r11, %rcx 0xe9, 0xc8, 0x01, 0x00, 0x00, //0x0000046f jmp LBB0_70
0x48, 0x0f, 0xbc, 0xd8, //0x00000471 bsfq %rax, %rbx //0x00000474 LBB0_44
0x48, 0x01, 0xcb, //0x00000475 addq %rcx, %rbx 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00000474 cmpq $-1, $-48(%rbp)
0x48, 0x89, 0x5d, 0xd0, //0x00000478 movq %rbx, $-48(%rbp) 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00000479 jne LBB0_46
//0x0000047c LBB0_46 0x4c, 0x89, 0xc1, //0x0000047f movq %r8, %rcx
0x44, 0x89, 0xe1, //0x0000047c movl %r12d, %ecx 0x4c, 0x29, 0xd9, //0x00000482 subq %r11, %rcx
0xf7, 0xd1, //0x0000047f notl %ecx 0x48, 0x0f, 0xbc, 0xd8, //0x00000485 bsfq %rax, %rbx
0x21, 0xc1, //0x00000481 andl %eax, %ecx 0x48, 0x01, 0xcb, //0x00000489 addq %rcx, %rbx
0x8d, 0x1c, 0x09, //0x00000483 leal (%rcx,%rcx), %ebx 0x48, 0x89, 0x5d, 0xd0, //0x0000048c movq %rbx, $-48(%rbp)
0x45, 0x8d, 0x0c, 0x4c, //0x00000486 leal (%r12,%rcx,2), %r9d //0x00000490 LBB0_46
0xf7, 0xd3, //0x0000048a notl %ebx 0x44, 0x89, 0xe1, //0x00000490 movl %r12d, %ecx
0x21, 0xc3, //0x0000048c andl %eax, %ebx 0xf7, 0xd1, //0x00000493 notl %ecx
0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000048e andl $-1431655766, %ebx 0x21, 0xc1, //0x00000495 andl %eax, %ecx
0x45, 0x31, 0xe4, //0x00000494 xorl %r12d, %r12d 0x8d, 0x1c, 0x09, //0x00000497 leal (%rcx,%rcx), %ebx
0x01, 0xcb, //0x00000497 addl %ecx, %ebx 0x45, 0x8d, 0x0c, 0x4c, //0x0000049a leal (%r12,%rcx,2), %r9d
0x41, 0x0f, 0x92, 0xc4, //0x00000499 setb %r12b 0xf7, 0xd3, //0x0000049e notl %ebx
0x01, 0xdb, //0x0000049d addl %ebx, %ebx 0x21, 0xc3, //0x000004a0 andl %eax, %ebx
0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000049f xorl $1431655765, %ebx 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x000004a2 andl $-1431655766, %ebx
0x44, 0x21, 0xcb, //0x000004a5 andl %r9d, %ebx 0x45, 0x31, 0xe4, //0x000004a8 xorl %r12d, %r12d
0xf7, 0xd3, //0x000004a8 notl %ebx 0x01, 0xcb, //0x000004ab addl %ecx, %ebx
0x21, 0xdf, //0x000004aa andl %ebx, %edi 0x41, 0x0f, 0x92, 0xc4, //0x000004ad setb %r12b
0x48, 0x85, 0xff, //0x000004ac testq %rdi, %rdi 0x01, 0xdb, //0x000004b1 addl %ebx, %ebx
0x0f, 0x85, 0xf3, 0xfe, 0xff, 0xff, //0x000004af jne LBB0_34 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x000004b3 xorl $1431655765, %ebx
//0x000004b5 LBB0_47 0x44, 0x21, 0xcb, //0x000004b9 andl %r9d, %ebx
0x49, 0x83, 0xc0, 0x20, //0x000004b5 addq $32, %r8 0xf7, 0xd3, //0x000004bc notl %ebx
0x49, 0x83, 0xc5, 0xe0, //0x000004b9 addq $-32, %r13 0x21, 0xdf, //0x000004be andl %ebx, %edi
//0x000004bd LBB0_48 0x48, 0x85, 0xff, //0x000004c0 testq %rdi, %rdi
0x4d, 0x85, 0xe4, //0x000004bd testq %r12, %r12 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x000004c3 jne LBB0_34
0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x000004c0 jne LBB0_85 //0x000004c9 LBB0_47
0x4c, 0x8b, 0x7d, 0xd0, //0x000004c6 movq $-48(%rbp), %r15 0x49, 0x83, 0xc0, 0x20, //0x000004c9 addq $32, %r8
0x4d, 0x85, 0xed, //0x000004ca testq %r13, %r13 0x49, 0x83, 0xc5, 0xe0, //0x000004cd addq $-32, %r13
0x0f, 0x84, 0x8d, 0x00, 0x00, 0x00, //0x000004cd je LBB0_58 //0x000004d1 LBB0_48
//0x000004d3 LBB0_50 0x4d, 0x85, 0xe4, //0x000004d1 testq %r12, %r12
0x4c, 0x89, 0xdf, //0x000004d3 movq %r11, %rdi 0x0f, 0x85, 0x1c, 0x02, 0x00, 0x00, //0x000004d4 jne LBB0_85
0x48, 0xf7, 0xdf, //0x000004d6 negq %rdi 0x4c, 0x89, 0xdf, //0x000004da movq %r11, %rdi
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000004d9 movq $-1, %r14 0x48, 0xf7, 0xd7, //0x000004dd notq %rdi
//0x000004e0 LBB0_51 0x4c, 0x8b, 0x7d, 0xd0, //0x000004e0 movq $-48(%rbp), %r15
0x31, 0xc0, //0x000004e0 xorl %eax, %eax 0x4d, 0x85, 0xed, //0x000004e4 testq %r13, %r13
//0x000004e2 LBB0_52 0x0f, 0x84, 0x8b, 0x00, 0x00, 0x00, //0x000004e7 je LBB0_58
0x41, 0x0f, 0xb6, 0x1c, 0x00, //0x000004e2 movzbl (%r8,%rax), %ebx //0x000004ed LBB0_50
0x80, 0xfb, 0x22, //0x000004e7 cmpb $34, %bl 0x48, 0x83, 0xc7, 0x01, //0x000004ed addq $1, %rdi
0x0f, 0x84, 0x69, 0x00, 0x00, 0x00, //0x000004ea je LBB0_57 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000004f1 movq $-1, %r14
0x80, 0xfb, 0x5c, //0x000004f0 cmpb $92, %bl //0x000004f8 LBB0_51
0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000004f3 je LBB0_55 0x31, 0xc0, //0x000004f8 xorl %eax, %eax
0x48, 0x83, 0xc0, 0x01, //0x000004f9 addq $1, %rax //0x000004fa LBB0_52
0x49, 0x39, 0xc5, //0x000004fd cmpq %rax, %r13 0x41, 0x0f, 0xb6, 0x1c, 0x00, //0x000004fa movzbl (%r8,%rax), %ebx
0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00000500 jne LBB0_52 0x80, 0xfb, 0x22, //0x000004ff cmpb $34, %bl
0xe9, 0x60, 0x00, 0x00, 0x00, //0x00000506 jmp LBB0_59 0x0f, 0x84, 0x69, 0x00, 0x00, 0x00, //0x00000502 je LBB0_57
//0x0000050b LBB0_55 0x80, 0xfb, 0x5c, //0x00000508 cmpb $92, %bl
0x49, 0x8d, 0x4d, 0xff, //0x0000050b leaq $-1(%r13), %rcx 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000050b je LBB0_55
0x48, 0x39, 0xc1, //0x0000050f cmpq %rax, %rcx 0x48, 0x83, 0xc0, 0x01, //0x00000511 addq $1, %rax
0x0f, 0x84, 0x99, 0x01, 0x00, 0x00, //0x00000512 je LBB0_81 0x49, 0x39, 0xc5, //0x00000515 cmpq %rax, %r13
0x4a, 0x8d, 0x0c, 0x07, //0x00000518 leaq (%rdi,%r8), %rcx 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00000518 jne LBB0_52
0x48, 0x01, 0xc1, //0x0000051c addq %rax, %rcx 0xe9, 0x60, 0x00, 0x00, 0x00, //0x0000051e jmp LBB0_59
0x49, 0x83, 0xff, 0xff, //0x0000051f cmpq $-1, %r15 //0x00000523 LBB0_55
0x48, 0x8b, 0x5d, 0xd0, //0x00000523 movq $-48(%rbp), %rbx 0x49, 0x8d, 0x4d, 0xff, //0x00000523 leaq $-1(%r13), %rcx
0x48, 0x0f, 0x44, 0xd9, //0x00000527 cmoveq %rcx, %rbx 0x48, 0x39, 0xc1, //0x00000527 cmpq %rax, %rcx
0x48, 0x89, 0x5d, 0xd0, //0x0000052b movq %rbx, $-48(%rbp) 0x0f, 0x84, 0x9b, 0x01, 0x00, 0x00, //0x0000052a je LBB0_81
0x4c, 0x0f, 0x44, 0xf9, //0x0000052f cmoveq %rcx, %r15 0x4a, 0x8d, 0x0c, 0x07, //0x00000530 leaq (%rdi,%r8), %rcx
0x49, 0x01, 0xc0, //0x00000533 addq %rax, %r8 0x48, 0x01, 0xc1, //0x00000534 addq %rax, %rcx
0x49, 0x83, 0xc0, 0x02, //0x00000536 addq $2, %r8 0x49, 0x83, 0xff, 0xff, //0x00000537 cmpq $-1, %r15
0x4c, 0x89, 0xe9, //0x0000053a movq %r13, %rcx 0x48, 0x8b, 0x5d, 0xd0, //0x0000053b movq $-48(%rbp), %rbx
0x48, 0x29, 0xc1, //0x0000053d subq %rax, %rcx 0x48, 0x0f, 0x44, 0xd9, //0x0000053f cmoveq %rcx, %rbx
0x48, 0x83, 0xc1, 0xfe, //0x00000540 addq $-2, %rcx 0x48, 0x89, 0x5d, 0xd0, //0x00000543 movq %rbx, $-48(%rbp)
0x49, 0x83, 0xc5, 0xfe, //0x00000544 addq $-2, %r13 0x4c, 0x0f, 0x44, 0xf9, //0x00000547 cmoveq %rcx, %r15
0x49, 0x39, 0xc5, //0x00000548 cmpq %rax, %r13 0x49, 0x01, 0xc0, //0x0000054b addq %rax, %r8
0x49, 0x89, 0xcd, //0x0000054b movq %rcx, %r13 0x49, 0x83, 0xc0, 0x02, //0x0000054e addq $2, %r8
0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x0000054e jne LBB0_51 0x4c, 0x89, 0xe9, //0x00000552 movq %r13, %rcx
0xe9, 0x58, 0x01, 0x00, 0x00, //0x00000554 jmp LBB0_81 0x48, 0x29, 0xc1, //0x00000555 subq %rax, %rcx
//0x00000559 LBB0_57 0x48, 0x83, 0xc1, 0xfe, //0x00000558 addq $-2, %rcx
0x49, 0x01, 0xc0, //0x00000559 addq %rax, %r8 0x49, 0x83, 0xc5, 0xfe, //0x0000055c addq $-2, %r13
0x49, 0x83, 0xc0, 0x01, //0x0000055c addq $1, %r8 0x49, 0x39, 0xc5, //0x00000560 cmpq %rax, %r13
//0x00000560 LBB0_58 0x49, 0x89, 0xcd, //0x00000563 movq %rcx, %r13
0x4d, 0x29, 0xd8, //0x00000560 subq %r11, %r8 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00000566 jne LBB0_51
0x4d, 0x89, 0xc6, //0x00000563 movq %r8, %r14 0xe9, 0x5a, 0x01, 0x00, 0x00, //0x0000056c jmp LBB0_81
0xe9, 0xc4, 0xfd, 0xff, 0xff, //0x00000566 jmp LBB0_28 //0x00000571 LBB0_57
//0x0000056b LBB0_59 0x49, 0x01, 0xc0, //0x00000571 addq %rax, %r8
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000056b movq $-1, %r14 0x49, 0x83, 0xc0, 0x01, //0x00000574 addq $1, %r8
0x80, 0xfb, 0x22, //0x00000572 cmpb $34, %bl //0x00000578 LBB0_58
0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x00000575 jne LBB0_81 0x4d, 0x29, 0xd8, //0x00000578 subq %r11, %r8
0x4d, 0x01, 0xe8, //0x0000057b addq %r13, %r8 0x4d, 0x89, 0xc6, //0x0000057b movq %r8, %r14
0xe9, 0xdd, 0xff, 0xff, 0xff, //0x0000057e jmp LBB0_58 0xe9, 0xb4, 0xfd, 0xff, 0xff, //0x0000057e jmp LBB0_28
//0x00000583 LBB0_61 //0x00000583 LBB0_59
0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00000583 cmpq $-1, $-48(%rbp) 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000583 movq $-1, %r14
0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00000588 jne LBB0_63 0x80, 0xfb, 0x22, //0x0000058a cmpb $34, %bl
0x4c, 0x89, 0xcf, //0x0000058e movq %r9, %rdi 0x0f, 0x85, 0x38, 0x01, 0x00, 0x00, //0x0000058d jne LBB0_81
0x4c, 0x29, 0xdf, //0x00000591 subq %r11, %rdi 0x4d, 0x01, 0xe8, //0x00000593 addq %r13, %r8
0x48, 0x0f, 0xbc, 0xd9, //0x00000594 bsfq %rcx, %rbx 0xe9, 0xdd, 0xff, 0xff, 0xff, //0x00000596 jmp LBB0_58
0x48, 0x01, 0xfb, //0x00000598 addq %rdi, %rbx //0x0000059b LBB0_61
0x48, 0x89, 0x5d, 0xd0, //0x0000059b movq %rbx, $-48(%rbp) 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x0000059b cmpq $-1, $-48(%rbp)
//0x0000059f LBB0_63 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000005a0 jne LBB0_63
0x44, 0x89, 0xe7, //0x0000059f movl %r12d, %edi 0x4c, 0x89, 0xcf, //0x000005a6 movq %r9, %rdi
0xf7, 0xd7, //0x000005a2 notl %edi 0x4c, 0x29, 0xdf, //0x000005a9 subq %r11, %rdi
0x21, 0xcf, //0x000005a4 andl %ecx, %edi 0x48, 0x0f, 0xbc, 0xd8, //0x000005ac bsfq %rax, %rbx
0x8d, 0x1c, 0x3f, //0x000005a6 leal (%rdi,%rdi), %ebx 0x48, 0x01, 0xfb, //0x000005b0 addq %rdi, %rbx
0x45, 0x8d, 0x04, 0x7c, //0x000005a9 leal (%r12,%rdi,2), %r8d 0x48, 0x89, 0x5d, 0xd0, //0x000005b3 movq %rbx, $-48(%rbp)
0xf7, 0xd3, //0x000005ad notl %ebx //0x000005b7 LBB0_63
0x21, 0xcb, //0x000005af andl %ecx, %ebx 0x44, 0x89, 0xe7, //0x000005b7 movl %r12d, %edi
0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x000005b1 andl $-1431655766, %ebx 0xf7, 0xd7, //0x000005ba notl %edi
0x45, 0x31, 0xe4, //0x000005b7 xorl %r12d, %r12d 0x21, 0xc7, //0x000005bc andl %eax, %edi
0x01, 0xfb, //0x000005ba addl %edi, %ebx 0x8d, 0x1c, 0x3f, //0x000005be leal (%rdi,%rdi), %ebx
0x41, 0x0f, 0x92, 0xc4, //0x000005bc setb %r12b 0x45, 0x8d, 0x04, 0x7c, //0x000005c1 leal (%r12,%rdi,2), %r8d
0x01, 0xdb, //0x000005c0 addl %ebx, %ebx 0xf7, 0xd3, //0x000005c5 notl %ebx
0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x000005c2 xorl $1431655765, %ebx 0x21, 0xc3, //0x000005c7 andl %eax, %ebx
0x44, 0x21, 0xc3, //0x000005c8 andl %r8d, %ebx 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x000005c9 andl $-1431655766, %ebx
0xf7, 0xd3, //0x000005cb notl %ebx 0x45, 0x31, 0xe4, //0x000005cf xorl %r12d, %r12d
0x21, 0xd8, //0x000005cd andl %ebx, %eax 0x01, 0xfb, //0x000005d2 addl %edi, %ebx
0xc5, 0xfd, 0x74, 0xc1, //0x000005cf vpcmpeqb %ymm1, %ymm0, %ymm0 0x41, 0x0f, 0x92, 0xc4, //0x000005d4 setb %r12b
0x48, 0x85, 0xc0, //0x000005d3 testq %rax, %rax 0x01, 0xdb, //0x000005d8 addl %ebx, %ebx
0x0f, 0x85, 0x33, 0xfe, 0xff, 0xff, //0x000005d6 jne LBB0_39 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x000005da xorl $1431655765, %ebx
//0x000005dc LBB0_64 0x44, 0x21, 0xc3, //0x000005e0 andl %r8d, %ebx
0xb9, 0x40, 0x00, 0x00, 0x00, //0x000005dc movl $64, %ecx 0xf7, 0xd3, //0x000005e3 notl %ebx
//0x000005e1 LBB0_65 0x21, 0xd9, //0x000005e5 andl %ebx, %ecx
0xc5, 0xfd, 0xd7, 0xd8, //0x000005e1 vpmovmskb %ymm0, %ebx 0xc5, 0xfd, 0xdb, 0xc1, //0x000005e7 vpand %ymm1, %ymm0, %ymm0
0x48, 0x85, 0xc0, //0x000005e5 testq %rax, %rax 0x48, 0x85, 0xc9, //0x000005eb testq %rcx, %rcx
0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000005e8 je LBB0_68 0x0f, 0x85, 0x2f, 0xfe, 0xff, 0xff, //0x000005ee jne LBB0_39
0x0f, 0xbc, 0xc3, //0x000005ee bsfl %ebx, %eax //0x000005f4 LBB0_64
0xbf, 0x40, 0x00, 0x00, 0x00, //0x000005f1 movl $64, %edi 0xb8, 0x40, 0x00, 0x00, 0x00, //0x000005f4 movl $64, %eax
0x0f, 0x45, 0xf8, //0x000005f6 cmovnel %eax, %edi //0x000005f9 LBB0_65
0x48, 0x39, 0xf9, //0x000005f9 cmpq %rdi, %rcx 0xc5, 0xfd, 0xd7, 0xd8, //0x000005f9 vpmovmskb %ymm0, %ebx
0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x000005fc ja LBB0_80 0x48, 0x85, 0xc9, //0x000005fd testq %rcx, %rcx
0x4d, 0x29, 0xd9, //0x00000602 subq %r11, %r9 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000600 je LBB0_68
0x4d, 0x8d, 0x34, 0x09, //0x00000605 leaq (%r9,%rcx), %r14 0x0f, 0xbc, 0xcb, //0x00000606 bsfl %ebx, %ecx
0x49, 0x83, 0xc6, 0x01, //0x00000609 addq $1, %r14 0x85, 0xdb, //0x00000609 testl %ebx, %ebx
0xe9, 0x1d, 0xfd, 0xff, 0xff, //0x0000060d jmp LBB0_28 0xbf, 0x40, 0x00, 0x00, 0x00, //0x0000060b movl $64, %edi
//0x00000612 LBB0_68 0x0f, 0x45, 0xf9, //0x00000610 cmovnel %ecx, %edi
0x85, 0xdb, //0x00000612 testl %ebx, %ebx 0x48, 0x39, 0xf8, //0x00000613 cmpq %rdi, %rax
0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x00000614 jne LBB0_80 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x00000616 ja LBB0_80
0x49, 0x83, 0xc1, 0x20, //0x0000061a addq $32, %r9 0x4d, 0x29, 0xd9, //0x0000061c subq %r11, %r9
0x49, 0x83, 0xc5, 0xe0, //0x0000061e addq $-32, %r13 0x4d, 0x8d, 0x34, 0x01, //0x0000061f leaq (%r9,%rax), %r14
//0x00000622 LBB0_70 0x49, 0x83, 0xc6, 0x01, //0x00000623 addq $1, %r14
0x4d, 0x85, 0xe4, //0x00000622 testq %r12, %r12 0xe9, 0x0b, 0xfd, 0xff, 0xff, //0x00000627 jmp LBB0_28
0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x00000625 jne LBB0_87 //0x0000062c LBB0_68
0x48, 0x8b, 0x45, 0xd0, //0x0000062b movq $-48(%rbp), %rax 0x85, 0xdb, //0x0000062c testl %ebx, %ebx
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000062f movq $-1, %r14 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000062e jne LBB0_80
0x4d, 0x85, 0xed, //0x00000636 testq %r13, %r13 0x49, 0x83, 0xc1, 0x20, //0x00000634 addq $32, %r9
0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00000639 je LBB0_81 0x49, 0x83, 0xc5, 0xe0, //0x00000638 addq $-32, %r13
//0x0000063f LBB0_72 //0x0000063c LBB0_70
0x41, 0x0f, 0xb6, 0x09, //0x0000063f movzbl (%r9), %ecx 0x4d, 0x85, 0xe4, //0x0000063c testq %r12, %r12
0x80, 0xf9, 0x22, //0x00000643 cmpb $34, %cl 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x0000063f jne LBB0_87
0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00000646 je LBB0_84 0x48, 0x8b, 0x45, 0xd0, //0x00000645 movq $-48(%rbp), %rax
0x80, 0xf9, 0x5c, //0x0000064c cmpb $92, %cl 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000649 movq $-1, %r14
0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x0000064f je LBB0_77 0x4d, 0x85, 0xed, //0x00000650 testq %r13, %r13
0x80, 0xf9, 0x20, //0x00000655 cmpb $32, %cl 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00000653 je LBB0_81
0x0f, 0x82, 0x4c, 0x00, 0x00, 0x00, //0x00000658 jb LBB0_80 //0x00000659 LBB0_72
0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000065e movq $-1, %rcx 0x41, 0x0f, 0xb6, 0x09, //0x00000659 movzbl (%r9), %ecx
0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000665 movl $1, %ebx 0x80, 0xf9, 0x22, //0x0000065d cmpb $34, %cl
//0x0000066a LBB0_76 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00000660 je LBB0_84
0x49, 0x01, 0xd9, //0x0000066a addq %rbx, %r9 0x80, 0xf9, 0x5c, //0x00000666 cmpb $92, %cl
0x49, 0x01, 0xcd, //0x0000066d addq %rcx, %r13 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000669 je LBB0_77
0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00000670 jne LBB0_72 0x80, 0xf9, 0x20, //0x0000066f cmpb $32, %cl
0xe9, 0x36, 0x00, 0x00, 0x00, //0x00000676 jmp LBB0_81 0x0f, 0x82, 0x4c, 0x00, 0x00, 0x00, //0x00000672 jb LBB0_80
//0x0000067b LBB0_77 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000678 movq $-1, %rcx
0x49, 0x83, 0xfd, 0x01, //0x0000067b cmpq $1, %r13 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000067f movl $1, %ebx
0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x0000067f je LBB0_81 //0x00000684 LBB0_76
0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00000685 movq $-2, %rcx 0x49, 0x01, 0xd9, //0x00000684 addq %rbx, %r9
0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000068c movl $2, %ebx 0x49, 0x01, 0xcd, //0x00000687 addq %rcx, %r13
0x48, 0x83, 0xf8, 0xff, //0x00000691 cmpq $-1, %rax 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x0000068a jne LBB0_72
0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000695 jne LBB0_76 0xe9, 0x36, 0x00, 0x00, 0x00, //0x00000690 jmp LBB0_81
0x4c, 0x89, 0xc8, //0x0000069b movq %r9, %rax //0x00000695 LBB0_77
0x4c, 0x29, 0xd8, //0x0000069e subq %r11, %rax 0x49, 0x83, 0xfd, 0x01, //0x00000695 cmpq $1, %r13
0x48, 0x89, 0x45, 0xd0, //0x000006a1 movq %rax, $-48(%rbp) 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00000699 je LBB0_81
0xe9, 0xc0, 0xff, 0xff, 0xff, //0x000006a5 jmp LBB0_76 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000069f movq $-2, %rcx
//0x000006aa LBB0_80 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000006a6 movl $2, %ebx
0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000006aa movq $-2, %r14 0x48, 0x83, 0xf8, 0xff, //0x000006ab cmpq $-1, %rax
//0x000006b1 LBB0_81 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x000006af jne LBB0_76
0x4c, 0x8b, 0x55, 0xc8, //0x000006b1 movq $-56(%rbp), %r10 0x4c, 0x89, 0xc8, //0x000006b5 movq %r9, %rax
//0x000006b5 LBB0_82 0x4c, 0x29, 0xd8, //0x000006b8 subq %r11, %rax
0x4c, 0x89, 0x16, //0x000006b5 movq %r10, (%rsi) 0x48, 0x89, 0x45, 0xd0, //0x000006bb movq %rax, $-48(%rbp)
0x4c, 0x89, 0x32, //0x000006b8 movq %r14, (%rdx) 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x000006bf jmp LBB0_76
//0x000006bb LBB0_83 //0x000006c4 LBB0_80
0x48, 0x83, 0xc4, 0x18, //0x000006bb addq $24, %rsp 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000006c4 movq $-2, %r14
0x5b, //0x000006bf popq %rbx //0x000006cb LBB0_81
0x41, 0x5c, //0x000006c0 popq %r12 0x4c, 0x8b, 0x55, 0xc8, //0x000006cb movq $-56(%rbp), %r10
0x41, 0x5d, //0x000006c2 popq %r13 //0x000006cf LBB0_82
0x41, 0x5e, //0x000006c4 popq %r14 0x4c, 0x89, 0x16, //0x000006cf movq %r10, (%rsi)
0x41, 0x5f, //0x000006c6 popq %r15 0x4c, 0x89, 0x32, //0x000006d2 movq %r14, (%rdx)
0x5d, //0x000006c8 popq %rbp //0x000006d5 LBB0_83
0xc5, 0xf8, 0x77, //0x000006c9 vzeroupper 0x48, 0x83, 0xc4, 0x18, //0x000006d5 addq $24, %rsp
0xc3, //0x000006cc retq 0x5b, //0x000006d9 popq %rbx
//0x000006cd LBB0_84 0x41, 0x5c, //0x000006da popq %r12
0x4d, 0x29, 0xd9, //0x000006cd subq %r11, %r9 0x41, 0x5d, //0x000006dc popq %r13
0x49, 0x83, 0xc1, 0x01, //0x000006d0 addq $1, %r9 0x41, 0x5e, //0x000006de popq %r14
0x4d, 0x89, 0xce, //0x000006d4 movq %r9, %r14 0x41, 0x5f, //0x000006e0 popq %r15
0xe9, 0x53, 0xfc, 0xff, 0xff, //0x000006d7 jmp LBB0_28 0x5d, //0x000006e2 popq %rbp
//0x000006dc LBB0_85 0xc5, 0xf8, 0x77, //0x000006e3 vzeroupper
0x4d, 0x85, 0xed, //0x000006dc testq %r13, %r13 0xc3, //0x000006e6 retq
0x0f, 0x84, 0x7c, 0x00, 0x00, 0x00, //0x000006df je LBB0_89 //0x000006e7 LBB0_84
0x4d, 0x89, 0xdf, //0x000006e5 movq %r11, %r15 0x4d, 0x29, 0xd9, //0x000006e7 subq %r11, %r9
0x49, 0xf7, 0xd7, //0x000006e8 notq %r15 0x49, 0x83, 0xc1, 0x01, //0x000006ea addq $1, %r9
0x4d, 0x01, 0xc7, //0x000006eb addq %r8, %r15 0x4d, 0x89, 0xce, //0x000006ee movq %r9, %r14
0x48, 0x8b, 0x4d, 0xd0, //0x000006ee movq $-48(%rbp), %rcx 0xe9, 0x41, 0xfc, 0xff, 0xff, //0x000006f1 jmp LBB0_28
0x48, 0x83, 0xf9, 0xff, //0x000006f2 cmpq $-1, %rcx //0x000006f6 LBB0_85
0x48, 0x89, 0xc8, //0x000006f6 movq %rcx, %rax 0x4d, 0x85, 0xed, //0x000006f6 testq %r13, %r13
0x49, 0x0f, 0x44, 0xc7, //0x000006f9 cmoveq %r15, %rax 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x000006f9 je LBB0_89
0x4c, 0x0f, 0x45, 0xf9, //0x000006fd cmovneq %rcx, %r15 0x4c, 0x89, 0xdf, //0x000006ff movq %r11, %rdi
0x49, 0x83, 0xc0, 0x01, //0x00000701 addq $1, %r8 0x48, 0xf7, 0xd7, //0x00000702 notq %rdi
0x49, 0x83, 0xc5, 0xff, //0x00000705 addq $-1, %r13 0x49, 0x8d, 0x04, 0x38, //0x00000705 leaq (%r8,%rdi), %rax
0x48, 0x89, 0x45, 0xd0, //0x00000709 movq %rax, $-48(%rbp) 0x48, 0x8b, 0x4d, 0xd0, //0x00000709 movq $-48(%rbp), %rcx
0x4d, 0x85, 0xed, //0x0000070d testq %r13, %r13 0x48, 0x83, 0xf9, 0xff, //0x0000070d cmpq $-1, %rcx
0x0f, 0x85, 0xbd, 0xfd, 0xff, 0xff, //0x00000710 jne LBB0_50 0x49, 0x89, 0xcf, //0x00000711 movq %rcx, %r15
0xe9, 0x45, 0xfe, 0xff, 0xff, //0x00000716 jmp LBB0_58 0x48, 0x0f, 0x44, 0xc8, //0x00000714 cmoveq %rax, %rcx
//0x0000071b LBB0_87 0x4c, 0x0f, 0x44, 0xf8, //0x00000718 cmoveq %rax, %r15
0x4d, 0x85, 0xed, //0x0000071b testq %r13, %r13 0x49, 0x83, 0xc0, 0x01, //0x0000071c addq $1, %r8
0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000071e je LBB0_89 0x49, 0x83, 0xc5, 0xff, //0x00000720 addq $-1, %r13
0x4c, 0x89, 0xd8, //0x00000724 movq %r11, %rax 0x48, 0x89, 0x4d, 0xd0, //0x00000724 movq %rcx, $-48(%rbp)
0x48, 0xf7, 0xd0, //0x00000727 notq %rax 0x4d, 0x85, 0xed, //0x00000728 testq %r13, %r13
0x4c, 0x01, 0xc8, //0x0000072a addq %r9, %rax 0x0f, 0x85, 0xbc, 0xfd, 0xff, 0xff, //0x0000072b jne LBB0_50
0x48, 0x8b, 0x7d, 0xd0, //0x0000072d movq $-48(%rbp), %rdi 0xe9, 0x42, 0xfe, 0xff, 0xff, //0x00000731 jmp LBB0_58
0x48, 0x83, 0xff, 0xff, //0x00000731 cmpq $-1, %rdi //0x00000736 LBB0_87
0x48, 0x89, 0xf9, //0x00000735 movq %rdi, %rcx 0x4d, 0x85, 0xed, //0x00000736 testq %r13, %r13
0x48, 0x0f, 0x44, 0xc8, //0x00000738 cmoveq %rax, %rcx 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00000739 je LBB0_89
0x48, 0x0f, 0x45, 0xc7, //0x0000073c cmovneq %rdi, %rax 0x4c, 0x89, 0xd8, //0x0000073f movq %r11, %rax
0x49, 0x83, 0xc1, 0x01, //0x00000740 addq $1, %r9 0x48, 0xf7, 0xd0, //0x00000742 notq %rax
0x49, 0x83, 0xc5, 0xff, //0x00000744 addq $-1, %r13 0x4c, 0x01, 0xc8, //0x00000745 addq %r9, %rax
0x48, 0x89, 0x4d, 0xd0, //0x00000748 movq %rcx, $-48(%rbp) 0x48, 0x8b, 0x7d, 0xd0, //0x00000748 movq $-48(%rbp), %rdi
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000074c movq $-1, %r14 0x48, 0x83, 0xff, 0xff, //0x0000074c cmpq $-1, %rdi
0x4d, 0x85, 0xed, //0x00000753 testq %r13, %r13 0x48, 0x89, 0xf9, //0x00000750 movq %rdi, %rcx
0x0f, 0x85, 0xe3, 0xfe, 0xff, 0xff, //0x00000756 jne LBB0_72 0x48, 0x0f, 0x44, 0xc8, //0x00000753 cmoveq %rax, %rcx
0xe9, 0x50, 0xff, 0xff, 0xff, //0x0000075c jmp LBB0_81 0x48, 0x0f, 0x45, 0xc7, //0x00000757 cmovneq %rdi, %rax
//0x00000761 LBB0_89 0x49, 0x83, 0xc1, 0x01, //0x0000075b addq $1, %r9
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000761 movq $-1, %r14 0x49, 0x83, 0xc5, 0xff, //0x0000075f addq $-1, %r13
0xe9, 0x44, 0xff, 0xff, 0xff, //0x00000768 jmp LBB0_81 0x48, 0x89, 0x4d, 0xd0, //0x00000763 movq %rcx, $-48(%rbp)
0x00, 0x00, 0x00, //0x0000076d .p2align 2, 0x00 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000767 movq $-1, %r14
//0x00000770 _MASK_USE_NUMBER 0x4d, 0x85, 0xed, //0x0000076e testq %r13, %r13
0x02, 0x00, 0x00, 0x00, //0x00000770 .long 2 0x0f, 0x85, 0xe2, 0xfe, 0xff, 0xff, //0x00000771 jne LBB0_72
0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00000777 jmp LBB0_81
//0x0000077c LBB0_89
0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000077c movq $-1, %r14
0xe9, 0x43, 0xff, 0xff, 0xff, //0x00000783 jmp LBB0_81
//0x00000788 .p2align 2, 0x00
//0x00000788 _MASK_USE_NUMBER
0x02, 0x00, 0x00, 0x00, //0x00000788 .long 2
} }

View file

@ -39,9 +39,9 @@ var _text_vunsigned = []byte{
0x5d, //0x0000005c popq %rbp 0x5d, //0x0000005c popq %rbp
0xc3, //0x0000005d retq 0xc3, //0x0000005d retq
//0x0000005e LBB0_4 //0x0000005e LBB0_4
0x8d, 0x50, 0xc6, //0x0000005e leal $-58(%rax), %edx 0x8d, 0x50, 0xd0, //0x0000005e leal $-48(%rax), %edx
0x80, 0xfa, 0xf5, //0x00000061 cmpb $-11, %dl 0x80, 0xfa, 0x0a, //0x00000061 cmpb $10, %dl
0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000064 ja LBB0_6 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000064 jb LBB0_6
0x48, 0x89, 0x0e, //0x0000006a movq %rcx, (%rsi) 0x48, 0x89, 0x0e, //0x0000006a movq %rcx, (%rsi)
0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000006d movq $-2, (%r8) 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000006d movq $-2, (%r8)
0x5b, //0x00000074 popq %rbx 0x5b, //0x00000074 popq %rbx
@ -67,8 +67,8 @@ var _text_vunsigned = []byte{
0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x000000b3 movl $10, %r11d 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x000000b3 movl $10, %r11d
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000b9 .p2align 4, 0x90 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000b9 .p2align 4, 0x90
//0x000000c0 LBB0_11 //0x000000c0 LBB0_11
0x4c, 0x39, 0xf1, //0x000000c0 cmpq %r14, %rcx 0x49, 0x39, 0xca, //0x000000c0 cmpq %rcx, %r10
0x0f, 0x83, 0x80, 0x00, 0x00, 0x00, //0x000000c3 jae LBB0_22 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x000000c3 je LBB0_22
0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x000000c9 movsbl (%r9,%rcx), %ebx 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x000000c9 movsbl (%r9,%rcx), %ebx
0x8d, 0x53, 0xd0, //0x000000ce leal $-48(%rbx), %edx 0x8d, 0x53, 0xd0, //0x000000ce leal $-48(%rbx), %edx
0x80, 0xfa, 0x09, //0x000000d1 cmpb $9, %dl 0x80, 0xfa, 0x09, //0x000000d1 cmpb $9, %dl

View file

@ -916,7 +916,7 @@ _Digits:
WORD $0x37393639 // .ascii 4, '96979899' WORD $0x37393639 // .ascii 4, '96979899'
WORD $0x39393839 // .ascii 4, '9899' WORD $0x39393839 // .ascii 4, '9899'
WORD $0x00000000 // .p2align 3, 0x00 WORD $0x00000000 // .p2align 3, 0x00
_LB_15828841: // _pow10_ceil_sig_f32.g _LB_1382e0fe: // _pow10_ceil_sig_f32.g
WORD $0x4b43fcf5; WORD $0x81ceb32c // .quad -9093133594791772939 WORD $0x4b43fcf5; WORD $0x81ceb32c // .quad -9093133594791772939
WORD $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270 WORD $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270
WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433 WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433

View file

@ -1232,7 +1232,7 @@ _Digits:
WORD $0x37393639 // .ascii 4, '96979899' WORD $0x37393639 // .ascii 4, '96979899'
WORD $0x39393839 // .ascii 4, '9899' WORD $0x39393839 // .ascii 4, '9899'
// .p2align 3, 0x00 // .p2align 3, 0x00
_LB_3b41de77: // _pow10_ceil_sig.g _LB_f1eb3d41: // _pow10_ceil_sig.g
WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721 WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721
WORD $0x13bb0f7b; WORD $0x25e8e89c // .quad 2731688931043774331 WORD $0x13bb0f7b; WORD $0x25e8e89c // .quad 2731688931043774331
WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807 WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807

File diff suppressed because it is too large Load diff

View file

@ -64,250 +64,232 @@ _lookup_small_key:
WORD $0xf940002b // ldr x11, [x1] WORD $0xf940002b // ldr x11, [x1]
WORD $0x12001d49 // and w9, w10, #0xff WORD $0x12001d49 // and w9, w10, #0xff
WORD $0x8b294928 // add x8, x9, w9, uxtw #2 WORD $0x8b294928 // add x8, x9, w9, uxtw #2
WORD $0x8b08016c // add x12, x11, x8 WORD $0x8b08016d // add x13, x11, x8
WORD $0x39400188 // ldrb w8, [x12] WORD $0x394001a8 // ldrb w8, [x13]
WORD $0x34001be8 // cbz w8, LBB0_46 $892(%rip) WORD $0x340019e8 // cbz w8, LBB0_46 $828(%rip)
WORD $0xf940000f // ldr x15, [x0] WORD $0xf940000c // ldr x12, [x0]
WORD $0xb840118c // ldur w12, [x12, #1] WORD $0xb84011ad // ldur w13, [x13, #1]
WORD $0x1102958d // add w13, w12, #165 WORD $0x110295ae // add w14, w13, #165
WORD $0x8b0d016d // add x13, x11, x13 WORD $0x8b0e016e // add x14, x11, x14
WORD $0x92401d4e // and x14, x10, #0xff WORD $0x92401d4f // and x15, x10, #0xff
WORD $0x7100253f // cmp w9, #9 WORD $0x7100253f // cmp w9, #9
WORD $0x54000942 // b.hs LBB0_20 $296(%rip) WORD $0x54000942 // b.hs LBB0_20 $296(%rip)
WORD $0x11000530 // add w16, w9, #1 WORD $0x11000530 // add w16, w9, #1
WORD $0x394001f1 // ldrb w17, [x15] WORD $0x39400191 // ldrb w17, [x12]
WORD $0x528000e0 // mov w0, #7 WORD $0x528000e0 // mov w0, #7
WORD $0xaa0803e1 // mov x1, x8 WORD $0xaa0803e1 // mov x1, x8
WORD $0x14000007 // b LBB0_5 $28(%rip) WORD $0x14000007 // b LBB0_5 $28(%rip)
LBB0_3: LBB0_3:
WORD $0x52800003 // mov w3, #0 WORD $0x52800003 // mov w3, #0
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x540007a2 // b.hs LBB0_19 $244(%rip) WORD $0x540007a2 // b.hs LBB0_19 $244(%rip)
LBB0_4: LBB0_4:
WORD $0x8b1001ad // add x13, x13, x16 WORD $0x8b1001ce // add x14, x14, x16
WORD $0x71000421 // subs w1, w1, #1 WORD $0x71000421 // subs w1, w1, #1
WORD $0x54000b60 // b.eq LBB0_23 $364(%rip) WORD $0x54000b40 // b.eq LBB0_23 $360(%rip)
LBB0_5: LBB0_5:
WORD $0x394001a3 // ldrb w3, [x13] WORD $0x394001c3 // ldrb w3, [x14]
WORD $0x6b11007f // cmp w3, w17 WORD $0x6b11007f // cmp w3, w17
WORD $0x54ffff01 // b.ne LBB0_3 $-32(%rip) WORD $0x54ffff01 // b.ne LBB0_3 $-32(%rip)
WORD $0x394005a3 // ldrb w3, [x13, #1] WORD $0x394005c3 // ldrb w3, [x14, #1]
WORD $0x394005e4 // ldrb w4, [x15, #1] WORD $0x39400584 // ldrb w4, [x12, #1]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x54000381 // b.ne LBB0_13 $112(%rip) WORD $0x54000381 // b.ne LBB0_13 $112(%rip)
WORD $0x394009a3 // ldrb w3, [x13, #2] WORD $0x394009c3 // ldrb w3, [x14, #2]
WORD $0x394009e4 // ldrb w4, [x15, #2] WORD $0x39400984 // ldrb w4, [x12, #2]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x54000381 // b.ne LBB0_14 $112(%rip) WORD $0x54000381 // b.ne LBB0_14 $112(%rip)
WORD $0x39400da3 // ldrb w3, [x13, #3] WORD $0x39400dc3 // ldrb w3, [x14, #3]
WORD $0x39400de4 // ldrb w4, [x15, #3] WORD $0x39400d84 // ldrb w4, [x12, #3]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x54000381 // b.ne LBB0_15 $112(%rip) WORD $0x54000381 // b.ne LBB0_15 $112(%rip)
WORD $0x394011a3 // ldrb w3, [x13, #4] WORD $0x394011c3 // ldrb w3, [x14, #4]
WORD $0x394011e4 // ldrb w4, [x15, #4] WORD $0x39401184 // ldrb w4, [x12, #4]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x54000381 // b.ne LBB0_16 $112(%rip) WORD $0x54000381 // b.ne LBB0_16 $112(%rip)
WORD $0x394015a3 // ldrb w3, [x13, #5] WORD $0x394015c3 // ldrb w3, [x14, #5]
WORD $0x394015e4 // ldrb w4, [x15, #5] WORD $0x39401584 // ldrb w4, [x12, #5]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x54000381 // b.ne LBB0_17 $112(%rip) WORD $0x54000381 // b.ne LBB0_17 $112(%rip)
WORD $0x394019a3 // ldrb w3, [x13, #6] WORD $0x394019c3 // ldrb w3, [x14, #6]
WORD $0x394019e4 // ldrb w4, [x15, #6] WORD $0x39401984 // ldrb w4, [x12, #6]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x54000381 // b.ne LBB0_18 $112(%rip) WORD $0x54000381 // b.ne LBB0_18 $112(%rip)
WORD $0x39401da3 // ldrb w3, [x13, #7] WORD $0x39401dc3 // ldrb w3, [x14, #7]
WORD $0x39401de4 // ldrb w4, [x15, #7] WORD $0x39401d84 // ldrb w4, [x12, #7]
WORD $0x6b04007f // cmp w3, w4 WORD $0x6b04007f // cmp w3, w4
WORD $0x1a801403 // cinc w3, w0, eq WORD $0x1a801403 // cinc w3, w0, eq
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fffba3 // b.lo LBB0_4 $-140(%rip) WORD $0x54fffba3 // b.lo LBB0_4 $-140(%rip)
WORD $0x14000018 // b LBB0_19 $96(%rip) WORD $0x14000018 // b LBB0_19 $96(%rip)
LBB0_13: LBB0_13:
WORD $0x52800023 // mov w3, #1 WORD $0x52800023 // mov w3, #1
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fffb23 // b.lo LBB0_4 $-156(%rip) WORD $0x54fffb23 // b.lo LBB0_4 $-156(%rip)
WORD $0x14000014 // b LBB0_19 $80(%rip) WORD $0x14000014 // b LBB0_19 $80(%rip)
LBB0_14: LBB0_14:
WORD $0x52800043 // mov w3, #2 WORD $0x52800043 // mov w3, #2
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fffaa3 // b.lo LBB0_4 $-172(%rip) WORD $0x54fffaa3 // b.lo LBB0_4 $-172(%rip)
WORD $0x14000010 // b LBB0_19 $64(%rip) WORD $0x14000010 // b LBB0_19 $64(%rip)
LBB0_15: LBB0_15:
WORD $0x52800063 // mov w3, #3 WORD $0x52800063 // mov w3, #3
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fffa23 // b.lo LBB0_4 $-188(%rip) WORD $0x54fffa23 // b.lo LBB0_4 $-188(%rip)
WORD $0x1400000c // b LBB0_19 $48(%rip) WORD $0x1400000c // b LBB0_19 $48(%rip)
LBB0_16: LBB0_16:
WORD $0x52800083 // mov w3, #4 WORD $0x52800083 // mov w3, #4
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fff9a3 // b.lo LBB0_4 $-204(%rip) WORD $0x54fff9a3 // b.lo LBB0_4 $-204(%rip)
WORD $0x14000008 // b LBB0_19 $32(%rip) WORD $0x14000008 // b LBB0_19 $32(%rip)
LBB0_17: LBB0_17:
WORD $0x528000a3 // mov w3, #5 WORD $0x528000a3 // mov w3, #5
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fff923 // b.lo LBB0_4 $-220(%rip) WORD $0x54fff923 // b.lo LBB0_4 $-220(%rip)
WORD $0x14000004 // b LBB0_19 $16(%rip) WORD $0x14000004 // b LBB0_19 $16(%rip)
LBB0_18: LBB0_18:
WORD $0x528000c3 // mov w3, #6 WORD $0x528000c3 // mov w3, #6
WORD $0x6b0e007f // cmp w3, w14 WORD $0x6b0f007f // cmp w3, w15
WORD $0x54fff8a3 // b.lo LBB0_4 $-236(%rip) WORD $0x54fff8a3 // b.lo LBB0_4 $-236(%rip)
LBB0_19: LBB0_19:
WORD $0x8b0e01a8 // add x8, x13, x14 WORD $0x8b0f01c8 // add x8, x14, x15
WORD $0x39400100 // ldrb w0, [x8] WORD $0x39400100 // ldrb w0, [x8]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8] WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32 WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret WORD $0xd65f03c0 // ret
LBB0_20: LBB0_20:
WORD $0xad4001e1 // ldp q1, q0, [x15] WORD $0xad400580 // ldp q0, q1, [x12]
WORD $0x9280000f // mov x15, #-1 WORD $0x92800010 // mov x16, #-1
WORD $0x9ace21ef // lsl x15, x15, x14 WORD $0x9acf2210 // lsl x16, x16, x15
WORD $0x11000530 // add w16, w9, #1 WORD $0x11000531 // add w17, w9, #1
Lloh0: Lloh0:
WORD $0x10fff331 // adr x17, lCPI0_0 $-412(%rip) WORD $0x10fff320 // adr x0, lCPI0_0 $-412(%rip)
Lloh1: Lloh1:
WORD $0x3dc00222 // ldr q2, [x17, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x3dc00002 // ldr q2, [x0, lCPI0_0@PAGEOFF] $0(%rip)
Lloh2: Lloh2:
WORD $0x10fff371 // adr x17, lCPI0_1 $-404(%rip) WORD $0x10fff360 // adr x0, lCPI0_1 $-404(%rip)
Lloh3: Lloh3:
WORD $0x3dc00223 // ldr q3, [x17, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x3dc00003 // ldr q3, [x0, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0xaa0803f1 // mov x17, x8 WORD $0xaa0803e0 // mov x0, x8
LBB0_21: LBB0_21:
WORD $0xad4015a4 // ldp q4, q5, [x13] WORD $0xad4015c4 // ldp q4, q5, [x14]
WORD $0x6e248c24 // cmeq.16b v4, v1, v4 WORD $0x6e248c04 // cmeq.16b v4, v0, v4
WORD $0x6e258c05 // cmeq.16b v5, v0, v5 WORD $0x6e258c25 // cmeq.16b v5, v1, v5
WORD $0x4e221c84 // and.16b v4, v4, v2 WORD $0x4e221c84 // and.16b v4, v4, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4 WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260080 // fmov w0, s4 WORD $0x1e260081 // fmov w1, s4
WORD $0x4e221ca4 // and.16b v4, v5, v2 WORD $0x4e221ca4 // and.16b v4, v5, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4 WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260081 // fmov w1, s4 WORD $0x1e260083 // fmov w3, s4
WORD $0x33103c20 // bfi w0, w1, #16, #16 WORD $0x33103c61 // bfi w1, w3, #16, #16
WORD $0x2a0f0000 // orr w0, w0, w15 WORD $0x2a100021 // orr w1, w1, w16
WORD $0x3100041f // cmn w0, #1 WORD $0x3100043f // cmn w1, #1
WORD $0x54fffc80 // b.eq LBB0_19 $-112(%rip) WORD $0x54fffc80 // b.eq LBB0_19 $-112(%rip)
WORD $0x8b1001ad // add x13, x13, x16 WORD $0x8b1101ce // add x14, x14, x17
WORD $0x71000631 // subs w17, w17, #1 WORD $0x71000400 // subs w0, w0, #1
WORD $0x54fffde1 // b.ne LBB0_21 $-68(%rip) WORD $0x54fffde1 // b.ne LBB0_21 $-68(%rip)
WORD $0x14000002 // b LBB0_24 $8(%rip)
LBB0_23: LBB0_23:
WORD $0xad4001e1 // ldp q1, q0, [x15] WORD $0xb100045f // cmn x2, #1
LBB0_24: WORD $0x54000c40 // b.eq LBB0_46 $392(%rip)
WORD $0x4f05e7e2 // movi.16b v2, #191 WORD $0x3dc00180 // ldr q0, [x12]
WORD $0x4e228424 // add.16b v4, v1, v2 WORD $0x4f05e7e1 // movi.16b v1, #191
WORD $0x4f00e743 // movi.16b v3, #26 WORD $0x4e218403 // add.16b v3, v0, v1
WORD $0x6e243465 // cmhi.16b v5, v3, v4 WORD $0x4f00e742 // movi.16b v2, #26
WORD $0x4f01e404 // movi.16b v4, #32 WORD $0x6e233444 // cmhi.16b v4, v2, v3
WORD $0x4e241ca5 // and.16b v5, v5, v4 WORD $0x4f01e403 // movi.16b v3, #32
WORD $0x4e2184a1 // add.16b v1, v5, v1 WORD $0x4e231c84 // and.16b v4, v4, v3
WORD $0x8b0c016b // add x11, x11, x12 WORD $0x4e208480 // add.16b v0, v4, v0
WORD $0x8b0d016b // add x11, x11, x13
WORD $0x8b02016b // add x11, x11, x2 WORD $0x8b02016b // add x11, x11, x2
WORD $0x92401d4a // and x10, x10, #0xff WORD $0x92401d4a // and x10, x10, #0xff
WORD $0x7100253f // cmp w9, #9 WORD $0x7100253f // cmp w9, #9
WORD $0x54000922 // b.hs LBB0_43 $292(%rip) WORD $0x540006e2 // b.hs LBB0_43 $220(%rip)
WORD $0x0e013c2c // umov.b w12, v1[0] WORD $0x0e013c0c // umov.b w12, v0[0]
WORD $0x0e033c2d // umov.b w13, v1[1] WORD $0x0e033c0d // umov.b w13, v0[1]
WORD $0x0e053c2e // umov.b w14, v1[2] WORD $0x0e053c0e // umov.b w14, v0[2]
WORD $0x0e073c2f // umov.b w15, v1[3] WORD $0x0e073c0f // umov.b w15, v0[3]
WORD $0x0e093c30 // umov.b w16, v1[4] WORD $0x0e093c10 // umov.b w16, v0[4]
WORD $0x0e0b3c31 // umov.b w17, v1[5] WORD $0x0e0b3c11 // umov.b w17, v0[5]
WORD $0x11000529 // add w9, w9, #1 WORD $0x11000529 // add w9, w9, #1
WORD $0x0e0d3c20 // umov.b w0, v1[6] WORD $0x0e0d3c00 // umov.b w0, v0[6]
WORD $0x528000e1 // mov w1, #7 WORD $0x528000e1 // mov w1, #7
WORD $0x0e0f3c22 // umov.b w2, v1[7] WORD $0x0e0f3c02 // umov.b w2, v0[7]
WORD $0x14000007 // b LBB0_28 $28(%rip)
LBB0_26: LBB0_26:
WORD $0x52800003 // mov w3, #0
WORD $0x6b0a007f // cmp w3, w10
WORD $0x540006c2 // b.hs LBB0_42 $216(%rip)
LBB0_27:
WORD $0x8b09016b // add x11, x11, x9
WORD $0x71000508 // subs w8, w8, #1
WORD $0x54000aa0 // b.eq LBB0_46 $340(%rip)
LBB0_28:
WORD $0x39400163 // ldrb w3, [x11] WORD $0x39400163 // ldrb w3, [x11]
WORD $0x6b2c007f // cmp w3, w12, uxtb WORD $0x6b2c007f // cmp w3, w12, uxtb
WORD $0x54ffff01 // b.ne LBB0_26 $-32(%rip) WORD $0x540002e1 // b.ne LBB0_34 $92(%rip)
WORD $0x39400563 // ldrb w3, [x11, #1] WORD $0x39400563 // ldrb w3, [x11, #1]
WORD $0x6b2d007f // cmp w3, w13, uxtb WORD $0x6b2d007f // cmp w3, w13, uxtb
WORD $0x540002c1 // b.ne LBB0_36 $88(%rip) WORD $0x540002c1 // b.ne LBB0_35 $88(%rip)
WORD $0x39400963 // ldrb w3, [x11, #2] WORD $0x39400963 // ldrb w3, [x11, #2]
WORD $0x6b2e007f // cmp w3, w14, uxtb WORD $0x6b2e007f // cmp w3, w14, uxtb
WORD $0x540002e1 // b.ne LBB0_37 $92(%rip) WORD $0x540002a1 // b.ne LBB0_36 $84(%rip)
WORD $0x39400d63 // ldrb w3, [x11, #3] WORD $0x39400d63 // ldrb w3, [x11, #3]
WORD $0x6b2f007f // cmp w3, w15, uxtb WORD $0x6b2f007f // cmp w3, w15, uxtb
WORD $0x54000301 // b.ne LBB0_38 $96(%rip) WORD $0x54000281 // b.ne LBB0_37 $80(%rip)
WORD $0x39401163 // ldrb w3, [x11, #4] WORD $0x39401163 // ldrb w3, [x11, #4]
WORD $0x6b30007f // cmp w3, w16, uxtb WORD $0x6b30007f // cmp w3, w16, uxtb
WORD $0x54000321 // b.ne LBB0_39 $100(%rip) WORD $0x54000261 // b.ne LBB0_38 $76(%rip)
WORD $0x39401563 // ldrb w3, [x11, #5] WORD $0x39401563 // ldrb w3, [x11, #5]
WORD $0x6b31007f // cmp w3, w17, uxtb WORD $0x6b31007f // cmp w3, w17, uxtb
WORD $0x54000341 // b.ne LBB0_40 $104(%rip) WORD $0x54000241 // b.ne LBB0_39 $72(%rip)
WORD $0x39401963 // ldrb w3, [x11, #6] WORD $0x39401963 // ldrb w3, [x11, #6]
WORD $0x6b20007f // cmp w3, w0, uxtb WORD $0x6b20007f // cmp w3, w0, uxtb
WORD $0x54000361 // b.ne LBB0_41 $108(%rip) WORD $0x54000221 // b.ne LBB0_40 $68(%rip)
WORD $0x39401d63 // ldrb w3, [x11, #7] WORD $0x39401d63 // ldrb w3, [x11, #7]
WORD $0x6b22007f // cmp w3, w2, uxtb WORD $0x6b22007f // cmp w3, w2, uxtb
WORD $0x1a811423 // cinc w3, w1, eq WORD $0x1a811423 // cinc w3, w1, eq
WORD $0x6b0a007f // cmp w3, w10 WORD $0x1400000e // b LBB0_41 $56(%rip)
WORD $0x54fffc83 // b.lo LBB0_27 $-112(%rip) LBB0_34:
WORD $0x14000018 // b LBB0_42 $96(%rip) WORD $0x52800003 // mov w3, #0
LBB0_36: WORD $0x1400000c // b LBB0_41 $48(%rip)
LBB0_35:
WORD $0x52800023 // mov w3, #1 WORD $0x52800023 // mov w3, #1
WORD $0x6b0a007f // cmp w3, w10 WORD $0x1400000a // b LBB0_41 $40(%rip)
WORD $0x54fffc03 // b.lo LBB0_27 $-128(%rip) LBB0_36:
WORD $0x14000014 // b LBB0_42 $80(%rip)
LBB0_37:
WORD $0x52800043 // mov w3, #2 WORD $0x52800043 // mov w3, #2
WORD $0x6b0a007f // cmp w3, w10 WORD $0x14000008 // b LBB0_41 $32(%rip)
WORD $0x54fffb83 // b.lo LBB0_27 $-144(%rip) LBB0_37:
WORD $0x14000010 // b LBB0_42 $64(%rip)
LBB0_38:
WORD $0x52800063 // mov w3, #3 WORD $0x52800063 // mov w3, #3
WORD $0x6b0a007f // cmp w3, w10 WORD $0x14000006 // b LBB0_41 $24(%rip)
WORD $0x54fffb03 // b.lo LBB0_27 $-160(%rip) LBB0_38:
WORD $0x1400000c // b LBB0_42 $48(%rip)
LBB0_39:
WORD $0x52800083 // mov w3, #4 WORD $0x52800083 // mov w3, #4
WORD $0x6b0a007f // cmp w3, w10 WORD $0x14000004 // b LBB0_41 $16(%rip)
WORD $0x54fffa83 // b.lo LBB0_27 $-176(%rip) LBB0_39:
WORD $0x14000008 // b LBB0_42 $32(%rip)
LBB0_40:
WORD $0x528000a3 // mov w3, #5 WORD $0x528000a3 // mov w3, #5
WORD $0x6b0a007f // cmp w3, w10 WORD $0x14000002 // b LBB0_41 $8(%rip)
WORD $0x54fffa03 // b.lo LBB0_27 $-192(%rip) LBB0_40:
WORD $0x14000004 // b LBB0_42 $16(%rip)
LBB0_41:
WORD $0x528000c3 // mov w3, #6 WORD $0x528000c3 // mov w3, #6
LBB0_41:
WORD $0x6b0a007f // cmp w3, w10 WORD $0x6b0a007f // cmp w3, w10
WORD $0x54fff983 // b.lo LBB0_27 $-208(%rip) WORD $0x540004e2 // b.hs LBB0_47 $156(%rip)
LBB0_42: WORD $0x8b09016b // add x11, x11, x9
WORD $0x8b0a0168 // add x8, x11, x10 WORD $0x71000508 // subs w8, w8, #1
WORD $0x39400100 // ldrb w0, [x8] WORD $0x54fffac1 // b.ne LBB0_26 $-168(%rip)
WORD $0xa940fbfd // ldp fp, lr, [sp, #8] WORD $0x1400001f // b LBB0_46 $124(%rip)
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_43: LBB0_43:
WORD $0x4e228402 // add.16b v2, v0, v2 WORD $0x3dc00584 // ldr q4, [x12, #16]
WORD $0x6e223462 // cmhi.16b v2, v3, v2 WORD $0x4e218481 // add.16b v1, v4, v1
WORD $0x4e241c42 // and.16b v2, v2, v4 WORD $0x6e213441 // cmhi.16b v1, v2, v1
WORD $0x4e208440 // add.16b v0, v2, v0 WORD $0x4e231c21 // and.16b v1, v1, v3
WORD $0x4e248421 // add.16b v1, v1, v4
WORD $0x9280000c // mov x12, #-1 WORD $0x9280000c // mov x12, #-1
WORD $0x9aca218c // lsl x12, x12, x10 WORD $0x9aca218c // lsl x12, x12, x10
WORD $0x11000529 // add w9, w9, #1 WORD $0x11000529 // add w9, w9, #1
Lloh4: Lloh4:
WORD $0x10ffe4ad // adr x13, lCPI0_0 $-876(%rip) WORD $0x10ffe6ad // adr x13, lCPI0_0 $-812(%rip)
Lloh5: Lloh5:
WORD $0x3dc001a2 // ldr q2, [x13, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x3dc001a2 // ldr q2, [x13, lCPI0_0@PAGEOFF] $0(%rip)
Lloh6: Lloh6:
WORD $0x10ffe4ed // adr x13, lCPI0_1 $-868(%rip) WORD $0x10ffe6ed // adr x13, lCPI0_1 $-804(%rip)
Lloh7: Lloh7:
WORD $0x3dc001a3 // ldr q3, [x13, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x3dc001a3 // ldr q3, [x13, lCPI0_1@PAGEOFF] $0(%rip)
LBB0_44: LBB0_44:
WORD $0xad401564 // ldp q4, q5, [x11] WORD $0xad401564 // ldp q4, q5, [x11]
WORD $0x6e248c24 // cmeq.16b v4, v1, v4 WORD $0x6e248c04 // cmeq.16b v4, v0, v4
WORD $0x6e258c05 // cmeq.16b v5, v0, v5 WORD $0x6e258c25 // cmeq.16b v5, v1, v5
WORD $0x4e221c84 // and.16b v4, v4, v2 WORD $0x4e221c84 // and.16b v4, v4, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4 WORD $0x4e71b884 // addv.8h h4, v4
@ -319,7 +301,7 @@ LBB0_44:
WORD $0x33103dcd // bfi w13, w14, #16, #16 WORD $0x33103dcd // bfi w13, w14, #16, #16
WORD $0x2a0c01ad // orr w13, w13, w12 WORD $0x2a0c01ad // orr w13, w13, w12
WORD $0x310005bf // cmn w13, #1 WORD $0x310005bf // cmn w13, #1
WORD $0x54fffc40 // b.eq LBB0_42 $-120(%rip) WORD $0x54000100 // b.eq LBB0_47 $32(%rip)
WORD $0x8b09016b // add x11, x11, x9 WORD $0x8b09016b // add x11, x11, x9
WORD $0x71000508 // subs w8, w8, #1 WORD $0x71000508 // subs w8, w8, #1
WORD $0x54fffde1 // b.ne LBB0_44 $-68(%rip) WORD $0x54fffde1 // b.ne LBB0_44 $-68(%rip)
@ -328,6 +310,12 @@ LBB0_46:
WORD $0xa940fbfd // ldp fp, lr, [sp, #8] WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32 WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret WORD $0xd65f03c0 // ret
LBB0_47:
WORD $0x8b0a0168 // add x8, x11, x10
WORD $0x39400100 // ldrb w0, [x8]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
TEXT ·__lookup_small_key(SB), NOSPLIT, $0-32 TEXT ·__lookup_small_key(SB), NOSPLIT, $0-32
NO_LOCAL_POINTERS NO_LOCAL_POINTERS

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -13,7 +13,7 @@ var (
) )
const ( const (
_stack__skip_array = 224 _stack__skip_array = 240
) )
var ( var (

Some files were not shown because too many files have changed in this diff Show more