[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
parent c803620531
commit 51b9ef5c34
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/coreos/go-oidc/v3 v3.12.0
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-gonic/gin v1.10.0
github.com/go-playground/form/v4 v4.2.1
@@ -108,11 +108,11 @@ require (
github.com/aymerick/douceur v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
github.com/bytedance/sonic v1.12.7 // indirect
github.com/bytedance/sonic/loader v0.2.2 // indirect
github.com/bytedance/sonic v1.13.2 // indirect
github.com/bytedance/sonic/loader v0.2.4 // indirect
github.com/cenkalti/backoff/v4 v4.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/dsoprea/go-exif/v3 v3.0.0-20210625224831-a6301f85c82b // 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-playground/locales v0.14.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/goccy/go-json v0.10.5 // 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/proto/otlp v1.5.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/mod v0.24.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/rpc v0.0.0-20250218202821-56aae31c358a // 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
modernc.org/libc v1.62.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/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZc9Do=
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.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I=
github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ=
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.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o=
github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY=
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/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
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/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y=
github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
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/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 h1:ox2F0PSMlrAAiAdknSRMDrAr8mfxPCfSZolH+/qQnyQ=
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/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/gzip v1.2.2 h1:iUU/EYCM8ENfkjmZaVrxbjF/ZC267Iqv5S0MMCMEliI=
github.com/gin-contrib/gzip v1.2.2/go.mod h1:C1a5cacjlDsS20cKnHlZRCPUu57D3qH6B2pV0rl+Y/s=
github.com/gin-contrib/gzip v1.2.3 h1:dAhT722RuEG330ce2agAs75z7yB+NKvX/ZM1r8w0u2U=
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/go.mod h1:KxKxWqWP5LJVDCInulOl4WbLzK2KSPlLesfZ66wRvMs=
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/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/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg=
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 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc/iMaVtFbr3Sw2k=
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/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
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/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
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.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw=
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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
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/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
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.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
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 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
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
- 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
- CPU: AMD64 / ARM64(need go1.20 above)
- CPU: AMD64 / (ARM64, need go1.20 above)
## 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
- 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)
// +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.25 arm64,go1.20,!go1.25
/*
* 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.
@@ -24,10 +24,11 @@ import (
`github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/compat`
)
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) {

View File

@@ -71,7 +71,7 @@ func (self *Node) UnmarshalJSON(data []byte) (err error) {
/** Node Type Accessor **/
// 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_ERROR = 1 (error node)
// 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
// It will be one of belows:
// It will be one of bellows:
// V_NONE = 0 (empty node, key not exists)
// V_ERROR = 1 (error node)
// V_NULL = 2 (json value `null`, key exists)
@@ -1678,7 +1678,7 @@ func NewBytes(src []byte) Node {
if len(src) == 0 {
panic("empty src bytes")
}
out := rt.EncodeBase64(src)
out := rt.EncodeBase64ToString(src)
return NewString(out)
}

View File

@@ -17,126 +17,15 @@
package ast
import (
"unicode/utf8"
"unsafe"
"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
func mem2ptr(s []byte) unsafe.Pointer {
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
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.

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.
@@ -19,30 +20,33 @@
package decoder
import (
`bytes`
`encoding/json`
`io`
`reflect`
`unsafe`
"bytes"
"encoding/json"
"io"
"reflect"
"unsafe"
`github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/option`
"github.com/bytedance/sonic/internal/decoder/consts"
"github.com/bytedance/sonic/internal/native/types"
"github.com/bytedance/sonic/option"
"github.com/bytedance/sonic/internal/compat"
)
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 (
_F_use_int64 = 0
_F_disable_urc = 2
_F_disable_unknown = 3
_F_copy_string = 4
_F_use_int64 = consts.F_use_int64
_F_disable_urc = consts.F_disable_unknown
_F_disable_unknown = consts.F_disable_unknown
_F_copy_string = consts.F_copy_string
_F_use_number = types.B_USE_NUMBER
_F_validate_string = types.B_VALIDATE_STRING
_F_allow_control = types.B_ALLOW_CONTROL
_F_no_validate_json = types.B_NO_VALIDATE_JSON
_F_use_number = consts.F_use_number
_F_validate_string = consts.F_validate_string
_F_allow_control = consts.F_allow_control
_F_no_validate_json = consts.F_no_validate_json
_F_case_sensitive = consts.F_case_sensitive
)
type Options uint64
@@ -55,6 +59,7 @@ const (
OptionCopyString Options = 1 << _F_copy_string
OptionValidateString Options = 1 << _F_validate_string
OptionNoValidateJSON Options = 1 << _F_no_validate_json
OptionCaseSensitive Options = 1 << _F_case_sensitive
)
func (self *Decoder) SetOptions(opts Options) {

View File

@@ -1,5 +1,5 @@
//go:build (amd64 && go1.17 && !go1.24) || (arm64 && go1.20 && !go1.24)
// +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.25 arm64,go1.20,!go1.25
/*
@@ -44,6 +44,7 @@ const (
OptionCopyString Options = api.OptionCopyString
OptionValidateString Options = api.OptionValidateString
OptionNoValidateJSON Options = api.OptionNoValidateJSON
OptionCaseSensitive Options = api.OptionCaseSensitive
)
// 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.
@@ -19,16 +19,17 @@
package encoder
import (
`io`
`io`
`bytes`
`encoding/json`
`reflect`
`github.com/bytedance/sonic/option`
`github.com/bytedance/sonic/internal/compat`
)
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

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.

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.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/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 (
V_strhash = rt.UnpackEface(strhash)
V_strhash = rt.UnpackEface(rt.Strhash)
S_strhash = *(*uintptr)(V_strhash.Value)
)
//go:noescape
//go:linkname strhash runtime.strhash
func strhash(_ unsafe.Pointer, _ uintptr) uintptr
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
} else {
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_number = consts.F_use_number
_F_validate_string = consts.F_validate_string
_F_case_sensitive = consts.F_case_sensitive
_MaxStack = consts.MaxStack
@@ -45,6 +46,7 @@ const (
OptionCopyString = consts.OptionCopyString
OptionValidateString = consts.OptionValidateString
OptionNoValidateJSON = consts.OptionNoValidateJSON
OptionCaseSensitive = consts.OptionCaseSensitive
)
type (

View File

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

View File

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

View File

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

View File

@@ -20,21 +20,16 @@ import (
`strconv`
`unsafe`
`github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/jit`
`github.com/twitchyliquid64/golang-asm/obj`
`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 (
_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) {

View File

@@ -1,4 +1,4 @@
// +build go1.21,!go1.24
// +build go1.21,!go1.25
// Copyright 2023 CloudWeGo Authors
//
@@ -20,25 +20,19 @@ import (
`strconv`
`unsafe`
`github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/jit`
`github.com/twitchyliquid64/golang-asm/obj`
`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!!
var _R11 = _IC
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) {

View File

@@ -1,5 +1,5 @@
//go:build go1.17 && !go1.24
// +build go1.17,!go1.24
//go:build go1.17 && !go1.25
// +build go1.17,!go1.25
/*
* Copyright 2021 ByteDance Inc.
@@ -271,6 +271,7 @@ var _OpFuncTab = [256]func(*_Assembler, *_Instr) {
_OP_nil_1 : (*_Assembler)._asm_OP_nil_1,
_OP_nil_2 : (*_Assembler)._asm_OP_nil_2,
_OP_nil_3 : (*_Assembler)._asm_OP_nil_3,
_OP_empty_bytes : (*_Assembler)._asm_OP_empty_bytes,
_OP_deref : (*_Assembler)._asm_OP_deref,
_OP_index : (*_Assembler)._asm_OP_index,
_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_dismatch_err : (*_Assembler)._asm_OP_dismatch_err,
_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_check_empty : (*_Assembler)._asm_OP_check_empty,
_OP_unsupported : (*_Assembler)._asm_OP_unsupported,
_OP_debug : (*_Assembler)._asm_OP_debug,
}
@@ -456,7 +458,7 @@ func (self *_Assembler) call_vf(fn obj.Addr) {
/** Assembler Error Handlers **/
var (
_F_convT64 = jit.Func(convT64)
_F_convT64 = jit.Func(rt.ConvT64)
_F_error_wrap = jit.Func(error_wrap)
_F_error_type = jit.Func(error_type)
_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) {
self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9
self.Xref(p.vi(), 4)
// self.Byte(0xcc)
self.Emit("MOVQ", _R9, _VAR_pc)
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)
func (self *_Assembler) _asm_OP_skip_empty(p *_Instr) {
// self.Byte(0xcc)
self.call_sf(_F_skip_one) // CALL_SF skip_one
// self.Byte(0xcc)
self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX
self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v
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", jit.Imm(':'), _CX)
self.call_go(_F_IndexByte)
// self.Byte(0xcc)
self.Emit("TESTQ", _AX, _AX)
// disallow unknown field
self.Sjmp("JNS", _LB_field_error)
@@ -662,7 +660,7 @@ func (self *_Assembler) skip_key_value() {
var (
_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) {
@@ -964,8 +962,8 @@ func (self *_Assembler) unquote_twice(p obj.Addr, n obj.Addr, stack bool) {
/** Memory Clearing Routines **/
var (
_F_memclrHasPointers = jit.Func(memclrHasPointers)
_F_memclrNoHeapPointers = jit.Func(memclrNoHeapPointers)
_F_memclrHasPointers = jit.Func(rt.MemclrHasPointers)
_F_memclrNoHeapPointers = jit.Func(rt.MemclrNoHeapPointers)
)
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 **/
var (
_F_mapassign = jit.Func(mapassign)
_F_mapassign_fast32 = jit.Func(mapassign_fast32)
_F_mapassign_faststr = jit.Func(mapassign_faststr)
_F_mapassign_fast64ptr = jit.Func(mapassign_fast64ptr)
_F_mapassign = jit.Func(rt.Mapassign)
_F_mapassign_fast32 = jit.Func(rt.Mapassign_fast32)
_F_mapassign_faststr = jit.Func(rt.Mapassign_faststr)
_F_mapassign_fast64ptr = jit.Func(rt.Mapassign_fast64ptr)
)
var (
@@ -1183,12 +1181,12 @@ func (self *_Assembler) decode_dynamic(vt obj.Addr, vp obj.Addr) {
/** OpCode Assembler Functions **/
var (
_F_memequal = jit.Func(memequal)
_F_memmove = jit.Func(memmove)
_F_memequal = jit.Func(rt.MemEqual)
_F_memmove = jit.Func(rt.Memmove)
_F_growslice = jit.Func(rt.GrowSlice)
_F_makeslice = jit.Func(makeslice)
_F_makemap_small = jit.Func(makemap_small)
_F_mapassign_fast64 = jit.Func(mapassign_fast64)
_F_makeslice = jit.Func(rt.MakeSliceStd)
_F_makemap_small = jit.Func(rt.MakemapSmall)
_F_mapassign_fast64 = jit.Func(rt.Mapassign_fast64)
)
var (
@@ -1197,7 +1195,7 @@ var (
)
var (
_F_b64decode = jit.Imm(int64(_subr__b64decode))
_F_b64decode = jit.Imm(int64(rt.SubrB64Decode))
_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) {
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.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(_CX, 8), _CX) // MOVQ 8(CX), CX
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("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.decode_dynamic(_CX, _DI) // DECODE CX, DI
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) {
self.parse_string() // PARSE STRING
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)
}
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) {
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.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32
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
} else {
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) {
self.parse_signed(int64Type, "", p.vi()) // PARSE int64
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
} else {
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.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32
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
} else {
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) {
self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64
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
} else {
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) {
self.parse_string() // PARSE STRING
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.Emit("MOVOU", _ARG_sv, _X0)
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.Sjmp("JMP" , "_end_{n}") // JMP _end_{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", _ARG_sv_p, _BX) // MOVQ sv, BX
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("TESTQ", _AX, _AX) // TESTQ AX, AX
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.Sjmp("JC" , _LB_field_error) // JC _field_error
self.Link("_end_{n}") // _end_{n}:

View File

@@ -54,6 +54,7 @@ const (
_OP_nil_1
_OP_nil_2
_OP_nil_3
_OP_empty_bytes
_OP_deref
_OP_index
_OP_is_null
@@ -99,6 +100,7 @@ const (
_OP_skip_emtpy
_OP_add
_OP_check_empty
_OP_unsupported
_OP_debug
)
@@ -134,6 +136,7 @@ var _OpNames = [256]string {
_OP_nil_1 : "nil_1",
_OP_nil_2 : "nil_2",
_OP_nil_3 : "nil_3",
_OP_empty_bytes : "empty bytes",
_OP_deref : "deref",
_OP_index : "index",
_OP_is_null : "is_null",
@@ -176,6 +179,7 @@ var _OpNames = [256]string {
_OP_add : "add",
_OP_go_skip : "go_skip",
_OP_check_empty : "check_empty",
_OP_unsupported : "unsupported type",
_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.Slice : self.compileSlice (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) {
if reflect.PtrTo(vt.Key()).Implements(encodingTextUnmarshalerType) {
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())
y := p.pc()
p.add(_OP_goto)
// unmarshal `null` and `"` is different
p.pin(i)
p.pin(k)
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(skip)
p.pin(y)
p.pin(y2)
}
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)
}
func (self *_Compiler) compilePrimitive(vt reflect.Type, p *_Program, op _Op) {
func (self *_Compiler) compilePrimitive(_ reflect.Type, p *_Program, op _Op) {
i := p.pc()
p.add(_OP_is_null)
// skip := self.checkPrimitive(p, vt)
p.add(op)
p.pin(i)
// p.pin(skip)
}
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_no_validate_json = consts.F_no_validate_json
_F_validate_string = consts.F_validate_string
_F_case_sensitive = consts.F_case_sensitive
)
var (

View File

@@ -1,4 +1,4 @@
// +build go1.17,!go1.24
// +build go1.17,!go1.25
/*
* Copyright 2021 ByteDance Inc.
@@ -27,6 +27,7 @@ import (
`github.com/bytedance/sonic/internal/native`
`github.com/bytedance/sonic/internal/native/types`
`github.com/twitchyliquid64/golang-asm/obj`
`github.com/bytedance/sonic/internal/rt`
)
/** Crucial Registers:
@@ -173,8 +174,8 @@ var (
)
var (
_F_convTslice = jit.Func(convTslice)
_F_convTstring = jit.Func(convTstring)
_F_convTslice = jit.Func(rt.ConvTslice)
_F_convTstring = jit.Func(rt.ConvTstring)
_F_invalid_vtype = jit.Func(invalid_vtype)
)
@@ -725,5 +726,5 @@ var (
//go:nosplit
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.

View File

@@ -102,7 +102,7 @@ func newStack() *_Stack {
}
func resetStack(p *_Stack) {
memclrNoHeapPointers(unsafe.Pointer(p), _StackSize)
rt.MemclrNoHeapPointers(unsafe.Pointer(p), _StackSize)
}
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
import (
"encoding/json"
"fmt"
"reflect"
@@ -169,7 +168,9 @@ func (c *compiler) compileBasic(vt reflect.Type) decFunc {
case reflect.Struct:
return c.compileStruct(vt)
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() {
return &sliceU64Decoder{}
}
if et.Kind() == reflect.String {
if et.Kind() == reflect.String && et != rt.JsonNumberType {
return &sliceStringDecoder{}
}
@@ -343,7 +344,7 @@ func (c *compiler) compileMap(vt reflect.Type) decFunc {
// Some common integer map later
mt := rt.MapType(rt.UnpackType(vt))
if mt.Key.Kind() == reflect.String {
if mt.Key.Kind() == reflect.String && mt.Key != rt.JsonNumberType {
return &mapStrKeyDecoder{
mapType: mt,
assign: rt.GetMapStrAssign(vt),
@@ -399,7 +400,7 @@ func tryCompileKeyUnmarshaler(vt reflect.Type) decKey {
return decodeKeyTextUnmarshaler
}
/* not support map key with `json.Unmarshaler` */
/* NOTE: encoding/json not support map key with `json.Unmarshaler` */
return nil
}
@@ -413,8 +414,18 @@ func (c *compiler) compileMapKey(vt reflect.Type) decKey {
return decodeKeyU8
case reflect.Uint16:
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:
panic(&json.UnmarshalTypeError{Type: vt})
return nil
}
}

View File

@@ -70,4 +70,10 @@
Msg: msg,
}
}
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)
}
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 {
if node.IsNull() {
*(*interface{})(vp) = interface{}(nil)
return nil
}
/* check the defined pointer type for issue 379 */
eface := (*rt.GoEface)(vp)
eface := *(*rt.GoEface)(vp)
// not pointer type, or nil pointer, or *interface{}
if eface.Value == nil || eface.Type.Kind() != reflect.Ptr || rt.PtrElem(eface.Type) == anyType {
/*
not pointer type, or nil pointer, or self-pointed interface{}, such as
```go
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)
if err != nil {
return err
}
*(*interface{})(vp) = ret
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)
vp = eface.Value
/* check the defined pointer type for issue 379 */
if eface.Type.IsNamed() {
// check named pointer type, avoid call its `Unmarshaler`
newp := vp
etp = eface.Type
vp = unsafe.Pointer(&newp)
} else if !eface.Type.Indirect() {
// check direct value
etp = rt.UnpackType(eface.Type.Pack().Elem())
}
dec, err := findOrCompile(etp)
@@ -65,19 +77,10 @@ func (d *ifaceDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error
}
vt := iface.Itab.Vt
// not pointer type, or nil pointer, or *interface{}
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
if vt.Kind() != reflect.Ptr || iface.Value == nil {
return error_type(d.typ)
}
etp := rt.PtrElem(vt)
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 */
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)
if err != nil {
return nil, err
@@ -309,7 +309,7 @@ func decodeKeyU8(dec *mapDecoder, raw string, ctx *context) (interface{}, error)
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)
if err != nil {
return nil, err
@@ -324,7 +324,7 @@ func decodeKeyU16(dec *mapDecoder, raw string, ctx *context) (interface{}, error
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)
if err != nil {
return nil, err
@@ -339,7 +339,7 @@ func decodeKeyI8(dec *mapDecoder, raw string, ctx *context) (interface{}, error)
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)
if err != nil {
return nil, err
@@ -354,26 +354,53 @@ func decodeKeyI16(dec *mapDecoder, raw string, ctx *context) (interface{}, error
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()
err := ret.(json.Unmarshaler).UnmarshalJSON([]byte(raw))
err = ret.(encoding.TextUnmarshaler).UnmarshalText(rt.Str2Mem(key))
if err != nil {
return nil, err
}
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)
if err != nil {
return nil, err
}
ret := reflect.New(dec.mapType.Key.Pack()).Interface()
err = ret.(encoding.TextUnmarshaler).UnmarshalText([]byte(key))
ret, err := ParseF64(key)
if err != nil {
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 {
@@ -389,8 +416,8 @@ func (d *mapDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context) error {
}
obj, ok := node.AsObj()
if !ok {
return error_mismatch(node, ctx, d.mapType.Pack())
if !ok || d.keyDec == nil {
return error_mismatch(node, ctx, d.mapType.Pack())
}
// 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++ {
keyn := NewNode(next)
raw := keyn.AsRaw(ctx)
key, err := d.keyDec(d, raw, ctx)
key, err := d.keyDec(d, raw)
if err != nil {
if gerr == nil {
gerr = error_mismatch(keyn, ctx, d.mapType.Pack())

View File

@@ -74,6 +74,7 @@ type nodeBuf struct {
depth uint64
nstart uintptr
nend uintptr
iskey bool
stat jsonStat
}
@@ -196,14 +197,14 @@ func (p *Parser) parse() ErrorCode {
// check OoB here
offset := p.nbuf.ncur - p.nbuf.nstart
curLen := offset / unsafe.Sizeof(node{})
if curLen != uintptr(len(p.nodes)) {
curLen := int(offset / unsafe.Sizeof(node{}))
if curLen != len(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
// 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{
Ptr: rt.Mallocgc(uintptr(maxCap) * nodeType.Size, nodeType, false),
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 ***************/
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) {
if !val.IsStr() {
return nil, false
@@ -551,7 +548,7 @@ func (val Node) AsRaw(ctx *Context) string {
node := ptrCast(val.cptr)
len := int(node.val)
offset := val.Position()
// add start abd end quote
// add start and end quote
ref := rt.Str2Mem(ctx.Parser.Json)[offset-1 : offset+len+1]
return rt.Mem2Str(ref)
case KRawNumber: fallthrough
@@ -867,15 +864,38 @@ func (node *Node) AsSliceString(ctx *Context, vp unsafe.Pointer) error {
return gerr
}
func (node *Node) AsSliceBytes(ctx *Context) ([]byte, error) {
b, ok := node.AsBytesRef(ctx)
if !ok {
return nil, newUnmatched(node.Position(), rt.BytesType)
func (val *Node) AsSliceBytes(ctx *Context) ([]byte, error) {
var origin []byte
switch val.Type() {
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 {
return nil, newUnmatched(node.Position(), rt.BytesType)
return nil, newUnmatched(val.Position(), rt.BytesType)
}
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 */
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
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
}
@@ -95,7 +99,18 @@ func (d *sliceEfaceDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context)
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 {
@@ -168,12 +183,8 @@ func (d *sliceBytesDecoder) FromDom(vp unsafe.Pointer, node Node, ctx *context)
}
s, err := node.AsSliceBytes(ctx)
if err != nil {
return err
}
*(*[]byte)(vp) = s
return nil
return err
}
type sliceBytesUnmarshalerDecoder struct {

View File

@@ -4,6 +4,7 @@ import (
"reflect"
"unsafe"
"github.com/bytedance/sonic/internal/decoder/consts"
caching "github.com/bytedance/sonic/internal/optcaching"
"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()
// find field idx
idx := d.fieldMap.Get(key)
idx := d.fieldMap.Get(key, ctx.Options()&uint64(consts.OptionCaseSensitive) != 0)
if idx == -1 {
if Options(ctx.Options())&OptionDisableUnknown != 0 {
return error_field(key)

View File

@@ -165,19 +165,20 @@ func IteratorNext(p *MapIterator) {
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()
rt.Mapiterinit(t, m, &it.It)
count := rt.Maplen(m)
/* 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
return it, nil
}
/* pre-allocate space if needed */
if m.Count > it.kv.Cap {
it.kv = rt.GrowSlice(iteratorPair, it.kv, m.Count)
if count > it.kv.Cap {
it.kv = rt.GrowSlice(iteratorPair, it.kv, count)
}
/* 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 */
if it.ki = 1; m.Count > 1 {
if it.ki = 1; count > 1 {
radixQsort(it.data(), 0, maxDepth(it.kv.Len))
}

View File

@@ -1,12 +1,12 @@
/**
* Copyright 2024 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.
@@ -19,8 +19,11 @@ package alg
import (
"encoding"
"encoding/json"
"reflect"
"unsafe"
"github.com/bytedance/sonic/internal/encoder/vars"
"github.com/bytedance/sonic/internal/resolver"
"github.com/bytedance/sonic/internal/rt"
)
@@ -92,4 +95,10 @@ func EncodeTextMarshaler(buf *[]byte, val encoding.TextMarshaler, opt uint64) er
return nil
}
}
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)
// +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.25 arm64,go1.20,!go1.25
/**
* 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.

View File

@@ -219,7 +219,7 @@ func (self *Compiler) compileOps(p *ir.Program, sp int, vt reflect.Type) {
case reflect.Struct:
self.compileStruct(p, sp, vt)
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)
/* compile each field */
for _, fv := range resolver.ResolveStruct(vt) {
fvs := resolver.ResolveStruct(vt)
for i, fv := range fvs {
var s []int
var o resolver.Offset
@@ -463,7 +464,12 @@ func (self *Compiler) compileStructBody(p *ir.Program, sp int, vt reflect.Type)
/* check for "omitempty" option */
if fv.Type.Kind() != reflect.Struct && fv.Type.Kind() != reflect.Array && (fv.Opts&resolver.F_omitempty) != 0 {
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 */
@@ -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() {
case reflect.Bool:
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) {
x := p.PC()
p.Add(ir.OP_is_nil_p1)
/* iface and efaces are different */
if vt.NumMethod() == 0 {
p.Add(ir.OP_eface)
} else {
p.Add(ir.OP_iface)
return
}
x := p.PC()
p.Add(ir.OP_is_nil_p1)
p.Add(ir.OP_iface)
/* the "null" value */
e := p.PC()
p.Add(ir.OP_goto)
@@ -644,6 +650,11 @@ func (self *Compiler) compileInterface(p *ir.Program, vt reflect.Type) {
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) {
pc := p.PC()
vk := vt.Kind()

View File

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

View File

@@ -17,7 +17,6 @@
package encoder
import (
"errors"
"reflect"
"unsafe"
@@ -52,29 +51,11 @@ var _KeepAlive struct {
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) {
pp, err := NewCompiler().Compile(vt.Pack(), ex[0].(bool))
if err != nil {
return nil, err
}
}
as := x86.NewAssembler(pp)
as.Name = vt.String()
return as.Load(), 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 {
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/vars"
"github.com/bytedance/sonic/internal/rt"
"github.com/bytedance/sonic/internal/base64"
)
const (
@@ -176,7 +175,7 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
buf = alg.F64toa(buf, v)
case ir.OP_bin:
v := *(*[]byte)(p)
buf = base64.EncodeBase64(buf, v)
buf = rt.EncodeBase64(buf, v)
case ir.OP_quote:
v := *(*string)(p)
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
case ir.OP_is_zero_map:
v := *(**rt.GoMap)(p)
if v == nil || v.Count == 0 {
v := *(*unsafe.Pointer)(p)
if v == nil || rt.Maplen(v) == 0 {
pc = ins.Vi()
continue
}
case ir.OP_map_iter:
v := *(**rt.GoMap)(p)
v := *(*unsafe.Pointer)(p)
vt := ins.Vr()
it, err := alg.IteratorStart(rt.MapType(vt), v, flags)
if err != nil {
@@ -284,6 +283,12 @@ func Execute(b *[]byte, p unsafe.Pointer, s *vars.Stack, flags uint64, prog *ir.
pc = ins.Vi()
continue
}
case ir.OP_is_zero:
fv := ins.VField()
if alg.IsZero(p, fv) {
pc = ins.Vi()
continue
}
case ir.OP_is_zero_1:
if *(*uint8)(p) == 0 {
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 {
return err
}
case ir.OP_unsupported:
return vars.Error_unsuppoted(ins.GoType())
default:
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
}
// 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 {
return opts & (1<<bit) != 0

View File

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

View File

@@ -1,5 +1,5 @@
//go:build go1.17 && !go1.24
// +build go1.17,!go1.24
//go:build go1.17 && !go1.25
// +build go1.17,!go1.25
/*
* 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_cond_set: (*Assembler)._asm_OP_cond_set,
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) {
@@ -756,7 +758,7 @@ var (
_F_f32toa = jit.Imm(int64(native.S_f32toa))
_F_i64toa = jit.Imm(int64(native.S_i64toa))
_F_u64toa = jit.Imm(int64(native.S_u64toa))
_F_b64encode = jit.Imm(int64(_subr__b64encode))
_F_b64encode = jit.Imm(int64(rt.SubrB64Encode))
)
var (
@@ -1097,6 +1099,20 @@ func (self *Assembler) _asm_OP_is_zero_map(p *ir.Instr) {
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) {
self.Xjmp("JMP", p.Vi())
}
@@ -1187,6 +1203,15 @@ func (self *Assembler) _asm_OP_cond_testc(p *ir.Instr) {
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) {
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

View File

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

View File

@@ -27,9 +27,6 @@ import (
_ "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)
func SetCompiler(c func(*rt.GoType, ... interface{}) (interface{}, error)) {

View File

@@ -17,8 +17,10 @@
package jit
import (
`github.com/twitchyliquid64/golang-asm/asm/arch`
`github.com/twitchyliquid64/golang-asm/obj`
"unsafe"
"github.com/twitchyliquid64/golang-asm/asm/arch"
"github.com/twitchyliquid64/golang-asm/obj"
)
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 {
return obj.Addr {
Type : obj.TYPE_CONST,

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -16,7 +16,7 @@ const (
)
const (
_size__get_by_path = 21184
_size__get_by_path = 21452
)
var (
@@ -28,15 +28,15 @@ var (
{0xc, 32},
{0xd, 40},
{0x14, 48},
{0x4907, 240},
{0x4908, 48},
{0x490a, 40},
{0x490c, 32},
{0x490e, 24},
{0x4910, 16},
{0x4911, 8},
{0x4915, 0},
{0x52c0, 240},
{0x4a1c, 240},
{0x4a1d, 48},
{0x4a1f, 40},
{0x4a21, 32},
{0x4a23, 24},
{0x4a25, 16},
{0x4a26, 8},
{0x4a2a, 0},
{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
0x0f, 0x8e, 0x5e, 0x07, 0x00, 0x00, //0x00000133 jle LBB0_3
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
0x4d, 0x89, 0xf8, //0x00000143 movq %r15, %r8
0x49, 0x89, 0xf2, //0x00000146 movq %rsi, %r10
0x4d, 0x89, 0xdc, //0x00000149 movq %r11, %r12
0x49, 0x83, 0xf9, 0x20, //0x0000014c cmpq $32, %r9
0x0f, 0x82, 0x7a, 0x00, 0x00, 0x00, //0x00000150 jb LBB0_12
0x48, 0x83, 0xfe, 0x20, //0x00000156 cmpq $32, %rsi
0x0f, 0x82, 0x70, 0x00, 0x00, 0x00, //0x0000015a jb LBB0_12
0x45, 0x31, 0xc0, //0x00000160 xorl %r8d, %r8d
0x48, 0x89, 0xf3, //0x00000163 movq %rsi, %rbx
0x4c, 0x89, 0xcf, //0x00000166 movq %r9, %rdi
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000169 .p2align 4, 0x90
0x0f, 0x8c, 0x7e, 0x00, 0x00, 0x00, //0x0000014c jl LBB0_12
0x49, 0x83, 0xf9, 0x20, //0x00000152 cmpq $32, %r9
0x0f, 0x8c, 0x74, 0x00, 0x00, 0x00, //0x00000156 jl LBB0_12
0x45, 0x31, 0xc0, //0x0000015c xorl %r8d, %r8d
0x48, 0x89, 0xf3, //0x0000015f movq %rsi, %rbx
0x4c, 0x89, 0xcf, //0x00000162 movq %r9, %rdi
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000165 .p2align 4, 0x90
//0x00000170 LBB0_7
0xc4, 0x81, 0x7e, 0x6f, 0x04, 0x03, //0x00000170 vmovdqu (%r11,%r8), %ymm0
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
//0x00000563 LBB0_19
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
0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x00000571 jae LBB0_22
//0x00000577 LBB0_23
@@ -370,7 +369,7 @@ var _text_html_escape = []byte{
0x49, 0x83, 0xc0, 0x08, //0x00000625 addq $8, %r8
0x48, 0x8d, 0x78, 0xf8, //0x00000629 leaq $-8(%rax), %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
//0x0000063c LBB0_80
0x4d, 0x29, 0xdc, //0x0000063c subq %r11, %r12
@@ -405,7 +404,7 @@ var _text_html_escape = []byte{
0x4d, 0x89, 0xe2, //0x00000691 movq %r12, %r10
0x48, 0x89, 0xc7, //0x00000694 movq %rax, %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
0x41, 0x8b, 0x0a, //0x000006a1 movl (%r10), %ecx
0x41, 0x89, 0x08, //0x000006a4 movl %ecx, (%r8)
@@ -506,11 +505,11 @@ var _text_html_escape = []byte{
0x49, 0x89, 0xc3, //0x000007ee movq %rax, %r11
0x48, 0x83, 0xfe, 0x01, //0x000007f1 cmpq $1, %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
//0x00000803 LBB0_89
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)
0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000812 jne LBB0_95
0x41, 0x8a, 0x4b, 0x02, //0x00000818 movb $2(%r11), %cl

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

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

View File

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

View File

@@ -916,7 +916,7 @@ _Digits:
WORD $0x37393639 // .ascii 4, '96979899'
WORD $0x39393839 // .ascii 4, '9899'
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 $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270
WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433

View File

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

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