[chore]: Bump github.com/gin-contrib/gzip from 0.0.6 to 1.0.0 (#2781)

This commit is contained in:
dependabot[bot] 2024-03-25 10:31:19 +00:00 committed by GitHub
parent 7f4a0a1aeb
commit 40ee470536
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
105 changed files with 81065 additions and 43757 deletions

6
go.mod
View file

@ -28,7 +28,7 @@ require (
github.com/coreos/go-oidc/v3 v3.9.0
github.com/disintegration/imaging v1.6.2
github.com/gin-contrib/cors v1.7.0
github.com/gin-contrib/gzip v0.0.6
github.com/gin-contrib/gzip v1.0.0
github.com/gin-contrib/sessions v0.0.5
github.com/gin-gonic/gin v1.9.1
github.com/go-playground/form/v4 v4.2.1
@ -91,7 +91,7 @@ require (
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bytedance/sonic v1.11.2 // indirect
github.com/bytedance/sonic v1.11.3 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect
@ -173,7 +173,7 @@ require (
github.com/ncruces/go-strftime v0.1.9 // indirect
github.com/opencontainers/runtime-spec v1.0.2 // indirect
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
github.com/pelletier/go-toml/v2 v2.1.1 // indirect
github.com/pelletier/go-toml/v2 v2.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_model v0.6.0 // indirect

30
go.sum
View file

@ -105,8 +105,8 @@ github.com/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZ
github.com/buckket/go-blurhash v1.1.0/go.mod h1:aT2iqo5W9vu9GpyoLErKfTHwgODsZp3bQfXjXJUxNb8=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM=
github.com/bytedance/sonic v1.11.2 h1:ywfwo0a/3j9HR8wsYGWsIWl2mvRsI950HyoxiBERw5A=
github.com/bytedance/sonic v1.11.2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4=
github.com/bytedance/sonic v1.11.3 h1:jRN+yEjakWh8aK5FzrciUHG8OFXK+4/KrAX/ysEtHAA=
github.com/bytedance/sonic v1.11.3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4=
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@ -185,13 +185,12 @@ 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.0 h1:wZX2wuZ0o7rV2/1i7gb4Jn+gW7HBqaP91fizJkBUJOA=
github.com/gin-contrib/cors v1.7.0/go.mod h1:cI+h6iOAyxKRtUtC6iF/Si1KSFvGm/gK+kshxlCi8ro=
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
github.com/gin-contrib/gzip v1.0.0 h1:UKN586Po/92IDX6ie5CWLgMI81obiIp5nSP85T3wlTk=
github.com/gin-contrib/gzip v1.0.0/go.mod h1:CtG7tQrPB3vIBo6Gat9FVUsis+1emjvQqd66ME5TdnE=
github.com/gin-contrib/sessions v0.0.5 h1:CATtfHmLMQrMNpJRgzjWXD7worTh7g7ritsQfmF+0jE=
github.com/gin-contrib/sessions v0.0.5/go.mod h1:vYAuaUPqie3WUSsft6HUlCjlwwoJQs97miaG2+7neKY=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
@ -256,13 +255,10 @@ github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lY
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/form/v4 v4.2.1 h1:HjdRDKO0fftVMU5epjPW2SOREcZ6/wLUzEobqUGJuPw=
github.com/go-playground/form/v4 v4.2.1/go.mod h1:q1a2BY+AQUUzhl6xA/6hBetay6dEIhMHjgvJiGo6K7U=
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
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.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4=
github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
github.com/go-session/session v3.1.2+incompatible/go.mod h1:8B3iivBQjrz/JtC68Np2T1yBBLxTan3mn/3OM0CyRt0=
@ -299,7 +295,6 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe
github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
@ -458,7 +453,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@ -466,7 +460,6 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
@ -480,7 +473,6 @@ github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsI
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
@ -533,9 +525,8 @@ github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e/go.mod h1:nBd
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI=
github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo=
github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -562,8 +553,6 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qq
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
@ -607,6 +596,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@ -667,8 +657,6 @@ github.com/toqueteos/webbrowser v1.2.0 h1:tVP/gpK69Fx+qMJKsLE7TD8LuGWPnEV71wBN9r
github.com/toqueteos/webbrowser v1.2.0/go.mod h1:XWoZq4cyp9WeUeak7w7LXRUQf1F1ATJMir8RTqb4ayM=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/ulule/limiter/v3 v3.11.2 h1:P4yOrxoEMJbOTfRJR2OzjL90oflzYPPmWg+dvwN2tHA=
@ -771,7 +759,6 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
@ -918,8 +905,6 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@ -1093,7 +1078,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View file

@ -23,9 +23,9 @@ CPU_avx := amd64
CPU_avx2 := amd64
CPU_sse := amd64
TMPL_avx := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test
TMPL_avx2 := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test
TMPL_sse := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test
TMPL_avx := native_test fastint_test fastfloat_test native_amd64 recover_test
TMPL_avx2 := native_test fastint_test fastfloat_test native_amd64 recover_test
TMPL_sse := native_test fastint_test fastfloat_test native_amd64 recover_test
CFLAGS_avx := -msse -mno-sse4 -mavx -mpclmul -mno-avx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=0
CFLAGS_avx2 := -msse -mno-sse4 -mavx -mpclmul -mavx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=1
@ -54,10 +54,14 @@ define build_tmpl
$(eval @arch := $(1))
$(eval @tmpl := $(2))
$(eval @dest := $(3))
$(eval @cpu := $(4))
${@dest}: ${@tmpl}
mkdir -p $(dir ${@dest})
echo '// Code generated by Makefile, DO NOT EDIT.' > ${@dest}
echo '// +build ${@cpu}' > ${@dest}
echo >> ${@dest}
echo >> ${@dest}
echo '// Code generated by Makefile, DO NOT EDIT.' >> ${@dest}
echo >> ${@dest}
sed -e 's/{{PACKAGE}}/${@arch}/g' ${@tmpl} >> ${@dest}
endef
@ -91,7 +95,8 @@ $(foreach \
build_tmpl, \
$(1), \
${OUT_DIR}/${tmpl}.tmpl, \
${OUT_DIR}/$(1)/${tmpl}.go \
${OUT_DIR}/$(1)/${tmpl}.go, \
$(value CPU_$(1)) \
)) \
)
endef

View file

@ -413,7 +413,7 @@ func init() {
When decoding **string values without any escaped characters**, sonic references them from the origin JSON buffer instead of mallocing a new buffer to copy. This helps a lot for CPU performance but may leave the whole JSON buffer in memory as long as the decoded objects are being used. In practice, we found the extra memory introduced by referring JSON buffer is usually 20% ~ 80% of decoded objects. Once an application holds these objects for a long time (for example, cache the decoded objects for reusing), its in-use memory on the server may go up. - `Config.CopyString`/`decoder.CopyString()`: We provide the option for `Decode()` / `Unmarshal()` users to choose not to reference the JSON buffer, which may cause a decline in CPU performance to some degree.
- `GetFromStringNoCopy()`: For memory safty, `sonic.Get()` / `sonic.GetFromString()` now copies return JSON. If users want to get json more quickly and not care about memory usage, you can use `GetFromStringNoCopy()` to return a JSON direclty referenced from source.
- `GetFromStringNoCopy()`: For memory safety, `sonic.Get()` / `sonic.GetFromString()` now copies return JSON. If users want to get json more quickly and not care about memory usage, you can use `GetFromStringNoCopy()` to return a JSON directly referenced from source.
### Pass string or []byte?

View file

@ -80,7 +80,7 @@ type Config struct {
}
var (
// ConfigDefault is the default config of APIs, aiming at efficiency and safty.
// ConfigDefault is the default config of APIs, aiming at efficiency and safety.
ConfigDefault = Config{}.Froze()
// ConfigStd is the standard config of APIs, aiming at being compatible with encoding/json.
@ -118,7 +118,7 @@ type API interface {
NewEncoder(writer io.Writer) Encoder
// NewDecoder create a Decoder holding reader
NewDecoder(reader io.Reader) Decoder
// Valid validates the JSON-encoded bytes and reportes if it is valid
// Valid validates the JSON-encoded bytes and reports if it is valid
Valid(data []byte) bool
}
@ -184,7 +184,7 @@ func UnmarshalString(buf string, val interface{}) error {
//
// Notice: It expects the src json is **Well-formed** and **Immutable** when calling,
// otherwise it may return unexpected result.
// Considering memory safty, the returned JSON is **Copied** from the input
// Considering memory safety, the returned JSON is **Copied** from the input
func Get(src []byte, path ...interface{}) (ast.Node, error) {
return GetCopyFromString(rt.Mem2Str(src), path...)
}

View file

@ -1,4 +1,4 @@
// +build amd64,go1.16,!go1.23
// +build amd64,go1.16,!go1.23 arm64,go1.20,!go1.23
/*
* Copyright 2022 ByteDance Inc.
@ -27,7 +27,6 @@
`github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/internal/rt`
uq `github.com/bytedance/sonic/unquote`
`github.com/chenzhuoyu/base64x`
)
var typeByte = rt.UnpackEface(byte(0)).Type
@ -77,14 +76,6 @@ func unquote(src string) (string, types.ParsingError) {
return uq.String(src)
}
func decodeBase64(src string) ([]byte, error) {
return base64x.StdEncoding.DecodeString(src)
}
func encodeBase64(src []byte) string {
return base64x.StdEncoding.EncodeToString(src)
}
func (self *Parser) decodeValue() (val types.JsonState) {
sv := (*rt.GoString)(unsafe.Pointer(&self.s))
flag := types.F_USE_NUMBER

View file

@ -1,111 +1,105 @@
// +build !amd64 !go1.16 go1.23
// +build !amd64,!arm64 go1.23 !go1.16 arm64,!go1.20
/*
* 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.
*/
* 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 ast
import (
`encoding/base64`
`encoding/json`
`encoding/json`
`github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/internal/rt`
`github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/internal/rt`
)
func init() {
println("WARNING: sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable")
println("WARNING:(ast) sonic only supports Go1.16~1.22, but your environment is not suitable")
}
func quote(buf *[]byte, val string) {
quoteString(buf, val)
quoteString(buf, val)
}
func unquote(src string) (string, types.ParsingError) {
sp := rt.IndexChar(src, -1)
out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2))
if !ok {
return "", types.ERR_INVALID_ESCAPE
}
return rt.Mem2Str(out), 0
sp := rt.IndexChar(src, -1)
out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2))
if !ok {
return "", types.ERR_INVALID_ESCAPE
}
return rt.Mem2Str(out), 0
}
func decodeBase64(src string) ([]byte, error) {
return base64.StdEncoding.DecodeString(src)
}
func encodeBase64(src []byte) string {
return base64.StdEncoding.EncodeToString(src)
}
func (self *Parser) decodeValue() (val types.JsonState) {
e, v := decodeValue(self.s, self.p, self.dbuf == nil)
if e < 0 {
return v
}
self.p = e
return v
e, v := decodeValue(self.s, self.p, self.dbuf == nil)
if e < 0 {
return v
}
self.p = e
return v
}
func (self *Parser) skip() (int, types.ParsingError) {
e, s := skipValue(self.s, self.p)
if e < 0 {
return self.p, types.ParsingError(-e)
}
self.p = e
return s, 0
e, s := skipValue(self.s, self.p)
if e < 0 {
return self.p, types.ParsingError(-e)
}
self.p = e
return s, 0
}
func (self *Parser) skipFast() (int, types.ParsingError) {
e, s := skipValueFast(self.s, self.p)
if e < 0 {
return self.p, types.ParsingError(-e)
}
self.p = e
return s, 0
e, s := skipValueFast(self.s, self.p)
if e < 0 {
return self.p, types.ParsingError(-e)
}
self.p = e
return s, 0
}
func (self *Node) encodeInterface(buf *[]byte) error {
out, err := json.Marshal(self.packAny())
if err != nil {
return err
}
*buf = append(*buf, out...)
return nil
out, err := json.Marshal(self.packAny())
if err != nil {
return err
}
*buf = append(*buf, out...)
return nil
}
func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) {
var err types.ParsingError
for _, p := range path {
if idx, ok := p.(int); ok && idx >= 0 {
if err = self.searchIndex(idx); err != 0 {
return -1, err
if err := self.searchIndex(idx); err != 0 {
return self.p, err
}
} else if key, ok := p.(string); ok {
if err = self.searchKey(key); err != 0 {
return -1, err
if err := self.searchKey(key); err != 0 {
return self.p, err
}
} else {
panic("path must be either int(>=0) or string")
}
}
var start int
if start, err = self.skip(); err != 0 {
return -1, err
start, e := self.skip()
if e != 0 {
return self.p, e
}
// t := switchRawType(self.s[start])
// if t == _V_NUMBER {
// self.p = 1 + backward(self.s, self.p-1)
// }
return start, 0
}

31
vendor/github.com/bytedance/sonic/ast/b64_amd64.go generated vendored Normal file
View file

@ -0,0 +1,31 @@
// +build amd64,go1.16
/**
* 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 ast
import (
`github.com/chenzhuoyu/base64x`
)
func decodeBase64(src string) ([]byte, error) {
return base64x.StdEncoding.DecodeString(src)
}
func encodeBase64(src []byte) string {
return base64x.StdEncoding.EncodeToString(src)
}

31
vendor/github.com/bytedance/sonic/ast/b64_compat.go generated vendored Normal file
View file

@ -0,0 +1,31 @@
// +build !amd64 !go1.16
/*
* 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 ast
import (
`encoding/base64`
)
func decodeBase64(src string) ([]byte, error) {
return base64.StdEncoding.DecodeString(src)
}
func encodeBase64(src []byte) string {
return base64.StdEncoding.EncodeToString(src)
}

View file

@ -25,7 +25,7 @@
// Visitor handles the callbacks during preorder traversal of a JSON AST.
//
// According to the JSON RFC8259, a JSON AST can be defined by
// the following rules without seperator / whitespace tokens.
// the following rules without separator / whitespace tokens.
//
// JSON-AST = value
// value = false / null / true / object / array / number / string

View file

@ -1,3 +1,6 @@
// +build amd64
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
@ -71,8 +74,6 @@
__validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int)
__validate_utf8_fast func(s unsafe.Pointer) (ret int)
__fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int)
)
//go:nosplit
@ -185,7 +186,3 @@ func validate_utf8_fast(s *string) (ret int) {
return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s)))
}
//go:nosplit
func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) {
return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags)
}

View file

@ -8,117 +8,111 @@
)
const (
_entry__f32toa = 31024
_entry__f64toa = 176
_entry__format_significand = 35808
_entry__format_integer = 3424
_entry__fsm_exec = 18816
_entry__advance_string = 15056
_entry__advance_string_default = 37344
_entry__do_skip_number = 21376
_entry__get_by_path = 26416
_entry__skip_one_fast = 22880
_entry__unescape = 38256
_entry__unhex16_is = 9632
_entry__html_escape = 9824
_entry__i64toa = 3856
_entry__u64toa = 4128
_entry__f32toa = 31168
_entry__f64toa = 192
_entry__format_significand = 35344
_entry__format_integer = 3040
_entry__get_by_path = 25696
_entry__fsm_exec = 17920
_entry__advance_string = 14320
_entry__advance_string_default = 36736
_entry__do_skip_number = 20528
_entry__skip_one_fast = 22176
_entry__html_escape = 8912
_entry__i64toa = 3472
_entry__u64toa = 3584
_entry__lspace = 16
_entry__quote = 5552
_entry__skip_array = 18768
_entry__skip_number = 22464
_entry__skip_object = 21008
_entry__skip_one = 22640
_entry__unquote = 7296
_entry__validate_one = 22704
_entry__validate_utf8 = 29728
_entry__validate_utf8_fast = 30416
_entry__value = 13104
_entry__vnumber = 16368
_entry__atof_eisel_lemire64 = 11104
_entry__atof_native = 12496
_entry__decimal_to_f64 = 11504
_entry__left_shift = 36288
_entry__right_shift = 36832
_entry__vsigned = 18016
_entry__vstring = 14880
_entry__vunsigned = 18384
_entry__quote = 4864
_entry__skip_array = 17872
_entry__skip_number = 21792
_entry__skip_object = 20160
_entry__skip_one = 21952
_entry__unquote = 6576
_entry__validate_one = 22000
_entry__validate_utf8 = 29904
_entry__validate_utf8_fast = 30576
_entry__value = 12320
_entry__vnumber = 15648
_entry__atof_eisel_lemire64 = 10160
_entry__atof_native = 11712
_entry__decimal_to_f64 = 10528
_entry__right_shift = 36304
_entry__left_shift = 35808
_entry__vsigned = 17200
_entry__vstring = 14144
_entry__vunsigned = 17520
)
const (
_stack__f32toa = 64
_stack__f32toa = 48
_stack__f64toa = 80
_stack__format_significand = 24
_stack__format_integer = 16
_stack__fsm_exec = 160
_stack__advance_string = 72
_stack__advance_string_default = 56
_stack__do_skip_number = 32
_stack__get_by_path = 280
_stack__fsm_exec = 168
_stack__advance_string = 64
_stack__advance_string_default = 64
_stack__do_skip_number = 48
_stack__skip_one_fast = 176
_stack__unescape = 64
_stack__unhex16_is = 8
_stack__html_escape = 64
_stack__html_escape = 72
_stack__i64toa = 16
_stack__u64toa = 8
_stack__lspace = 8
_stack__quote = 80
_stack__skip_array = 168
_stack__skip_number = 88
_stack__skip_object = 168
_stack__skip_one = 168
_stack__unquote = 112
_stack__validate_one = 168
_stack__quote = 56
_stack__skip_array = 176
_stack__skip_number = 104
_stack__skip_object = 176
_stack__skip_one = 176
_stack__unquote = 88
_stack__validate_one = 176
_stack__validate_utf8 = 48
_stack__validate_utf8_fast = 24
_stack__value = 352
_stack__vnumber = 264
_stack__atof_eisel_lemire64 = 40
_stack__atof_native = 144
_stack__decimal_to_f64 = 88
_stack__left_shift = 32
_stack__right_shift = 16
_stack__value = 328
_stack__vnumber = 240
_stack__atof_eisel_lemire64 = 32
_stack__atof_native = 136
_stack__decimal_to_f64 = 80
_stack__right_shift = 8
_stack__left_shift = 24
_stack__vsigned = 16
_stack__vstring = 128
_stack__vunsigned = 24
_stack__vstring = 120
_stack__vunsigned = 8
)
const (
_size__f32toa = 3792
_size__f64toa = 3248
_size__format_significand = 480
_size__f32toa = 3392
_size__f64toa = 2848
_size__format_significand = 464
_size__format_integer = 432
_size__fsm_exec = 1656
_size__advance_string = 1264
_size__advance_string_default = 912
_size__do_skip_number = 876
_size__get_by_path = 3312
_size__get_by_path = 4208
_size__fsm_exec = 1692
_size__advance_string = 1280
_size__advance_string_default = 944
_size__do_skip_number = 924
_size__skip_one_fast = 3016
_size__unescape = 704
_size__unhex16_is = 128
_size__html_escape = 1280
_size__i64toa = 272
_size__u64toa = 1376
_size__lspace = 112
_size__quote = 1728
_size__html_escape = 1248
_size__i64toa = 48
_size__u64toa = 1232
_size__lspace = 144
_size__quote = 1696
_size__skip_array = 48
_size__skip_number = 160
_size__skip_object = 48
_size__skip_one = 48
_size__unquote = 2336
_size__unquote = 2272
_size__validate_one = 48
_size__validate_utf8 = 688
_size__validate_utf8 = 672
_size__validate_utf8_fast = 560
_size__value = 1268
_size__vnumber = 1648
_size__atof_eisel_lemire64 = 400
_size__value = 1308
_size__vnumber = 1552
_size__atof_eisel_lemire64 = 368
_size__atof_native = 608
_size__decimal_to_f64 = 992
_size__left_shift = 544
_size__right_shift = 480
_size__vsigned = 368
_size__decimal_to_f64 = 1184
_size__right_shift = 400
_size__left_shift = 496
_size__vsigned = 320
_size__vstring = 128
_size__vunsigned = 368
_size__vunsigned = 336
)
var (
@ -129,16 +123,14 @@
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{3734, 64},
{3738, 48},
{3739, 40},
{3741, 32},
{3743, 24},
{3745, 16},
{3747, 8},
{3751, 0},
{3781, 64},
{3350, 48},
{3351, 40},
{3353, 32},
{3355, 24},
{3357, 16},
{3359, 8},
{3363, 0},
{3385, 48},
}
_pcsp__f64toa = [][2]uint32{
{1, 0},
@ -148,24 +140,24 @@
{10, 32},
{12, 40},
{13, 48},
{3124, 56},
{3128, 48},
{3129, 40},
{3131, 32},
{3133, 24},
{3135, 16},
{3137, 8},
{3141, 0},
{3234, 56},
{2788, 56},
{2792, 48},
{2793, 40},
{2795, 32},
{2797, 24},
{2799, 16},
{2801, 8},
{2805, 0},
{2843, 56},
}
_pcsp__format_significand = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{468, 24},
{469, 16},
{471, 8},
{473, 0},
{452, 24},
{453, 16},
{455, 8},
{457, 0},
}
_pcsp__format_integer = [][2]uint32{
{1, 0},
@ -177,6 +169,24 @@
{424, 8},
{426, 0},
}
_pcsp__get_by_path = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{4012, 104},
{4016, 48},
{4017, 40},
{4019, 32},
{4021, 24},
{4023, 16},
{4025, 8},
{4026, 0},
{4194, 104},
}
_pcsp__fsm_exec = [][2]uint32{
{1, 0},
{4, 8},
@ -185,15 +195,15 @@
{10, 32},
{12, 40},
{13, 48},
{1317, 88},
{1321, 48},
{1322, 40},
{1324, 32},
{1326, 24},
{1328, 16},
{1330, 8},
{1331, 0},
{1656, 88},
{1342, 104},
{1346, 48},
{1347, 40},
{1349, 32},
{1351, 24},
{1353, 16},
{1355, 8},
{1356, 0},
{1692, 104},
}
_pcsp__advance_string = [][2]uint32{
{14, 0},
@ -203,15 +213,15 @@
{24, 32},
{26, 40},
{27, 48},
{529, 72},
{533, 48},
{534, 40},
{536, 32},
{538, 24},
{540, 16},
{542, 8},
{543, 0},
{1253, 72},
{557, 56},
{561, 48},
{562, 40},
{564, 32},
{566, 24},
{568, 16},
{570, 8},
{571, 0},
{1268, 56},
}
_pcsp__advance_string_default = [][2]uint32{
{1, 0},
@ -221,45 +231,31 @@
{10, 32},
{12, 40},
{13, 48},
{381, 56},
{385, 48},
{386, 40},
{388, 32},
{390, 24},
{392, 16},
{394, 8},
{395, 0},
{911, 56},
{552, 64},
{556, 48},
{557, 40},
{559, 32},
{561, 24},
{563, 16},
{565, 8},
{566, 0},
{931, 64},
}
_pcsp__do_skip_number = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{739, 32},
{740, 24},
{742, 16},
{744, 8},
{745, 0},
{876, 32},
}
_pcsp__get_by_path = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{3262, 104},
{3266, 48},
{3267, 40},
{3269, 32},
{3271, 24},
{3273, 16},
{3275, 8},
{3276, 0},
{3301, 104},
{849, 48},
{850, 40},
{852, 32},
{854, 24},
{856, 16},
{858, 8},
{859, 0},
{924, 48},
}
_pcsp__skip_one_fast = [][2]uint32{
{1, 0},
@ -269,44 +265,15 @@
{10, 32},
{12, 40},
{13, 48},
{613, 176},
{614, 168},
{616, 160},
{618, 152},
{620, 144},
{622, 136},
{626, 128},
{658, 176},
{659, 168},
{661, 160},
{663, 152},
{665, 144},
{667, 136},
{671, 128},
{3016, 176},
}
_pcsp__unescape = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{246, 56},
{250, 48},
{251, 40},
{253, 32},
{255, 24},
{257, 16},
{259, 8},
{260, 0},
{695, 56},
}
_pcsp__unhex16_is = [][2]uint32{
{1, 0},
{35, 8},
{36, 0},
{62, 8},
{63, 0},
{97, 8},
{98, 0},
{121, 8},
{123, 0},
}
_pcsp__html_escape = [][2]uint32{
{1, 0},
{4, 8},
@ -315,47 +282,39 @@
{10, 32},
{12, 40},
{13, 48},
{1265, 64},
{1269, 48},
{1270, 40},
{1272, 32},
{1274, 24},
{1276, 16},
{1278, 8},
{1280, 0},
{1224, 72},
{1228, 48},
{1229, 40},
{1231, 32},
{1233, 24},
{1235, 16},
{1237, 8},
{1239, 0},
}
_pcsp__i64toa = [][2]uint32{
{1, 0},
{171, 8},
{172, 0},
{207, 8},
{208, 0},
{222, 8},
{223, 0},
{247, 8},
{248, 0},
{253, 8},
{259, 0},
{14, 0},
{34, 8},
{36, 0},
}
_pcsp__u64toa = [][2]uint32{
{13, 0},
{162, 8},
{163, 0},
{175, 8},
{240, 0},
{498, 8},
{499, 0},
{519, 8},
{592, 0},
{850, 8},
{928, 0},
{1374, 8},
{1376, 0},
{1, 0},
{161, 8},
{162, 0},
{457, 8},
{458, 0},
{756, 8},
{757, 0},
{1221, 8},
{1223, 0},
}
_pcsp__lspace = [][2]uint32{
{1, 0},
{85, 8},
{87, 0},
{89, 8},
{90, 0},
{103, 8},
{104, 0},
{111, 8},
{113, 0},
}
_pcsp__quote = [][2]uint32{
{1, 0},
@ -365,15 +324,15 @@
{10, 32},
{12, 40},
{13, 48},
{1669, 80},
{1673, 48},
{1674, 40},
{1676, 32},
{1678, 24},
{1680, 16},
{1682, 8},
{1683, 0},
{1718, 80},
{1649, 56},
{1653, 48},
{1654, 40},
{1656, 32},
{1658, 24},
{1660, 16},
{1662, 8},
{1663, 0},
{1690, 56},
}
_pcsp__skip_array = [][2]uint32{
{1, 0},
@ -405,8 +364,8 @@
}
_pcsp__skip_one = [][2]uint32{
{1, 0},
{28, 8},
{34, 0},
{30, 8},
{36, 0},
}
_pcsp__unquote = [][2]uint32{
{1, 0},
@ -416,20 +375,20 @@
{10, 32},
{12, 40},
{13, 48},
{1614, 104},
{1618, 48},
{1619, 40},
{1621, 32},
{1623, 24},
{1625, 16},
{1627, 8},
{1628, 0},
{2329, 104},
{1684, 88},
{1688, 48},
{1689, 40},
{1691, 32},
{1693, 24},
{1695, 16},
{1697, 8},
{1698, 0},
{2270, 88},
}
_pcsp__validate_one = [][2]uint32{
{1, 0},
{33, 8},
{39, 0},
{35, 8},
{41, 0},
}
_pcsp__validate_utf8 = [][2]uint32{
{1, 0},
@ -438,14 +397,14 @@
{8, 24},
{10, 32},
{11, 40},
{639, 48},
{643, 40},
{644, 32},
{646, 24},
{648, 16},
{650, 8},
{651, 0},
{682, 48},
{623, 48},
{627, 40},
{628, 32},
{630, 24},
{632, 16},
{634, 8},
{635, 0},
{666, 48},
}
_pcsp__validate_utf8_fast = [][2]uint32{
{1, 0},
@ -468,15 +427,15 @@
{10, 32},
{12, 40},
{13, 48},
{439, 88},
{443, 48},
{444, 40},
{446, 32},
{448, 24},
{450, 16},
{452, 8},
{453, 0},
{1268, 88},
{495, 88},
{499, 48},
{500, 40},
{502, 32},
{504, 24},
{506, 16},
{508, 8},
{509, 0},
{1308, 88},
}
_pcsp__vnumber = [][2]uint32{
{1, 0},
@ -486,36 +445,34 @@
{10, 32},
{12, 40},
{13, 48},
{150, 120},
{154, 48},
{155, 40},
{157, 32},
{159, 24},
{161, 16},
{163, 8},
{164, 0},
{1638, 120},
{803, 104},
{807, 48},
{808, 40},
{810, 32},
{812, 24},
{814, 16},
{816, 8},
{817, 0},
{1547, 104},
}
_pcsp__atof_eisel_lemire64 = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{315, 40},
{316, 32},
{318, 24},
{320, 16},
{322, 8},
{323, 0},
{387, 40},
{292, 32},
{293, 24},
{295, 16},
{297, 8},
{298, 0},
{362, 32},
}
_pcsp__atof_native = [][2]uint32{
{1, 0},
{4, 8},
{596, 56},
{600, 8},
{602, 0},
{587, 56},
{591, 8},
{593, 0},
}
_pcsp__decimal_to_f64 = [][2]uint32{
{1, 0},
@ -525,62 +482,60 @@
{10, 32},
{12, 40},
{13, 48},
{951, 56},
{955, 48},
{956, 40},
{958, 32},
{960, 24},
{962, 16},
{964, 8},
{965, 0},
{977, 56},
{1144, 56},
{1148, 48},
{1149, 40},
{1151, 32},
{1153, 24},
{1155, 16},
{1157, 8},
{1158, 0},
{1169, 56},
}
_pcsp__right_shift = [][2]uint32{
{1, 0},
{318, 8},
{319, 0},
{387, 8},
{388, 0},
{396, 8},
{398, 0},
}
_pcsp__left_shift = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{418, 32},
{419, 24},
{421, 16},
{423, 8},
{424, 0},
{539, 32},
}
_pcsp__right_shift = [][2]uint32{
{1, 0},
{4, 8},
{452, 16},
{453, 8},
{454, 0},
{462, 16},
{463, 8},
{464, 0},
{472, 16},
{363, 24},
{364, 16},
{366, 8},
{367, 0},
{470, 24},
{471, 16},
{473, 8},
{475, 0},
{474, 0},
{486, 24},
}
_pcsp__vsigned = [][2]uint32{
{1, 0},
{4, 8},
{113, 16},
{114, 8},
{115, 0},
{126, 16},
{127, 8},
{128, 0},
{278, 16},
{279, 8},
{280, 0},
{284, 16},
{285, 8},
{286, 0},
{340, 16},
{341, 8},
{342, 0},
{353, 16},
{354, 8},
{356, 0},
{112, 16},
{113, 8},
{114, 0},
{125, 16},
{126, 8},
{127, 0},
{260, 16},
{261, 8},
{262, 0},
{266, 16},
{267, 8},
{268, 0},
{306, 16},
{307, 8},
{308, 0},
{316, 16},
{317, 8},
{319, 0},
}
_pcsp__vstring = [][2]uint32{
{1, 0},
@ -599,32 +554,18 @@
}
_pcsp__vunsigned = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{74, 24},
{75, 16},
{77, 8},
{78, 0},
{89, 24},
{90, 16},
{92, 8},
{93, 0},
{116, 24},
{117, 16},
{119, 8},
{120, 0},
{281, 24},
{282, 16},
{284, 8},
{285, 0},
{336, 24},
{337, 16},
{339, 8},
{340, 0},
{348, 24},
{349, 16},
{351, 8},
{353, 0},
{71, 8},
{72, 0},
{83, 8},
{84, 0},
{107, 8},
{108, 0},
{273, 8},
{274, 0},
{312, 8},
{313, 0},
{320, 8},
{322, 0},
}
)
@ -634,14 +575,12 @@
{"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa},
{"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand},
{"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer},
{"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path},
{"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec},
{"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string},
{"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default},
{"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number},
{"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path},
{"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast},
{"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape},
{"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is},
{"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape},
{"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa},
{"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa},
@ -660,8 +599,8 @@
{"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64},
{"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native},
{"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64},
{"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift},
{"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift},
{"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift},
{"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned},
{"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring},
{"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned},

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,6 @@
// +build amd64
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
@ -71,8 +74,6 @@
__validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int)
__validate_utf8_fast func(s unsafe.Pointer) (ret int)
__fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int)
)
//go:nosplit
@ -185,7 +186,3 @@ func validate_utf8_fast(s *string) (ret int) {
return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s)))
}
//go:nosplit
func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) {
return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags)
}

View file

@ -8,120 +8,114 @@
)
const (
_entry__f32toa = 34640
_entry__f64toa = 368
_entry__format_significand = 39440
_entry__format_integer = 3616
_entry__fsm_exec = 22128
_entry__advance_ns = 17856
_entry__advance_string = 18592
_entry__advance_string_default = 41024
_entry__do_skip_number = 24624
_entry__get_by_path = 29616
_entry__skip_one_fast = 26736
_entry__unescape = 41824
_entry__unhex16_is = 11376
_entry__html_escape = 11712
_entry__i64toa = 4048
_entry__u64toa = 4320
_entry__f32toa = 34656
_entry__f64toa = 320
_entry__format_significand = 38880
_entry__format_integer = 3168
_entry__get_by_path = 28896
_entry__fsm_exec = 21072
_entry__advance_ns = 16928
_entry__advance_string = 17664
_entry__advance_string_default = 40320
_entry__do_skip_number = 23696
_entry__skip_one_fast = 25968
_entry__html_escape = 10560
_entry__i64toa = 3600
_entry__u64toa = 3712
_entry__lspace = 64
_entry__quote = 5872
_entry__skip_array = 22080
_entry__skip_number = 26128
_entry__skip_object = 24048
_entry__skip_one = 26304
_entry__unquote = 8816
_entry__validate_one = 26368
_entry__validate_utf8 = 30960
_entry__validate_utf8_fast = 31920
_entry__value = 16320
_entry__vnumber = 19680
_entry__atof_eisel_lemire64 = 13760
_entry__atof_native = 15712
_entry__decimal_to_f64 = 14240
_entry__left_shift = 39920
_entry__right_shift = 40464
_entry__vsigned = 21328
_entry__vstring = 18352
_entry__vunsigned = 21696
_entry__quote = 5104
_entry__skip_array = 21024
_entry__skip_number = 25392
_entry__skip_object = 23088
_entry__skip_one = 25552
_entry__unquote = 7888
_entry__validate_one = 25600
_entry__validate_utf8 = 31072
_entry__validate_utf8_fast = 32016
_entry__value = 15376
_entry__vnumber = 18800
_entry__atof_eisel_lemire64 = 12624
_entry__atof_native = 14768
_entry__decimal_to_f64 = 13056
_entry__right_shift = 39840
_entry__left_shift = 39344
_entry__vsigned = 20352
_entry__vstring = 17424
_entry__vunsigned = 20672
)
const (
_stack__f32toa = 64
_stack__f32toa = 48
_stack__f64toa = 80
_stack__format_significand = 24
_stack__format_integer = 16
_stack__fsm_exec = 136
_stack__get_by_path = 272
_stack__fsm_exec = 144
_stack__advance_ns = 8
_stack__advance_string = 48
_stack__advance_string = 56
_stack__advance_string_default = 48
_stack__do_skip_number = 40
_stack__get_by_path = 304
_stack__do_skip_number = 48
_stack__skip_one_fast = 184
_stack__unescape = 64
_stack__unhex16_is = 8
_stack__html_escape = 72
_stack__i64toa = 16
_stack__u64toa = 8
_stack__lspace = 8
_stack__quote = 72
_stack__skip_array = 144
_stack__skip_number = 96
_stack__skip_object = 144
_stack__skip_one = 144
_stack__unquote = 112
_stack__validate_one = 144
_stack__quote = 56
_stack__skip_array = 152
_stack__skip_number = 104
_stack__skip_object = 152
_stack__skip_one = 152
_stack__unquote = 72
_stack__validate_one = 152
_stack__validate_utf8 = 48
_stack__validate_utf8_fast = 176
_stack__value = 352
_stack__vnumber = 264
_stack__atof_eisel_lemire64 = 40
_stack__atof_native = 144
_stack__decimal_to_f64 = 88
_stack__left_shift = 32
_stack__right_shift = 16
_stack__value = 328
_stack__vnumber = 240
_stack__atof_eisel_lemire64 = 32
_stack__atof_native = 136
_stack__decimal_to_f64 = 80
_stack__right_shift = 8
_stack__left_shift = 24
_stack__vsigned = 16
_stack__vstring = 104
_stack__vunsigned = 24
_stack__vstring = 112
_stack__vunsigned = 8
)
const (
_size__f32toa = 3792
_size__f64toa = 3248
_size__format_significand = 480
_size__f32toa = 3392
_size__f64toa = 2848
_size__format_significand = 464
_size__format_integer = 432
_size__fsm_exec = 1380
_size__get_by_path = 2176
_size__fsm_exec = 1468
_size__advance_ns = 496
_size__advance_string = 1040
_size__advance_string_default = 800
_size__do_skip_number = 1300
_size__get_by_path = 1344
_size__skip_one_fast = 2360
_size__unescape = 704
_size__unhex16_is = 144
_size__html_escape = 2048
_size__i64toa = 272
_size__u64toa = 1408
_size__lspace = 256
_size__quote = 2896
_size__advance_string = 1088
_size__advance_string_default = 768
_size__do_skip_number = 1360
_size__skip_one_fast = 2428
_size__html_escape = 2064
_size__i64toa = 48
_size__u64toa = 1248
_size__lspace = 224
_size__quote = 2736
_size__skip_array = 48
_size__skip_number = 160
_size__skip_object = 48
_size__skip_one = 48
_size__unquote = 2560
_size__unquote = 2480
_size__validate_one = 64
_size__validate_utf8 = 688
_size__validate_utf8_fast = 2672
_size__value = 992
_size__vnumber = 1648
_size__atof_eisel_lemire64 = 416
_size__validate_utf8 = 672
_size__validate_utf8_fast = 2608
_size__value = 1000
_size__vnumber = 1552
_size__atof_eisel_lemire64 = 368
_size__atof_native = 608
_size__decimal_to_f64 = 1472
_size__left_shift = 544
_size__right_shift = 496
_size__vsigned = 368
_size__decimal_to_f64 = 1712
_size__right_shift = 416
_size__left_shift = 496
_size__vsigned = 320
_size__vstring = 144
_size__vunsigned = 368
_size__vunsigned = 336
)
var (
@ -132,16 +126,14 @@
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{3734, 64},
{3738, 48},
{3739, 40},
{3741, 32},
{3743, 24},
{3745, 16},
{3747, 8},
{3751, 0},
{3781, 64},
{3350, 48},
{3351, 40},
{3353, 32},
{3355, 24},
{3357, 16},
{3359, 8},
{3363, 0},
{3385, 48},
}
_pcsp__f64toa = [][2]uint32{
{1, 0},
@ -151,24 +143,24 @@
{10, 32},
{12, 40},
{13, 48},
{3124, 56},
{3128, 48},
{3129, 40},
{3131, 32},
{3133, 24},
{3135, 16},
{3137, 8},
{3141, 0},
{3234, 56},
{2788, 56},
{2792, 48},
{2793, 40},
{2795, 32},
{2797, 24},
{2799, 16},
{2801, 8},
{2805, 0},
{2843, 56},
}
_pcsp__format_significand = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{468, 24},
{469, 16},
{471, 8},
{473, 0},
{452, 24},
{453, 16},
{455, 8},
{457, 0},
}
_pcsp__format_integer = [][2]uint32{
{1, 0},
@ -180,78 +172,6 @@
{424, 8},
{426, 0},
}
_pcsp__fsm_exec = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{1017, 88},
{1021, 48},
{1022, 40},
{1024, 32},
{1026, 24},
{1028, 16},
{1030, 8},
{1031, 0},
{1380, 88},
}
_pcsp__advance_ns = [][2]uint32{
{1, 0},
{442, 8},
{446, 0},
{467, 8},
{471, 0},
{489, 8},
}
_pcsp__advance_string = [][2]uint32{
{14, 0},
{18, 8},
{20, 16},
{22, 24},
{24, 32},
{26, 40},
{396, 48},
{397, 40},
{399, 32},
{401, 24},
{403, 16},
{405, 8},
{409, 0},
{1031, 48},
}
_pcsp__advance_string_default = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{314, 48},
{315, 40},
{317, 32},
{319, 24},
{321, 16},
{323, 8},
{327, 0},
{786, 48},
}
_pcsp__do_skip_number = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{1253, 40},
{1254, 32},
{1256, 24},
{1258, 16},
{1260, 8},
{1264, 0},
{1300, 40},
}
_pcsp__get_by_path = [][2]uint32{
{1, 0},
{4, 8},
@ -260,15 +180,90 @@
{10, 32},
{12, 40},
{13, 48},
{1293, 120},
{1297, 48},
{1298, 40},
{1300, 32},
{1302, 24},
{1304, 16},
{1306, 8},
{1307, 0},
{1344, 120},
{2049, 88},
{2053, 48},
{2054, 40},
{2056, 32},
{2058, 24},
{2060, 16},
{2062, 8},
{2063, 0},
{2170, 88},
}
_pcsp__fsm_exec = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{1157, 88},
{1161, 48},
{1162, 40},
{1164, 32},
{1166, 24},
{1168, 16},
{1170, 8},
{1171, 0},
{1468, 88},
}
_pcsp__advance_ns = [][2]uint32{
{1, 0},
{453, 8},
{457, 0},
{481, 8},
{486, 0},
}
_pcsp__advance_string = [][2]uint32{
{14, 0},
{18, 8},
{20, 16},
{22, 24},
{24, 32},
{26, 40},
{27, 48},
{433, 56},
{437, 48},
{438, 40},
{440, 32},
{442, 24},
{444, 16},
{446, 8},
{450, 0},
{1078, 56},
}
_pcsp__advance_string_default = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{332, 48},
{333, 40},
{335, 32},
{337, 24},
{339, 16},
{341, 8},
{345, 0},
{757, 48},
}
_pcsp__do_skip_number = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{1274, 48},
{1275, 40},
{1277, 32},
{1279, 24},
{1281, 16},
{1283, 8},
{1287, 0},
{1360, 48},
}
_pcsp__skip_one_fast = [][2]uint32{
{1, 0},
@ -278,43 +273,14 @@
{10, 32},
{12, 40},
{13, 48},
{396, 176},
{397, 168},
{399, 160},
{401, 152},
{403, 144},
{405, 136},
{409, 128},
{2360, 176},
}
_pcsp__unescape = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{246, 56},
{250, 48},
{251, 40},
{253, 32},
{255, 24},
{257, 16},
{259, 8},
{260, 0},
{695, 56},
}
_pcsp__unhex16_is = [][2]uint32{
{1, 0},
{35, 8},
{36, 0},
{62, 8},
{63, 0},
{97, 8},
{98, 0},
{121, 8},
{123, 0},
{418, 176},
{419, 168},
{421, 160},
{423, 152},
{425, 144},
{427, 136},
{431, 128},
{2428, 176},
}
_pcsp__html_escape = [][2]uint32{
{1, 0},
@ -324,52 +290,39 @@
{10, 32},
{12, 40},
{13, 48},
{2017, 72},
{2021, 48},
{2022, 40},
{2024, 32},
{2026, 24},
{2028, 16},
{2030, 8},
{2035, 0},
{2045, 72},
{2049, 48},
{2050, 40},
{2052, 32},
{2054, 24},
{2056, 16},
{2058, 8},
{2063, 0},
}
_pcsp__i64toa = [][2]uint32{
{1, 0},
{171, 8},
{172, 0},
{207, 8},
{208, 0},
{222, 8},
{223, 0},
{247, 8},
{248, 0},
{253, 8},
{259, 0},
{14, 0},
{34, 8},
{36, 0},
}
_pcsp__u64toa = [][2]uint32{
{13, 0},
{162, 8},
{163, 0},
{175, 8},
{240, 0},
{498, 8},
{499, 0},
{519, 8},
{592, 0},
{852, 8},
{928, 0},
{1376, 8},
{1378, 0},
{1, 0},
{161, 8},
{162, 0},
{457, 8},
{458, 0},
{758, 8},
{759, 0},
{1225, 8},
{1227, 0},
}
_pcsp__lspace = [][2]uint32{
{1, 0},
{186, 8},
{190, 0},
{199, 8},
{203, 0},
{210, 8},
{214, 0},
{232, 8},
{184, 8},
{188, 0},
{204, 8},
{208, 0},
{215, 8},
{220, 0},
}
_pcsp__quote = [][2]uint32{
{1, 0},
@ -379,15 +332,15 @@
{10, 32},
{12, 40},
{13, 48},
{2828, 72},
{2832, 48},
{2833, 40},
{2835, 32},
{2837, 24},
{2839, 16},
{2841, 8},
{2845, 0},
{2876, 72},
{2687, 56},
{2691, 48},
{2692, 40},
{2694, 32},
{2696, 24},
{2698, 16},
{2700, 8},
{2704, 0},
{2731, 56},
}
_pcsp__skip_array = [][2]uint32{
{1, 0},
@ -419,8 +372,8 @@
}
_pcsp__skip_one = [][2]uint32{
{1, 0},
{28, 8},
{34, 0},
{30, 8},
{36, 0},
}
_pcsp__unquote = [][2]uint32{
{1, 0},
@ -430,20 +383,20 @@
{10, 32},
{12, 40},
{13, 48},
{1836, 104},
{1840, 48},
{1841, 40},
{1843, 32},
{1845, 24},
{1847, 16},
{1849, 8},
{1853, 0},
{2554, 104},
{79, 72},
{83, 48},
{84, 40},
{86, 32},
{88, 24},
{90, 16},
{92, 8},
{96, 0},
{2464, 72},
}
_pcsp__validate_one = [][2]uint32{
{1, 0},
{33, 8},
{39, 0},
{35, 8},
{41, 0},
}
_pcsp__validate_utf8 = [][2]uint32{
{1, 0},
@ -452,26 +405,26 @@
{8, 24},
{10, 32},
{11, 40},
{639, 48},
{643, 40},
{644, 32},
{646, 24},
{648, 16},
{650, 8},
{651, 0},
{682, 48},
{623, 48},
{627, 40},
{628, 32},
{630, 24},
{632, 16},
{634, 8},
{635, 0},
{666, 48},
}
_pcsp__validate_utf8_fast = [][2]uint32{
{1, 0},
{4, 8},
{5, 16},
{1706, 176},
{1707, 168},
{1711, 160},
{2003, 176},
{2004, 168},
{2008, 160},
{2656, 176},
{1738, 176},
{1739, 168},
{1743, 160},
{2018, 176},
{2019, 168},
{2023, 160},
{2600, 176},
}
_pcsp__value = [][2]uint32{
{1, 0},
@ -481,14 +434,14 @@
{10, 32},
{12, 40},
{13, 48},
{974, 88},
{978, 48},
{979, 40},
{981, 32},
{983, 24},
{985, 16},
{987, 8},
{992, 0},
{982, 88},
{986, 48},
{987, 40},
{989, 32},
{991, 24},
{993, 16},
{995, 8},
{1000, 0},
}
_pcsp__vnumber = [][2]uint32{
{1, 0},
@ -498,36 +451,34 @@
{10, 32},
{12, 40},
{13, 48},
{150, 120},
{154, 48},
{155, 40},
{157, 32},
{159, 24},
{161, 16},
{163, 8},
{164, 0},
{1638, 120},
{803, 104},
{807, 48},
{808, 40},
{810, 32},
{812, 24},
{814, 16},
{816, 8},
{817, 0},
{1547, 104},
}
_pcsp__atof_eisel_lemire64 = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{315, 40},
{316, 32},
{318, 24},
{320, 16},
{322, 8},
{323, 0},
{387, 40},
{292, 32},
{293, 24},
{295, 16},
{297, 8},
{298, 0},
{362, 32},
}
_pcsp__atof_native = [][2]uint32{
{1, 0},
{4, 8},
{596, 56},
{600, 8},
{602, 0},
{587, 56},
{591, 8},
{593, 0},
}
_pcsp__decimal_to_f64 = [][2]uint32{
{1, 0},
@ -537,62 +488,60 @@
{10, 32},
{12, 40},
{13, 48},
{1431, 56},
{1435, 48},
{1436, 40},
{1438, 32},
{1440, 24},
{1442, 16},
{1444, 8},
{1448, 0},
{1460, 56},
{1673, 56},
{1677, 48},
{1678, 40},
{1680, 32},
{1682, 24},
{1684, 16},
{1686, 8},
{1690, 0},
{1702, 56},
}
_pcsp__right_shift = [][2]uint32{
{1, 0},
{318, 8},
{319, 0},
{387, 8},
{388, 0},
{396, 8},
{398, 0},
}
_pcsp__left_shift = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{418, 32},
{419, 24},
{421, 16},
{423, 8},
{424, 0},
{539, 32},
}
_pcsp__right_shift = [][2]uint32{
{1, 0},
{4, 8},
{452, 16},
{453, 8},
{454, 0},
{462, 16},
{463, 8},
{464, 0},
{472, 16},
{363, 24},
{364, 16},
{366, 8},
{367, 0},
{470, 24},
{471, 16},
{473, 8},
{475, 0},
{474, 0},
{486, 24},
}
_pcsp__vsigned = [][2]uint32{
{1, 0},
{4, 8},
{113, 16},
{114, 8},
{115, 0},
{126, 16},
{127, 8},
{128, 0},
{278, 16},
{279, 8},
{280, 0},
{284, 16},
{285, 8},
{286, 0},
{340, 16},
{341, 8},
{342, 0},
{353, 16},
{354, 8},
{356, 0},
{112, 16},
{113, 8},
{114, 0},
{125, 16},
{126, 8},
{127, 0},
{260, 16},
{261, 8},
{262, 0},
{266, 16},
{267, 8},
{268, 0},
{306, 16},
{307, 8},
{308, 0},
{316, 16},
{317, 8},
{319, 0},
}
_pcsp__vstring = [][2]uint32{
{1, 0},
@ -611,32 +560,18 @@
}
_pcsp__vunsigned = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{74, 24},
{75, 16},
{77, 8},
{78, 0},
{89, 24},
{90, 16},
{92, 8},
{93, 0},
{116, 24},
{117, 16},
{119, 8},
{120, 0},
{281, 24},
{282, 16},
{284, 8},
{285, 0},
{336, 24},
{337, 16},
{339, 8},
{340, 0},
{348, 24},
{349, 16},
{351, 8},
{353, 0},
{71, 8},
{72, 0},
{83, 8},
{84, 0},
{107, 8},
{108, 0},
{273, 8},
{274, 0},
{312, 8},
{313, 0},
{320, 8},
{322, 0},
}
)
@ -646,15 +581,13 @@
{"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa},
{"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand},
{"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer},
{"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path},
{"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec},
{"_advance_ns", _entry__advance_ns, _size__advance_ns, _stack__advance_ns, _pcsp__advance_ns},
{"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string},
{"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default},
{"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number},
{"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path},
{"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast},
{"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape},
{"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is},
{"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape},
{"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa},
{"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa},
@ -673,8 +606,8 @@
{"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64},
{"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native},
{"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64},
{"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift},
{"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift},
{"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift},
{"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned},
{"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring},
{"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned},

File diff suppressed because it is too large Load diff

View file

@ -93,6 +93,8 @@
__F64toa func(out unsafe.Pointer, val float64) (ret int)
__F32toa func(out unsafe.Pointer, val float32) (ret int)
__ValidateUTF8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int)
__ValidateUTF8Fast func(s unsafe.Pointer) (ret int)
@ -153,6 +155,11 @@ func F64toa(out *byte, val float64) (ret int) {
return __F64toa(rt.NoEscape(unsafe.Pointer(out)), val)
}
//go:nosplit
func F32toa(out *byte, val float32) (ret int) {
return __F32toa(rt.NoEscape(unsafe.Pointer(out)), val)
}
//go:nosplit
func ValidateUTF8(s *string, p *int, m *types.StateMachine) (ret int) {
return __ValidateUTF8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)))
@ -165,7 +172,7 @@ func ValidateUTF8Fast(s *string) (ret int) {
var stubs = []loader.GoC{
{"_f64toa", &S_f64toa, &__F64toa},
{"_f32toa", &S_f32toa, nil},
{"_f32toa", &S_f32toa, &__F32toa},
{"_i64toa", &S_i64toa, &__I64toa},
{"_u64toa", &S_u64toa, &__U64toa},
{"_lspace", &S_lspace, nil},

View file

@ -0,0 +1,154 @@
/*
* 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 native
import (
`unsafe`
neon `github.com/bytedance/sonic/internal/native/neon`
`github.com/bytedance/sonic/internal/native/types`
)
const (
MaxFrameSize uintptr = 200
BufPaddingSize int = 64
)
var (
S_f64toa uintptr
S_f32toa uintptr
S_i64toa uintptr
S_u64toa uintptr
S_lspace uintptr
)
var (
S_quote uintptr
S_unquote uintptr
)
var (
S_value uintptr
S_vstring uintptr
S_vnumber uintptr
S_vsigned uintptr
S_vunsigned uintptr
)
var (
S_skip_one uintptr
S_skip_one_fast uintptr
S_get_by_path uintptr
S_skip_array uintptr
S_skip_object uintptr
S_skip_number uintptr
)
//go:nosplit
//go:noescape
//go:linkname Quote github.com/bytedance/sonic/internal/native/neon.__quote
func Quote(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) int
//go:nosplit
//go:noescape
//go:linkname Unquote github.com/bytedance/sonic/internal/native/neon.__unquote
func Unquote(s unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) int
//go:nosplit
//go:noescape
//go:linkname HTMLEscape github.com/bytedance/sonic/internal/native/neon.__html_escape
func HTMLEscape(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) int
//go:nosplit
//go:noescape
//go:linkname Value github.com/bytedance/sonic/internal/native/neon.__value
func Value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) int
//go:nosplit
//go:noescape
//go:linkname SkipOne github.com/bytedance/sonic/internal/native/neon.__skip_one
func SkipOne(s *string, p *int, m *types.StateMachine, flags uint64) int
//go:nosplit
//go:noescape
//go:linkname SkipOneFast github.com/bytedance/sonic/internal/native/neon.__skip_one_fast
func SkipOneFast(s *string, p *int) int
//go:nosplit
//go:noescape
//go:linkname GetByPath github.com/bytedance/sonic/internal/native/neon.__get_by_path
func GetByPath(s *string, p *int, path *[]interface{}, m *types.StateMachine) int
//go:nosplit
//go:noescape
//go:linkname ValidateOne github.com/bytedance/sonic/internal/native/neon.__validate_one
func ValidateOne(s *string, p *int, m *types.StateMachine) int
//go:nosplit
//go:noescape
//go:linkname I64toa github.com/bytedance/sonic/internal/native/neon.__i64toa
func I64toa(out *byte, val int64) (ret int)
//go:nosplit
//go:noescape
//go:linkname U64toa github.com/bytedance/sonic/internal/native/neon.__u64toa
func U64toa(out *byte, val uint64) (ret int)
//go:nosplit
//go:noescape
//go:linkname F64toa github.com/bytedance/sonic/internal/native/neon.__f64toa
func F64toa(out *byte, val float64) (ret int)
//go:nosplit
//go:noescape
//go:linkname F32toa github.com/bytedance/sonic/internal/native/neon.__f32toa
func F32toa(out *byte, val float32) (ret int)
//go:nosplit
//go:noescape
//go:linkname ValidateUTF8 github.com/bytedance/sonic/internal/native/neon.__validate_utf8
func ValidateUTF8(s *string, p *int, m *types.StateMachine) (ret int)
//go:nosplit
//go:noescape
//go:linkname ValidateUTF8Fast github.com/bytedance/sonic/internal/native/neon.__validate_utf8_fast
func ValidateUTF8Fast(s *string) (ret int)
func useNeon() {
S_f64toa = neon.S_f64toa
S_f32toa = neon.S_f32toa
S_i64toa = neon.S_i64toa
S_u64toa = neon.S_u64toa
S_lspace = neon.S_lspace
S_quote = neon.S_quote
S_unquote = neon.S_unquote
S_value = neon.S_value
S_vstring = neon.S_vstring
S_vnumber = neon.S_vnumber
S_vsigned = neon.S_vsigned
S_vunsigned = neon.S_vunsigned
S_skip_one = neon.S_skip_one
S_skip_one_fast = neon.S_skip_one_fast
S_skip_array = neon.S_skip_array
S_skip_object = neon.S_skip_object
S_skip_number = neon.S_skip_number
S_get_by_path = neon.S_get_by_path
}
func init() {
useNeon()
}

View file

@ -69,8 +69,6 @@ var (
__validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int)
__validate_utf8_fast func(s unsafe.Pointer) (ret int)
__fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int)
)
//go:nosplit
@ -183,7 +181,3 @@ func validate_utf8_fast(s *string) (ret int) {
return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s)))
}
//go:nosplit
func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) {
return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags)
}

View file

@ -0,0 +1,246 @@
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 {{PACKAGE}}
import (
`unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func i64toa(out *byte, val int64) (ret int) {
return __i64toa(out, val)
}
//go:nosplit
func u64toa(out *byte, val uint64) (ret int) {
return __u64toa(out, val)
}
//go:nosplit
func f64toa(out *byte, val float64) (ret int) {
return __f64toa(out, val)
}
//go:nosplit
func f32toa(out *byte, val float32) (ret int) {
return __f32toa(out, val)
}
//go:nosplit
func lspace(sp unsafe.Pointer, nb int, off int) (ret int) {
return __lspace(sp, nb, off)
}
//go:nosplit
func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) {
return __quote(sp, nb, dp, dn, flags)
}
//go:nosplit
func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) {
return __html_escape(sp, nb, dp, dn)
}
//go:nosplit
func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) {
return __unquote(sp, nb, dp, ep, flags)
}
//go:nosplit
func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) {
return __value(s, n, p, v, flags)
}
//go:nosplit
func vstring(s *string, p *int, v *types.JsonState, flags uint64) {
__vstring(s, p, v, flags)
}
//go:nosplit
func vnumber(s *string, p *int, v *types.JsonState) {
__vnumber(s, p, v)
}
//go:nosplit
func vsigned(s *string, p *int, v *types.JsonState) {
__vsigned(s, p, v)
}
//go:nosplit
func vunsigned(s *string, p *int, v *types.JsonState) {
__vunsigned(s, p, v)
}
//go:nosplit
func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) {
return __skip_one(s, p, m, flags)
}
//go:nosplit
func skip_one_fast(s *string, p *int) (ret int) {
return __skip_one_fast(s, p)
}
//go:nosplit
func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) {
return __skip_array(s, p, m, flags)
}
//go:nosplit
func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) {
return __skip_object(s, p, m, flags)
}
//go:nosplit
func skip_number(s *string, p *int) (ret int) {
return __skip_number(s, p)
}
//go:nosplit
func validate_one(s *string, p *int, m *types.StateMachine) (ret int) {
return __validate_one(s, p, m)
}
//go:nosplit
func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) {
return __get_by_path(s, p, path, m)
}
//go:nosplit
func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) {
return __validate_utf8(s, p, m)
}
//go:nosplit
func validate_utf8_fast(s *string) (ret int) {
return __validate_utf8_fast(s)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __i64toa(out *byte, val int64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __u64toa(out *byte, val uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __f64toa(out *byte, val float64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __f32toa(out *byte, val float32) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __lspace(sp unsafe.Pointer, nb int, off int) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vstring(s *string, p *int, v *types.JsonState, flags uint64)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vnumber(s *string, p *int, v *types.JsonState)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vsigned(s *string, p *int, v *types.JsonState)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vunsigned(s *string, p *int, v *types.JsonState)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_one_fast(s *string, p *int) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_number(s *string, p *int) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __validate_one(s *string, p *int, m *types.StateMachine) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __validate_utf8_fast(s *string) (ret int)

View file

@ -0,0 +1,47 @@
/*
* 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 {{PACKAGE}}
var (
S_f64toa = _subr__f64toa
S_f32toa = _subr__f32toa
S_i64toa = _subr__i64toa
S_u64toa = _subr__u64toa
S_lspace = _subr__lspace
)
var (
S_quote = _subr__quote
S_unquote = _subr__unquote
)
var (
S_value = _subr__value
S_vstring = _subr__vstring
S_vnumber = _subr__vnumber
S_vsigned = _subr__vsigned
S_vunsigned = _subr__vunsigned
)
var (
S_skip_one = _subr__skip_one
S_skip_one_fast = _subr__skip_one_fast
S_skip_array = _subr__skip_array
S_skip_object = _subr__skip_object
S_skip_number = _subr__skip_number
S_get_by_path = _subr__get_by_path
)

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func f32toa(out *byte, val float32) (ret int) {
return __f32toa(out, val)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __f32toa(out *byte, val float32) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __f32toa_entry__() uintptr
var (
_subr__f32toa uintptr = __f32toa_entry__() + 0
)
const (
_stack__f32toa = 32
)
var (
_ = _subr__f32toa
)
const (
_ = _stack__f32toa
)

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func f64toa(out *byte, val float64) (ret int) {
return __f64toa(out, val)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __f64toa(out *byte, val float64) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __f64toa_entry__() uintptr
var (
_subr__f64toa uintptr = __f64toa_entry__() + 0
)
const (
_stack__f64toa = 32
)
var (
_ = _subr__f64toa
)
const (
_ = _stack__f64toa
)

View file

@ -0,0 +1,35 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) {
return __get_by_path(s, p, path, m)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __get_by_path_entry__() uintptr
var (
_subr__get_by_path uintptr = __get_by_path_entry__() + 48
)
const (
_stack__get_by_path = 208
)
var (
_ = _subr__get_by_path
)
const (
_ = _stack__get_by_path
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
`unsafe`
// `github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) {
return __html_escape(sp, nb, dp, dn)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __html_escape_entry__() uintptr
var (
_subr__html_escape uintptr = __html_escape_entry__() + 32
)
const (
_stack__html_escape = 32
)
var (
_ = _subr__html_escape
)
const (
_ = _stack__html_escape
)

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func i64toa(out *byte, val int64) (ret int) {
return __i64toa(out, val)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __i64toa(out *byte, val int64) (ret int)

View file

@ -0,0 +1,985 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__i64toa_entry__(SB), NOSPLIT, $16
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 3, 0x00
lCPI0_0:
WORD $0x147b20c5
WORD $0x80003334
// // .word 8389
// .word 5243
// .word 13108
// .word 32768
lCPI0_1:
WORD $0x08000080
WORD $0x80002000
// // .word 128
// .word 2048
// .word 8192
// .word 32768
lCPI0_2:
WORD $0x08040201
WORD $0x80402010
WORD $0x08040201
WORD $0x80402010
// // .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
// .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
lCPI0_3:
WORD $0x09010800
WORD $0x0b030a02
WORD $0x0d050c04
WORD $0x0f070e06
// // .byte 0
// .byte 8
// .byte 1
// .byte 9
// .byte 2
// .byte 10
// .byte 3
// .byte 11
// .byte 4
// .byte 12
// .byte 5
// .byte 13
// .byte 6
// .byte 14
// .byte 7
// .byte 15
_i64toa:
WORD $0xd10083ff // sub sp, sp, #32
WORD $0xa900fbfd // stp fp, lr, [sp, #8]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xb7f80641 // tbnz x1, #63, LBB0_10 $200(%rip)
WORD $0xd344fc28 // lsr x8, x1, #4
WORD $0xf109c11f // cmp x8, #624
WORD $0x540008e8 // b.hi LBB0_13 $284(%rip)
WORD $0x53023c28 // ubfx w8, w1, #2, #14
WORD $0x52828f69 // mov w9, #5243
WORD $0x1b097d08 // mul w8, w8, w9
WORD $0x53117d08 // lsr w8, w8, #17
WORD $0xd37f7d09 // ubfiz x9, x8, #1, #32
WORD $0x52800c8a // mov w10, #100
WORD $0x1b0a8508 // msub w8, w8, w10, w1
WORD $0x92403d08 // and x8, x8, #0xffff
WORD $0xd37ff908 // lsl x8, x8, #1
WORD $0x710fa03f // cmp w1, #1000
WORD $0x540000e3 // b.lo LBB0_4 $28(%rip)
Lloh0:
WORD $0x100054ea // adr x10, _Digits $2716(%rip)
Lloh1:
WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
WORD $0x3869694a // ldrb w10, [x10, x9]
WORD $0x3900000a // strb w10, [x0]
WORD $0x5280002a // mov w10, #1
WORD $0x14000004 // b LBB0_6 $16(%rip)
LBB0_4:
WORD $0x7101903f // cmp w1, #100
WORD $0x540002e3 // b.lo LBB0_9 $92(%rip)
WORD $0x5280000a // mov w10, #0
LBB0_6:
Lloh2:
WORD $0x100053cb // adr x11, _Digits $2680(%rip)
Lloh3:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x8b294169 // add x9, x11, w9, uxtw
WORD $0x3940052b // ldrb w11, [x9, #1]
WORD $0x11000549 // add w9, w10, #1
WORD $0x382a480b // strb w11, [x0, w10, uxtw]
LBB0_7:
Lloh4:
WORD $0x1000530a // adr x10, _Digits $2656(%rip)
Lloh5:
WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
WORD $0x3868694b // ldrb w11, [x10, x8]
WORD $0x1100052a // add w10, w9, #1
WORD $0x3829480b // strb w11, [x0, w9, uxtw]
LBB0_8:
Lloh6:
WORD $0x10005269 // adr x9, _Digits $2636(%rip)
Lloh7:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x8b282128 // add x8, x9, w8, uxth
WORD $0x39400509 // ldrb w9, [x8, #1]
WORD $0x11000548 // add w8, w10, #1
WORD $0x382a4809 // strb w9, [x0, w10, uxtw]
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_9:
WORD $0x52800009 // mov w9, #0
WORD $0x5280000a // mov w10, #0
WORD $0x7100283f // cmp w1, #10
WORD $0x54fffdc2 // b.hs LBB0_7 $-72(%rip)
WORD $0x17fffff2 // b LBB0_8 $-56(%rip)
LBB0_10:
WORD $0x528005a9 // mov w9, #45
WORD $0xaa0003e8 // mov x8, x0
WORD $0x38001509 // strb w9, [x8], #1
WORD $0xcb0103e9 // neg x9, x1
WORD $0xd344fd2a // lsr x10, x9, #4
WORD $0xf109c15f // cmp x10, #624
WORD $0x54001068 // b.hi LBB0_28 $524(%rip)
WORD $0x53023d2a // ubfx w10, w9, #2, #14
WORD $0x52828f6b // mov w11, #5243
WORD $0x1b0b7d4a // mul w10, w10, w11
WORD $0x53117d4a // lsr w10, w10, #17
WORD $0xd37f7d4b // ubfiz x11, x10, #1, #32
WORD $0x52800c8c // mov w12, #100
WORD $0x1b0ca54a // msub w10, w10, w12, w9
WORD $0x92403d4a // and x10, x10, #0xffff
WORD $0xd37ff94a // lsl x10, x10, #1
WORD $0x710fa13f // cmp w9, #1000
WORD $0x540004e3 // b.lo LBB0_16 $156(%rip)
Lloh8:
WORD $0x10004e49 // adr x9, _Digits $2504(%rip)
Lloh9:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x386b6929 // ldrb w9, [x9, x11]
WORD $0x39000109 // strb w9, [x8]
WORD $0x52800029 // mov w9, #1
WORD $0x14000024 // b LBB0_18 $144(%rip)
LBB0_13:
WORD $0x529c2008 // mov w8, #57600
WORD $0x72a0bea8 // movk w8, #1525, lsl #16
WORD $0xeb08003f // cmp x1, x8
WORD $0x540011c2 // b.hs LBB0_31 $568(%rip)
WORD $0x5282eb28 // mov w8, #5977
WORD $0x72ba36e8 // movk w8, #53687, lsl #16
WORD $0x92407c29 // and x9, x1, #0xffffffff
WORD $0x9ba87d28 // umull x8, w9, w8
WORD $0xd36dfd08 // lsr x8, x8, #45
WORD $0x529bd06a // mov w10, #56963
WORD $0x72a8636a // movk w10, #17179, lsl #16
WORD $0x9baa7d29 // umull x9, w9, w10
WORD $0xd371fd29 // lsr x9, x9, #49
WORD $0x927f312a // and x10, x9, #0x3ffe
WORD $0x53023d09 // ubfx w9, w8, #2, #14
WORD $0x52828f6b // mov w11, #5243
WORD $0x1b0b7d29 // mul w9, w9, w11
WORD $0x53117d29 // lsr w9, w9, #17
WORD $0x52800c8b // mov w11, #100
WORD $0x1b0ba129 // msub w9, w9, w11, w8
WORD $0x92403d29 // and x9, x9, #0xffff
WORD $0xd37ff929 // lsl x9, x9, #1
WORD $0x5292cfeb // mov w11, #38527
WORD $0x72a0130b // movk w11, #152, lsl #16
WORD $0x6b0b003f // cmp w1, w11
WORD $0x54000409 // b.ls LBB0_21 $128(%rip)
Lloh10:
WORD $0x10004a4b // adr x11, _Digits $2376(%rip)
Lloh11:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x386a696b // ldrb w11, [x11, x10]
WORD $0x3900000b // strb w11, [x0]
WORD $0x5280002c // mov w12, #1
WORD $0x1400001f // b LBB0_23 $124(%rip)
LBB0_16:
WORD $0x7101913f // cmp w9, #100
WORD $0x540008a3 // b.lo LBB0_26 $276(%rip)
WORD $0x52800009 // mov w9, #0
LBB0_18:
Lloh12:
WORD $0x1000492c // adr x12, _Digits $2340(%rip)
Lloh13:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x8b2b418b // add x11, x12, w11, uxtw
WORD $0x3940056c // ldrb w12, [x11, #1]
WORD $0x1100052b // add w11, w9, #1
WORD $0x3829490c // strb w12, [x8, w9, uxtw]
LBB0_19:
Lloh14:
WORD $0x10004869 // adr x9, _Digits $2316(%rip)
Lloh15:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x386a6929 // ldrb w9, [x9, x10]
WORD $0x1100056c // add w12, w11, #1
WORD $0x382b4909 // strb w9, [x8, w11, uxtw]
LBB0_20:
Lloh16:
WORD $0x100047c9 // adr x9, _Digits $2296(%rip)
Lloh17:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x8b2a2129 // add x9, x9, w10, uxth
WORD $0x3940052a // ldrb w10, [x9, #1]
WORD $0x11000589 // add w9, w12, #1
WORD $0x382c490a // strb w10, [x8, w12, uxtw]
WORD $0x11000528 // add w8, w9, #1
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_21:
WORD $0x528847eb // mov w11, #16959
WORD $0x72a001eb // movk w11, #15, lsl #16
WORD $0x6b0b003f // cmp w1, w11
WORD $0x540005e9 // b.ls LBB0_27 $188(%rip)
WORD $0x5280000c // mov w12, #0
LBB0_23:
Lloh18:
WORD $0x100045cb // adr x11, _Digits $2232(%rip)
Lloh19:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x8b2a416a // add x10, x11, w10, uxtw
WORD $0x3940054a // ldrb w10, [x10, #1]
WORD $0x1100058b // add w11, w12, #1
WORD $0x382c480a // strb w10, [x0, w12, uxtw]
LBB0_24:
Lloh20:
WORD $0x1000450a // adr x10, _Digits $2208(%rip)
Lloh21:
WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
WORD $0x3869694c // ldrb w12, [x10, x9]
WORD $0x1100056a // add w10, w11, #1
WORD $0x382b480c // strb w12, [x0, w11, uxtw]
LBB0_25:
WORD $0x5284e20b // mov w11, #10000
WORD $0x1b0b8508 // msub w8, w8, w11, w1
WORD $0x53023d0b // ubfx w11, w8, #2, #14
WORD $0x52828f6c // mov w12, #5243
WORD $0x1b0c7d6b // mul w11, w11, w12
WORD $0x53117d6b // lsr w11, w11, #17
WORD $0x52800c8c // mov w12, #100
WORD $0x1b0ca168 // msub w8, w11, w12, w8
WORD $0x92403d08 // and x8, x8, #0xffff
WORD $0xd37ff908 // lsl x8, x8, #1
Lloh22:
WORD $0x1000432c // adr x12, _Digits $2148(%rip)
Lloh23:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x8b292189 // add x9, x12, w9, uxth
WORD $0x39400529 // ldrb w9, [x9, #1]
WORD $0x8b2a400d // add x13, x0, w10, uxtw
WORD $0x390001a9 // strb w9, [x13]
WORD $0x786b5989 // ldrh w9, [x12, w11, uxtw #1]
WORD $0x780011a9 // sturh w9, [x13, #1]
WORD $0x38686989 // ldrb w9, [x12, x8]
WORD $0x39000da9 // strb w9, [x13, #3]
WORD $0x927f3908 // and x8, x8, #0xfffe
WORD $0x8b080188 // add x8, x12, x8
WORD $0x39400509 // ldrb w9, [x8, #1]
WORD $0x11001548 // add w8, w10, #5
WORD $0x390011a9 // strb w9, [x13, #4]
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_26:
WORD $0x5280000b // mov w11, #0
WORD $0x5280000c // mov w12, #0
WORD $0x7100293f // cmp w9, #10
WORD $0x54fff802 // b.hs LBB0_19 $-256(%rip)
WORD $0x17ffffc4 // b LBB0_20 $-240(%rip)
LBB0_27:
WORD $0x5280000b // mov w11, #0
WORD $0x5280000a // mov w10, #0
WORD $0x53057c2c // lsr w12, w1, #5
WORD $0x7130d59f // cmp w12, #3125
WORD $0x54fffaa2 // b.hs LBB0_24 $-172(%rip)
WORD $0x17ffffd9 // b LBB0_25 $-156(%rip)
LBB0_28:
WORD $0x529c200a // mov w10, #57600
WORD $0x72a0beaa // movk w10, #1525, lsl #16
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54001662 // b.hs LBB0_39 $716(%rip)
WORD $0x5282eb2a // mov w10, #5977
WORD $0x72ba36ea // movk w10, #53687, lsl #16
WORD $0x9baa7d2a // umull x10, w9, w10
WORD $0xd36dfd4a // lsr x10, x10, #45
WORD $0x529bd06b // mov w11, #56963
WORD $0x72a8636b // movk w11, #17179, lsl #16
WORD $0x92407d2c // and x12, x9, #0xffffffff
WORD $0x9bab7d8b // umull x11, w12, w11
WORD $0xd371fd6b // lsr x11, x11, #49
WORD $0x927f316c // and x12, x11, #0x3ffe
WORD $0x53023d4b // ubfx w11, w10, #2, #14
WORD $0x52828f6d // mov w13, #5243
WORD $0x1b0d7d6b // mul w11, w11, w13
WORD $0x53117d6b // lsr w11, w11, #17
WORD $0x52800c8d // mov w13, #100
WORD $0x1b0da96b // msub w11, w11, w13, w10
WORD $0x92403d6b // and x11, x11, #0xffff
WORD $0xd37ff96b // lsl x11, x11, #1
WORD $0x5292cfed // mov w13, #38527
WORD $0x72a0130d // movk w13, #152, lsl #16
WORD $0x6b0d013f // cmp w9, w13
WORD $0x54000d29 // b.ls LBB0_33 $420(%rip)
Lloh24:
WORD $0x10003c2d // adr x13, _Digits $1924(%rip)
Lloh25:
WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
WORD $0x386c69ad // ldrb w13, [x13, x12]
WORD $0x3900010d // strb w13, [x8]
WORD $0x5280002e // mov w14, #1
WORD $0x14000068 // b LBB0_35 $416(%rip)
LBB0_31:
WORD $0xd2adf82a // mov x10, #1874919424
WORD $0xf2d0de4a // movk x10, #34546, lsl #32
WORD $0xf2e0046a // movk x10, #35, lsl #48
WORD $0xeb0a003f // cmp x1, x10
WORD $0x54001ea2 // b.hs LBB0_41 $980(%rip)
WORD $0xd299dfa9 // mov x9, #52989
WORD $0xf2b08c29 // movk x9, #33889, lsl #16
WORD $0xf2cee229 // movk x9, #30481, lsl #32
WORD $0xf2f57989 // movk x9, #43980, lsl #48
WORD $0x9bc97c29 // umulh x9, x1, x9
WORD $0xd35afd29 // lsr x9, x9, #26
WORD $0x1b088528 // msub w8, w9, w8, w1
WORD $0x6f00e400 // movi.2d v0, #0000000000000000
WORD $0x6f00e401 // movi.2d v1, #0000000000000000
WORD $0x4e041d21 // mov.s v1[0], w9
WORD $0x0ea12822 // xtn.2s v2, v1
WORD $0x5282eb29 // mov w9, #5977
WORD $0x72ba36e9 // movk w9, #53687, lsl #16
WORD $0x0e040d23 // dup.2s v3, w9
WORD $0x2ea3c042 // umull.2d v2, v2, v3
WORD $0x6f530442 // ushr.2d v2, v2, #45
WORD $0x0ea12844 // xtn.2s v4, v2
WORD $0x5284e209 // mov w9, #10000
WORD $0x0e040d25 // dup.2s v5, w9
WORD $0x2ea5c084 // umull.2d v4, v4, v5
WORD $0x6ea48421 // sub.4s v1, v1, v4
WORD $0x4e413841 // zip1.8h v1, v2, v1
WORD $0x4f425421 // shl.2d v1, v1, #2
WORD $0x4e413821 // zip1.8h v1, v1, v1
WORD $0x4e813821 // zip1.4s v1, v1, v1
Lloh26:
WORD $0x10ffdee9 // adr x9, lCPI0_0 $-1060(%rip)
Lloh27:
WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x2e62c024 // umull.4s v4, v1, v2
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e62c021 // umull.4s v1, v1, v2
WORD $0x4e415881 // uzp2.8h v1, v4, v1
Lloh28:
WORD $0x10ffde69 // adr x9, lCPI0_1 $-1076(%rip)
Lloh29:
WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x2e64c026 // umull.4s v6, v1, v4
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e64c021 // umull.4s v1, v1, v4
WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
WORD $0x4f008546 // movi.8h v6, #10
WORD $0x4e669c27 // mul.8h v7, v1, v6
WORD $0x4f5054e7 // shl.2d v7, v7, #16
WORD $0x6e678421 // sub.8h v1, v1, v7
WORD $0x4e041d00 // mov.s v0[0], w8
WORD $0x0ea12807 // xtn.2s v7, v0
WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
WORD $0x6f530463 // ushr.2d v3, v3, #45
WORD $0x0ea12867 // xtn.2s v7, v3
WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
WORD $0x6ea58400 // sub.4s v0, v0, v5
WORD $0x4e403860 // zip1.8h v0, v3, v0
WORD $0x4f425400 // shl.2d v0, v0, #2
WORD $0x4e403800 // zip1.8h v0, v0, v0
WORD $0x4e803800 // zip1.4s v0, v0, v0
WORD $0x2e62c003 // umull.4s v3, v0, v2
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e62c000 // umull.4s v0, v0, v2
WORD $0x4e405860 // uzp2.8h v0, v3, v0
WORD $0x2e64c002 // umull.4s v2, v0, v4
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e64c000 // umull.4s v0, v0, v4
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x4e669c02 // mul.8h v2, v0, v6
WORD $0x4f505442 // shl.2d v2, v2, #16
WORD $0x6e628400 // sub.8h v0, v0, v2
WORD $0x2e212821 // sqxtun.8b v1, v1
WORD $0x6e212801 // sqxtun2.16b v1, v0
WORD $0x4f01e600 // movi.16b v0, #48
WORD $0x4e208420 // add.16b v0, v1, v0
WORD $0x4e209821 // cmeq.16b v1, v1, #0
Lloh30:
WORD $0x10ffda08 // adr x8, lCPI0_2 $-1216(%rip)
Lloh31:
WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip)
WORD $0x4e221c21 // and.16b v1, v1, v2
Lloh32:
WORD $0x10ffda28 // adr x8, lCPI0_3 $-1212(%rip)
Lloh33:
WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip)
WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
WORD $0x4e71b821 // addv.8h h1, v1
WORD $0x1e260028 // fmov w8, s1
WORD $0x2a2803e8 // mvn w8, w8
WORD $0x32114108 // orr w8, w8, #0xffff8000
WORD $0x5ac00108 // rbit w8, w8
WORD $0x5ac01108 // clz w8, w8
Lloh34:
WORD $0x10003709 // adr x9, _VecShiftShuffles $1760(%rip)
Lloh35:
WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip)
WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4]
WORD $0x4f04e5e2 // movi.16b v2, #143
WORD $0x4e221c21 // and.16b v1, v1, v2
WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
WORD $0x3d800000 // str q0, [x0]
WORD $0x52800209 // mov w9, #16
WORD $0x4b080128 // sub w8, w9, w8
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_33:
WORD $0x528847ed // mov w13, #16959
WORD $0x72a001ed // movk w13, #15, lsl #16
WORD $0x6b0d013f // cmp w9, w13
WORD $0x54000569 // b.ls LBB0_38 $172(%rip)
WORD $0x5280000e // mov w14, #0
LBB0_35:
Lloh36:
WORD $0x10002e8d // adr x13, _Digits $1488(%rip)
Lloh37:
WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
WORD $0x8b2c41ac // add x12, x13, w12, uxtw
WORD $0x3940058c // ldrb w12, [x12, #1]
WORD $0x110005cd // add w13, w14, #1
WORD $0x382e490c // strb w12, [x8, w14, uxtw]
LBB0_36:
Lloh38:
WORD $0x10002dcc // adr x12, _Digits $1464(%rip)
Lloh39:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x386b698e // ldrb w14, [x12, x11]
WORD $0x110005ac // add w12, w13, #1
WORD $0x382d490e // strb w14, [x8, w13, uxtw]
LBB0_37:
WORD $0x5284e20d // mov w13, #10000
WORD $0x1b0da549 // msub w9, w10, w13, w9
WORD $0x53023d2a // ubfx w10, w9, #2, #14
WORD $0x52828f6d // mov w13, #5243
WORD $0x1b0d7d4a // mul w10, w10, w13
WORD $0x53117d4a // lsr w10, w10, #17
WORD $0x52800c8d // mov w13, #100
WORD $0x1b0da549 // msub w9, w10, w13, w9
WORD $0x92403d29 // and x9, x9, #0xffff
WORD $0xd37ff929 // lsl x9, x9, #1
Lloh40:
WORD $0x10002bed // adr x13, _Digits $1404(%rip)
Lloh41:
WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
WORD $0x8b2b21ab // add x11, x13, w11, uxth
WORD $0x3940056b // ldrb w11, [x11, #1]
WORD $0x8b2c4108 // add x8, x8, w12, uxtw
WORD $0x3900010b // strb w11, [x8]
WORD $0x786a59aa // ldrh w10, [x13, w10, uxtw #1]
WORD $0x7800110a // sturh w10, [x8, #1]
WORD $0x386969aa // ldrb w10, [x13, x9]
WORD $0x39000d0a // strb w10, [x8, #3]
WORD $0x927f3929 // and x9, x9, #0xfffe
WORD $0x8b0901a9 // add x9, x13, x9
WORD $0x3940052a // ldrb w10, [x9, #1]
WORD $0x11001589 // add w9, w12, #5
WORD $0x3900110a // strb w10, [x8, #4]
WORD $0x11000528 // add w8, w9, #1
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_38:
WORD $0x5280000d // mov w13, #0
WORD $0x5280000c // mov w12, #0
WORD $0x53057d2e // lsr w14, w9, #5
WORD $0x7130d5df // cmp w14, #3125
WORD $0x54fffb22 // b.hs LBB0_36 $-156(%rip)
WORD $0x17ffffdd // b LBB0_37 $-140(%rip)
LBB0_39:
WORD $0xd2adf82c // mov x12, #1874919424
WORD $0xf2d0de4c // movk x12, #34546, lsl #32
WORD $0xf2e0046c // movk x12, #35, lsl #48
WORD $0xeb0c013f // cmp x9, x12
WORD $0x540019e2 // b.hs LBB0_47 $828(%rip)
WORD $0xd299dfab // mov x11, #52989
WORD $0xf2b08c2b // movk x11, #33889, lsl #16
WORD $0xf2cee22b // movk x11, #30481, lsl #32
WORD $0xf2f5798b // movk x11, #43980, lsl #48
WORD $0x9bcb7d2b // umulh x11, x9, x11
WORD $0xd35afd6b // lsr x11, x11, #26
WORD $0x1b0aa569 // msub w9, w11, w10, w9
WORD $0x6f00e400 // movi.2d v0, #0000000000000000
WORD $0x6f00e401 // movi.2d v1, #0000000000000000
WORD $0x4e041d61 // mov.s v1[0], w11
WORD $0x0ea12822 // xtn.2s v2, v1
WORD $0x5282eb2a // mov w10, #5977
WORD $0x72ba36ea // movk w10, #53687, lsl #16
WORD $0x0e040d43 // dup.2s v3, w10
WORD $0x2ea3c042 // umull.2d v2, v2, v3
WORD $0x6f530442 // ushr.2d v2, v2, #45
WORD $0x0ea12844 // xtn.2s v4, v2
WORD $0x5284e20a // mov w10, #10000
WORD $0x0e040d45 // dup.2s v5, w10
WORD $0x2ea5c084 // umull.2d v4, v4, v5
WORD $0x6ea48421 // sub.4s v1, v1, v4
WORD $0x4e413841 // zip1.8h v1, v2, v1
WORD $0x4f425421 // shl.2d v1, v1, #2
WORD $0x4e413821 // zip1.8h v1, v1, v1
WORD $0x4e813821 // zip1.4s v1, v1, v1
Lloh42:
WORD $0x10ffcc2a // adr x10, lCPI0_0 $-1660(%rip)
Lloh43:
WORD $0xfd400142 // ldr d2, [x10, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x2e62c024 // umull.4s v4, v1, v2
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e62c021 // umull.4s v1, v1, v2
WORD $0x4e415881 // uzp2.8h v1, v4, v1
Lloh44:
WORD $0x10ffcbaa // adr x10, lCPI0_1 $-1676(%rip)
Lloh45:
WORD $0xfd400144 // ldr d4, [x10, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x2e64c026 // umull.4s v6, v1, v4
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e64c021 // umull.4s v1, v1, v4
WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
WORD $0x4f008546 // movi.8h v6, #10
WORD $0x4e669c27 // mul.8h v7, v1, v6
WORD $0x4f5054e7 // shl.2d v7, v7, #16
WORD $0x6e678421 // sub.8h v1, v1, v7
WORD $0x4e041d20 // mov.s v0[0], w9
WORD $0x0ea12807 // xtn.2s v7, v0
WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
WORD $0x6f530463 // ushr.2d v3, v3, #45
WORD $0x0ea12867 // xtn.2s v7, v3
WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
WORD $0x6ea58400 // sub.4s v0, v0, v5
WORD $0x4e403860 // zip1.8h v0, v3, v0
WORD $0x4f425400 // shl.2d v0, v0, #2
WORD $0x4e403800 // zip1.8h v0, v0, v0
WORD $0x4e803800 // zip1.4s v0, v0, v0
WORD $0x2e62c003 // umull.4s v3, v0, v2
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e62c000 // umull.4s v0, v0, v2
WORD $0x4e405860 // uzp2.8h v0, v3, v0
WORD $0x2e64c002 // umull.4s v2, v0, v4
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e64c000 // umull.4s v0, v0, v4
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x4e669c02 // mul.8h v2, v0, v6
WORD $0x4f505442 // shl.2d v2, v2, #16
WORD $0x6e628400 // sub.8h v0, v0, v2
WORD $0x2e212821 // sqxtun.8b v1, v1
WORD $0x6e212801 // sqxtun2.16b v1, v0
WORD $0x4f01e600 // movi.16b v0, #48
WORD $0x4e208420 // add.16b v0, v1, v0
WORD $0x4e209821 // cmeq.16b v1, v1, #0
Lloh46:
WORD $0x10ffc749 // adr x9, lCPI0_2 $-1816(%rip)
Lloh47:
WORD $0x3dc00122 // ldr q2, [x9, lCPI0_2@PAGEOFF] $0(%rip)
WORD $0x4e221c21 // and.16b v1, v1, v2
Lloh48:
WORD $0x10ffc769 // adr x9, lCPI0_3 $-1812(%rip)
Lloh49:
WORD $0x3dc00122 // ldr q2, [x9, lCPI0_3@PAGEOFF] $0(%rip)
WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
WORD $0x4e71b821 // addv.8h h1, v1
WORD $0x1e260029 // fmov w9, s1
WORD $0x2a2903e9 // mvn w9, w9
WORD $0x32114129 // orr w9, w9, #0xffff8000
WORD $0x5ac00129 // rbit w9, w9
WORD $0x5ac01129 // clz w9, w9
Lloh50:
WORD $0x1000244a // adr x10, _VecShiftShuffles $1160(%rip)
Lloh51:
WORD $0x9100014a // add x10, x10, _VecShiftShuffles@PAGEOFF $0(%rip)
WORD $0x3ce95941 // ldr q1, [x10, w9, uxtw #4]
WORD $0x4f04e5e2 // movi.16b v2, #143
WORD $0x4e221c21 // and.16b v1, v1, v2
WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
WORD $0x3d800100 // str q0, [x8]
WORD $0x52800208 // mov w8, #16
WORD $0x4b090109 // sub w9, w8, w9
WORD $0x11000528 // add w8, w9, #1
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_41:
WORD $0xd28f0ae9 // mov x9, #30807
WORD $0xf2b62269 // movk x9, #45331, lsl #16
WORD $0xf2cca5e9 // movk x9, #25903, lsl #32
WORD $0xf2e734a9 // movk x9, #14757, lsl #48
WORD $0x9bc97c29 // umulh x9, x1, x9
WORD $0xd373fd2b // lsr x11, x9, #51
WORD $0x7100257f // cmp w11, #9
WORD $0x540000a8 // b.hi LBB0_43 $20(%rip)
WORD $0x1100c169 // add w9, w11, #48
WORD $0x39000009 // strb w9, [x0]
WORD $0x52800029 // mov w9, #1
WORD $0x1400001b // b LBB0_46 $108(%rip)
LBB0_43:
WORD $0x71018d7f // cmp w11, #99
WORD $0x540000e8 // b.hi LBB0_45 $28(%rip)
Lloh52:
WORD $0x10001a89 // adr x9, _Digits $848(%rip)
Lloh53:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1]
WORD $0x79000009 // strh w9, [x0]
WORD $0x52800049 // mov w9, #2
WORD $0x14000013 // b LBB0_46 $76(%rip)
LBB0_45:
WORD $0x5280a3e9 // mov w9, #1311
WORD $0x1b097d69 // mul w9, w11, w9
WORD $0x53117d29 // lsr w9, w9, #17
WORD $0x321c052c // orr w12, w9, #0x30
WORD $0x3900000c // strb w12, [x0]
WORD $0x52800c8c // mov w12, #100
WORD $0x1b0cad29 // msub w9, w9, w12, w11
WORD $0x92403d29 // and x9, x9, #0xffff
WORD $0xd37ff929 // lsl x9, x9, #1
Lloh54:
WORD $0x100018ac // adr x12, _Digits $788(%rip)
Lloh55:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x3869698d // ldrb w13, [x12, x9]
WORD $0x3900040d // strb w13, [x0, #1]
WORD $0x927f3929 // and x9, x9, #0xfffe
WORD $0x8b090189 // add x9, x12, x9
WORD $0x39400529 // ldrb w9, [x9, #1]
WORD $0x39000809 // strb w9, [x0, #2]
WORD $0x52800069 // mov w9, #3
LBB0_46:
WORD $0x9b0a856a // msub x10, x11, x10, x1
WORD $0xd299dfab // mov x11, #52989
WORD $0xf2b08c2b // movk x11, #33889, lsl #16
WORD $0xf2cee22b // movk x11, #30481, lsl #32
WORD $0xf2f5798b // movk x11, #43980, lsl #48
WORD $0x9bcb7d4b // umulh x11, x10, x11
WORD $0xd35afd6b // lsr x11, x11, #26
WORD $0x6f00e400 // movi.2d v0, #0000000000000000
WORD $0x6f00e401 // movi.2d v1, #0000000000000000
WORD $0x4e041d61 // mov.s v1[0], w11
WORD $0x5282eb2c // mov w12, #5977
WORD $0x72ba36ec // movk w12, #53687, lsl #16
WORD $0x0e040d82 // dup.2s v2, w12
WORD $0x0ea12823 // xtn.2s v3, v1
WORD $0x2ea2c063 // umull.2d v3, v3, v2
WORD $0x6f530463 // ushr.2d v3, v3, #45
WORD $0x5284e20c // mov w12, #10000
WORD $0x0e040d84 // dup.2s v4, w12
WORD $0x0ea12865 // xtn.2s v5, v3
WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
WORD $0x6ea58421 // sub.4s v1, v1, v5
WORD $0x4e413861 // zip1.8h v1, v3, v1
WORD $0x4f425421 // shl.2d v1, v1, #2
WORD $0x4e413821 // zip1.8h v1, v1, v1
WORD $0x4e813821 // zip1.4s v1, v1, v1
Lloh56:
WORD $0x10ffbbac // adr x12, lCPI0_0 $-2188(%rip)
Lloh57:
WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x2e63c025 // umull.4s v5, v1, v3
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e63c021 // umull.4s v1, v1, v3
WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
Lloh58:
WORD $0x10ffbb2c // adr x12, lCPI0_1 $-2204(%rip)
Lloh59:
WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x2e65c026 // umull.4s v6, v1, v5
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e65c021 // umull.4s v1, v1, v5
WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
WORD $0x4f008546 // movi.8h v6, #10
WORD $0x4e669c27 // mul.8h v7, v1, v6
WORD $0x4f5054e7 // shl.2d v7, v7, #16
WORD $0x6e678421 // sub.8h v1, v1, v7
WORD $0x1b08a968 // msub w8, w11, w8, w10
WORD $0x4e041d00 // mov.s v0[0], w8
WORD $0x0ea12807 // xtn.2s v7, v0
WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
WORD $0x6f530442 // ushr.2d v2, v2, #45
WORD $0x0ea12847 // xtn.2s v7, v2
WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
WORD $0x6ea48400 // sub.4s v0, v0, v4
WORD $0x4e403840 // zip1.8h v0, v2, v0
WORD $0x4f425400 // shl.2d v0, v0, #2
WORD $0x4e403800 // zip1.8h v0, v0, v0
WORD $0x4e803800 // zip1.4s v0, v0, v0
WORD $0x2e63c002 // umull.4s v2, v0, v3
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e63c000 // umull.4s v0, v0, v3
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x2e65c002 // umull.4s v2, v0, v5
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e65c000 // umull.4s v0, v0, v5
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x4e669c02 // mul.8h v2, v0, v6
WORD $0x4f505442 // shl.2d v2, v2, #16
WORD $0x6e628400 // sub.8h v0, v0, v2
WORD $0x2e212821 // sqxtun.8b v1, v1
WORD $0x6e212801 // sqxtun2.16b v1, v0
WORD $0x4f01e600 // movi.16b v0, #48
WORD $0x4e208420 // add.16b v0, v1, v0
WORD $0x3ca94800 // str q0, [x0, w9, uxtw]
WORD $0x321c0128 // orr w8, w9, #0x10
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_47:
WORD $0xd28f0aeb // mov x11, #30807
WORD $0xf2b6226b // movk x11, #45331, lsl #16
WORD $0xf2cca5eb // movk x11, #25903, lsl #32
WORD $0xf2e734ab // movk x11, #14757, lsl #48
WORD $0x9bcb7d2b // umulh x11, x9, x11
WORD $0xd373fd6d // lsr x13, x11, #51
WORD $0x710025bf // cmp w13, #9
WORD $0x540000a8 // b.hi LBB0_49 $20(%rip)
WORD $0x1100c1ab // add w11, w13, #48
WORD $0x3900010b // strb w11, [x8]
WORD $0x5280002b // mov w11, #1
WORD $0x1400001c // b LBB0_52 $112(%rip)
LBB0_49:
WORD $0x71018dbf // cmp w13, #99
WORD $0x540000e8 // b.hi LBB0_51 $28(%rip)
Lloh60:
WORD $0x10000c8b // adr x11, _Digits $400(%rip)
Lloh61:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x786d596b // ldrh w11, [x11, w13, uxtw #1]
WORD $0x7800100b // sturh w11, [x0, #1]
WORD $0x5280004b // mov w11, #2
WORD $0x14000014 // b LBB0_52 $80(%rip)
LBB0_51:
WORD $0x53023dab // ubfx w11, w13, #2, #14
WORD $0x52828f6e // mov w14, #5243
WORD $0x1b0e7d6b // mul w11, w11, w14
WORD $0x53117d6b // lsr w11, w11, #17
WORD $0x321c056e // orr w14, w11, #0x30
WORD $0x3900040e // strb w14, [x0, #1]
WORD $0x52800c8e // mov w14, #100
WORD $0x1b0eb56b // msub w11, w11, w14, w13
WORD $0x92403d6b // and x11, x11, #0xffff
WORD $0xd37ff96b // lsl x11, x11, #1
Lloh62:
WORD $0x10000a8e // adr x14, _Digits $336(%rip)
Lloh63:
WORD $0x910001ce // add x14, x14, _Digits@PAGEOFF $0(%rip)
WORD $0x386b69cf // ldrb w15, [x14, x11]
WORD $0x3900080f // strb w15, [x0, #2]
WORD $0x927f396b // and x11, x11, #0xfffe
WORD $0x8b0b01cb // add x11, x14, x11
WORD $0x3940056b // ldrb w11, [x11, #1]
WORD $0x39000c0b // strb w11, [x0, #3]
WORD $0x5280006b // mov w11, #3
LBB0_52:
WORD $0x9b0ca5a9 // msub x9, x13, x12, x9
WORD $0xd299dfac // mov x12, #52989
WORD $0xf2b08c2c // movk x12, #33889, lsl #16
WORD $0xf2cee22c // movk x12, #30481, lsl #32
WORD $0xf2f5798c // movk x12, #43980, lsl #48
WORD $0x9bcc7d2c // umulh x12, x9, x12
WORD $0xd35afd8c // lsr x12, x12, #26
WORD $0x6f00e400 // movi.2d v0, #0000000000000000
WORD $0x6f00e401 // movi.2d v1, #0000000000000000
WORD $0x4e041d81 // mov.s v1[0], w12
WORD $0x5282eb2d // mov w13, #5977
WORD $0x72ba36ed // movk w13, #53687, lsl #16
WORD $0x0e040da2 // dup.2s v2, w13
WORD $0x0ea12823 // xtn.2s v3, v1
WORD $0x2ea2c063 // umull.2d v3, v3, v2
WORD $0x6f530463 // ushr.2d v3, v3, #45
WORD $0x5284e20d // mov w13, #10000
WORD $0x0e040da4 // dup.2s v4, w13
WORD $0x0ea12865 // xtn.2s v5, v3
WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
WORD $0x6ea58421 // sub.4s v1, v1, v5
WORD $0x4e413861 // zip1.8h v1, v3, v1
WORD $0x4f425421 // shl.2d v1, v1, #2
WORD $0x4e413821 // zip1.8h v1, v1, v1
WORD $0x4e813821 // zip1.4s v1, v1, v1
Lloh64:
WORD $0x10ffad8d // adr x13, lCPI0_0 $-2640(%rip)
Lloh65:
WORD $0xfd4001a3 // ldr d3, [x13, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x2e63c025 // umull.4s v5, v1, v3
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e63c021 // umull.4s v1, v1, v3
WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
Lloh66:
WORD $0x10ffad0d // adr x13, lCPI0_1 $-2656(%rip)
Lloh67:
WORD $0xfd4001a5 // ldr d5, [x13, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x2e65c026 // umull.4s v6, v1, v5
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e65c021 // umull.4s v1, v1, v5
WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
WORD $0x4f008546 // movi.8h v6, #10
WORD $0x4e669c27 // mul.8h v7, v1, v6
WORD $0x4f5054e7 // shl.2d v7, v7, #16
WORD $0x6e678421 // sub.8h v1, v1, v7
WORD $0x1b0aa589 // msub w9, w12, w10, w9
WORD $0x4e041d20 // mov.s v0[0], w9
WORD $0x0ea12807 // xtn.2s v7, v0
WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
WORD $0x6f530442 // ushr.2d v2, v2, #45
WORD $0x0ea12847 // xtn.2s v7, v2
WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
WORD $0x6ea48400 // sub.4s v0, v0, v4
WORD $0x4e403840 // zip1.8h v0, v2, v0
WORD $0x4f425400 // shl.2d v0, v0, #2
WORD $0x4e403800 // zip1.8h v0, v0, v0
WORD $0x4e803800 // zip1.4s v0, v0, v0
WORD $0x2e63c002 // umull.4s v2, v0, v3
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e63c000 // umull.4s v0, v0, v3
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x2e65c002 // umull.4s v2, v0, v5
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e65c000 // umull.4s v0, v0, v5
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x4e669c02 // mul.8h v2, v0, v6
WORD $0x4f505442 // shl.2d v2, v2, #16
WORD $0x6e628400 // sub.8h v0, v0, v2
WORD $0x2e212821 // sqxtun.8b v1, v1
WORD $0x6e212801 // sqxtun2.16b v1, v0
WORD $0x4f01e600 // movi.16b v0, #48
WORD $0x4e208420 // add.16b v0, v1, v0
WORD $0x3cab4900 // str q0, [x8, w11, uxtw]
WORD $0x321c0169 // orr w9, w11, #0x10
WORD $0x11000528 // add w8, w9, #1
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
_Digits:
WORD $0x31303030 // .ascii 4, '0001020304050607'
WORD $0x33303230 // .ascii 4, '0203040506070809'
WORD $0x35303430 // .ascii 4, '0405060708091011'
WORD $0x37303630 // .ascii 4, '0607080910111213'
WORD $0x39303830 // .ascii 4, '0809101112131415'
WORD $0x31313031 // .ascii 4, '1011121314151617'
WORD $0x33313231 // .ascii 4, '1213141516171819'
WORD $0x35313431 // .ascii 4, '1415161718192021'
WORD $0x37313631 // .ascii 4, '1617181920212223'
WORD $0x39313831 // .ascii 4, '1819202122232425'
WORD $0x31323032 // .ascii 4, '2021222324252627'
WORD $0x33323232 // .ascii 4, '2223242526272829'
WORD $0x35323432 // .ascii 4, '2425262728293031'
WORD $0x37323632 // .ascii 4, '2627282930313233'
WORD $0x39323832 // .ascii 4, '2829303132333435'
WORD $0x31333033 // .ascii 4, '3031323334353637'
WORD $0x33333233 // .ascii 4, '3233343536373839'
WORD $0x35333433 // .ascii 4, '3435363738394041'
WORD $0x37333633 // .ascii 4, '3637383940414243'
WORD $0x39333833 // .ascii 4, '3839404142434445'
WORD $0x31343034 // .ascii 4, '4041424344454647'
WORD $0x33343234 // .ascii 4, '4243444546474849'
WORD $0x35343434 // .ascii 4, '4445464748495051'
WORD $0x37343634 // .ascii 4, '4647484950515253'
WORD $0x39343834 // .ascii 4, '4849505152535455'
WORD $0x31353035 // .ascii 4, '5051525354555657'
WORD $0x33353235 // .ascii 4, '5253545556575859'
WORD $0x35353435 // .ascii 4, '5455565758596061'
WORD $0x37353635 // .ascii 4, '5657585960616263'
WORD $0x39353835 // .ascii 4, '5859606162636465'
WORD $0x31363036 // .ascii 4, '6061626364656667'
WORD $0x33363236 // .ascii 4, '6263646566676869'
WORD $0x35363436 // .ascii 4, '6465666768697071'
WORD $0x37363636 // .ascii 4, '6667686970717273'
WORD $0x39363836 // .ascii 4, '6869707172737475'
WORD $0x31373037 // .ascii 4, '7071727374757677'
WORD $0x33373237 // .ascii 4, '7273747576777879'
WORD $0x35373437 // .ascii 4, '7475767778798081'
WORD $0x37373637 // .ascii 4, '7677787980818283'
WORD $0x39373837 // .ascii 4, '7879808182838485'
WORD $0x31383038 // .ascii 4, '8081828384858687'
WORD $0x33383238 // .ascii 4, '8283848586878889'
WORD $0x35383438 // .ascii 4, '8485868788899091'
WORD $0x37383638 // .ascii 4, '8687888990919293'
WORD $0x39383838 // .ascii 4, '8889909192939495'
WORD $0x31393039 // .ascii 4, '9091929394959697'
WORD $0x33393239 // .ascii 4, '9293949596979899'
WORD $0x35393439 // .ascii 4, '949596979899'
WORD $0x37393639 // .ascii 4, '96979899'
WORD $0x39393839 // .ascii 4, '9899'
// .p2align 4, 0x00
_VecShiftShuffles:
WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04'
WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08'
WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c'
WORD $0x04030201 // .ascii 4, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05'
WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t'
WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r'
WORD $0x05040302 // .ascii 4, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06'
WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n'
WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e'
WORD $0x06050403 // .ascii 4, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07'
WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b'
WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08'
WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff'
WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t'
WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff'
WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n'
WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff'
WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b'
WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\xff\xff\xff\xff'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff'
TEXT ·__i64toa(SB), NOSPLIT, $0-24
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $96, RSP, R17
CMP R16, R17
BLS _stack_grow
_i64toa:
MOVD out+0(FP), R0
MOVD val+8(FP), R1
MOVD ·_subr__i64toa(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+16(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __i64toa_entry__() uintptr
var (
_subr__i64toa uintptr = __i64toa_entry__() + 48
)
const (
_stack__i64toa = 32
)
var (
_ = _subr__i64toa
)
const (
_ = _stack__i64toa
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
`unsafe`
// `github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func lspace(sp unsafe.Pointer, nb int, off int) (ret int) {
return __lspace(sp, nb, off)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __lspace(sp unsafe.Pointer, nb int, off int) (ret int)

View file

@ -0,0 +1,68 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__lspace_entry__(SB), NOSPLIT, $16
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 2, 0x00
_lspace:
WORD $0xd10083ff // sub sp, sp, #32
WORD $0xa900fbfd // stp fp, lr, [sp, #8]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xeb02003f // cmp x1, x2
WORD $0x54000061 // b.ne LBB0_2 $12(%rip)
WORD $0x8b020008 // add x8, x0, x2
WORD $0x1400000e // b LBB0_5 $56(%rip)
LBB0_2:
WORD $0x8b010008 // add x8, x0, x1
WORD $0x52800029 // mov w9, #1
WORD $0xd284c00a // mov x10, #9728
WORD $0xf2c0002a // movk x10, #1, lsl #32
LBB0_3:
WORD $0x3862680b // ldrb w11, [x0, x2]
WORD $0x7100817f // cmp w11, #32
WORD $0x9acb212b // lsl x11, x9, x11
WORD $0x8a0a016b // and x11, x11, x10
WORD $0xfa409964 // ccmp x11, #0, #4, ls
WORD $0x540000a0 // b.eq LBB0_6 $20(%rip)
WORD $0x91000442 // add x2, x2, #1
WORD $0xeb02003f // cmp x1, x2
WORD $0x54ffff01 // b.ne LBB0_3 $-32(%rip)
LBB0_5:
WORD $0xcb000102 // sub x2, x8, x0
LBB0_6:
WORD $0xaa0203e0 // mov x0, x2
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
TEXT ·__lspace(SB), NOSPLIT, $0-32
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $96, RSP, R17
CMP R16, R17
BLS _stack_grow
_lspace:
MOVD sp+0(FP), R0
MOVD nb+8(FP), R1
MOVD off+16(FP), R2
MOVD ·_subr__lspace(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+24(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __lspace_entry__() uintptr
var (
_subr__lspace uintptr = __lspace_entry__() + 0
)
const (
_stack__lspace = 32
)
var (
_ = _subr__lspace
)
const (
_ = _stack__lspace
)

View file

@ -0,0 +1,49 @@
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
var (
S_f64toa = _subr__f64toa
S_f32toa = _subr__f32toa
S_i64toa = _subr__i64toa
S_u64toa = _subr__u64toa
S_lspace = _subr__lspace
)
var (
S_quote = _subr__quote
S_unquote = _subr__unquote
)
var (
S_value = _subr__value
S_vstring = _subr__vstring
S_vnumber = _subr__vnumber
S_vsigned = _subr__vsigned
S_vunsigned = _subr__vunsigned
)
var (
S_skip_one = _subr__skip_one
S_skip_one_fast = _subr__skip_one_fast
S_skip_array = _subr__skip_array
S_skip_object = _subr__skip_object
S_skip_number = _subr__skip_number
S_get_by_path = _subr__get_by_path
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
`unsafe`
// `github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) {
return __quote(sp, nb, dp, dn, flags)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __quote_entry__() uintptr
var (
_subr__quote uintptr = __quote_entry__() + 32
)
const (
_stack__quote = 32
)
var (
_ = _subr__quote
)
const (
_ = _stack__quote
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
// `unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) {
return __skip_array(s, p, m, flags)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __skip_array_entry__() uintptr
var (
_subr__skip_array uintptr = __skip_array_entry__() + 48
)
const (
_stack__skip_array = 112
)
var (
_ = _subr__skip_array
)
const (
_ = _stack__skip_array
)

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func skip_number(s *string, p *int) (ret int) {
return __skip_number(s, p)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_number(s *string, p *int) (ret int)

View file

@ -0,0 +1,373 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__skip_number_entry__(SB), NOSPLIT, $32
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 4, 0x00
lCPI0_0:
WORD $0x08040201
WORD $0x80402010
WORD $0x08040201
WORD $0x80402010
// // .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
// .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
lCPI0_1:
WORD $0x09010800
WORD $0x0b030a02
WORD $0x0d050c04
WORD $0x0f070e06
// // .byte 0
// .byte 8
// .byte 1
// .byte 9
// .byte 2
// .byte 10
// .byte 3
// .byte 11
// .byte 4
// .byte 12
// .byte 5
// .byte 13
// .byte 6
// .byte 14
// .byte 7
// .byte 15
_skip_number:
WORD $0xd100c3ff // sub sp, sp, #48
WORD $0xa900cff4 // stp x20, x19, [sp, #8]
WORD $0xa901fbfd // stp fp, lr, [sp, #24]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xaa0003e8 // mov x8, x0
WORD $0xf9400020 // ldr x0, [x1]
WORD $0xa9402909 // ldp x9, x10, [x8]
WORD $0x8b000128 // add x8, x9, x0
WORD $0xaa0803eb // mov x11, x8
WORD $0x3840156c // ldrb w12, [x11], #1
WORD $0x7100b59f // cmp w12, #45
WORD $0x1a9f17ed // cset w13, eq
WORD $0x9a8b1108 // csel x8, x8, x11, ne
WORD $0xcb00014a // sub x10, x10, x0
WORD $0xeb0d014e // subs x14, x10, x13
WORD $0x54001c40 // b.eq LBB0_59 $904(%rip)
WORD $0x3940010a // ldrb w10, [x8]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x3100297f // cmn w11, #10
WORD $0x540017a3 // b.lo LBB0_52 $756(%rip)
WORD $0x7100c15f // cmp w10, #48
WORD $0x540001e1 // b.ne LBB0_6 $60(%rip)
WORD $0xf10005df // cmp x14, #1
WORD $0x54000061 // b.ne LBB0_5 $12(%rip)
LBB0_4:
WORD $0x5280002d // mov w13, #1
WORD $0x140000a9 // b LBB0_47 $676(%rip)
LBB0_5:
WORD $0x3940050a // ldrb w10, [x8, #1]
WORD $0x5100b94a // sub w10, w10, #46
WORD $0x7100dd5f // cmp w10, #55
WORD $0x5280002b // mov w11, #1
WORD $0x9aca216a // lsl x10, x11, x10
WORD $0xb20903eb // mov x11, #36028797027352576
WORD $0xf280002b // movk x11, #1
WORD $0x8a0b014a // and x10, x10, x11
WORD $0xfa409944 // ccmp x10, #0, #4, ls
WORD $0x54fffea0 // b.eq LBB0_4 $-44(%rip)
LBB0_6:
WORD $0xf10041df // cmp x14, #16
WORD $0x54001a63 // b.lo LBB0_60 $844(%rip)
WORD $0xd2800010 // mov x16, #0
WORD $0xd280000f // mov x15, #0
WORD $0x9280000a // mov x10, #-1
WORD $0x4f01e5c0 // movi.16b v0, #46
WORD $0x4f01e561 // movi.16b v1, #43
WORD $0x4f01e5a2 // movi.16b v2, #45
WORD $0x4f06e603 // movi.16b v3, #208
WORD $0x4f00e544 // movi.16b v4, #10
Lloh0:
WORD $0x10fff92b // adr x11, lCPI0_0 $-220(%rip)
Lloh1:
WORD $0x3dc00165 // ldr q5, [x11, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x4f06e7e6 // movi.16b v6, #223
WORD $0x4f02e4a7 // movi.16b v7, #69
Lloh2:
WORD $0x10fff92b // adr x11, lCPI0_1 $-220(%rip)
Lloh3:
WORD $0x3dc00170 // ldr q16, [x11, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x12800011 // mov w17, #-1
WORD $0x9280000c // mov x12, #-1
WORD $0x9280000b // mov x11, #-1
LBB0_8:
WORD $0x3cef6911 // ldr q17, [x8, x15]
WORD $0x6e208e32 // cmeq.16b v18, v17, v0
WORD $0x6e218e33 // cmeq.16b v19, v17, v1
WORD $0x6e228e34 // cmeq.16b v20, v17, v2
WORD $0x4e238635 // add.16b v21, v17, v3
WORD $0x6e353495 // cmhi.16b v21, v4, v21
WORD $0x4e261e31 // and.16b v17, v17, v6
WORD $0x6e278e31 // cmeq.16b v17, v17, v7
WORD $0x4eb41e73 // orr.16b v19, v19, v20
WORD $0x4eb21eb4 // orr.16b v20, v21, v18
WORD $0x4eb31e35 // orr.16b v21, v17, v19
WORD $0x4eb51e94 // orr.16b v20, v20, v21
WORD $0x4e251e52 // and.16b v18, v18, v5
WORD $0x4e100252 // tbl.16b v18, { v18 }, v16
WORD $0x4e71ba52 // addv.8h h18, v18
WORD $0x1e260243 // fmov w3, s18
WORD $0x4e251e31 // and.16b v17, v17, v5
WORD $0x4e100231 // tbl.16b v17, { v17 }, v16
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260224 // fmov w4, s17
WORD $0x4e251e71 // and.16b v17, v19, v5
WORD $0x4e100231 // tbl.16b v17, { v17 }, v16
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260226 // fmov w6, s17
WORD $0x4e251e91 // and.16b v17, v20, v5
WORD $0x4e100231 // tbl.16b v17, { v17 }, v16
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260222 // fmov w2, s17
WORD $0x2a2203e2 // mvn w2, w2
WORD $0x32103c42 // orr w2, w2, #0xffff0000
WORD $0x5ac00042 // rbit w2, w2
WORD $0x5ac01042 // clz w2, w2
WORD $0x1ac22225 // lsl w5, w17, w2
WORD $0x0a250067 // bic w7, w3, w5
WORD $0x0a250093 // bic w19, w4, w5
WORD $0x0a2500d4 // bic w20, w6, w5
WORD $0x7100405f // cmp w2, #16
WORD $0x1a870065 // csel w5, w3, w7, eq
WORD $0x1a930084 // csel w4, w4, w19, eq
WORD $0x1a9400c3 // csel w3, w6, w20, eq
WORD $0x510004a6 // sub w6, w5, #1
WORD $0x6a0500c6 // ands w6, w6, w5
WORD $0x54001041 // b.ne LBB0_55 $520(%rip)
WORD $0x51000486 // sub w6, w4, #1
WORD $0x6a0400c6 // ands w6, w6, w4
WORD $0x54000fe1 // b.ne LBB0_55 $508(%rip)
WORD $0x51000466 // sub w6, w3, #1
WORD $0x6a0300c6 // ands w6, w6, w3
WORD $0x54000f81 // b.ne LBB0_55 $496(%rip)
WORD $0x340000c5 // cbz w5, LBB0_14 $24(%rip)
WORD $0x5ac000a5 // rbit w5, w5
WORD $0x5ac010a5 // clz w5, w5
WORD $0xb100057f // cmn x11, #1
WORD $0x54000f81 // b.ne LBB0_56 $496(%rip)
WORD $0x8b0501eb // add x11, x15, x5
LBB0_14:
WORD $0x340000c4 // cbz w4, LBB0_17 $24(%rip)
WORD $0x5ac00084 // rbit w4, w4
WORD $0x5ac01084 // clz w4, w4
WORD $0xb100059f // cmn x12, #1
WORD $0x54000f21 // b.ne LBB0_57 $484(%rip)
WORD $0x8b0401ec // add x12, x15, x4
LBB0_17:
WORD $0x340000c3 // cbz w3, LBB0_20 $24(%rip)
WORD $0x5ac00063 // rbit w3, w3
WORD $0x5ac01063 // clz w3, w3
WORD $0xb100055f // cmn x10, #1
WORD $0x54000ec1 // b.ne LBB0_58 $472(%rip)
WORD $0x8b0301ea // add x10, x15, x3
LBB0_20:
WORD $0x7100405f // cmp w2, #16
WORD $0x54000621 // b.ne LBB0_35 $196(%rip)
WORD $0x910041ef // add x15, x15, #16
WORD $0xd1004210 // sub x16, x16, #16
WORD $0x8b1001c2 // add x2, x14, x16
WORD $0xf1003c5f // cmp x2, #15
WORD $0x54fff6e8 // b.hi LBB0_8 $-292(%rip)
WORD $0x8b0f0110 // add x16, x8, x15
WORD $0xeb0f01df // cmp x14, x15
WORD $0x54000560 // b.eq LBB0_36 $172(%rip)
LBB0_23:
WORD $0x8b02020e // add x14, x16, x2
WORD $0xaa3003ef // mvn x15, x16
WORD $0x8b090011 // add x17, x0, x9
WORD $0x8b1101ef // add x15, x15, x17
WORD $0x8b0d01ed // add x13, x15, x13
WORD $0xcb08020f // sub x15, x16, x8
WORD $0xaa1003f1 // mov x17, x16
WORD $0x14000009 // b LBB0_26 $36(%rip)
LBB0_24:
WORD $0xb100059f // cmn x12, #1
WORD $0xaa0f03ec // mov x12, x15
WORD $0x54000661 // b.ne LBB0_46 $204(%rip)
LBB0_25:
WORD $0xd10005ad // sub x13, x13, #1
WORD $0x910005ef // add x15, x15, #1
WORD $0xaa1103f0 // mov x16, x17
WORD $0xd1000442 // sub x2, x2, #1
WORD $0xb4000882 // cbz x2, LBB0_53 $272(%rip)
LBB0_26:
WORD $0x38401623 // ldrb w3, [x17], #1
WORD $0x5100c064 // sub w4, w3, #48
WORD $0x7100289f // cmp w4, #10
WORD $0x54ffff03 // b.lo LBB0_25 $-32(%rip)
WORD $0x7100b47f // cmp w3, #45
WORD $0x5400016d // b.le LBB0_32 $44(%rip)
WORD $0x7101947f // cmp w3, #101
WORD $0x54fffe20 // b.eq LBB0_24 $-60(%rip)
WORD $0x7101147f // cmp w3, #69
WORD $0x54fffde0 // b.eq LBB0_24 $-68(%rip)
WORD $0x7100b87f // cmp w3, #46
WORD $0x540001e1 // b.ne LBB0_36 $60(%rip)
WORD $0xb100057f // cmn x11, #1
WORD $0xaa0f03eb // mov x11, x15
WORD $0x54fffda0 // b.eq LBB0_25 $-76(%rip)
WORD $0x1400001e // b LBB0_46 $120(%rip)
LBB0_32:
WORD $0x7100ac7f // cmp w3, #43
WORD $0x54000060 // b.eq LBB0_34 $12(%rip)
WORD $0x7100b47f // cmp w3, #45
WORD $0x540000e1 // b.ne LBB0_36 $28(%rip)
LBB0_34:
WORD $0xb100055f // cmn x10, #1
WORD $0xaa0f03ea // mov x10, x15
WORD $0x54fffca0 // b.eq LBB0_25 $-108(%rip)
WORD $0x14000016 // b LBB0_46 $88(%rip)
LBB0_35:
WORD $0x8b22410d // add x13, x8, w2, uxtw
WORD $0x8b0f01b0 // add x16, x13, x15
LBB0_36:
WORD $0x9280000d // mov x13, #-1
WORD $0xb40003eb // cbz x11, LBB0_51 $124(%rip)
LBB0_37:
WORD $0xb40003ca // cbz x10, LBB0_51 $120(%rip)
WORD $0xb40003ac // cbz x12, LBB0_51 $116(%rip)
WORD $0xcb08020d // sub x13, x16, x8
WORD $0xd10005ae // sub x14, x13, #1
WORD $0xeb0e017f // cmp x11, x14
WORD $0x54000160 // b.eq LBB0_45 $44(%rip)
WORD $0xeb0e015f // cmp x10, x14
WORD $0x54000120 // b.eq LBB0_45 $36(%rip)
WORD $0xeb0e019f // cmp x12, x14
WORD $0x540000e0 // b.eq LBB0_45 $28(%rip)
WORD $0xf100054e // subs x14, x10, #1
WORD $0x540001cb // b.lt LBB0_48 $56(%rip)
WORD $0xeb0e019f // cmp x12, x14
WORD $0x54000180 // b.eq LBB0_48 $48(%rip)
WORD $0xaa2a03ed // mvn x13, x10
WORD $0x1400000f // b LBB0_51 $60(%rip)
LBB0_45:
WORD $0xcb0d03ed // neg x13, x13
LBB0_46:
WORD $0xb7f801ad // tbnz x13, #63, LBB0_51 $52(%rip)
LBB0_47:
WORD $0x8b0d0108 // add x8, x8, x13
WORD $0xcb090108 // sub x8, x8, x9
WORD $0xf9000028 // str x8, [x1]
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0xa940cff4 // ldp x20, x19, [sp, #8]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
LBB0_48:
WORD $0xaa0c016a // orr x10, x11, x12
WORD $0xb7f8022a // tbnz x10, #63, LBB0_54 $68(%rip)
WORD $0xeb0c017f // cmp x11, x12
WORD $0x540001eb // b.lt LBB0_54 $60(%rip)
WORD $0xaa2b03ed // mvn x13, x11
LBB0_51:
WORD $0xaa2d03ea // mvn x10, x13
WORD $0x8b0a0108 // add x8, x8, x10
LBB0_52:
WORD $0x92800020 // mov x0, #-2
WORD $0xcb090108 // sub x8, x8, x9
WORD $0xf9000028 // str x8, [x1]
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0xa940cff4 // ldp x20, x19, [sp, #8]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
LBB0_53:
WORD $0xaa0e03f0 // mov x16, x14
WORD $0x9280000d // mov x13, #-1
WORD $0xb5fffaeb // cbnz x11, LBB0_37 $-164(%rip)
WORD $0x17fffff4 // b LBB0_51 $-48(%rip)
LBB0_54:
WORD $0xd37ffd4a // lsr x10, x10, #63
WORD $0x5200014a // eor w10, w10, #0x1
WORD $0xd100058e // sub x14, x12, #1
WORD $0xeb0e017f // cmp x11, x14
WORD $0x1a9f17eb // cset w11, eq
WORD $0x6a0b015f // tst w10, w11
WORD $0xda8c01ad // csinv x13, x13, x12, eq
WORD $0x17ffffdf // b LBB0_46 $-132(%rip)
LBB0_55:
WORD $0x5ac000ca // rbit w10, w6
WORD $0x5ac0114a // clz w10, w10
WORD $0xaa2f03eb // mvn x11, x15
WORD $0xcb0a016d // sub x13, x11, x10
WORD $0x17ffffda // b LBB0_46 $-152(%rip)
LBB0_56:
WORD $0xaa2f03ea // mvn x10, x15
WORD $0xcb25414d // sub x13, x10, w5, uxtw
WORD $0x17ffffd7 // b LBB0_46 $-164(%rip)
LBB0_57:
WORD $0xaa2f03ea // mvn x10, x15
WORD $0xcb24414d // sub x13, x10, w4, uxtw
WORD $0x17ffffd4 // b LBB0_46 $-176(%rip)
LBB0_58:
WORD $0xaa2f03ea // mvn x10, x15
WORD $0xcb23414d // sub x13, x10, w3, uxtw
WORD $0x17ffffd1 // b LBB0_46 $-188(%rip)
LBB0_59:
WORD $0x92800000 // mov x0, #-1
WORD $0xcb090108 // sub x8, x8, x9
WORD $0xf9000028 // str x8, [x1]
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0xa940cff4 // ldp x20, x19, [sp, #8]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
LBB0_60:
WORD $0x9280000b // mov x11, #-1
WORD $0xaa0803f0 // mov x16, x8
WORD $0xaa0e03e2 // mov x2, x14
WORD $0x9280000c // mov x12, #-1
WORD $0x9280000a // mov x10, #-1
WORD $0x17ffff87 // b LBB0_23 $-484(%rip)
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__skip_number(SB), NOSPLIT, $0-24
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $112, RSP, R17
CMP R16, R17
BLS _stack_grow
_skip_number:
MOVD s+0(FP), R0
MOVD p+8(FP), R1
MOVD ·_subr__skip_number(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+16(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __skip_number_entry__() uintptr
var (
_subr__skip_number uintptr = __skip_number_entry__() + 32
)
const (
_stack__skip_number = 48
)
var (
_ = _subr__skip_number
)
const (
_ = _stack__skip_number
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
// `unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) {
return __skip_object(s, p, m, flags)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __skip_object_entry__() uintptr
var (
_subr__skip_object uintptr = __skip_object_entry__() + 48
)
const (
_stack__skip_object = 112
)
var (
_ = _subr__skip_object
)
const (
_ = _stack__skip_object
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
// `unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int)
//go:nosplit
func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) {
return __skip_one(s, p, m, flags)
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func skip_one_fast(s *string, p *int) (ret int) {
return __skip_one_fast(s, p)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __skip_one_fast(s *string, p *int) (ret int)

View file

@ -0,0 +1,998 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__skip_one_fast_entry__(SB), NOSPLIT, $176
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 4, 0x00
lCPI0_0:
WORD $0x08040201
WORD $0x80402010
WORD $0x08040201
WORD $0x80402010
// // .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
// .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
lCPI0_1:
WORD $0x09010800
WORD $0x0b030a02
WORD $0x0d050c04
WORD $0x0f070e06
// // .byte 0
// .byte 8
// .byte 1
// .byte 9
// .byte 2
// .byte 10
// .byte 3
// .byte 11
// .byte 4
// .byte 12
// .byte 5
// .byte 13
// .byte 6
// .byte 14
// .byte 7
// .byte 15
_skip_one_fast:
WORD $0xd10303ff // sub sp, sp, #192
WORD $0xa905effc // stp x28, x27, [sp, #88]
WORD $0xa906e7fa // stp x26, x25, [sp, #104]
WORD $0xa907dff8 // stp x24, x23, [sp, #120]
WORD $0xa908d7f6 // stp x22, x21, [sp, #136]
WORD $0xa909cff4 // stp x20, x19, [sp, #152]
WORD $0xa90afbfd // stp fp, lr, [sp, #168]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xf940002b // ldr x11, [x1]
WORD $0xa9402809 // ldp x9, x10, [x0]
WORD $0xeb0a017f // cmp x11, x10
WORD $0x54000142 // b.hs LBB0_4 $40(%rip)
WORD $0x386b6928 // ldrb w8, [x9, x11]
WORD $0x7100351f // cmp w8, #13
WORD $0x540000e0 // b.eq LBB0_4 $28(%rip)
WORD $0x7100811f // cmp w8, #32
WORD $0x540000a0 // b.eq LBB0_4 $20(%rip)
WORD $0x51002d0c // sub w12, w8, #11
WORD $0xaa0b03e8 // mov x8, x11
WORD $0x3100099f // cmn w12, #2
WORD $0x54000683 // b.lo LBB0_21 $208(%rip)
LBB0_4:
WORD $0x91000568 // add x8, x11, #1
WORD $0xeb0a011f // cmp x8, x10
WORD $0x54000122 // b.hs LBB0_8 $36(%rip)
WORD $0x3868692c // ldrb w12, [x9, x8]
WORD $0x7100359f // cmp w12, #13
WORD $0x540000c0 // b.eq LBB0_8 $24(%rip)
WORD $0x7100819f // cmp w12, #32
WORD $0x54000080 // b.eq LBB0_8 $16(%rip)
WORD $0x51002d8c // sub w12, w12, #11
WORD $0x3100099f // cmn w12, #2
WORD $0x54000523 // b.lo LBB0_21 $164(%rip)
LBB0_8:
WORD $0x91000968 // add x8, x11, #2
WORD $0xeb0a011f // cmp x8, x10
WORD $0x54000122 // b.hs LBB0_12 $36(%rip)
WORD $0x3868692c // ldrb w12, [x9, x8]
WORD $0x7100359f // cmp w12, #13
WORD $0x540000c0 // b.eq LBB0_12 $24(%rip)
WORD $0x7100819f // cmp w12, #32
WORD $0x54000080 // b.eq LBB0_12 $16(%rip)
WORD $0x51002d8c // sub w12, w12, #11
WORD $0x3100099f // cmn w12, #2
WORD $0x540003c3 // b.lo LBB0_21 $120(%rip)
LBB0_12:
WORD $0x91000d68 // add x8, x11, #3
WORD $0xeb0a011f // cmp x8, x10
WORD $0x54000122 // b.hs LBB0_16 $36(%rip)
WORD $0x3868692c // ldrb w12, [x9, x8]
WORD $0x7100359f // cmp w12, #13
WORD $0x540000c0 // b.eq LBB0_16 $24(%rip)
WORD $0x7100819f // cmp w12, #32
WORD $0x54000080 // b.eq LBB0_16 $16(%rip)
WORD $0x51002d8c // sub w12, w12, #11
WORD $0x3100099f // cmn w12, #2
WORD $0x54000263 // b.lo LBB0_21 $76(%rip)
LBB0_16:
WORD $0x91001168 // add x8, x11, #4
WORD $0xeb0a011f // cmp x8, x10
WORD $0x54005ae2 // b.hs LBB0_115 $2908(%rip)
WORD $0x5280002b // mov w11, #1
WORD $0xd284c00c // mov x12, #9728
WORD $0xf2c0002c // movk x12, #1, lsl #32
LBB0_18:
WORD $0x3868692d // ldrb w13, [x9, x8]
WORD $0x710081bf // cmp w13, #32
WORD $0x9acd216d // lsl x13, x11, x13
WORD $0x8a0c01ad // and x13, x13, x12
WORD $0xfa4099a4 // ccmp x13, #0, #4, ls
WORD $0x540000a0 // b.eq LBB0_20 $20(%rip)
WORD $0x91000508 // add x8, x8, #1
WORD $0xeb08015f // cmp x10, x8
WORD $0x54ffff01 // b.ne LBB0_18 $-32(%rip)
WORD $0x140002cb // b LBB0_116 $2860(%rip)
LBB0_20:
WORD $0xeb0a011f // cmp x8, x10
WORD $0x54005922 // b.hs LBB0_116 $2852(%rip)
LBB0_21:
WORD $0x91000510 // add x16, x8, #1
WORD $0xf9000030 // str x16, [x1]
WORD $0x3868692a // ldrb w10, [x9, x8]
WORD $0x7101695f // cmp w10, #90
WORD $0x540006ec // b.gt LBB0_39 $220(%rip)
WORD $0x7100bd5f // cmp w10, #47
WORD $0x54000b4d // b.le LBB0_44 $360(%rip)
WORD $0x5100c14a // sub w10, w10, #48
WORD $0x7100295f // cmp w10, #10
WORD $0x540055a2 // b.hs LBB0_110 $2740(%rip)
LBB0_24:
WORD $0xf940040a // ldr x10, [x0, #8]
WORD $0xcb10014a // sub x10, x10, x16
WORD $0xf100415f // cmp x10, #16
WORD $0x540002c3 // b.lo LBB0_28 $88(%rip)
WORD $0x4f01e580 // movi.16b v0, #44
WORD $0x4f06e7e1 // movi.16b v1, #223
WORD $0x4f02e7a2 // movi.16b v2, #93
Lloh0:
WORD $0x10fff3cb // adr x11, lCPI0_0 $-392(%rip)
Lloh1:
WORD $0x3dc00163 // ldr q3, [x11, lCPI0_0@PAGEOFF] $0(%rip)
Lloh2:
WORD $0x10fff40b // adr x11, lCPI0_1 $-384(%rip)
Lloh3:
WORD $0x3dc00164 // ldr q4, [x11, lCPI0_1@PAGEOFF] $0(%rip)
LBB0_26:
WORD $0x3cf06925 // ldr q5, [x9, x16]
WORD $0x6e208ca6 // cmeq.16b v6, v5, v0
WORD $0x4e211ca5 // and.16b v5, v5, v1
WORD $0x6e228ca5 // cmeq.16b v5, v5, v2
WORD $0x4ea61ca5 // orr.16b v5, v5, v6
WORD $0x4e231ca5 // and.16b v5, v5, v3
WORD $0x4e0400a5 // tbl.16b v5, { v5 }, v4
WORD $0x4e71b8a5 // addv.8h h5, v5
WORD $0x1e2600ab // fmov w11, s5
WORD $0x350002eb // cbnz w11, LBB0_36 $92(%rip)
WORD $0xd100414a // sub x10, x10, #16
WORD $0x91004210 // add x16, x16, #16
WORD $0xf1003d5f // cmp x10, #15
WORD $0x54fffe68 // b.hi LBB0_26 $-52(%rip)
LBB0_28:
WORD $0x8b10012b // add x11, x9, x16
WORD $0xb40001ea // cbz x10, LBB0_35 $60(%rip)
WORD $0x8b0a016c // add x12, x11, x10
WORD $0xcb09016d // sub x13, x11, x9
LBB0_30:
WORD $0x3940016e // ldrb w14, [x11]
WORD $0x7100b1df // cmp w14, #44
WORD $0x540052c0 // b.eq LBB0_112 $2648(%rip)
WORD $0x7101f5df // cmp w14, #125
WORD $0x54005280 // b.eq LBB0_112 $2640(%rip)
WORD $0x710175df // cmp w14, #93
WORD $0x54005240 // b.eq LBB0_112 $2632(%rip)
WORD $0x9100056b // add x11, x11, #1
WORD $0x910005ad // add x13, x13, #1
WORD $0xf100054a // subs x10, x10, #1
WORD $0x54fffec1 // b.ne LBB0_30 $-40(%rip)
WORD $0xaa0c03eb // mov x11, x12
LBB0_35:
WORD $0xcb090169 // sub x9, x11, x9
WORD $0x14000004 // b LBB0_37 $16(%rip)
LBB0_36:
WORD $0x5ac00169 // rbit w9, w11
WORD $0x5ac01129 // clz w9, w9
WORD $0x8b100129 // add x9, x9, x16
LBB0_37:
WORD $0xf9000029 // str x9, [x1]
LBB0_38:
WORD $0xaa0803e0 // mov x0, x8
WORD $0x1400028f // b LBB0_117 $2620(%rip)
LBB0_39:
WORD $0x7101b55f // cmp w10, #109
WORD $0x5400054d // b.le LBB0_47 $168(%rip)
WORD $0x7101b95f // cmp w10, #110
WORD $0x54002320 // b.eq LBB0_74 $1124(%rip)
WORD $0x7101d15f // cmp w10, #116
WORD $0x540022e0 // b.eq LBB0_74 $1116(%rip)
WORD $0x7101ed5f // cmp w10, #123
WORD $0x54004e81 // b.ne LBB0_110 $2512(%rip)
WORD $0xd2800007 // mov x7, #0
WORD $0xd280000f // mov x15, #0
WORD $0xd280000a // mov x10, #0
WORD $0xd280000b // mov x11, #0
WORD $0xb201e3ec // mov x12, #-8608480567731124088
WORD $0xf2e1110c // movk x12, #2184, lsl #48
WORD $0xb202e3ed // mov x13, #4919131752989213764
WORD $0xf2e0888d // movk x13, #1092, lsl #48
WORD $0xb203e3ee // mov x14, #2459565876494606882
WORD $0xf2e0444e // movk x14, #546, lsl #48
WORD $0xf9400411 // ldr x17, [x0, #8]
WORD $0xcb100225 // sub x5, x17, x16
WORD $0x8b100130 // add x16, x9, x16
WORD $0x910043e9 // add x9, sp, #16
WORD $0x91008129 // add x9, x9, #32
WORD $0x4f01e440 // movi.16b v0, #34
Lloh4:
WORD $0x10ffeb91 // adr x17, lCPI0_0 $-656(%rip)
Lloh5:
WORD $0x3dc00221 // ldr q1, [x17, lCPI0_0@PAGEOFF] $0(%rip)
Lloh6:
WORD $0x10ffebd1 // adr x17, lCPI0_1 $-648(%rip)
Lloh7:
WORD $0x3dc00222 // ldr q2, [x17, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x4f02e783 // movi.16b v3, #92
WORD $0xb200e3f1 // mov x17, #1229782938247303441
WORD $0xb203e3e2 // mov x2, #2459565876494606882
WORD $0xb202e3e3 // mov x3, #4919131752989213764
WORD $0xb201e3e4 // mov x4, #-8608480567731124088
WORD $0x4f03e764 // movi.16b v4, #123
WORD $0x4f03e7a5 // movi.16b v5, #125
WORD $0x6f00e406 // movi.2d v6, #0000000000000000
WORD $0x14000018 // b LBB0_51 $96(%rip)
LBB0_44:
WORD $0x34004d0a // cbz w10, LBB0_116 $2464(%rip)
WORD $0x7100895f // cmp w10, #34
WORD $0x54001f40 // b.eq LBB0_75 $1000(%rip)
WORD $0x7100b55f // cmp w10, #45
WORD $0x54fff4c0 // b.eq LBB0_24 $-360(%rip)
WORD $0x14000251 // b LBB0_110 $2372(%rip)
LBB0_47:
WORD $0x71016d5f // cmp w10, #91
WORD $0x540027a0 // b.eq LBB0_84 $1268(%rip)
WORD $0x7101995f // cmp w10, #102
WORD $0x540049a1 // b.ne LBB0_110 $2356(%rip)
WORD $0x91001509 // add x9, x8, #5
WORD $0xf940040a // ldr x10, [x0, #8]
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54fff969 // b.ls LBB0_37 $-212(%rip)
WORD $0x1400025a // b LBB0_116 $2408(%rip)
LBB0_50:
WORD $0x937ffce7 // asr x7, x7, #63
WORD $0x9e670267 // fmov d7, x19
WORD $0x0e2058e7 // cnt.8b v7, v7
WORD $0x2e3038e7 // uaddlv.8b h7, v7
WORD $0x1e2600e5 // fmov w5, s7
WORD $0x8b0a00aa // add x10, x5, x10
WORD $0x91010210 // add x16, x16, #64
WORD $0xaa0603e5 // mov x5, x6
LBB0_51:
WORD $0xf10100a6 // subs x6, x5, #64
WORD $0x540015cb // b.lt LBB0_58 $696(%rip)
LBB0_52:
WORD $0xad404612 // ldp q18, q17, [x16]
WORD $0xad411e10 // ldp q16, q7, [x16, #32]
WORD $0x6e238e53 // cmeq.16b v19, v18, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260273 // fmov w19, s19
WORD $0x6e238e33 // cmeq.16b v19, v17, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260274 // fmov w20, s19
WORD $0x6e238e13 // cmeq.16b v19, v16, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260275 // fmov w21, s19
WORD $0x6e238cf3 // cmeq.16b v19, v7, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260276 // fmov w22, s19
WORD $0xd3607eb5 // lsl x21, x21, #32
WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48
WORD $0x53103e94 // lsl w20, w20, #16
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0xaa130293 // orr x19, x20, x19
WORD $0xaa0f0274 // orr x20, x19, x15
WORD $0xb5000094 // cbnz x20, LBB0_54 $16(%rip)
WORD $0xd280000f // mov x15, #0
WORD $0xd2800013 // mov x19, #0
WORD $0x1400000a // b LBB0_55 $40(%rip)
LBB0_54:
WORD $0x8a2f0274 // bic x20, x19, x15
WORD $0xaa1405f5 // orr x21, x15, x20, lsl #1
WORD $0x8a35026f // bic x15, x19, x21
WORD $0x9201f1ef // and x15, x15, #0xaaaaaaaaaaaaaaaa
WORD $0xab1401f3 // adds x19, x15, x20
WORD $0x1a9f37ef // cset w15, hs
WORD $0xd37ffa73 // lsl x19, x19, #1
WORD $0xd200f273 // eor x19, x19, #0x5555555555555555
WORD $0x8a150273 // and x19, x19, x21
LBB0_55:
WORD $0x6e208e53 // cmeq.16b v19, v18, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260274 // fmov w20, s19
WORD $0x6e208e33 // cmeq.16b v19, v17, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260275 // fmov w21, s19
WORD $0x6e208e13 // cmeq.16b v19, v16, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260276 // fmov w22, s19
WORD $0x6e208cf3 // cmeq.16b v19, v7, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260277 // fmov w23, s19
WORD $0xd3607ed6 // lsl x22, x22, #32
WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48
WORD $0x53103eb5 // lsl w21, w21, #16
WORD $0xaa1502d5 // orr x21, x22, x21
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0x8a330293 // bic x19, x20, x19
WORD $0x9200e274 // and x20, x19, #0x1111111111111111
WORD $0x9203e275 // and x21, x19, #0x2222222222222222
WORD $0x9202e276 // and x22, x19, #0x4444444444444444
WORD $0x9201e273 // and x19, x19, #0x8888888888888888
WORD $0x9b117e97 // mul x23, x20, x17
WORD $0x9b0c7eb8 // mul x24, x21, x12
WORD $0xca1802f7 // eor x23, x23, x24
WORD $0x9b0d7ed8 // mul x24, x22, x13
WORD $0x9b0e7e79 // mul x25, x19, x14
WORD $0xca190318 // eor x24, x24, x25
WORD $0xca1802f7 // eor x23, x23, x24
WORD $0x9b027e98 // mul x24, x20, x2
WORD $0x9b117eb9 // mul x25, x21, x17
WORD $0xca190318 // eor x24, x24, x25
WORD $0x9b0c7ed9 // mul x25, x22, x12
WORD $0x9b0d7e7a // mul x26, x19, x13
WORD $0xca1a0339 // eor x25, x25, x26
WORD $0xca190318 // eor x24, x24, x25
WORD $0x9b037e99 // mul x25, x20, x3
WORD $0x9b027eba // mul x26, x21, x2
WORD $0xca1a0339 // eor x25, x25, x26
WORD $0x9b117eda // mul x26, x22, x17
WORD $0x9b0c7e7b // mul x27, x19, x12
WORD $0xca1b035a // eor x26, x26, x27
WORD $0xca1a0339 // eor x25, x25, x26
WORD $0x9b047e94 // mul x20, x20, x4
WORD $0x9b037eb5 // mul x21, x21, x3
WORD $0xca150294 // eor x20, x20, x21
WORD $0x9b027ed5 // mul x21, x22, x2
WORD $0x9b117e73 // mul x19, x19, x17
WORD $0xca1302b3 // eor x19, x21, x19
WORD $0xca130293 // eor x19, x20, x19
WORD $0x9200e2f4 // and x20, x23, #0x1111111111111111
WORD $0x9203e315 // and x21, x24, #0x2222222222222222
WORD $0x9202e336 // and x22, x25, #0x4444444444444444
WORD $0x9201e273 // and x19, x19, #0x8888888888888888
WORD $0xaa150294 // orr x20, x20, x21
WORD $0xaa1302d3 // orr x19, x22, x19
WORD $0xaa130293 // orr x19, x20, x19
WORD $0xca070267 // eor x7, x19, x7
WORD $0x6e248e53 // cmeq.16b v19, v18, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260273 // fmov w19, s19
WORD $0x6e248e33 // cmeq.16b v19, v17, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260274 // fmov w20, s19
WORD $0x6e248e13 // cmeq.16b v19, v16, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260275 // fmov w21, s19
WORD $0x6e248cf3 // cmeq.16b v19, v7, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260276 // fmov w22, s19
WORD $0xd3607eb5 // lsl x21, x21, #32
WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48
WORD $0x53103e94 // lsl w20, w20, #16
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0xaa130293 // orr x19, x20, x19
WORD $0x8a270273 // bic x19, x19, x7
WORD $0x6e258e52 // cmeq.16b v18, v18, v5
WORD $0x4e211e52 // and.16b v18, v18, v1
WORD $0x4e020252 // tbl.16b v18, { v18 }, v2
WORD $0x4e71ba52 // addv.8h h18, v18
WORD $0x1e260254 // fmov w20, s18
WORD $0x6e258e31 // cmeq.16b v17, v17, v5
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260235 // fmov w21, s17
WORD $0x6e258e10 // cmeq.16b v16, v16, v5
WORD $0x4e211e10 // and.16b v16, v16, v1
WORD $0x4e020210 // tbl.16b v16, { v16 }, v2
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e260216 // fmov w22, s16
WORD $0x6e258ce7 // cmeq.16b v7, v7, v5
WORD $0x4e211ce7 // and.16b v7, v7, v1
WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2
WORD $0x4e71b8e7 // addv.8h h7, v7
WORD $0x1e2600f7 // fmov w23, s7
WORD $0xd3607ed6 // lsl x22, x22, #32
WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48
WORD $0x53103eb5 // lsl w21, w21, #16
WORD $0xaa1502d5 // orr x21, x22, x21
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0xea270294 // bics x20, x20, x7
WORD $0x54ffeae0 // b.eq LBB0_50 $-676(%rip)
LBB0_56:
WORD $0xd1000695 // sub x21, x20, #1
WORD $0x8a1302b6 // and x22, x21, x19
WORD $0x9e6702c7 // fmov d7, x22
WORD $0x0e2058e7 // cnt.8b v7, v7
WORD $0x2e3038e7 // uaddlv.8b h7, v7
WORD $0x1e2600f6 // fmov w22, s7
WORD $0x8b0a02d6 // add x22, x22, x10
WORD $0xeb0b02df // cmp x22, x11
WORD $0x54003109 // b.ls LBB0_109 $1568(%rip)
WORD $0x9100056b // add x11, x11, #1
WORD $0xea1402b4 // ands x20, x21, x20
WORD $0x54fffea1 // b.ne LBB0_56 $-44(%rip)
WORD $0x17ffff4a // b LBB0_50 $-728(%rip)
LBB0_58:
WORD $0xf10000bf // cmp x5, #0
WORD $0x540033ed // b.le LBB0_114 $1660(%rip)
WORD $0xad019be6 // stp q6, q6, [sp, #48]
WORD $0xad009be6 // stp q6, q6, [sp, #16]
WORD $0x92402e13 // and x19, x16, #0xfff
WORD $0xf13f067f // cmp x19, #4033
WORD $0x54ffe9a3 // b.lo LBB0_52 $-716(%rip)
WORD $0xf10080b4 // subs x20, x5, #32
WORD $0x540000a3 // b.lo LBB0_62 $20(%rip)
WORD $0xacc14207 // ldp q7, q16, [x16], #32
WORD $0xad00c3e7 // stp q7, q16, [sp, #16]
WORD $0xaa0903f3 // mov x19, x9
WORD $0x14000003 // b LBB0_63 $12(%rip)
LBB0_62:
WORD $0x910043f3 // add x19, sp, #16
WORD $0xaa0503f4 // mov x20, x5
LBB0_63:
WORD $0xf1004295 // subs x21, x20, #16
WORD $0x54000243 // b.lo LBB0_69 $72(%rip)
WORD $0x3cc10607 // ldr q7, [x16], #16
WORD $0x3c810667 // str q7, [x19], #16
WORD $0xaa1503f4 // mov x20, x21
WORD $0xf10022b5 // subs x21, x21, #8
WORD $0x540001e2 // b.hs LBB0_70 $60(%rip)
LBB0_65:
WORD $0xf1001295 // subs x21, x20, #4
WORD $0x54000243 // b.lo LBB0_71 $72(%rip)
LBB0_66:
WORD $0xb8404614 // ldr w20, [x16], #4
WORD $0xb8004674 // str w20, [x19], #4
WORD $0xaa1503f4 // mov x20, x21
WORD $0xf1000ab5 // subs x21, x21, #2
WORD $0x540001e2 // b.hs LBB0_72 $60(%rip)
LBB0_67:
WORD $0xb4000254 // cbz x20, LBB0_73 $72(%rip)
LBB0_68:
WORD $0x39400210 // ldrb w16, [x16]
WORD $0x39000270 // strb w16, [x19]
WORD $0x910043f0 // add x16, sp, #16
WORD $0x17ffff32 // b LBB0_52 $-824(%rip)
LBB0_69:
WORD $0xf1002295 // subs x21, x20, #8
WORD $0x54fffe63 // b.lo LBB0_65 $-52(%rip)
LBB0_70:
WORD $0xf8408614 // ldr x20, [x16], #8
WORD $0xf8008674 // str x20, [x19], #8
WORD $0xaa1503f4 // mov x20, x21
WORD $0xf10012b5 // subs x21, x21, #4
WORD $0x54fffe02 // b.hs LBB0_66 $-64(%rip)
LBB0_71:
WORD $0xf1000a95 // subs x21, x20, #2
WORD $0x54fffe63 // b.lo LBB0_67 $-52(%rip)
LBB0_72:
WORD $0x78402614 // ldrh w20, [x16], #2
WORD $0x78002674 // strh w20, [x19], #2
WORD $0xaa1503f4 // mov x20, x21
WORD $0xb5fffe15 // cbnz x21, LBB0_68 $-64(%rip)
LBB0_73:
WORD $0x910043f0 // add x16, sp, #16
WORD $0x17ffff23 // b LBB0_52 $-884(%rip)
LBB0_74:
WORD $0x91001109 // add x9, x8, #4
WORD $0xf940040a // ldr x10, [x0, #8]
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54ffdbc9 // b.ls LBB0_37 $-1160(%rip)
WORD $0x1400016d // b LBB0_116 $1460(%rip)
LBB0_75:
WORD $0xf940040b // ldr x11, [x0, #8]
WORD $0xcb10016a // sub x10, x11, x16
WORD $0xf100815f // cmp x10, #32
WORD $0x54002c4b // b.lt LBB0_113 $1416(%rip)
WORD $0xd280000a // mov x10, #0
WORD $0xd280000d // mov x13, #0
WORD $0x8b08012c // add x12, x9, x8
WORD $0x4f01e440 // movi.16b v0, #34
Lloh8:
WORD $0x10ffc96e // adr x14, lCPI0_0 $-1748(%rip)
Lloh9:
WORD $0x3dc001c1 // ldr q1, [x14, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0xcb08016b // sub x11, x11, x8
Lloh10:
WORD $0x10ffc98e // adr x14, lCPI0_1 $-1744(%rip)
Lloh11:
WORD $0x3dc001c2 // ldr q2, [x14, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x528003ee // mov w14, #31
WORD $0x4f02e783 // movi.16b v3, #92
LBB0_77:
WORD $0x8b0a018f // add x15, x12, x10
WORD $0x3cc011e4 // ldur q4, [x15, #1]
WORD $0x3cc111e5 // ldur q5, [x15, #17]
WORD $0x6e208c86 // cmeq.16b v6, v4, v0
WORD $0x4e211cc6 // and.16b v6, v6, v1
WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2
WORD $0x4e71b8c6 // addv.8h h6, v6
WORD $0x1e2600cf // fmov w15, s6
WORD $0x6e208ca6 // cmeq.16b v6, v5, v0
WORD $0x4e211cc6 // and.16b v6, v6, v1
WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2
WORD $0x4e71b8c6 // addv.8h h6, v6
WORD $0x1e2600d0 // fmov w16, s6
WORD $0x33103e0f // bfi w15, w16, #16, #16
WORD $0x6e238c84 // cmeq.16b v4, v4, v3
WORD $0x4e211c84 // and.16b v4, v4, v1
WORD $0x4e020084 // tbl.16b v4, { v4 }, v2
WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260090 // fmov w16, s4
WORD $0x6e238ca4 // cmeq.16b v4, v5, v3
WORD $0x4e211c84 // and.16b v4, v4, v1
WORD $0x4e020084 // tbl.16b v4, { v4 }, v2
WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260091 // fmov w17, s4
WORD $0x33103e30 // bfi w16, w17, #16, #16
WORD $0x7100021f // cmp w16, #0
WORD $0xfa4009a0 // ccmp x13, #0, #0, eq
WORD $0x540001a0 // b.eq LBB0_79 $52(%rip)
WORD $0x0a2d0211 // bic w17, w16, w13
WORD $0x2a1105a0 // orr w0, w13, w17, lsl #1
WORD $0x0a20020d // bic w13, w16, w0
WORD $0x1201f1ad // and w13, w13, #0xaaaaaaaa
WORD $0x2b1101b0 // adds w16, w13, w17
WORD $0x1a9f37ed // cset w13, hs
WORD $0x531f7a10 // lsl w16, w16, #1
WORD $0x5200f210 // eor w16, w16, #0x55555555
WORD $0x0a000210 // and w16, w16, w0
WORD $0x2a3003f0 // mvn w16, w16
WORD $0x8a0f020f // and x15, x16, x15
WORD $0x14000002 // b LBB0_80 $8(%rip)
LBB0_79:
WORD $0xd280000d // mov x13, #0
LBB0_80:
WORD $0xb50024af // cbnz x15, LBB0_111 $1172(%rip)
WORD $0x9100814a // add x10, x10, #32
WORD $0xd10081ce // sub x14, x14, #32
WORD $0x8b0e016f // add x15, x11, x14
WORD $0xf100fdff // cmp x15, #63
WORD $0x54fffa4c // b.gt LBB0_77 $-184(%rip)
WORD $0xb50026ed // cbnz x13, LBB0_118 $1244(%rip)
WORD $0x8b08012c // add x12, x9, x8
WORD $0x8b0a018c // add x12, x12, x10
WORD $0x9100058c // add x12, x12, #1
WORD $0xaa2a03ea // mvn x10, x10
WORD $0x8b0b014a // add x10, x10, x11
WORD $0x92800000 // mov x0, #-1
WORD $0xf100055f // cmp x10, #1
WORD $0x5400280a // b.ge LBB0_121 $1280(%rip)
WORD $0x14000126 // b LBB0_117 $1176(%rip)
LBB0_84:
WORD $0xd2800007 // mov x7, #0
WORD $0xd280000f // mov x15, #0
WORD $0xd280000a // mov x10, #0
WORD $0xd280000b // mov x11, #0
WORD $0xb201e3ec // mov x12, #-8608480567731124088
WORD $0xf2e1110c // movk x12, #2184, lsl #48
WORD $0xb202e3ed // mov x13, #4919131752989213764
WORD $0xf2e0888d // movk x13, #1092, lsl #48
WORD $0xb203e3ee // mov x14, #2459565876494606882
WORD $0xf2e0444e // movk x14, #546, lsl #48
WORD $0xf9400411 // ldr x17, [x0, #8]
WORD $0xcb100225 // sub x5, x17, x16
WORD $0x8b100130 // add x16, x9, x16
WORD $0x910043e9 // add x9, sp, #16
WORD $0x91008129 // add x9, x9, #32
WORD $0x4f01e440 // movi.16b v0, #34
Lloh12:
WORD $0x10ffbf71 // adr x17, lCPI0_0 $-2068(%rip)
Lloh13:
WORD $0x3dc00221 // ldr q1, [x17, lCPI0_0@PAGEOFF] $0(%rip)
Lloh14:
WORD $0x10ffbfb1 // adr x17, lCPI0_1 $-2060(%rip)
Lloh15:
WORD $0x3dc00222 // ldr q2, [x17, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x4f02e783 // movi.16b v3, #92
WORD $0xb200e3f1 // mov x17, #1229782938247303441
WORD $0xb203e3e2 // mov x2, #2459565876494606882
WORD $0xb202e3e3 // mov x3, #4919131752989213764
WORD $0xb201e3e4 // mov x4, #-8608480567731124088
WORD $0x4f02e764 // movi.16b v4, #91
WORD $0x4f02e7a5 // movi.16b v5, #93
WORD $0x6f00e406 // movi.2d v6, #0000000000000000
WORD $0x14000009 // b LBB0_86 $36(%rip)
LBB0_85:
WORD $0x937ffce7 // asr x7, x7, #63
WORD $0x9e670267 // fmov d7, x19
WORD $0x0e2058e7 // cnt.8b v7, v7
WORD $0x2e3038e7 // uaddlv.8b h7, v7
WORD $0x1e2600e5 // fmov w5, s7
WORD $0x8b0a00aa // add x10, x5, x10
WORD $0x91010210 // add x16, x16, #64
WORD $0xaa0603e5 // mov x5, x6
LBB0_86:
WORD $0xf10100a6 // subs x6, x5, #64
WORD $0x540015cb // b.lt LBB0_93 $696(%rip)
LBB0_87:
WORD $0xad404612 // ldp q18, q17, [x16]
WORD $0xad411e10 // ldp q16, q7, [x16, #32]
WORD $0x6e238e53 // cmeq.16b v19, v18, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260273 // fmov w19, s19
WORD $0x6e238e33 // cmeq.16b v19, v17, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260274 // fmov w20, s19
WORD $0x6e238e13 // cmeq.16b v19, v16, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260275 // fmov w21, s19
WORD $0x6e238cf3 // cmeq.16b v19, v7, v3
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260276 // fmov w22, s19
WORD $0xd3607eb5 // lsl x21, x21, #32
WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48
WORD $0x53103e94 // lsl w20, w20, #16
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0xaa130293 // orr x19, x20, x19
WORD $0xaa0f0274 // orr x20, x19, x15
WORD $0xb5000094 // cbnz x20, LBB0_89 $16(%rip)
WORD $0xd280000f // mov x15, #0
WORD $0xd2800013 // mov x19, #0
WORD $0x1400000a // b LBB0_90 $40(%rip)
LBB0_89:
WORD $0x8a2f0274 // bic x20, x19, x15
WORD $0xaa1405f5 // orr x21, x15, x20, lsl #1
WORD $0x8a35026f // bic x15, x19, x21
WORD $0x9201f1ef // and x15, x15, #0xaaaaaaaaaaaaaaaa
WORD $0xab1401f3 // adds x19, x15, x20
WORD $0x1a9f37ef // cset w15, hs
WORD $0xd37ffa73 // lsl x19, x19, #1
WORD $0xd200f273 // eor x19, x19, #0x5555555555555555
WORD $0x8a150273 // and x19, x19, x21
LBB0_90:
WORD $0x6e208e53 // cmeq.16b v19, v18, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260274 // fmov w20, s19
WORD $0x6e208e33 // cmeq.16b v19, v17, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260275 // fmov w21, s19
WORD $0x6e208e13 // cmeq.16b v19, v16, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260276 // fmov w22, s19
WORD $0x6e208cf3 // cmeq.16b v19, v7, v0
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260277 // fmov w23, s19
WORD $0xd3607ed6 // lsl x22, x22, #32
WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48
WORD $0x53103eb5 // lsl w21, w21, #16
WORD $0xaa1502d5 // orr x21, x22, x21
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0x8a330293 // bic x19, x20, x19
WORD $0x9200e274 // and x20, x19, #0x1111111111111111
WORD $0x9203e275 // and x21, x19, #0x2222222222222222
WORD $0x9202e276 // and x22, x19, #0x4444444444444444
WORD $0x9201e273 // and x19, x19, #0x8888888888888888
WORD $0x9b117e97 // mul x23, x20, x17
WORD $0x9b0c7eb8 // mul x24, x21, x12
WORD $0xca1802f7 // eor x23, x23, x24
WORD $0x9b0d7ed8 // mul x24, x22, x13
WORD $0x9b0e7e79 // mul x25, x19, x14
WORD $0xca190318 // eor x24, x24, x25
WORD $0xca1802f7 // eor x23, x23, x24
WORD $0x9b027e98 // mul x24, x20, x2
WORD $0x9b117eb9 // mul x25, x21, x17
WORD $0xca190318 // eor x24, x24, x25
WORD $0x9b0c7ed9 // mul x25, x22, x12
WORD $0x9b0d7e7a // mul x26, x19, x13
WORD $0xca1a0339 // eor x25, x25, x26
WORD $0xca190318 // eor x24, x24, x25
WORD $0x9b037e99 // mul x25, x20, x3
WORD $0x9b027eba // mul x26, x21, x2
WORD $0xca1a0339 // eor x25, x25, x26
WORD $0x9b117eda // mul x26, x22, x17
WORD $0x9b0c7e7b // mul x27, x19, x12
WORD $0xca1b035a // eor x26, x26, x27
WORD $0xca1a0339 // eor x25, x25, x26
WORD $0x9b047e94 // mul x20, x20, x4
WORD $0x9b037eb5 // mul x21, x21, x3
WORD $0xca150294 // eor x20, x20, x21
WORD $0x9b027ed5 // mul x21, x22, x2
WORD $0x9b117e73 // mul x19, x19, x17
WORD $0xca1302b3 // eor x19, x21, x19
WORD $0xca130293 // eor x19, x20, x19
WORD $0x9200e2f4 // and x20, x23, #0x1111111111111111
WORD $0x9203e315 // and x21, x24, #0x2222222222222222
WORD $0x9202e336 // and x22, x25, #0x4444444444444444
WORD $0x9201e273 // and x19, x19, #0x8888888888888888
WORD $0xaa150294 // orr x20, x20, x21
WORD $0xaa1302d3 // orr x19, x22, x19
WORD $0xaa130293 // orr x19, x20, x19
WORD $0xca070267 // eor x7, x19, x7
WORD $0x6e248e53 // cmeq.16b v19, v18, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260273 // fmov w19, s19
WORD $0x6e248e33 // cmeq.16b v19, v17, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260274 // fmov w20, s19
WORD $0x6e248e13 // cmeq.16b v19, v16, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260275 // fmov w21, s19
WORD $0x6e248cf3 // cmeq.16b v19, v7, v4
WORD $0x4e211e73 // and.16b v19, v19, v1
WORD $0x4e020273 // tbl.16b v19, { v19 }, v2
WORD $0x4e71ba73 // addv.8h h19, v19
WORD $0x1e260276 // fmov w22, s19
WORD $0xd3607eb5 // lsl x21, x21, #32
WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48
WORD $0x53103e94 // lsl w20, w20, #16
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0xaa130293 // orr x19, x20, x19
WORD $0x8a270273 // bic x19, x19, x7
WORD $0x6e258e52 // cmeq.16b v18, v18, v5
WORD $0x4e211e52 // and.16b v18, v18, v1
WORD $0x4e020252 // tbl.16b v18, { v18 }, v2
WORD $0x4e71ba52 // addv.8h h18, v18
WORD $0x1e260254 // fmov w20, s18
WORD $0x6e258e31 // cmeq.16b v17, v17, v5
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260235 // fmov w21, s17
WORD $0x6e258e10 // cmeq.16b v16, v16, v5
WORD $0x4e211e10 // and.16b v16, v16, v1
WORD $0x4e020210 // tbl.16b v16, { v16 }, v2
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e260216 // fmov w22, s16
WORD $0x6e258ce7 // cmeq.16b v7, v7, v5
WORD $0x4e211ce7 // and.16b v7, v7, v1
WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2
WORD $0x4e71b8e7 // addv.8h h7, v7
WORD $0x1e2600f7 // fmov w23, s7
WORD $0xd3607ed6 // lsl x22, x22, #32
WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48
WORD $0x53103eb5 // lsl w21, w21, #16
WORD $0xaa1502d5 // orr x21, x22, x21
WORD $0xaa1402b4 // orr x20, x21, x20
WORD $0xea270294 // bics x20, x20, x7
WORD $0x54ffeae0 // b.eq LBB0_85 $-676(%rip)
LBB0_91:
WORD $0xd1000695 // sub x21, x20, #1
WORD $0x8a1302b6 // and x22, x21, x19
WORD $0x9e6702c7 // fmov d7, x22
WORD $0x0e2058e7 // cnt.8b v7, v7
WORD $0x2e3038e7 // uaddlv.8b h7, v7
WORD $0x1e2600f6 // fmov w22, s7
WORD $0x8b0a02d6 // add x22, x22, x10
WORD $0xeb0b02df // cmp x22, x11
WORD $0x540006c9 // b.ls LBB0_109 $216(%rip)
WORD $0x9100056b // add x11, x11, #1
WORD $0xea1402b4 // ands x20, x21, x20
WORD $0x54fffea1 // b.ne LBB0_91 $-44(%rip)
WORD $0x17ffff4a // b LBB0_85 $-728(%rip)
LBB0_93:
WORD $0xf10000bf // cmp x5, #0
WORD $0x540009ad // b.le LBB0_114 $308(%rip)
WORD $0xad019be6 // stp q6, q6, [sp, #48]
WORD $0xad009be6 // stp q6, q6, [sp, #16]
WORD $0x92402e13 // and x19, x16, #0xfff
WORD $0xf13f067f // cmp x19, #4033
WORD $0x54ffe9a3 // b.lo LBB0_87 $-716(%rip)
WORD $0xf10080b4 // subs x20, x5, #32
WORD $0x540000a3 // b.lo LBB0_97 $20(%rip)
WORD $0xacc14207 // ldp q7, q16, [x16], #32
WORD $0xad00c3e7 // stp q7, q16, [sp, #16]
WORD $0xaa0903f3 // mov x19, x9
WORD $0x14000003 // b LBB0_98 $12(%rip)
LBB0_97:
WORD $0x910043f3 // add x19, sp, #16
WORD $0xaa0503f4 // mov x20, x5
LBB0_98:
WORD $0xf1004295 // subs x21, x20, #16
WORD $0x54000243 // b.lo LBB0_104 $72(%rip)
WORD $0x3cc10607 // ldr q7, [x16], #16
WORD $0x3c810667 // str q7, [x19], #16
WORD $0xaa1503f4 // mov x20, x21
WORD $0xf10022b5 // subs x21, x21, #8
WORD $0x540001e2 // b.hs LBB0_105 $60(%rip)
LBB0_100:
WORD $0xf1001295 // subs x21, x20, #4
WORD $0x54000243 // b.lo LBB0_106 $72(%rip)
LBB0_101:
WORD $0xb8404614 // ldr w20, [x16], #4
WORD $0xb8004674 // str w20, [x19], #4
WORD $0xaa1503f4 // mov x20, x21
WORD $0xf1000ab5 // subs x21, x21, #2
WORD $0x540001e2 // b.hs LBB0_107 $60(%rip)
LBB0_102:
WORD $0xb4000254 // cbz x20, LBB0_108 $72(%rip)
LBB0_103:
WORD $0x39400210 // ldrb w16, [x16]
WORD $0x39000270 // strb w16, [x19]
WORD $0x910043f0 // add x16, sp, #16
WORD $0x17ffff32 // b LBB0_87 $-824(%rip)
LBB0_104:
WORD $0xf1002295 // subs x21, x20, #8
WORD $0x54fffe63 // b.lo LBB0_100 $-52(%rip)
LBB0_105:
WORD $0xf8408614 // ldr x20, [x16], #8
WORD $0xf8008674 // str x20, [x19], #8
WORD $0xaa1503f4 // mov x20, x21
WORD $0xf10012b5 // subs x21, x21, #4
WORD $0x54fffe02 // b.hs LBB0_101 $-64(%rip)
LBB0_106:
WORD $0xf1000a95 // subs x21, x20, #2
WORD $0x54fffe63 // b.lo LBB0_102 $-52(%rip)
LBB0_107:
WORD $0x78402614 // ldrh w20, [x16], #2
WORD $0x78002674 // strh w20, [x19], #2
WORD $0xaa1503f4 // mov x20, x21
WORD $0xb5fffe15 // cbnz x21, LBB0_103 $-64(%rip)
LBB0_108:
WORD $0x910043f0 // add x16, sp, #16
WORD $0x17ffff23 // b LBB0_87 $-884(%rip)
LBB0_109:
WORD $0xf9400409 // ldr x9, [x0, #8]
WORD $0xdac0028a // rbit x10, x20
WORD $0xdac0114a // clz x10, x10
WORD $0xcb05014a // sub x10, x10, x5
WORD $0x8b090149 // add x9, x10, x9
WORD $0x9100052a // add x10, x9, #1
WORD $0xf900002a // str x10, [x1]
WORD $0xf940040b // ldr x11, [x0, #8]
WORD $0xeb0b015f // cmp x10, x11
WORD $0x9a892569 // csinc x9, x11, x9, hs
WORD $0xf9000029 // str x9, [x1]
WORD $0xda9f9100 // csinv x0, x8, xzr, ls
WORD $0x14000014 // b LBB0_117 $80(%rip)
LBB0_110:
WORD $0xf9000028 // str x8, [x1]
WORD $0x92800020 // mov x0, #-2
WORD $0x14000011 // b LBB0_117 $68(%rip)
LBB0_111:
WORD $0xdac001e9 // rbit x9, x15
WORD $0xdac01129 // clz x9, x9
WORD $0x8b0a010a // add x10, x8, x10
WORD $0x8b0a0129 // add x9, x9, x10
WORD $0x91000929 // add x9, x9, #2
WORD $0x17fffd7a // b LBB0_37 $-2584(%rip)
LBB0_112:
WORD $0xf900002d // str x13, [x1]
WORD $0x17fffd79 // b LBB0_38 $-2588(%rip)
LBB0_113:
WORD $0x8b10012c // add x12, x9, x16
WORD $0x92800000 // mov x0, #-1
WORD $0xf100055f // cmp x10, #1
WORD $0x540003ca // b.ge LBB0_121 $120(%rip)
WORD $0x14000004 // b LBB0_117 $16(%rip)
LBB0_114:
WORD $0xf9400408 // ldr x8, [x0, #8]
LBB0_115:
WORD $0xf9000028 // str x8, [x1]
LBB0_116:
WORD $0x92800000 // mov x0, #-1
LBB0_117:
WORD $0xa94afbfd // ldp fp, lr, [sp, #168]
WORD $0xa949cff4 // ldp x20, x19, [sp, #152]
WORD $0xa948d7f6 // ldp x22, x21, [sp, #136]
WORD $0xa947dff8 // ldp x24, x23, [sp, #120]
WORD $0xa946e7fa // ldp x26, x25, [sp, #104]
WORD $0xa945effc // ldp x28, x27, [sp, #88]
WORD $0x910303ff // add sp, sp, #192
WORD $0xd65f03c0 // ret
LBB0_118:
WORD $0xd100056c // sub x12, x11, #1
WORD $0xeb0a019f // cmp x12, x10
WORD $0x54fffea0 // b.eq LBB0_116 $-44(%rip)
WORD $0x8b08012c // add x12, x9, x8
WORD $0x8b0a018c // add x12, x12, x10
WORD $0x9100098c // add x12, x12, #2
WORD $0xcb0a016a // sub x10, x11, x10
WORD $0xd100094a // sub x10, x10, #2
WORD $0x92800000 // mov x0, #-1
WORD $0xf100055f // cmp x10, #1
WORD $0x540000ea // b.ge LBB0_121 $28(%rip)
WORD $0x17ffffed // b LBB0_117 $-76(%rip)
LBB0_120:
WORD $0x9280002b // mov x11, #-2
WORD $0x5280004d // mov w13, #2
WORD $0x8b0d018c // add x12, x12, x13
WORD $0xab0b014a // adds x10, x10, x11
WORD $0x54fffd0d // b.le LBB0_117 $-96(%rip)
LBB0_121:
WORD $0x3940018b // ldrb w11, [x12]
WORD $0x7101717f // cmp w11, #92
WORD $0x54ffff20 // b.eq LBB0_120 $-28(%rip)
WORD $0x7100897f // cmp w11, #34
WORD $0x540000e0 // b.eq LBB0_124 $28(%rip)
WORD $0x9280000b // mov x11, #-1
WORD $0x5280002d // mov w13, #1
WORD $0x8b0d018c // add x12, x12, x13
WORD $0xab0b014a // adds x10, x10, x11
WORD $0x54fffeec // b.gt LBB0_121 $-36(%rip)
WORD $0x17ffffdd // b LBB0_117 $-140(%rip)
LBB0_124:
WORD $0xcb090189 // sub x9, x12, x9
WORD $0x91000529 // add x9, x9, #1
WORD $0x17fffd49 // b LBB0_37 $-2780(%rip)
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__skip_one_fast(SB), NOSPLIT, $0-24
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $256, RSP, R17
CMP R16, R17
BLS _stack_grow
_skip_one_fast:
MOVD s+0(FP), R0
MOVD p+8(FP), R1
MOVD ·_subr__skip_one_fast(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+16(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __skip_one_fast_entry__() uintptr
var (
_subr__skip_one_fast uintptr = __skip_one_fast_entry__() + 32
)
const (
_stack__skip_one_fast = 192
)
var (
_ = _subr__skip_one_fast
)
const (
_ = _stack__skip_one_fast
)

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __skip_one_entry__() uintptr
var (
_subr__skip_one uintptr = __skip_one_entry__() + 48
)
const (
_stack__skip_one = 112
)
var (
_ = _subr__skip_one
)
const (
_ = _stack__skip_one
)

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func u64toa(out *byte, val uint64) (ret int) {
return __u64toa(out, val)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __u64toa(out *byte, val uint64) (ret int)

View file

@ -0,0 +1,598 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__u64toa_entry__(SB), NOSPLIT, $16
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 3, 0x00
lCPI0_0:
WORD $0x147b20c5
WORD $0x80003334
// // .word 8389
// .word 5243
// .word 13108
// .word 32768
lCPI0_1:
WORD $0x08000080
WORD $0x80002000
// // .word 128
// .word 2048
// .word 8192
// .word 32768
lCPI0_2:
WORD $0x08040201
WORD $0x80402010
WORD $0x08040201
WORD $0x80402010
// // .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
// .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
lCPI0_3:
WORD $0x09010800
WORD $0x0b030a02
WORD $0x0d050c04
WORD $0x0f070e06
// // .byte 0
// .byte 8
// .byte 1
// .byte 9
// .byte 2
// .byte 10
// .byte 3
// .byte 11
// .byte 4
// .byte 12
// .byte 5
// .byte 13
// .byte 6
// .byte 14
// .byte 7
// .byte 15
_u64toa:
WORD $0xd10083ff // sub sp, sp, #32
WORD $0xa900fbfd // stp fp, lr, [sp, #8]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xd344fc28 // lsr x8, x1, #4
WORD $0xf109c11f // cmp x8, #624
WORD $0x540005e8 // b.hi LBB0_9 $188(%rip)
WORD $0x53023c28 // ubfx w8, w1, #2, #14
WORD $0x52828f69 // mov w9, #5243
WORD $0x1b097d08 // mul w8, w8, w9
WORD $0x53117d08 // lsr w8, w8, #17
WORD $0xd37f7d09 // ubfiz x9, x8, #1, #32
WORD $0x52800c8a // mov w10, #100
WORD $0x1b0a8508 // msub w8, w8, w10, w1
WORD $0x92403d08 // and x8, x8, #0xffff
WORD $0xd37ff908 // lsl x8, x8, #1
WORD $0x710fa03f // cmp w1, #1000
WORD $0x540000e3 // b.lo LBB0_3 $28(%rip)
Lloh0:
WORD $0x10002aaa // adr x10, _Digits $1364(%rip)
Lloh1:
WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
WORD $0x3869694a // ldrb w10, [x10, x9]
WORD $0x3900000a // strb w10, [x0]
WORD $0x5280002a // mov w10, #1
WORD $0x14000004 // b LBB0_5 $16(%rip)
LBB0_3:
WORD $0x7101903f // cmp w1, #100
WORD $0x540002e3 // b.lo LBB0_8 $92(%rip)
WORD $0x5280000a // mov w10, #0
LBB0_5:
Lloh2:
WORD $0x1000298b // adr x11, _Digits $1328(%rip)
Lloh3:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x8b294169 // add x9, x11, w9, uxtw
WORD $0x3940052b // ldrb w11, [x9, #1]
WORD $0x11000549 // add w9, w10, #1
WORD $0x382a480b // strb w11, [x0, w10, uxtw]
LBB0_6:
Lloh4:
WORD $0x100028ca // adr x10, _Digits $1304(%rip)
Lloh5:
WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
WORD $0x3868694b // ldrb w11, [x10, x8]
WORD $0x1100052a // add w10, w9, #1
WORD $0x3829480b // strb w11, [x0, w9, uxtw]
LBB0_7:
Lloh6:
WORD $0x10002829 // adr x9, _Digits $1284(%rip)
Lloh7:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x8b282128 // add x8, x9, w8, uxth
WORD $0x39400509 // ldrb w9, [x8, #1]
WORD $0x11000548 // add w8, w10, #1
WORD $0x382a4809 // strb w9, [x0, w10, uxtw]
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_8:
WORD $0x52800009 // mov w9, #0
WORD $0x5280000a // mov w10, #0
WORD $0x7100283f // cmp w1, #10
WORD $0x54fffdc2 // b.hs LBB0_6 $-72(%rip)
WORD $0x17fffff2 // b LBB0_7 $-56(%rip)
LBB0_9:
WORD $0x529c2008 // mov w8, #57600
WORD $0x72a0bea8 // movk w8, #1525, lsl #16
WORD $0xeb08003f // cmp x1, x8
WORD $0x54000a02 // b.hs LBB0_18 $320(%rip)
WORD $0x5282eb28 // mov w8, #5977
WORD $0x72ba36e8 // movk w8, #53687, lsl #16
WORD $0x92407c29 // and x9, x1, #0xffffffff
WORD $0x9ba87d28 // umull x8, w9, w8
WORD $0xd36dfd08 // lsr x8, x8, #45
WORD $0x529bd06a // mov w10, #56963
WORD $0x72a8636a // movk w10, #17179, lsl #16
WORD $0x9baa7d29 // umull x9, w9, w10
WORD $0xd371fd29 // lsr x9, x9, #49
WORD $0x927f312a // and x10, x9, #0x3ffe
WORD $0x53023d09 // ubfx w9, w8, #2, #14
WORD $0x52828f6b // mov w11, #5243
WORD $0x1b0b7d29 // mul w9, w9, w11
WORD $0x53117d29 // lsr w9, w9, #17
WORD $0x52800c8b // mov w11, #100
WORD $0x1b0ba129 // msub w9, w9, w11, w8
WORD $0x92403d29 // and x9, x9, #0xffff
WORD $0xd37ff929 // lsl x9, x9, #1
WORD $0x5292d00b // mov w11, #38528
WORD $0x72a0130b // movk w11, #152, lsl #16
WORD $0x6b0b003f // cmp w1, w11
WORD $0x540000e3 // b.lo LBB0_12 $28(%rip)
Lloh8:
WORD $0x1000230b // adr x11, _Digits $1120(%rip)
Lloh9:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x386a696b // ldrb w11, [x11, x10]
WORD $0x3900000b // strb w11, [x0]
WORD $0x5280002c // mov w12, #1
WORD $0x14000006 // b LBB0_14 $24(%rip)
LBB0_12:
WORD $0x5288480b // mov w11, #16960
WORD $0x72a001eb // movk w11, #15, lsl #16
WORD $0x6b0b003f // cmp w1, w11
WORD $0x54000543 // b.lo LBB0_17 $168(%rip)
WORD $0x5280000c // mov w12, #0
LBB0_14:
Lloh10:
WORD $0x100021ab // adr x11, _Digits $1076(%rip)
Lloh11:
WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
WORD $0x8b2a416a // add x10, x11, w10, uxtw
WORD $0x3940054a // ldrb w10, [x10, #1]
WORD $0x1100058b // add w11, w12, #1
WORD $0x382c480a // strb w10, [x0, w12, uxtw]
LBB0_15:
Lloh12:
WORD $0x100020ea // adr x10, _Digits $1052(%rip)
Lloh13:
WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
WORD $0x3869694c // ldrb w12, [x10, x9]
WORD $0x1100056a // add w10, w11, #1
WORD $0x382b480c // strb w12, [x0, w11, uxtw]
LBB0_16:
WORD $0x5284e20b // mov w11, #10000
WORD $0x1b0b8508 // msub w8, w8, w11, w1
WORD $0x53023d0b // ubfx w11, w8, #2, #14
WORD $0x52828f6c // mov w12, #5243
WORD $0x1b0c7d6b // mul w11, w11, w12
WORD $0x53117d6b // lsr w11, w11, #17
WORD $0x52800c8c // mov w12, #100
WORD $0x1b0ca168 // msub w8, w11, w12, w8
WORD $0x92403d08 // and x8, x8, #0xffff
WORD $0xd37ff908 // lsl x8, x8, #1
Lloh14:
WORD $0x10001f0c // adr x12, _Digits $992(%rip)
Lloh15:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x8b292189 // add x9, x12, w9, uxth
WORD $0x39400529 // ldrb w9, [x9, #1]
WORD $0x8b2a400d // add x13, x0, w10, uxtw
WORD $0x390001a9 // strb w9, [x13]
WORD $0x786b5989 // ldrh w9, [x12, w11, uxtw #1]
WORD $0x780011a9 // sturh w9, [x13, #1]
WORD $0x38686989 // ldrb w9, [x12, x8]
WORD $0x39000da9 // strb w9, [x13, #3]
WORD $0x927f3908 // and x8, x8, #0xfffe
WORD $0x8b080188 // add x8, x12, x8
WORD $0x39400509 // ldrb w9, [x8, #1]
WORD $0x11001548 // add w8, w10, #5
WORD $0x390011a9 // strb w9, [x13, #4]
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_17:
WORD $0x5280000b // mov w11, #0
WORD $0x5280000a // mov w10, #0
WORD $0x53057c2c // lsr w12, w1, #5
WORD $0x7130d59f // cmp w12, #3125
WORD $0x54fffb42 // b.hs LBB0_15 $-152(%rip)
WORD $0x17ffffde // b LBB0_16 $-136(%rip)
LBB0_18:
WORD $0xd2adf82a // mov x10, #1874919424
WORD $0xf2d0de4a // movk x10, #34546, lsl #32
WORD $0xf2e0046a // movk x10, #35, lsl #48
WORD $0xeb0a003f // cmp x1, x10
WORD $0x54000bc2 // b.hs LBB0_20 $376(%rip)
WORD $0xd299dfa9 // mov x9, #52989
WORD $0xf2b08c29 // movk x9, #33889, lsl #16
WORD $0xf2cee229 // movk x9, #30481, lsl #32
WORD $0xf2f57989 // movk x9, #43980, lsl #48
WORD $0x9bc97c29 // umulh x9, x1, x9
WORD $0xd35afd29 // lsr x9, x9, #26
WORD $0x1b088528 // msub w8, w9, w8, w1
WORD $0x6f00e400 // movi.2d v0, #0000000000000000
WORD $0x6f00e401 // movi.2d v1, #0000000000000000
WORD $0x4e041d21 // mov.s v1[0], w9
WORD $0x0ea12822 // xtn.2s v2, v1
WORD $0x5282eb29 // mov w9, #5977
WORD $0x72ba36e9 // movk w9, #53687, lsl #16
WORD $0x0e040d23 // dup.2s v3, w9
WORD $0x2ea3c042 // umull.2d v2, v2, v3
WORD $0x6f530442 // ushr.2d v2, v2, #45
WORD $0x0ea12844 // xtn.2s v4, v2
WORD $0x5284e209 // mov w9, #10000
WORD $0x0e040d25 // dup.2s v5, w9
WORD $0x2ea5c084 // umull.2d v4, v4, v5
WORD $0x6ea48421 // sub.4s v1, v1, v4
WORD $0x4e413841 // zip1.8h v1, v2, v1
WORD $0x4f425421 // shl.2d v1, v1, #2
WORD $0x4e413821 // zip1.8h v1, v1, v1
WORD $0x4e813821 // zip1.4s v1, v1, v1
Lloh16:
WORD $0x10ffe9c9 // adr x9, lCPI0_0 $-712(%rip)
Lloh17:
WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x2e62c024 // umull.4s v4, v1, v2
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e62c021 // umull.4s v1, v1, v2
WORD $0x4e415881 // uzp2.8h v1, v4, v1
Lloh18:
WORD $0x10ffe949 // adr x9, lCPI0_1 $-728(%rip)
Lloh19:
WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x2e64c026 // umull.4s v6, v1, v4
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e64c021 // umull.4s v1, v1, v4
WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
WORD $0x4f008546 // movi.8h v6, #10
WORD $0x4e669c27 // mul.8h v7, v1, v6
WORD $0x4f5054e7 // shl.2d v7, v7, #16
WORD $0x6e678421 // sub.8h v1, v1, v7
WORD $0x4e041d00 // mov.s v0[0], w8
WORD $0x0ea12807 // xtn.2s v7, v0
WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
WORD $0x6f530463 // ushr.2d v3, v3, #45
WORD $0x0ea12867 // xtn.2s v7, v3
WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
WORD $0x6ea58400 // sub.4s v0, v0, v5
WORD $0x4e403860 // zip1.8h v0, v3, v0
WORD $0x4f425400 // shl.2d v0, v0, #2
WORD $0x4e403800 // zip1.8h v0, v0, v0
WORD $0x4e803800 // zip1.4s v0, v0, v0
WORD $0x2e62c003 // umull.4s v3, v0, v2
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e62c000 // umull.4s v0, v0, v2
WORD $0x4e405860 // uzp2.8h v0, v3, v0
WORD $0x2e64c002 // umull.4s v2, v0, v4
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e64c000 // umull.4s v0, v0, v4
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x4e669c02 // mul.8h v2, v0, v6
WORD $0x4f505442 // shl.2d v2, v2, #16
WORD $0x6e628400 // sub.8h v0, v0, v2
WORD $0x2e212821 // sqxtun.8b v1, v1
WORD $0x6e212801 // sqxtun2.16b v1, v0
WORD $0x4f01e600 // movi.16b v0, #48
WORD $0x4e208420 // add.16b v0, v1, v0
WORD $0x4e209821 // cmeq.16b v1, v1, #0
Lloh20:
WORD $0x10ffe4e8 // adr x8, lCPI0_2 $-868(%rip)
Lloh21:
WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip)
WORD $0x4e221c21 // and.16b v1, v1, v2
Lloh22:
WORD $0x10ffe508 // adr x8, lCPI0_3 $-864(%rip)
Lloh23:
WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip)
WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
WORD $0x4e71b821 // addv.8h h1, v1
WORD $0x1e260028 // fmov w8, s1
WORD $0x2a2803e8 // mvn w8, w8
WORD $0x32114108 // orr w8, w8, #0xffff8000
WORD $0x5ac00108 // rbit w8, w8
WORD $0x5ac01108 // clz w8, w8
Lloh24:
WORD $0x100017e9 // adr x9, _VecShiftShuffles $764(%rip)
Lloh25:
WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip)
WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4]
WORD $0x4f04e5e2 // movi.16b v2, #143
WORD $0x4e221c21 // and.16b v1, v1, v2
WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
WORD $0x3d800000 // str q0, [x0]
WORD $0x52800209 // mov w9, #16
WORD $0x4b080128 // sub w8, w9, w8
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_20:
WORD $0xd28f0ae9 // mov x9, #30807
WORD $0xf2b62269 // movk x9, #45331, lsl #16
WORD $0xf2cca5e9 // movk x9, #25903, lsl #32
WORD $0xf2e734a9 // movk x9, #14757, lsl #48
WORD $0x9bc97c29 // umulh x9, x1, x9
WORD $0xd373fd2b // lsr x11, x9, #51
WORD $0x7100257f // cmp w11, #9
WORD $0x540000a8 // b.hi LBB0_22 $20(%rip)
WORD $0x1100c169 // add w9, w11, #48
WORD $0x39000009 // strb w9, [x0]
WORD $0x52800029 // mov w9, #1
WORD $0x14000028 // b LBB0_27 $160(%rip)
LBB0_22:
WORD $0x71018d7f // cmp w11, #99
WORD $0x540000e8 // b.hi LBB0_24 $28(%rip)
Lloh26:
WORD $0x10000de9 // adr x9, _Digits $444(%rip)
Lloh27:
WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1]
WORD $0x79000009 // strh w9, [x0]
WORD $0x52800049 // mov w9, #2
WORD $0x14000020 // b LBB0_27 $128(%rip)
LBB0_24:
WORD $0x5280a3e9 // mov w9, #1311
WORD $0x1b097d69 // mul w9, w11, w9
WORD $0x53117d29 // lsr w9, w9, #17
WORD $0x710f9d7f // cmp w11, #999
WORD $0x54000188 // b.hi LBB0_26 $48(%rip)
WORD $0x1100c12c // add w12, w9, #48
WORD $0x3900000c // strb w12, [x0]
WORD $0x52800c8c // mov w12, #100
WORD $0x1b0cad29 // msub w9, w9, w12, w11
WORD $0x92403d29 // and x9, x9, #0xffff
Lloh28:
WORD $0x10000bec // adr x12, _Digits $380(%rip)
Lloh29:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x78697989 // ldrh w9, [x12, x9, lsl #1]
WORD $0x78001009 // sturh w9, [x0, #1]
WORD $0x52800069 // mov w9, #3
WORD $0x14000010 // b LBB0_27 $64(%rip)
LBB0_26:
Lloh30:
WORD $0x10000b2c // adr x12, _Digits $356(%rip)
Lloh31:
WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
WORD $0x7869598d // ldrh w13, [x12, w9, uxtw #1]
WORD $0x7900000d // strh w13, [x0]
WORD $0x52800c8d // mov w13, #100
WORD $0x1b0dad29 // msub w9, w9, w13, w11
WORD $0x92403d29 // and x9, x9, #0xffff
WORD $0xd37ff929 // lsl x9, x9, #1
WORD $0x3869698d // ldrb w13, [x12, x9]
WORD $0x3900080d // strb w13, [x0, #2]
WORD $0x927f3929 // and x9, x9, #0xfffe
WORD $0x8b090189 // add x9, x12, x9
WORD $0x39400529 // ldrb w9, [x9, #1]
WORD $0x39000c09 // strb w9, [x0, #3]
WORD $0x52800089 // mov w9, #4
LBB0_27:
WORD $0x9b0a856a // msub x10, x11, x10, x1
WORD $0xd299dfab // mov x11, #52989
WORD $0xf2b08c2b // movk x11, #33889, lsl #16
WORD $0xf2cee22b // movk x11, #30481, lsl #32
WORD $0xf2f5798b // movk x11, #43980, lsl #48
WORD $0x9bcb7d4b // umulh x11, x10, x11
WORD $0xd35afd6b // lsr x11, x11, #26
WORD $0x6f00e400 // movi.2d v0, #0000000000000000
WORD $0x6f00e401 // movi.2d v1, #0000000000000000
WORD $0x4e041d61 // mov.s v1[0], w11
WORD $0x5282eb2c // mov w12, #5977
WORD $0x72ba36ec // movk w12, #53687, lsl #16
WORD $0x0e040d82 // dup.2s v2, w12
WORD $0x0ea12823 // xtn.2s v3, v1
WORD $0x2ea2c063 // umull.2d v3, v3, v2
WORD $0x6f530463 // ushr.2d v3, v3, #45
WORD $0x5284e20c // mov w12, #10000
WORD $0x0e040d84 // dup.2s v4, w12
WORD $0x0ea12865 // xtn.2s v5, v3
WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
WORD $0x6ea58421 // sub.4s v1, v1, v5
WORD $0x4e413861 // zip1.8h v1, v3, v1
WORD $0x4f425421 // shl.2d v1, v1, #2
WORD $0x4e413821 // zip1.8h v1, v1, v1
WORD $0x4e813821 // zip1.4s v1, v1, v1
Lloh32:
WORD $0x10ffd7cc // adr x12, lCPI0_0 $-1288(%rip)
Lloh33:
WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x2e63c025 // umull.4s v5, v1, v3
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e63c021 // umull.4s v1, v1, v3
WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
Lloh34:
WORD $0x10ffd74c // adr x12, lCPI0_1 $-1304(%rip)
Lloh35:
WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x2e65c026 // umull.4s v6, v1, v5
WORD $0x6e014021 // ext.16b v1, v1, v1, #8
WORD $0x2e65c021 // umull.4s v1, v1, v5
WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
WORD $0x4f008546 // movi.8h v6, #10
WORD $0x4e669c27 // mul.8h v7, v1, v6
WORD $0x4f5054e7 // shl.2d v7, v7, #16
WORD $0x6e678421 // sub.8h v1, v1, v7
WORD $0x1b08a968 // msub w8, w11, w8, w10
WORD $0x4e041d00 // mov.s v0[0], w8
WORD $0x0ea12807 // xtn.2s v7, v0
WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
WORD $0x6f530442 // ushr.2d v2, v2, #45
WORD $0x0ea12847 // xtn.2s v7, v2
WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
WORD $0x6ea48400 // sub.4s v0, v0, v4
WORD $0x4e403840 // zip1.8h v0, v2, v0
WORD $0x4f425400 // shl.2d v0, v0, #2
WORD $0x4e403800 // zip1.8h v0, v0, v0
WORD $0x4e803800 // zip1.4s v0, v0, v0
WORD $0x2e63c002 // umull.4s v2, v0, v3
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e63c000 // umull.4s v0, v0, v3
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x2e65c002 // umull.4s v2, v0, v5
WORD $0x6e004000 // ext.16b v0, v0, v0, #8
WORD $0x2e65c000 // umull.4s v0, v0, v5
WORD $0x4e405840 // uzp2.8h v0, v2, v0
WORD $0x4e669c02 // mul.8h v2, v0, v6
WORD $0x4f505442 // shl.2d v2, v2, #16
WORD $0x6e628400 // sub.8h v0, v0, v2
WORD $0x2e212821 // sqxtun.8b v1, v1
WORD $0x6e212801 // sqxtun2.16b v1, v0
WORD $0x4f01e600 // movi.16b v0, #48
WORD $0x4e208420 // add.16b v0, v1, v0
WORD $0x3ca94800 // str q0, [x0, w9, uxtw]
WORD $0x321c0128 // orr w8, w9, #0x10
WORD $0xaa0803e0 // mov x0, x8
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
_Digits:
WORD $0x31303030 // .ascii 4, '0001020304050607'
WORD $0x33303230 // .ascii 4, '0203040506070809'
WORD $0x35303430 // .ascii 4, '0405060708091011'
WORD $0x37303630 // .ascii 4, '0607080910111213'
WORD $0x39303830 // .ascii 4, '0809101112131415'
WORD $0x31313031 // .ascii 4, '1011121314151617'
WORD $0x33313231 // .ascii 4, '1213141516171819'
WORD $0x35313431 // .ascii 4, '1415161718192021'
WORD $0x37313631 // .ascii 4, '1617181920212223'
WORD $0x39313831 // .ascii 4, '1819202122232425'
WORD $0x31323032 // .ascii 4, '2021222324252627'
WORD $0x33323232 // .ascii 4, '2223242526272829'
WORD $0x35323432 // .ascii 4, '2425262728293031'
WORD $0x37323632 // .ascii 4, '2627282930313233'
WORD $0x39323832 // .ascii 4, '2829303132333435'
WORD $0x31333033 // .ascii 4, '3031323334353637'
WORD $0x33333233 // .ascii 4, '3233343536373839'
WORD $0x35333433 // .ascii 4, '3435363738394041'
WORD $0x37333633 // .ascii 4, '3637383940414243'
WORD $0x39333833 // .ascii 4, '3839404142434445'
WORD $0x31343034 // .ascii 4, '4041424344454647'
WORD $0x33343234 // .ascii 4, '4243444546474849'
WORD $0x35343434 // .ascii 4, '4445464748495051'
WORD $0x37343634 // .ascii 4, '4647484950515253'
WORD $0x39343834 // .ascii 4, '4849505152535455'
WORD $0x31353035 // .ascii 4, '5051525354555657'
WORD $0x33353235 // .ascii 4, '5253545556575859'
WORD $0x35353435 // .ascii 4, '5455565758596061'
WORD $0x37353635 // .ascii 4, '5657585960616263'
WORD $0x39353835 // .ascii 4, '5859606162636465'
WORD $0x31363036 // .ascii 4, '6061626364656667'
WORD $0x33363236 // .ascii 4, '6263646566676869'
WORD $0x35363436 // .ascii 4, '6465666768697071'
WORD $0x37363636 // .ascii 4, '6667686970717273'
WORD $0x39363836 // .ascii 4, '6869707172737475'
WORD $0x31373037 // .ascii 4, '7071727374757677'
WORD $0x33373237 // .ascii 4, '7273747576777879'
WORD $0x35373437 // .ascii 4, '7475767778798081'
WORD $0x37373637 // .ascii 4, '7677787980818283'
WORD $0x39373837 // .ascii 4, '7879808182838485'
WORD $0x31383038 // .ascii 4, '8081828384858687'
WORD $0x33383238 // .ascii 4, '8283848586878889'
WORD $0x35383438 // .ascii 4, '8485868788899091'
WORD $0x37383638 // .ascii 4, '8687888990919293'
WORD $0x39383838 // .ascii 4, '8889909192939495'
WORD $0x31393039 // .ascii 4, '9091929394959697'
WORD $0x33393239 // .ascii 4, '9293949596979899'
WORD $0x35393439 // .ascii 4, '949596979899'
WORD $0x37393639 // .ascii 4, '96979899'
WORD $0x39393839 // .ascii 4, '9899'
WORD $0x00000000; WORD $0x00000000; WORD $0x00000000 // .p2align 4, 0x00
_VecShiftShuffles:
WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04'
WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08'
WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c'
WORD $0x04030201 // .ascii 4, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05'
WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t'
WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r'
WORD $0x05040302 // .ascii 4, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06'
WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n'
WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e'
WORD $0x06050403 // .ascii 4, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07'
WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b'
WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08'
WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff'
WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t'
WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff'
WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n'
WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff'
WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b'
WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\xff\xff\xff\xff'
WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff'
TEXT ·__u64toa(SB), NOSPLIT, $0-24
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $96, RSP, R17
CMP R16, R17
BLS _stack_grow
_u64toa:
MOVD out+0(FP), R0
MOVD val+8(FP), R1
MOVD ·_subr__u64toa(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+16(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __u64toa_entry__() uintptr
var (
_subr__u64toa uintptr = __u64toa_entry__() + 48
)
const (
_stack__u64toa = 32
)
var (
_ = _subr__u64toa
)
const (
_ = _stack__u64toa
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
`unsafe`
// `github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) {
return __unquote(sp, nb, dp, ep, flags)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int)

View file

@ -0,0 +1,615 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__unquote_entry__(SB), NOSPLIT, $96
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 4, 0x00
lCPI0_0:
WORD $0x08040201
WORD $0x80402010
WORD $0x08040201
WORD $0x80402010
// // .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
// .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
lCPI0_1:
WORD $0x09010800
WORD $0x0b030a02
WORD $0x0d050c04
WORD $0x0f070e06
// // .byte 0
// .byte 8
// .byte 1
// .byte 9
// .byte 2
// .byte 10
// .byte 3
// .byte 11
// .byte 4
// .byte 12
// .byte 5
// .byte 13
// .byte 6
// .byte 14
// .byte 7
// .byte 15
_unquote:
WORD $0xd101c3ff // sub sp, sp, #112
WORD $0xa900effc // stp x28, x27, [sp, #8]
WORD $0xa901e7fa // stp x26, x25, [sp, #24]
WORD $0xa902dff8 // stp x24, x23, [sp, #40]
WORD $0xa903d7f6 // stp x22, x21, [sp, #56]
WORD $0xa904cff4 // stp x20, x19, [sp, #72]
WORD $0xa905fbfd // stp fp, lr, [sp, #88]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xb4002201 // cbz x1, LBB0_62 $1088(%rip)
WORD $0x3203cbe9 // mov w9, #-522133280
WORD $0x5299fa0a // mov w10, #53200
WORD $0x72b9f9ea // movk w10, #53199, lsl #16
WORD $0x3202c7eb // mov w11, #-1061109568
WORD $0x3201c3ec // mov w12, #-2139062144
WORD $0x3200dbed // mov w13, #2139062143
WORD $0x5288c8ce // mov w14, #17990
WORD $0x72a8c8ce // movk w14, #17990, lsl #16
WORD $0x5287272f // mov w15, #14649
WORD $0x72a7272f // movk w15, #14649, lsl #16
WORD $0x52832330 // mov w16, #6425
WORD $0x72a32330 // movk w16, #6425, lsl #16
WORD $0x3200cff1 // mov w17, #252645135
WORD $0x3200c3e6 // mov w6, #16843009
WORD $0x92400085 // and x5, x4, #0x1
WORD $0x528017b3 // mov w19, #189
WORD $0x52848014 // mov w20, #9216
WORD $0x72bf9414 // movk w20, #64672, lsl #16
WORD $0x4f02e780 // movi.16b v0, #92
Lloh0:
WORD $0x10fffb68 // adr x8, lCPI0_0 $-148(%rip)
Lloh1:
WORD $0x3dc00101 // ldr q1, [x8, lCPI0_0@PAGEOFF] $0(%rip)
Lloh2:
WORD $0x10fffba8 // adr x8, lCPI0_1 $-140(%rip)
Lloh3:
WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0xaa0003e8 // mov x8, x0
WORD $0xaa0103f5 // mov x21, x1
WORD $0xaa0203f6 // mov x22, x2
Lloh4:
WORD $0x10002ef7 // adr x23, __UnquoteTab $1500(%rip)
Lloh5:
WORD $0x910002f7 // add x23, x23, __UnquoteTab@PAGEOFF $0(%rip)
LBB0_2:
WORD $0x39400118 // ldrb w24, [x8]
WORD $0x7101731f // cmp w24, #92
WORD $0x54000061 // b.ne LBB0_4 $12(%rip)
WORD $0xd2800018 // mov x24, #0
WORD $0x1400002b // b LBB0_15 $172(%rip)
LBB0_4:
WORD $0xaa1503f9 // mov x25, x21
WORD $0xaa1603fb // mov x27, x22
WORD $0xaa0803fa // mov x26, x8
WORD $0xf10042bf // cmp x21, #16
WORD $0x540002cb // b.lt LBB0_9 $88(%rip)
WORD $0xd2800018 // mov x24, #0
WORD $0xaa1503fa // mov x26, x21
LBB0_6:
WORD $0x8b180119 // add x25, x8, x24
WORD $0x8b1802db // add x27, x22, x24
WORD $0xa9407339 // ldp x25, x28, [x25]
WORD $0x9e670323 // fmov d3, x25
WORD $0x4e181f83 // mov.d v3[1], x28
WORD $0xa9007379 // stp x25, x28, [x27]
WORD $0x6e208c63 // cmeq.16b v3, v3, v0
WORD $0x4e211c63 // and.16b v3, v3, v1
WORD $0x4e020063 // tbl.16b v3, { v3 }, v2
WORD $0x4e71b863 // addv.8h h3, v3
WORD $0x1e260079 // fmov w25, s3
WORD $0x35000279 // cbnz w25, LBB0_13 $76(%rip)
WORD $0xd1004359 // sub x25, x26, #16
WORD $0x91004318 // add x24, x24, #16
WORD $0xf1007f5f // cmp x26, #31
WORD $0xaa1903fa // mov x26, x25
WORD $0x54fffe08 // b.hi LBB0_6 $-64(%rip)
WORD $0x8b18011a // add x26, x8, x24
WORD $0x8b1802db // add x27, x22, x24
LBB0_9:
WORD $0xb4001ad9 // cbz x25, LBB0_63 $856(%rip)
WORD $0xcb080358 // sub x24, x26, x8
LBB0_11:
WORD $0x3940035c // ldrb w28, [x26]
WORD $0x7101739f // cmp w28, #92
WORD $0x54000140 // b.eq LBB0_14 $40(%rip)
WORD $0x9100075a // add x26, x26, #1
WORD $0x3800177c // strb w28, [x27], #1
WORD $0x91000718 // add x24, x24, #1
WORD $0xf1000739 // subs x25, x25, #1
WORD $0x54ffff21 // b.ne LBB0_11 $-28(%rip)
WORD $0x140000cc // b LBB0_63 $816(%rip)
LBB0_13:
WORD $0x5ac00339 // rbit w25, w25
WORD $0x5ac01339 // clz w25, w25
WORD $0x8b180338 // add x24, x25, x24
LBB0_14:
WORD $0xb100071f // cmn x24, #1
WORD $0x540018e0 // b.eq LBB0_63 $796(%rip)
LBB0_15:
WORD $0x91000b19 // add x25, x24, #2
WORD $0xeb1902b5 // subs x21, x21, x25
WORD $0x54002824 // b.mi LBB0_93 $1284(%rip)
WORD $0x8b190108 // add x8, x8, x25
WORD $0xb5000145 // cbnz x5, LBB0_20 $40(%rip)
WORD $0x8b1802da // add x26, x22, x24
WORD $0x385ff119 // ldurb w25, [x8, #-1]
WORD $0x38796af9 // ldrb w25, [x23, x25]
WORD $0x7103ff3f // cmp w25, #255
WORD $0x540003a0 // b.eq LBB0_28 $116(%rip)
LBB0_18:
WORD $0x34001e19 // cbz w25, LBB0_74 $960(%rip)
WORD $0x38001759 // strb w25, [x26], #1
WORD $0xaa1a03f6 // mov x22, x26
WORD $0x14000093 // b LBB0_54 $588(%rip)
LBB0_20:
WORD $0x340026b5 // cbz w21, LBB0_93 $1236(%rip)
WORD $0x385ff119 // ldurb w25, [x8, #-1]
WORD $0x7101733f // cmp w25, #92
WORD $0x540023a1 // b.ne LBB0_86 $1140(%rip)
WORD $0x39400119 // ldrb w25, [x8]
WORD $0x7101733f // cmp w25, #92
WORD $0x54000161 // b.ne LBB0_27 $44(%rip)
WORD $0x710006bf // cmp w21, #1
WORD $0x540025ad // b.le LBB0_93 $1204(%rip)
WORD $0xaa0803f9 // mov x25, x8
WORD $0x38401f3a // ldrb w26, [x25, #1]!
WORD $0x71008b5f // cmp w26, #34
WORD $0x54000060 // b.eq LBB0_26 $12(%rip)
WORD $0x7101735f // cmp w26, #92
WORD $0x540022a1 // b.ne LBB0_87 $1108(%rip)
LBB0_26:
WORD $0xd10006b5 // sub x21, x21, #1
WORD $0xaa1903e8 // mov x8, x25
LBB0_27:
WORD $0x91000508 // add x8, x8, #1
WORD $0xd10006b5 // sub x21, x21, #1
WORD $0x8b1802da // add x26, x22, x24
WORD $0x385ff119 // ldurb w25, [x8, #-1]
WORD $0x38796af9 // ldrb w25, [x23, x25]
WORD $0x7103ff3f // cmp w25, #255
WORD $0x54fffca1 // b.ne LBB0_18 $-108(%rip)
LBB0_28:
WORD $0xf1000ebf // cmp x21, #3
WORD $0x54002389 // b.ls LBB0_93 $1136(%rip)
WORD $0xb9400119 // ldr w25, [x8]
WORD $0x0a39019b // bic w27, w12, w25
WORD $0x0b0a033c // add w28, w25, w10
WORD $0x0a1c037c // and w28, w27, w28
WORD $0x7100039f // cmp w28, #0
WORD $0x0b10033c // add w28, w25, w16
WORD $0x2a19039c // orr w28, w28, w25
WORD $0x0a0c039c // and w28, w28, w12
WORD $0x7a400b80 // ccmp w28, #0, #0, eq
WORD $0x540013e1 // b.ne LBB0_65 $636(%rip)
WORD $0x0a0d033c // and w28, w25, w13
WORD $0x4b1c017e // sub w30, w11, w28
WORD $0x0b0e0387 // add w7, w28, w14
WORD $0x0a1e00e7 // and w7, w7, w30
WORD $0x6a1b00ff // tst w7, w27
WORD $0x54001321 // b.ne LBB0_65 $612(%rip)
WORD $0x4b1c0127 // sub w7, w9, w28
WORD $0x0b0f039c // add w28, w28, w15
WORD $0x0a070387 // and w7, w28, w7
WORD $0x6a1b00ff // tst w7, w27
WORD $0x54001281 // b.ne LBB0_65 $592(%rip)
WORD $0x5ac00b27 // rev w7, w25
WORD $0x0a6710d9 // bic w25, w6, w7, lsr #4
WORD $0x0b190f39 // add w25, w25, w25, lsl #3
WORD $0x0a1100e7 // and w7, w7, w17
WORD $0x0b070327 // add w7, w25, w7
WORD $0x2a4710e7 // orr w7, w7, w7, lsr #4
WORD $0x53105cf9 // ubfx w25, w7, #16, #8
WORD $0x12001ce7 // and w7, w7, #0xff
WORD $0x2a1920f9 // orr w25, w7, w25, lsl #8
WORD $0x91001108 // add x8, x8, #4
WORD $0xd10012b5 // sub x21, x21, #4
WORD $0x7102033f // cmp w25, #128
WORD $0x54000b23 // b.lo LBB0_55 $356(%rip)
WORD $0x8b1802c7 // add x7, x22, x24
WORD $0x910008f6 // add x22, x7, #2
LBB0_34:
WORD $0x711fff3f // cmp w25, #2047
WORD $0x54000b29 // b.ls LBB0_57 $356(%rip)
WORD $0x51403b27 // sub w7, w25, #14, lsl #12
WORD $0x312004ff // cmn w7, #2049
WORD $0x540008e9 // b.ls LBB0_53 $284(%rip)
WORD $0xb50006c5 // cbnz x5, LBB0_48 $216(%rip)
WORD $0xaa1503f8 // mov x24, x21
WORD $0x530a7f27 // lsr w7, w25, #10
WORD $0x7100d8ff // cmp w7, #54
WORD $0x54000788 // b.hi LBB0_51 $240(%rip)
LBB0_38:
WORD $0xf1001b15 // subs x21, x24, #6
WORD $0x5400074b // b.lt LBB0_51 $232(%rip)
WORD $0x39400107 // ldrb w7, [x8]
WORD $0x710170ff // cmp w7, #92
WORD $0x540006e1 // b.ne LBB0_51 $220(%rip)
WORD $0x39400507 // ldrb w7, [x8, #1]
WORD $0x7101d4ff // cmp w7, #117
WORD $0x54000681 // b.ne LBB0_51 $208(%rip)
WORD $0xb8402118 // ldur w24, [x8, #2]
WORD $0x0b0a0307 // add w7, w24, w10
WORD $0x0a38019a // bic w26, w12, w24
WORD $0x6a07035f // tst w26, w7
WORD $0x54001421 // b.ne LBB0_77 $644(%rip)
WORD $0x0b100307 // add w7, w24, w16
WORD $0x2a1800e7 // orr w7, w7, w24
WORD $0x6a0c00ff // tst w7, w12
WORD $0x540013a1 // b.ne LBB0_77 $628(%rip)
WORD $0x0a0d031b // and w27, w24, w13
WORD $0x4b1b0167 // sub w7, w11, w27
WORD $0x0b0e037c // add w28, w27, w14
WORD $0x0a070387 // and w7, w28, w7
WORD $0x6a1a00ff // tst w7, w26
WORD $0x540012e1 // b.ne LBB0_77 $604(%rip)
WORD $0x4b1b0127 // sub w7, w9, w27
WORD $0x0b0f037b // add w27, w27, w15
WORD $0x0a070367 // and w7, w27, w7
WORD $0x6a1a00ff // tst w7, w26
WORD $0x54001241 // b.ne LBB0_77 $584(%rip)
WORD $0x5ac00b07 // rev w7, w24
WORD $0x0a6710d8 // bic w24, w6, w7, lsr #4
WORD $0x0b180f18 // add w24, w24, w24, lsl #3
WORD $0x0a1100e7 // and w7, w7, w17
WORD $0x0b070307 // add w7, w24, w7
WORD $0x2a4710fa // orr w26, w7, w7, lsr #4
WORD $0x53087f47 // lsr w7, w26, #8
WORD $0x12181cf8 // and w24, w7, #0xff00
WORD $0x91001908 // add x8, x8, #6
WORD $0x51403b07 // sub w7, w24, #14, lsl #12
WORD $0x33001f58 // bfxil w24, w26, #0, #8
WORD $0x311004ff // cmn w7, #1025
WORD $0x540005e8 // b.hi LBB0_58 $188(%rip)
WORD $0x360816a4 // tbz w4, #1, LBB0_88 $724(%rip)
WORD $0x5297fde7 // mov w7, #49135
WORD $0x781fe2c7 // sturh w7, [x22, #-2]
WORD $0x380036d3 // strb w19, [x22], #3
WORD $0xaa1803f9 // mov x25, x24
WORD $0x7102031f // cmp w24, #128
WORD $0x54fff8e2 // b.hs LBB0_34 $-228(%rip)
WORD $0x14000037 // b LBB0_59 $220(%rip)
LBB0_48:
WORD $0xf10002bf // cmp x21, #0
WORD $0x5400168d // b.le LBB0_91 $720(%rip)
WORD $0x39400107 // ldrb w7, [x8]
WORD $0x710170ff // cmp w7, #92
WORD $0x54000681 // b.ne LBB0_60 $208(%rip)
WORD $0xd10006b8 // sub x24, x21, #1
WORD $0x91000508 // add x8, x8, #1
WORD $0x530a7f27 // lsr w7, w25, #10
WORD $0x7100d8ff // cmp w7, #54
WORD $0x54fff8c9 // b.ls LBB0_38 $-232(%rip)
LBB0_51:
WORD $0x36081504 // tbz w4, #1, LBB0_90 $672(%rip)
WORD $0x5297fde7 // mov w7, #49135
WORD $0x781fe2c7 // sturh w7, [x22, #-2]
WORD $0x380016d3 // strb w19, [x22], #1
WORD $0xaa1803f5 // mov x21, x24
WORD $0x1400000a // b LBB0_54 $40(%rip)
LBB0_53:
WORD $0x530c7f27 // lsr w7, w25, #12
WORD $0x321b08e7 // orr w7, w7, #0xe0
WORD $0x381fe2c7 // sturb w7, [x22, #-2]
WORD $0x52801007 // mov w7, #128
WORD $0x33062f27 // bfxil w7, w25, #6, #6
WORD $0x381ff2c7 // sturb w7, [x22, #-1]
WORD $0x52801007 // mov w7, #128
WORD $0x33001727 // bfxil w7, w25, #0, #6
WORD $0x380016c7 // strb w7, [x22], #1
LBB0_54:
WORD $0xb5ffe635 // cbnz x21, LBB0_2 $-828(%rip)
WORD $0x14000025 // b LBB0_63 $148(%rip)
LBB0_55:
WORD $0xaa1903f8 // mov x24, x25
LBB0_56:
WORD $0x38001758 // strb w24, [x26], #1
WORD $0xaa1a03f6 // mov x22, x26
WORD $0x17fffffb // b LBB0_54 $-20(%rip)
LBB0_57:
WORD $0x53067f27 // lsr w7, w25, #6
WORD $0x321a04e7 // orr w7, w7, #0xc0
WORD $0x381fe2c7 // sturb w7, [x22, #-2]
WORD $0x52801007 // mov w7, #128
WORD $0x33001727 // bfxil w7, w25, #0, #6
WORD $0x381ff2c7 // sturb w7, [x22, #-1]
WORD $0x17fffff4 // b LBB0_54 $-48(%rip)
LBB0_58:
WORD $0x0b192b07 // add w7, w24, w25, lsl #10
WORD $0x0b1400e7 // add w7, w7, w20
WORD $0x53127cf8 // lsr w24, w7, #18
WORD $0x321c0f18 // orr w24, w24, #0xf0
WORD $0x381fe2d8 // sturb w24, [x22, #-2]
WORD $0x52801018 // mov w24, #128
WORD $0x330c44f8 // bfxil w24, w7, #12, #6
WORD $0x381ff2d8 // sturb w24, [x22, #-1]
WORD $0x52801018 // mov w24, #128
WORD $0x33062cf8 // bfxil w24, w7, #6, #6
WORD $0x390002d8 // strb w24, [x22]
WORD $0x52801007 // mov w7, #128
WORD $0x33001747 // bfxil w7, w26, #0, #6
WORD $0x390006c7 // strb w7, [x22, #1]
WORD $0x91000ad6 // add x22, x22, #2
WORD $0x17ffffe4 // b LBB0_54 $-112(%rip)
LBB0_59:
WORD $0xd1000ada // sub x26, x22, #2
WORD $0x17ffffe5 // b LBB0_56 $-108(%rip)
LBB0_60:
WORD $0x36080ea4 // tbz w4, #1, LBB0_88 $468(%rip)
WORD $0x5297fde7 // mov w7, #49135
WORD $0x781fe2c7 // sturh w7, [x22, #-2]
WORD $0x380016d3 // strb w19, [x22], #1
WORD $0x17ffffdd // b LBB0_54 $-140(%rip)
LBB0_62:
WORD $0xd2800015 // mov x21, #0
WORD $0xaa0203f6 // mov x22, x2
LBB0_63:
WORD $0x8b1502c8 // add x8, x22, x21
WORD $0xcb020100 // sub x0, x8, x2
LBB0_64:
WORD $0xa945fbfd // ldp fp, lr, [sp, #88]
WORD $0xa944cff4 // ldp x20, x19, [sp, #72]
WORD $0xa943d7f6 // ldp x22, x21, [sp, #56]
WORD $0xa942dff8 // ldp x24, x23, [sp, #40]
WORD $0xa941e7fa // ldp x26, x25, [sp, #24]
WORD $0xa940effc // ldp x28, x27, [sp, #8]
WORD $0x9101c3ff // add sp, sp, #112
WORD $0xd65f03c0 // ret
LBB0_65:
WORD $0xcb000109 // sub x9, x8, x0
WORD $0xf9000069 // str x9, [x3]
WORD $0x3940010a // ldrb w10, [x8]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x31002d7f // cmn w11, #11
WORD $0x540000a8 // b.hi LBB0_67 $20(%rip)
WORD $0x121a794a // and w10, w10, #0xffffffdf
WORD $0x51011d4a // sub w10, w10, #71
WORD $0x3100195f // cmn w10, #6
WORD $0x540003e3 // b.lo LBB0_73 $124(%rip)
LBB0_67:
WORD $0x9100052a // add x10, x9, #1
WORD $0xf900006a // str x10, [x3]
WORD $0x3940050a // ldrb w10, [x8, #1]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x31002d7f // cmn w11, #11
WORD $0x540000a8 // b.hi LBB0_69 $20(%rip)
WORD $0x121a794a // and w10, w10, #0xffffffdf
WORD $0x51011d4a // sub w10, w10, #71
WORD $0x3100195f // cmn w10, #6
WORD $0x540002a3 // b.lo LBB0_73 $84(%rip)
LBB0_69:
WORD $0x9100092a // add x10, x9, #2
WORD $0xf900006a // str x10, [x3]
WORD $0x3940090a // ldrb w10, [x8, #2]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x31002d7f // cmn w11, #11
WORD $0x540000a8 // b.hi LBB0_71 $20(%rip)
WORD $0x121a794a // and w10, w10, #0xffffffdf
WORD $0x51011d4a // sub w10, w10, #71
WORD $0x3100195f // cmn w10, #6
WORD $0x54000163 // b.lo LBB0_73 $44(%rip)
LBB0_71:
WORD $0x91000d2a // add x10, x9, #3
WORD $0xf900006a // str x10, [x3]
WORD $0x39400d08 // ldrb w8, [x8, #3]
WORD $0x5100e90a // sub w10, w8, #58
WORD $0x31002d5f // cmn w10, #11
WORD $0x54000188 // b.hi LBB0_75 $48(%rip)
WORD $0x121a7908 // and w8, w8, #0xffffffdf
WORD $0x51011d08 // sub w8, w8, #71
WORD $0x3100191f // cmn w8, #6
WORD $0x54000102 // b.hs LBB0_75 $32(%rip)
LBB0_73:
WORD $0x92800020 // mov x0, #-2
WORD $0x17ffffcf // b LBB0_64 $-196(%rip)
LBB0_74:
WORD $0xaa2003e9 // mvn x9, x0
WORD $0x8b090108 // add x8, x8, x9
WORD $0xf9000068 // str x8, [x3]
WORD $0x92800040 // mov x0, #-3
WORD $0x17ffffca // b LBB0_64 $-216(%rip)
LBB0_75:
WORD $0x91001128 // add x8, x9, #4
LBB0_76:
WORD $0xf9000068 // str x8, [x3]
WORD $0x92800020 // mov x0, #-2
WORD $0x17ffffc6 // b LBB0_64 $-232(%rip)
LBB0_77:
WORD $0xcb000109 // sub x9, x8, x0
WORD $0x9100092a // add x10, x9, #2
WORD $0xf900006a // str x10, [x3]
WORD $0x3940090a // ldrb w10, [x8, #2]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x31002d7f // cmn w11, #11
WORD $0x540000a8 // b.hi LBB0_79 $20(%rip)
WORD $0x121a794a // and w10, w10, #0xffffffdf
WORD $0x51011d4a // sub w10, w10, #71
WORD $0x3100195f // cmn w10, #6
WORD $0x54fffd63 // b.lo LBB0_73 $-84(%rip)
LBB0_79:
WORD $0x91000d2a // add x10, x9, #3
WORD $0xf900006a // str x10, [x3]
WORD $0x39400d0a // ldrb w10, [x8, #3]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x31002d7f // cmn w11, #11
WORD $0x540000a8 // b.hi LBB0_81 $20(%rip)
WORD $0x121a794a // and w10, w10, #0xffffffdf
WORD $0x51011d4a // sub w10, w10, #71
WORD $0x3100195f // cmn w10, #6
WORD $0x54fffc23 // b.lo LBB0_73 $-124(%rip)
LBB0_81:
WORD $0x9100112a // add x10, x9, #4
WORD $0xf900006a // str x10, [x3]
WORD $0x3940110a // ldrb w10, [x8, #4]
WORD $0x5100e94b // sub w11, w10, #58
WORD $0x31002d7f // cmn w11, #11
WORD $0x540000a8 // b.hi LBB0_83 $20(%rip)
WORD $0x121a794a // and w10, w10, #0xffffffdf
WORD $0x51011d4a // sub w10, w10, #71
WORD $0x3100195f // cmn w10, #6
WORD $0x54fffae3 // b.lo LBB0_73 $-164(%rip)
LBB0_83:
WORD $0x9100152a // add x10, x9, #5
WORD $0xf900006a // str x10, [x3]
WORD $0x39401508 // ldrb w8, [x8, #5]
WORD $0x5100e90a // sub w10, w8, #58
WORD $0x31002d5f // cmn w10, #11
WORD $0x540000a8 // b.hi LBB0_85 $20(%rip)
WORD $0x121a7908 // and w8, w8, #0xffffffdf
WORD $0x51011d08 // sub w8, w8, #71
WORD $0x3100191f // cmn w8, #6
WORD $0x54fff9a3 // b.lo LBB0_73 $-204(%rip)
LBB0_85:
WORD $0x91001928 // add x8, x9, #6
WORD $0x17ffffd3 // b LBB0_76 $-180(%rip)
LBB0_86:
WORD $0xaa2003e9 // mvn x9, x0
WORD $0x8b090108 // add x8, x8, x9
WORD $0x17ffffd0 // b LBB0_76 $-192(%rip)
LBB0_87:
WORD $0xcb000108 // sub x8, x8, x0
WORD $0x91000508 // add x8, x8, #1
WORD $0x17ffffcd // b LBB0_76 $-204(%rip)
LBB0_88:
WORD $0xcb000108 // sub x8, x8, x0
LBB0_89:
WORD $0xd1001108 // sub x8, x8, #4
WORD $0xf9000068 // str x8, [x3]
WORD $0x92800060 // mov x0, #-4
WORD $0x17ffff90 // b LBB0_64 $-448(%rip)
LBB0_90:
WORD $0x8b0000a9 // add x9, x5, x0
WORD $0xcb090108 // sub x8, x8, x9
WORD $0x17fffffa // b LBB0_89 $-24(%rip)
LBB0_91:
WORD $0x360800e4 // tbz w4, #1, LBB0_93 $28(%rip)
WORD $0xd2800015 // mov x21, #0
WORD $0x5297fde8 // mov w8, #49135
WORD $0x781fe2c8 // sturh w8, [x22, #-2]
WORD $0x528017a8 // mov w8, #189
WORD $0x380016c8 // strb w8, [x22], #1
WORD $0x17ffff84 // b LBB0_63 $-496(%rip)
LBB0_93:
WORD $0xf9000061 // str x1, [x3]
WORD $0x92800000 // mov x0, #-1
WORD $0x17ffff83 // b LBB0_64 $-500(%rip)
__UnquoteTab:
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00220000 // .ascii 4, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x2f000000 // .ascii 4, '\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00\x00\x00\x08\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\\\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0c\x00'
WORD $0x0000005c // .ascii 4, '\\\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00'
WORD $0x00080000 // .ascii 4, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00'
WORD $0x000c0000 // .ascii 4, '\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\r\x00'
WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\r\x00\t\xff\x00\x00'
WORD $0x000a0000 // .ascii 4, '\x00\x00\n\x00\x00\x00\r\x00\t\xff\x00\x00'
WORD $0x000d0000 // .ascii 4, '\x00\x00\r\x00\t\xff\x00\x00'
WORD $0x0000ff09 // .ascii 4, '\t\xff\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00'
WORD $0x00000000 // .space 4, '\x00\x00\x00\x00'
TEXT ·__unquote(SB), NOSPLIT, $0-48
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $176, RSP, R17
CMP R16, R17
BLS _stack_grow
_unquote:
MOVD sp+0(FP), R0
MOVD nb+8(FP), R1
MOVD dp+16(FP), R2
MOVD ep+24(FP), R3
MOVD flags+32(FP), R4
MOVD ·_subr__unquote(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+40(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __unquote_entry__() uintptr
var (
_subr__unquote uintptr = __unquote_entry__() + 32
)
const (
_stack__unquote = 112
)
var (
_ = _subr__unquote
)
const (
_ = _stack__unquote
)

View file

@ -0,0 +1,37 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
// `unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func validate_one(s *string, p *int, m *types.StateMachine) (ret int) {
return __validate_one(s, p, m)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __validate_one(s *string, p *int, m *types.StateMachine) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __validate_one_entry__() uintptr
var (
_subr__validate_one uintptr = __validate_one_entry__() + 48
)
const (
_stack__validate_one = 112
)
var (
_ = _subr__validate_one
)
const (
_ = _stack__validate_one
)

View file

@ -0,0 +1,38 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
import (
// `unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) {
return __validate_utf8(s, p, m)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int)

View file

@ -0,0 +1,222 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__validate_utf8_entry__(SB), NOSPLIT, $48
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 2, 0x00
_validate_utf8:
WORD $0xd10103ff // sub sp, sp, #64
WORD $0xa901cff4 // stp x20, x19, [sp, #24]
WORD $0xa902fbfd // stp fp, lr, [sp, #40]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xa9402408 // ldp x8, x9, [x0]
WORD $0xf940002c // ldr x12, [x1]
WORD $0x8b09010a // add x10, x8, x9
WORD $0xd1000d4b // sub x11, x10, #3
WORD $0x8b0c0109 // add x9, x8, x12
WORD $0xeb0b013f // cmp x9, x11
WORD $0x54000722 // b.hs LBB0_15 $228(%rip)
WORD $0x52981e0c // mov w12, #49392
WORD $0x72a0180c // movk w12, #192, lsl #16
WORD $0x52901c0d // mov w13, #32992
WORD $0x72a0100d // movk w13, #128, lsl #16
WORD $0x9100204e // add x14, x2, #8
WORD $0x528401ef // mov w15, #8207
WORD $0x528401b0 // mov w16, #8205
WORD $0x52981c11 // mov w17, #49376
WORD $0x52901800 // mov w0, #32960
WORD $0x52981f03 // mov w3, #49400
WORD $0x72b81803 // movk w3, #49344, lsl #16
WORD $0x528600e4 // mov w4, #12295
WORD $0x52901e05 // mov w5, #33008
WORD $0x72b01005 // movk w5, #32896, lsl #16
WORD $0x52860066 // mov w6, #12291
WORD $0x14000005 // b LBB0_4 $20(%rip)
LBB0_2:
WORD $0x52800033 // mov w19, #1
LBB0_3:
WORD $0x8b130129 // add x9, x9, x19
WORD $0xeb0b013f // cmp x9, x11
WORD $0x540004a2 // b.hs LBB0_15 $148(%rip)
LBB0_4:
WORD $0x39c00127 // ldrsb w7, [x9]
WORD $0x36ffff67 // tbz w7, #31, LBB0_2 $-20(%rip)
WORD $0xb9400127 // ldr w7, [x9]
WORD $0x0a0c00f3 // and w19, w7, w12
WORD $0x6b0d027f // cmp w19, w13
WORD $0x0a0f00f3 // and w19, w7, w15
WORD $0x7a500264 // ccmp w19, w16, #4, eq
WORD $0x7a401a64 // ccmp w19, #0, #4, ne
WORD $0x54000341 // b.ne LBB0_14 $104(%rip)
WORD $0x0a1100f3 // and w19, w7, w17
WORD $0x121f0cf4 // and w20, w7, #0x1e
WORD $0x6b00027f // cmp w19, w0
WORD $0x7a400a84 // ccmp w20, #0, #4, eq
WORD $0x54000261 // b.ne LBB0_13 $76(%rip)
WORD $0x0a0300f3 // and w19, w7, w3
WORD $0x6b05027f // cmp w19, w5
WORD $0x540000e1 // b.ne LBB0_11 $28(%rip)
WORD $0x0a0400f3 // and w19, w7, w4
WORD $0x340000b3 // cbz w19, LBB0_11 $20(%rip)
WORD $0x52800093 // mov w19, #4
WORD $0x3617fd27 // tbz w7, #2, LBB0_3 $-92(%rip)
WORD $0x0a0600e7 // and w7, w7, w6
WORD $0x34fffce7 // cbz w7, LBB0_3 $-100(%rip)
LBB0_11:
WORD $0xcb080127 // sub x7, x9, x8
WORD $0xf9400053 // ldr x19, [x2]
WORD $0xf140067f // cmp x19, #1, lsl #12
WORD $0x54000c62 // b.hs LBB0_33 $396(%rip)
WORD $0x93407ce7 // sxtw x7, w7
WORD $0x91000674 // add x20, x19, #1
WORD $0xf9000054 // str x20, [x2]
WORD $0xf83379c7 // str x7, [x14, x19, lsl #3]
WORD $0x17ffffdd // b LBB0_2 $-140(%rip)
LBB0_13:
WORD $0x52800053 // mov w19, #2
WORD $0x17ffffdc // b LBB0_3 $-144(%rip)
LBB0_14:
WORD $0x52800073 // mov w19, #3
WORD $0x17ffffda // b LBB0_3 $-152(%rip)
LBB0_15:
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54000962 // b.hs LBB0_31 $300(%rip)
WORD $0x52981e0b // mov w11, #49392
WORD $0x72a0180b // movk w11, #192, lsl #16
WORD $0x52901c0c // mov w12, #32992
WORD $0x72a0100c // movk w12, #128, lsl #16
WORD $0x9100204d // add x13, x2, #8
WORD $0x528401ee // mov w14, #8207
WORD $0x528401af // mov w15, #8205
WORD $0x52981c10 // mov w16, #49376
WORD $0x52901811 // mov w17, #32960
WORD $0x14000004 // b LBB0_18 $16(%rip)
LBB0_17:
WORD $0x91000529 // add x9, x9, #1
WORD $0xeb0a013f // cmp x9, x10
WORD $0x540007c2 // b.hs LBB0_31 $248(%rip)
LBB0_18:
WORD $0x39c00120 // ldrsb w0, [x9]
WORD $0x36ffff80 // tbz w0, #31, LBB0_17 $-16(%rip)
WORD $0x390053ff // strb wzr, [sp, #20]
WORD $0x39004bff // strb wzr, [sp, #18]
WORD $0xcb090145 // sub x5, x10, x9
WORD $0xf10008a7 // subs x7, x5, #2
WORD $0x540001a3 // b.lo LBB0_22 $52(%rip)
WORD $0x39400120 // ldrb w0, [x9]
WORD $0x39400523 // ldrb w3, [x9, #1]
WORD $0x390053e0 // strb w0, [sp, #20]
WORD $0x91000926 // add x6, x9, #2
WORD $0x91004be4 // add x4, sp, #18
WORD $0xaa0703e5 // mov x5, x7
WORD $0xb4000167 // cbz x7, LBB0_23 $44(%rip)
LBB0_21:
WORD $0x394000c0 // ldrb w0, [x6]
WORD $0x39000080 // strb w0, [x4]
WORD $0x394053e0 // ldrb w0, [sp, #20]
WORD $0x39404be4 // ldrb w4, [sp, #18]
WORD $0x14000007 // b LBB0_24 $28(%rip)
LBB0_22:
WORD $0x52800000 // mov w0, #0
WORD $0x52800003 // mov w3, #0
WORD $0x910053e4 // add x4, sp, #20
WORD $0xaa0903e6 // mov x6, x9
WORD $0xb5fffee5 // cbnz x5, LBB0_21 $-36(%rip)
LBB0_23:
WORD $0x52800004 // mov w4, #0
LBB0_24:
WORD $0x53185c63 // lsl w3, w3, #8
WORD $0x2a044063 // orr w3, w3, w4, lsl #16
WORD $0x2a000063 // orr w3, w3, w0
WORD $0x0a0b0064 // and w4, w3, w11
WORD $0x6b0c009f // cmp w4, w12
WORD $0x0a0e0064 // and w4, w3, w14
WORD $0x7a4f0084 // ccmp w4, w15, #4, eq
WORD $0x7a401884 // ccmp w4, #0, #4, ne
WORD $0x54000301 // b.ne LBB0_30 $96(%rip)
WORD $0x721f0c1f // tst w0, #0x1e
WORD $0x54000120 // b.eq LBB0_28 $36(%rip)
WORD $0x0a100060 // and w0, w3, w16
WORD $0x6b11001f // cmp w0, w17
WORD $0x540000c1 // b.ne LBB0_28 $24(%rip)
WORD $0x52800040 // mov w0, #2
WORD $0x8b000129 // add x9, x9, x0
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54fffac3 // b.lo LBB0_18 $-168(%rip)
WORD $0x14000012 // b LBB0_31 $72(%rip)
LBB0_28:
WORD $0xcb080120 // sub x0, x9, x8
WORD $0xf9400043 // ldr x3, [x2]
WORD $0xf140047f // cmp x3, #1, lsl #12
WORD $0x540002a2 // b.hs LBB0_32 $84(%rip)
WORD $0x93407c00 // sxtw x0, w0
WORD $0x91000464 // add x4, x3, #1
WORD $0xf9000044 // str x4, [x2]
WORD $0xf82379a0 // str x0, [x13, x3, lsl #3]
WORD $0x52800020 // mov w0, #1
WORD $0x8b000129 // add x9, x9, x0
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54fff923 // b.lo LBB0_18 $-220(%rip)
WORD $0x14000005 // b LBB0_31 $20(%rip)
LBB0_30:
WORD $0x52800060 // mov w0, #3
WORD $0x8b000129 // add x9, x9, x0
WORD $0xeb0a013f // cmp x9, x10
WORD $0x54fff883 // b.lo LBB0_18 $-240(%rip)
LBB0_31:
WORD $0xd2800000 // mov x0, #0
WORD $0xcb080128 // sub x8, x9, x8
WORD $0xf9000028 // str x8, [x1]
WORD $0xa942fbfd // ldp fp, lr, [sp, #40]
WORD $0xa941cff4 // ldp x20, x19, [sp, #24]
WORD $0x910103ff // add sp, sp, #64
WORD $0xd65f03c0 // ret
LBB0_32:
WORD $0xf9000020 // str x0, [x1]
WORD $0x92800000 // mov x0, #-1
WORD $0xa942fbfd // ldp fp, lr, [sp, #40]
WORD $0xa941cff4 // ldp x20, x19, [sp, #24]
WORD $0x910103ff // add sp, sp, #64
WORD $0xd65f03c0 // ret
LBB0_33:
WORD $0xf9000027 // str x7, [x1]
WORD $0x92800000 // mov x0, #-1
WORD $0xa942fbfd // ldp fp, lr, [sp, #40]
WORD $0xa941cff4 // ldp x20, x19, [sp, #24]
WORD $0x910103ff // add sp, sp, #64
WORD $0xd65f03c0 // ret
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__validate_utf8(SB), NOSPLIT, $0-32
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $128, RSP, R17
CMP R16, R17
BLS _stack_grow
_validate_utf8:
MOVD s+0(FP), R0
MOVD p+8(FP), R1
MOVD m+16(FP), R2
MOVD ·_subr__validate_utf8(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+24(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,31 @@
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
/*
* 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 neon
//go:nosplit
func validate_utf8_fast(s *string) (ret int) {
return __validate_utf8_fast(s)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __validate_utf8_fast(s *string) (ret int)

View file

@ -0,0 +1,182 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__validate_utf8_fast_entry__(SB), NOSPLIT, $32
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 2, 0x00
_validate_utf8_fast:
WORD $0xd100c3ff // sub sp, sp, #48
WORD $0xa901fbfd // stp fp, lr, [sp, #24]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xa9402408 // ldp x8, x9, [x0]
WORD $0x8b090109 // add x9, x8, x9
WORD $0xd1000d2b // sub x11, x9, #3
WORD $0xeb0b011f // cmp x8, x11
WORD $0x54000622 // b.hs LBB0_13 $196(%rip)
WORD $0x52981e0c // mov w12, #49392
WORD $0x72a0180c // movk w12, #192, lsl #16
WORD $0x52901c0d // mov w13, #32992
WORD $0x72a0100d // movk w13, #128, lsl #16
WORD $0x528401ee // mov w14, #8207
WORD $0x528401af // mov w15, #8205
WORD $0x52981c10 // mov w16, #49376
WORD $0x52901811 // mov w17, #32960
WORD $0x52981f00 // mov w0, #49400
WORD $0x72b81800 // movk w0, #49344, lsl #16
WORD $0x528600e1 // mov w1, #12295
WORD $0x52901e02 // mov w2, #33008
WORD $0x72b01002 // movk w2, #32896, lsl #16
WORD $0x52860063 // mov w3, #12291
WORD $0xaa0803ea // mov x10, x8
WORD $0x14000005 // b LBB0_4 $20(%rip)
LBB0_2:
WORD $0x52800025 // mov w5, #1
LBB0_3:
WORD $0x8b05014a // add x10, x10, x5
WORD $0xeb0b015f // cmp x10, x11
WORD $0x540003c2 // b.hs LBB0_14 $120(%rip)
LBB0_4:
WORD $0x39c00144 // ldrsb w4, [x10]
WORD $0x36ffff64 // tbz w4, #31, LBB0_2 $-20(%rip)
WORD $0xb9400144 // ldr w4, [x10]
WORD $0x0a0c0085 // and w5, w4, w12
WORD $0x6b0d00bf // cmp w5, w13
WORD $0x0a0e0085 // and w5, w4, w14
WORD $0x7a4f00a4 // ccmp w5, w15, #4, eq
WORD $0x7a4018a4 // ccmp w5, #0, #4, ne
WORD $0x54000241 // b.ne LBB0_12 $72(%rip)
WORD $0x0a100085 // and w5, w4, w16
WORD $0x121f0c86 // and w6, w4, #0x1e
WORD $0x6b1100bf // cmp w5, w17
WORD $0x7a4008c4 // ccmp w6, #0, #4, eq
WORD $0x54000161 // b.ne LBB0_11 $44(%rip)
WORD $0x0a000085 // and w5, w4, w0
WORD $0x6b0200bf // cmp w5, w2
WORD $0x54000981 // b.ne LBB0_30 $304(%rip)
WORD $0x0a010085 // and w5, w4, w1
WORD $0x34000945 // cbz w5, LBB0_30 $296(%rip)
WORD $0x52800085 // mov w5, #4
WORD $0x3617fd24 // tbz w4, #2, LBB0_3 $-92(%rip)
WORD $0x0a030084 // and w4, w4, w3
WORD $0x34fffce4 // cbz w4, LBB0_3 $-100(%rip)
WORD $0x14000045 // b LBB0_30 $276(%rip)
LBB0_11:
WORD $0x52800045 // mov w5, #2
WORD $0x17ffffe4 // b LBB0_3 $-112(%rip)
LBB0_12:
WORD $0x52800065 // mov w5, #3
WORD $0x17ffffe2 // b LBB0_3 $-120(%rip)
LBB0_13:
WORD $0xaa0803ea // mov x10, x8
LBB0_14:
WORD $0xeb09015f // cmp x10, x9
WORD $0x54000742 // b.hs LBB0_29 $232(%rip)
WORD $0x52981e0b // mov w11, #49392
WORD $0x72a0180b // movk w11, #192, lsl #16
WORD $0x52901c0c // mov w12, #32992
WORD $0x72a0100c // movk w12, #128, lsl #16
WORD $0x528401ed // mov w13, #8207
WORD $0x528401ae // mov w14, #8205
WORD $0x52981c0f // mov w15, #49376
WORD $0x52901810 // mov w16, #32960
WORD $0x14000004 // b LBB0_18 $16(%rip)
LBB0_16:
WORD $0x9100054a // add x10, x10, #1
LBB0_17:
WORD $0xeb09015f // cmp x10, x9
WORD $0x540005c2 // b.hs LBB0_29 $184(%rip)
LBB0_18:
WORD $0x39c00151 // ldrsb w17, [x10]
WORD $0x36ffff91 // tbz w17, #31, LBB0_16 $-16(%rip)
WORD $0x390053ff // strb wzr, [sp, #20]
WORD $0x39004bff // strb wzr, [sp, #18]
WORD $0xcb0a0122 // sub x2, x9, x10
WORD $0xf1000844 // subs x4, x2, #2
WORD $0x540001a3 // b.lo LBB0_22 $52(%rip)
WORD $0x39400151 // ldrb w17, [x10]
WORD $0x39400540 // ldrb w0, [x10, #1]
WORD $0x390053f1 // strb w17, [sp, #20]
WORD $0x91000943 // add x3, x10, #2
WORD $0x91004be1 // add x1, sp, #18
WORD $0xaa0403e2 // mov x2, x4
WORD $0xb4000164 // cbz x4, LBB0_23 $44(%rip)
LBB0_21:
WORD $0x39400071 // ldrb w17, [x3]
WORD $0x39000031 // strb w17, [x1]
WORD $0x394053f1 // ldrb w17, [sp, #20]
WORD $0x39404be1 // ldrb w1, [sp, #18]
WORD $0x14000007 // b LBB0_24 $28(%rip)
LBB0_22:
WORD $0x52800011 // mov w17, #0
WORD $0x52800000 // mov w0, #0
WORD $0x910053e1 // add x1, sp, #20
WORD $0xaa0a03e3 // mov x3, x10
WORD $0xb5fffee2 // cbnz x2, LBB0_21 $-36(%rip)
LBB0_23:
WORD $0x52800001 // mov w1, #0
LBB0_24:
WORD $0x53185c00 // lsl w0, w0, #8
WORD $0x2a014000 // orr w0, w0, w1, lsl #16
WORD $0x2a110000 // orr w0, w0, w17
WORD $0x0a0b0001 // and w1, w0, w11
WORD $0x6b0c003f // cmp w1, w12
WORD $0x0a0d0001 // and w1, w0, w13
WORD $0x7a4e0024 // ccmp w1, w14, #4, eq
WORD $0x7a401824 // ccmp w1, #0, #4, ne
WORD $0x54000121 // b.ne LBB0_28 $36(%rip)
WORD $0x721f0e3f // tst w17, #0x1e
WORD $0x540001c0 // b.eq LBB0_30 $56(%rip)
WORD $0x0a0f0011 // and w17, w0, w15
WORD $0x6b10023f // cmp w17, w16
WORD $0x54000161 // b.ne LBB0_30 $44(%rip)
WORD $0x52800051 // mov w17, #2
WORD $0x8b11014a // add x10, x10, x17
WORD $0x17ffffd5 // b LBB0_17 $-172(%rip)
LBB0_28:
WORD $0x52800071 // mov w17, #3
WORD $0x8b11014a // add x10, x10, x17
WORD $0x17ffffd2 // b LBB0_17 $-184(%rip)
LBB0_29:
WORD $0xd2800000 // mov x0, #0
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
LBB0_30:
WORD $0xaa2a03e9 // mvn x9, x10
WORD $0x8b080120 // add x0, x9, x8
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__validate_utf8_fast(SB), NOSPLIT, $0-16
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $112, RSP, R17
CMP R16, R17
BLS _stack_grow
_validate_utf8_fast:
MOVD s+0(FP), R0
MOVD ·_subr__validate_utf8_fast(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
MOVD R0, ret+8(FP)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __validate_utf8_fast_entry__() uintptr
var (
_subr__validate_utf8_fast uintptr = __validate_utf8_fast_entry__() + 0
)
const (
_stack__validate_utf8_fast = 48
)
var (
_ = _subr__validate_utf8_fast
)
const (
_ = _stack__validate_utf8_fast
)

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __validate_utf8_entry__() uintptr
var (
_subr__validate_utf8 uintptr = __validate_utf8_entry__() + 0
)
const (
_stack__validate_utf8 = 64
)
var (
_ = _subr__validate_utf8
)
const (
_ = _stack__validate_utf8
)

View file

@ -0,0 +1,34 @@
/*
* 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 neon
import (
`unsafe`
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) {
return __value(s, n, p, v, flags)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __value_entry__() uintptr
var (
_subr__value uintptr = __value_entry__() + 32
)
const (
_stack__value = 112
)
var (
_ = _subr__value
)
const (
_ = _stack__value
)

View file

@ -0,0 +1,34 @@
/*
* 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 neon
import (
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func vnumber(s *string, p *int, v *types.JsonState) {
__vnumber(s, p, v)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vnumber(s *string, p *int, v *types.JsonState)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __vnumber_entry__() uintptr
var (
_subr__vnumber uintptr = __vnumber_entry__() + 0
)
const (
_stack__vnumber = 112
)
var (
_ = _subr__vnumber
)
const (
_ = _stack__vnumber
)

View file

@ -0,0 +1,32 @@
/*
* 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 neon
import (
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func vsigned(s *string, p *int, v *types.JsonState) {
__vsigned(s, p, v)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vsigned(s *string, p *int, v *types.JsonState)

View file

@ -0,0 +1,156 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__vsigned_entry__(SB), NOSPLIT, $16
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 2, 0x00
_vsigned:
WORD $0xd10083ff // sub sp, sp, #32
WORD $0xa900fbfd // stp fp, lr, [sp, #8]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xf9400028 // ldr x8, [x1]
WORD $0xa940240a // ldp x10, x9, [x0]
WORD $0x5280012b // mov w11, #9
WORD $0xa900fc5f // stp xzr, xzr, [x2, #8]
WORD $0xf900004b // str x11, [x2]
WORD $0xf940002b // ldr x11, [x1]
WORD $0xf9000c4b // str x11, [x2, #24]
WORD $0xeb09011f // cmp x8, x9
WORD $0x54000642 // b.hs LBB0_12 $200(%rip)
WORD $0x3868694c // ldrb w12, [x10, x8]
WORD $0x7100b59f // cmp w12, #45
WORD $0x540006a1 // b.ne LBB0_13 $212(%rip)
WORD $0x91000508 // add x8, x8, #1
WORD $0xeb09011f // cmp x8, x9
WORD $0x54000582 // b.hs LBB0_12 $176(%rip)
WORD $0x3868694c // ldrb w12, [x10, x8]
WORD $0x9280000b // mov x11, #-1
WORD $0x5100e98d // sub w13, w12, #58
WORD $0x31002dbf // cmn w13, #11
WORD $0x54000629 // b.ls LBB0_14 $196(%rip)
LBB0_4:
WORD $0x7100c19f // cmp w12, #48
WORD $0x54000181 // b.ne LBB0_6 $48(%rip)
WORD $0x8b08014c // add x12, x10, x8
WORD $0x3940058c // ldrb w12, [x12, #1]
WORD $0x5100b98c // sub w12, w12, #46
WORD $0x7100dd9f // cmp w12, #55
WORD $0x5280002d // mov w13, #1
WORD $0x9acc21ac // lsl x12, x13, x12
WORD $0xb20903ed // mov x13, #36028797027352576
WORD $0xf280002d // movk x13, #1
WORD $0x8a0d018c // and x12, x12, x13
WORD $0xfa409984 // ccmp x12, #0, #4, ls
WORD $0x540007e0 // b.eq LBB0_22 $252(%rip)
LBB0_6:
WORD $0xd280000c // mov x12, #0
WORD $0x5280014d // mov w13, #10
LBB0_7:
WORD $0xeb08013f // cmp x9, x8
WORD $0x540006c0 // b.eq LBB0_21 $216(%rip)
WORD $0x3868694e // ldrb w14, [x10, x8]
WORD $0x5100c1ce // sub w14, w14, #48
WORD $0x710025df // cmp w14, #9
WORD $0x54000448 // b.hi LBB0_15 $136(%rip)
WORD $0x9b4d7d8f // smulh x15, x12, x13
WORD $0x8b0c098c // add x12, x12, x12, lsl #2
WORD $0xd37ff98c // lsl x12, x12, #1
WORD $0xeb8cfdff // cmp x15, x12, asr #63
WORD $0x540000c1 // b.ne LBB0_11 $24(%rip)
WORD $0x91000508 // add x8, x8, #1
WORD $0x92401dce // and x14, x14, #0xff
WORD $0x9b2e7d6e // smull x14, w11, w14
WORD $0xab0e018c // adds x12, x12, x14
WORD $0x54fffe27 // b.vc LBB0_7 $-60(%rip)
LBB0_11:
WORD $0xd1000508 // sub x8, x8, #1
WORD $0xf9000028 // str x8, [x1]
WORD $0x92800088 // mov x8, #-5
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_12:
WORD $0xf9000029 // str x9, [x1]
WORD $0x92800008 // mov x8, #-1
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_13:
WORD $0x5280002b // mov w11, #1
WORD $0x5100e98d // sub w13, w12, #58
WORD $0x31002dbf // cmn w13, #11
WORD $0x54fffa28 // b.hi LBB0_4 $-188(%rip)
LBB0_14:
WORD $0xf9000028 // str x8, [x1]
WORD $0x92800028 // mov x8, #-2
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_15:
WORD $0xeb09011f // cmp x8, x9
WORD $0x540001c2 // b.hs LBB0_20 $56(%rip)
WORD $0x38686949 // ldrb w9, [x10, x8]
WORD $0x7100b93f // cmp w9, #46
WORD $0x540000a0 // b.eq LBB0_19 $20(%rip)
WORD $0x7101153f // cmp w9, #69
WORD $0x54000060 // b.eq LBB0_19 $12(%rip)
WORD $0x7101953f // cmp w9, #101
WORD $0x540000e1 // b.ne LBB0_20 $28(%rip)
LBB0_19:
WORD $0xf9000028 // str x8, [x1]
WORD $0x928000a8 // mov x8, #-6
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_20:
WORD $0xaa0803e9 // mov x9, x8
LBB0_21:
WORD $0xf9000029 // str x9, [x1]
WORD $0xf900084c // str x12, [x2, #16]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_22:
WORD $0x91000508 // add x8, x8, #1
WORD $0xf9000028 // str x8, [x1]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__vsigned(SB), NOSPLIT, $0-24
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $96, RSP, R17
CMP R16, R17
BLS _stack_grow
_vsigned:
MOVD s+0(FP), R0
MOVD p+8(FP), R1
MOVD v+16(FP), R2
MOVD ·_subr__vsigned(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __vsigned_entry__() uintptr
var (
_subr__vsigned uintptr = __vsigned_entry__() + 0
)
const (
_stack__vsigned = 32
)
var (
_ = _subr__vsigned
)
const (
_ = _stack__vsigned
)

View file

@ -0,0 +1,32 @@
/*
* 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 neon
import (
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func vstring(s *string, p *int, v *types.JsonState, flags uint64) {
__vstring(s, p, v, flags)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vstring(s *string, p *int, v *types.JsonState, flags uint64)

View file

@ -0,0 +1,628 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__vstring_entry__(SB), NOSPLIT, $32
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 4, 0x00
lCPI0_0:
WORD $0x08040201
WORD $0x80402010
WORD $0x08040201
WORD $0x80402010
// // .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
// .byte 1
// .byte 2
// .byte 4
// .byte 8
// .byte 16
// .byte 32
// .byte 64
// .byte 128
lCPI0_1:
WORD $0x09010800
WORD $0x0b030a02
WORD $0x0d050c04
WORD $0x0f070e06
// // .byte 0
// .byte 8
// .byte 1
// .byte 9
// .byte 2
// .byte 10
// .byte 3
// .byte 11
// .byte 4
// .byte 12
// .byte 5
// .byte 13
// .byte 6
// .byte 14
// .byte 7
// .byte 15
_vstring:
WORD $0xd100c3ff // sub sp, sp, #48
WORD $0xa900cff4 // stp x20, x19, [sp, #8]
WORD $0xa901fbfd // stp fp, lr, [sp, #24]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xf9400028 // ldr x8, [x1]
WORD $0xf9400409 // ldr x9, [x0, #8]
WORD $0x37280c43 // tbnz w3, #5, LBB0_11 $392(%rip)
WORD $0xeb08012b // subs x11, x9, x8
WORD $0x54003b00 // b.eq LBB0_75 $1888(%rip)
WORD $0xf940000a // ldr x10, [x0]
WORD $0xf101017f // cmp x11, #64
WORD $0x54001d43 // b.lo LBB0_26 $936(%rip)
WORD $0xd280000c // mov x12, #0
WORD $0x92800009 // mov x9, #-1
WORD $0x4f01e440 // movi.16b v0, #34
WORD $0x4f02e781 // movi.16b v1, #92
Lloh0:
WORD $0x10fffced // adr x13, lCPI0_0 $-100(%rip)
Lloh1:
WORD $0x3dc001a2 // ldr q2, [x13, lCPI0_0@PAGEOFF] $0(%rip)
Lloh2:
WORD $0x10fffd2d // adr x13, lCPI0_1 $-92(%rip)
Lloh3:
WORD $0x3dc001a3 // ldr q3, [x13, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0xaa0803ed // mov x13, x8
LBB0_4:
WORD $0x8b0d014e // add x14, x10, x13
WORD $0xad4015c4 // ldp q4, q5, [x14]
WORD $0xad411dc6 // ldp q6, q7, [x14, #32]
WORD $0x6e208c90 // cmeq.16b v16, v4, v0
WORD $0x6e208cb1 // cmeq.16b v17, v5, v0
WORD $0x6e208cd2 // cmeq.16b v18, v6, v0
WORD $0x6e208cf3 // cmeq.16b v19, v7, v0
WORD $0x6e218c84 // cmeq.16b v4, v4, v1
WORD $0x6e218ca5 // cmeq.16b v5, v5, v1
WORD $0x6e218cc6 // cmeq.16b v6, v6, v1
WORD $0x6e218ce7 // cmeq.16b v7, v7, v1
WORD $0x4e221e10 // and.16b v16, v16, v2
WORD $0x4e030210 // tbl.16b v16, { v16 }, v3
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e26020e // fmov w14, s16
WORD $0x4e221e30 // and.16b v16, v17, v2
WORD $0x4e030210 // tbl.16b v16, { v16 }, v3
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e26020f // fmov w15, s16
WORD $0x4e221e50 // and.16b v16, v18, v2
WORD $0x4e030210 // tbl.16b v16, { v16 }, v3
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e260210 // fmov w16, s16
WORD $0x4e221e70 // and.16b v16, v19, v2
WORD $0x4e030210 // tbl.16b v16, { v16 }, v3
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e260211 // fmov w17, s16
WORD $0x4e221c84 // and.16b v4, v4, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260083 // fmov w3, s4
WORD $0x4e221ca4 // and.16b v4, v5, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260084 // fmov w4, s4
WORD $0x4e221cc4 // and.16b v4, v6, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260085 // fmov w5, s4
WORD $0x4e221ce4 // and.16b v4, v7, v2
WORD $0x4e030084 // tbl.16b v4, { v4 }, v3
WORD $0x4e71b884 // addv.8h h4, v4
WORD $0x1e260086 // fmov w6, s4
WORD $0xd3607e10 // lsl x16, x16, #32
WORD $0xaa11c210 // orr x16, x16, x17, lsl #48
WORD $0x53103def // lsl w15, w15, #16
WORD $0xaa0f020f // orr x15, x16, x15
WORD $0xaa0e01ee // orr x14, x15, x14
WORD $0xd3607caf // lsl x15, x5, #32
WORD $0xaa06c1ef // orr x15, x15, x6, lsl #48
WORD $0x53103c90 // lsl w16, w4, #16
WORD $0xaa1001ef // orr x15, x15, x16
WORD $0xaa0301ef // orr x15, x15, x3
WORD $0xb500010f // cbnz x15, LBB0_8 $32(%rip)
WORD $0xb500018c // cbnz x12, LBB0_9 $48(%rip)
WORD $0xb50002ce // cbnz x14, LBB0_10 $88(%rip)
LBB0_7:
WORD $0xd101016b // sub x11, x11, #64
WORD $0x910101ad // add x13, x13, #64
WORD $0xf100fd7f // cmp x11, #63
WORD $0x54fff8a8 // b.hi LBB0_4 $-236(%rip)
WORD $0x140000a0 // b LBB0_24 $640(%rip)
LBB0_8:
WORD $0xb100053f // cmn x9, #1
WORD $0xdac001f0 // rbit x16, x15
WORD $0xdac01210 // clz x16, x16
WORD $0x8b0d0210 // add x16, x16, x13
WORD $0x9a901129 // csel x9, x9, x16, ne
LBB0_9:
WORD $0x8a2c01f0 // bic x16, x15, x12
WORD $0xaa100591 // orr x17, x12, x16, lsl #1
WORD $0x8a3101ec // bic x12, x15, x17
WORD $0x9201f18c // and x12, x12, #0xaaaaaaaaaaaaaaaa
WORD $0xab10018f // adds x15, x12, x16
WORD $0x1a9f37ec // cset w12, hs
WORD $0xd37ff9ef // lsl x15, x15, #1
WORD $0xd200f1ef // eor x15, x15, #0x5555555555555555
WORD $0x8a1101ef // and x15, x15, x17
WORD $0x8a2f01ce // bic x14, x14, x15
WORD $0xb4fffd8e // cbz x14, LBB0_7 $-80(%rip)
LBB0_10:
WORD $0xdac001ca // rbit x10, x14
WORD $0xdac0114a // clz x10, x10
WORD $0x8b0d014a // add x10, x10, x13
WORD $0x9100054e // add x14, x10, #1
WORD $0xb6f8102e // tbz x14, #63, LBB0_23 $516(%rip)
WORD $0x1400017a // b LBB0_76 $1512(%rip)
LBB0_11:
WORD $0xeb08012c // subs x12, x9, x8
WORD $0x54002ee0 // b.eq LBB0_75 $1500(%rip)
WORD $0xf940000a // ldr x10, [x0]
WORD $0x10fff18f // adr x15, lCPI0_0 $-464(%rip)
WORD $0x10fff1ee // adr x14, lCPI0_1 $-452(%rip)
WORD $0xf101019f // cmp x12, #64
WORD $0x540015e3 // b.lo LBB0_32 $700(%rip)
WORD $0xd280000b // mov x11, #0
WORD $0x92800009 // mov x9, #-1
WORD $0x4f01e440 // movi.16b v0, #34
WORD $0x3dc001e1 // ldr q1, [x15, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x3dc001c2 // ldr q2, [x14, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x4f02e783 // movi.16b v3, #92
WORD $0x4f01e404 // movi.16b v4, #32
WORD $0xaa0803ed // mov x13, x8
LBB0_14:
WORD $0x8b0d0150 // add x16, x10, x13
WORD $0xad401e10 // ldp q16, q7, [x16]
WORD $0xad411606 // ldp q6, q5, [x16, #32]
WORD $0x6e208e11 // cmeq.16b v17, v16, v0
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260230 // fmov w16, s17
WORD $0x6e208cf1 // cmeq.16b v17, v7, v0
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260231 // fmov w17, s17
WORD $0x6e208cd1 // cmeq.16b v17, v6, v0
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260223 // fmov w3, s17
WORD $0x6e208cb1 // cmeq.16b v17, v5, v0
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260224 // fmov w4, s17
WORD $0x6e238e11 // cmeq.16b v17, v16, v3
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260225 // fmov w5, s17
WORD $0x6e238cf1 // cmeq.16b v17, v7, v3
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260226 // fmov w6, s17
WORD $0x6e238cd1 // cmeq.16b v17, v6, v3
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260227 // fmov w7, s17
WORD $0x6e238cb1 // cmeq.16b v17, v5, v3
WORD $0x4e211e31 // and.16b v17, v17, v1
WORD $0x4e020231 // tbl.16b v17, { v17 }, v2
WORD $0x4e71ba31 // addv.8h h17, v17
WORD $0x1e260233 // fmov w19, s17
WORD $0xd3607c63 // lsl x3, x3, #32
WORD $0xaa04c063 // orr x3, x3, x4, lsl #48
WORD $0x53103e31 // lsl w17, w17, #16
WORD $0xaa110071 // orr x17, x3, x17
WORD $0xaa100230 // orr x16, x17, x16
WORD $0xd3607cf1 // lsl x17, x7, #32
WORD $0xaa13c231 // orr x17, x17, x19, lsl #48
WORD $0x53103cc3 // lsl w3, w6, #16
WORD $0xaa030231 // orr x17, x17, x3
WORD $0xaa050231 // orr x17, x17, x5
WORD $0xb5000451 // cbnz x17, LBB0_19 $136(%rip)
WORD $0xb50004cb // cbnz x11, LBB0_20 $152(%rip)
LBB0_16:
WORD $0x6e303490 // cmhi.16b v16, v4, v16
WORD $0x4e211e10 // and.16b v16, v16, v1
WORD $0x4e020210 // tbl.16b v16, { v16 }, v2
WORD $0x4e71ba10 // addv.8h h16, v16
WORD $0x1e260211 // fmov w17, s16
WORD $0x6e273487 // cmhi.16b v7, v4, v7
WORD $0x4e211ce7 // and.16b v7, v7, v1
WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2
WORD $0x4e71b8e7 // addv.8h h7, v7
WORD $0x1e2600e3 // fmov w3, s7
WORD $0x6e263486 // cmhi.16b v6, v4, v6
WORD $0x4e211cc6 // and.16b v6, v6, v1
WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2
WORD $0x4e71b8c6 // addv.8h h6, v6
WORD $0x1e2600c4 // fmov w4, s6
WORD $0x6e253485 // cmhi.16b v5, v4, v5
WORD $0x4e211ca5 // and.16b v5, v5, v1
WORD $0x4e0200a5 // tbl.16b v5, { v5 }, v2
WORD $0x4e71b8a5 // addv.8h h5, v5
WORD $0x1e2600a5 // fmov w5, s5
WORD $0xd3607c84 // lsl x4, x4, #32
WORD $0xaa05c084 // orr x4, x4, x5, lsl #48
WORD $0x53103c63 // lsl w3, w3, #16
WORD $0xaa030083 // orr x3, x4, x3
WORD $0xaa110071 // orr x17, x3, x17
WORD $0xb50002f0 // cbnz x16, LBB0_21 $92(%rip)
WORD $0xb5002011 // cbnz x17, LBB0_69 $1024(%rip)
WORD $0xd101018c // sub x12, x12, #64
WORD $0x910101ad // add x13, x13, #64
WORD $0xf100fd9f // cmp x12, #63
WORD $0x54fff568 // b.hi LBB0_14 $-340(%rip)
WORD $0x14000026 // b LBB0_25 $152(%rip)
LBB0_19:
WORD $0xb100053f // cmn x9, #1
WORD $0xdac00223 // rbit x3, x17
WORD $0xdac01063 // clz x3, x3
WORD $0x8b0d0063 // add x3, x3, x13
WORD $0x9a831129 // csel x9, x9, x3, ne
LBB0_20:
WORD $0x8a2b0223 // bic x3, x17, x11
WORD $0xaa030564 // orr x4, x11, x3, lsl #1
WORD $0x8a24022b // bic x11, x17, x4
WORD $0x9201f16b // and x11, x11, #0xaaaaaaaaaaaaaaaa
WORD $0xab030171 // adds x17, x11, x3
WORD $0x1a9f37eb // cset w11, hs
WORD $0xd37ffa31 // lsl x17, x17, #1
WORD $0xd200f231 // eor x17, x17, #0x5555555555555555
WORD $0x8a040231 // and x17, x17, x4
WORD $0x8a310210 // bic x16, x16, x17
WORD $0x17ffffd1 // b LBB0_16 $-188(%rip)
LBB0_21:
WORD $0xdac0020a // rbit x10, x16
WORD $0xdac0114a // clz x10, x10
WORD $0xdac0022b // rbit x11, x17
WORD $0xdac0116b // clz x11, x11
WORD $0xeb0a017f // cmp x11, x10
WORD $0x54001ca3 // b.lo LBB0_69 $916(%rip)
WORD $0x8b0d014a // add x10, x10, x13
WORD $0x9100054e // add x14, x10, #1
WORD $0xb7f81f6e // tbnz x14, #63, LBB0_76 $1004(%rip)
LBB0_23:
WORD $0xf900002e // str x14, [x1]
WORD $0x528000ea // mov w10, #7
WORD $0xf900004a // str x10, [x2]
WORD $0xeb0e013f // cmp x9, x14
WORD $0xda9fb129 // csinv x9, x9, xzr, lt
WORD $0xa9012448 // stp x8, x9, [x2, #16]
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0xa940cff4 // ldp x20, x19, [sp, #8]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
LBB0_24:
WORD $0x8b0d014d // add x13, x10, x13
WORD $0x14000006 // b LBB0_27 $24(%rip)
LBB0_25:
WORD $0x8b0d014d // add x13, x10, x13
WORD $0x1400002c // b LBB0_33 $176(%rip)
LBB0_26:
WORD $0xd280000c // mov x12, #0
WORD $0x8b08014d // add x13, x10, x8
WORD $0x92800009 // mov x9, #-1
LBB0_27:
WORD $0xf100816e // subs x14, x11, #32
WORD $0x54000e83 // b.lo LBB0_42 $464(%rip)
WORD $0xad4005a0 // ldp q0, q1, [x13]
WORD $0x4f01e442 // movi.16b v2, #34
WORD $0x6e228c03 // cmeq.16b v3, v0, v2
WORD $0x6e228c22 // cmeq.16b v2, v1, v2
WORD $0x4f02e784 // movi.16b v4, #92
WORD $0x6e248c00 // cmeq.16b v0, v0, v4
WORD $0x6e248c21 // cmeq.16b v1, v1, v4
Lloh4:
WORD $0x10ffdecb // adr x11, lCPI0_0 $-1064(%rip)
Lloh5:
WORD $0x3dc00164 // ldr q4, [x11, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x4e241c63 // and.16b v3, v3, v4
Lloh6:
WORD $0x10ffdeeb // adr x11, lCPI0_1 $-1060(%rip)
Lloh7:
WORD $0x3dc00165 // ldr q5, [x11, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x4e050063 // tbl.16b v3, { v3 }, v5
WORD $0x4e71b863 // addv.8h h3, v3
WORD $0x1e26006b // fmov w11, s3
WORD $0x4e241c42 // and.16b v2, v2, v4
WORD $0x4e050042 // tbl.16b v2, { v2 }, v5
WORD $0x4e71b842 // addv.8h h2, v2
WORD $0x1e260050 // fmov w16, s2
WORD $0x4e241c00 // and.16b v0, v0, v4
WORD $0x4e050000 // tbl.16b v0, { v0 }, v5
WORD $0x4e71b800 // addv.8h h0, v0
WORD $0x1e26000f // fmov w15, s0
WORD $0x4e241c20 // and.16b v0, v1, v4
WORD $0x4e050000 // tbl.16b v0, { v0 }, v5
WORD $0x4e71b800 // addv.8h h0, v0
WORD $0x1e260011 // fmov w17, s0
WORD $0x33103e0b // bfi w11, w16, #16, #16
WORD $0x33103e2f // bfi w15, w17, #16, #16
WORD $0x3500080f // cbnz w15, LBB0_39 $256(%rip)
WORD $0xb50008ac // cbnz x12, LBB0_40 $276(%rip)
WORD $0xb4000a4b // cbz x11, LBB0_41 $328(%rip)
LBB0_31:
WORD $0xdac0016b // rbit x11, x11
WORD $0xdac0116b // clz x11, x11
WORD $0x14000036 // b LBB0_38 $216(%rip)
LBB0_32:
WORD $0xd280000b // mov x11, #0
WORD $0x8b08014d // add x13, x10, x8
WORD $0x92800009 // mov x9, #-1
LBB0_33:
WORD $0xf1008190 // subs x16, x12, #32
WORD $0x54001103 // b.lo LBB0_59 $544(%rip)
WORD $0xad4005a0 // ldp q0, q1, [x13]
WORD $0x4f01e442 // movi.16b v2, #34
WORD $0x6e228c03 // cmeq.16b v3, v0, v2
WORD $0x3dc001e4 // ldr q4, [x15, lCPI0_0@PAGEOFF] $0(%rip)
WORD $0x4e241c63 // and.16b v3, v3, v4
WORD $0x3dc001c5 // ldr q5, [x14, lCPI0_1@PAGEOFF] $0(%rip)
WORD $0x4e050063 // tbl.16b v3, { v3 }, v5
WORD $0x4e71b863 // addv.8h h3, v3
WORD $0x1e26006c // fmov w12, s3
WORD $0x6e228c22 // cmeq.16b v2, v1, v2
WORD $0x4e241c42 // and.16b v2, v2, v4
WORD $0x4e050042 // tbl.16b v2, { v2 }, v5
WORD $0x4e71b842 // addv.8h h2, v2
WORD $0x1e260051 // fmov w17, s2
WORD $0x4f02e782 // movi.16b v2, #92
WORD $0x6e228c03 // cmeq.16b v3, v0, v2
WORD $0x4e241c63 // and.16b v3, v3, v4
WORD $0x4e050063 // tbl.16b v3, { v3 }, v5
WORD $0x4e71b863 // addv.8h h3, v3
WORD $0x1e26006f // fmov w15, s3
WORD $0x6e228c22 // cmeq.16b v2, v1, v2
WORD $0x4e241c42 // and.16b v2, v2, v4
WORD $0x4e050042 // tbl.16b v2, { v2 }, v5
WORD $0x4e71b842 // addv.8h h2, v2
WORD $0x1e260043 // fmov w3, s2
WORD $0x4f01e402 // movi.16b v2, #32
WORD $0x6e203440 // cmhi.16b v0, v2, v0
WORD $0x4e241c00 // and.16b v0, v0, v4
WORD $0x4e050000 // tbl.16b v0, { v0 }, v5
WORD $0x4e71b800 // addv.8h h0, v0
WORD $0x1e26000e // fmov w14, s0
WORD $0x6e213440 // cmhi.16b v0, v2, v1
WORD $0x4e241c00 // and.16b v0, v0, v4
WORD $0x4e050000 // tbl.16b v0, { v0 }, v5
WORD $0x4e71b800 // addv.8h h0, v0
WORD $0x1e260004 // fmov w4, s0
WORD $0x33103e2c // bfi w12, w17, #16, #16
WORD $0x33103c6f // bfi w15, w3, #16, #16
WORD $0x33103c8e // bfi w14, w4, #16, #16
WORD $0x3500092f // cbnz w15, LBB0_55 $292(%rip)
WORD $0xb50009cb // cbnz x11, LBB0_56 $312(%rip)
WORD $0xb4000b6c // cbz x12, LBB0_57 $364(%rip)
LBB0_37:
WORD $0xdac0018b // rbit x11, x12
WORD $0xdac0116b // clz x11, x11
WORD $0xdac001cc // rbit x12, x14
WORD $0xdac0118c // clz x12, x12
WORD $0xeb0b019f // cmp x12, x11
WORD $0x54000ee3 // b.lo LBB0_69 $476(%rip)
LBB0_38:
WORD $0xcb0a01aa // sub x10, x13, x10
WORD $0x8b0b014a // add x10, x10, x11
WORD $0x9100054e // add x14, x10, #1
WORD $0xb6fff24e // tbz x14, #63, LBB0_23 $-440(%rip)
WORD $0x1400008b // b LBB0_76 $556(%rip)
LBB0_39:
WORD $0xdac001f0 // rbit x16, x15
WORD $0xdac01210 // clz x16, x16
WORD $0xcb0a01b1 // sub x17, x13, x10
WORD $0x8b100230 // add x16, x17, x16
WORD $0xb100053f // cmn x9, #1
WORD $0x9a901129 // csel x9, x9, x16, ne
LBB0_40:
WORD $0x0a2c01f0 // bic w16, w15, w12
WORD $0x531f7a11 // lsl w17, w16, #1
WORD $0x331f7a0c // bfi w12, w16, #1, #31
WORD $0x0a3101ef // bic w15, w15, w17
WORD $0x1201f1ef // and w15, w15, #0xaaaaaaaa
WORD $0x2b1001ef // adds w15, w15, w16
WORD $0x3200f3f0 // mov w16, #1431655765
WORD $0x4a0f060f // eor w15, w16, w15, lsl #1
WORD $0x0a0c01ec // and w12, w15, w12
WORD $0x1a9f37ef // cset w15, hs
WORD $0x2a2c03ec // mvn w12, w12
WORD $0x8a0b018b // and x11, x12, x11
WORD $0xaa0f03ec // mov x12, x15
WORD $0xb5fff60b // cbnz x11, LBB0_31 $-320(%rip)
LBB0_41:
WORD $0x910081ad // add x13, x13, #32
WORD $0xaa0e03eb // mov x11, x14
LBB0_42:
WORD $0xb5000c4c // cbnz x12, LBB0_71 $392(%rip)
WORD $0xb40003ab // cbz x11, LBB0_52 $116(%rip)
LBB0_44:
WORD $0xcb0a03ec // neg x12, x10
LBB0_45:
WORD $0xd280000f // mov x15, #0
LBB0_46:
WORD $0x386f69ae // ldrb w14, [x13, x15]
WORD $0x710089df // cmp w14, #34
WORD $0x540002c0 // b.eq LBB0_51 $88(%rip)
WORD $0x710171df // cmp w14, #92
WORD $0x540000a0 // b.eq LBB0_49 $20(%rip)
WORD $0x910005ef // add x15, x15, #1
WORD $0xeb0f017f // cmp x11, x15
WORD $0x54ffff21 // b.ne LBB0_46 $-28(%rip)
WORD $0x14000015 // b LBB0_53 $84(%rip)
LBB0_49:
WORD $0xd100056e // sub x14, x11, #1
WORD $0xeb0f01df // cmp x14, x15
WORD $0x54000c80 // b.eq LBB0_75 $400(%rip)
WORD $0x8b0f01ad // add x13, x13, x15
WORD $0x8b0c01ae // add x14, x13, x12
WORD $0xb100053f // cmn x9, #1
WORD $0x9a8901c9 // csel x9, x14, x9, eq
WORD $0x910009ad // add x13, x13, #2
WORD $0xcb0f016e // sub x14, x11, x15
WORD $0xd1000970 // sub x16, x11, #2
WORD $0xd10009cb // sub x11, x14, #2
WORD $0x9280000e // mov x14, #-1
WORD $0xeb0f021f // cmp x16, x15
WORD $0x54fffd21 // b.ne LBB0_45 $-92(%rip)
WORD $0x14000059 // b LBB0_76 $356(%rip)
LBB0_51:
WORD $0x8b0f01ab // add x11, x13, x15
WORD $0x9100056d // add x13, x11, #1
LBB0_52:
WORD $0xcb0a01ae // sub x14, x13, x10
WORD $0xb6ffeb6e // tbz x14, #63, LBB0_23 $-660(%rip)
WORD $0x14000054 // b LBB0_76 $336(%rip)
LBB0_53:
WORD $0x710089df // cmp w14, #34
WORD $0x54000a21 // b.ne LBB0_75 $324(%rip)
WORD $0x8b0f01ad // add x13, x13, x15
WORD $0x17fffffa // b LBB0_52 $-24(%rip)
LBB0_55:
WORD $0xdac001f1 // rbit x17, x15
WORD $0xdac01231 // clz x17, x17
WORD $0xcb0a01a3 // sub x3, x13, x10
WORD $0x8b110071 // add x17, x3, x17
WORD $0xb100053f // cmn x9, #1
WORD $0x9a911129 // csel x9, x9, x17, ne
LBB0_56:
WORD $0x0a2b01f1 // bic w17, w15, w11
WORD $0x531f7a23 // lsl w3, w17, #1
WORD $0x331f7a2b // bfi w11, w17, #1, #31
WORD $0x0a2301ef // bic w15, w15, w3
WORD $0x1201f1ef // and w15, w15, #0xaaaaaaaa
WORD $0x2b1101ef // adds w15, w15, w17
WORD $0x3200f3f1 // mov w17, #1431655765
WORD $0x4a0f062f // eor w15, w17, w15, lsl #1
WORD $0x0a0b01eb // and w11, w15, w11
WORD $0x1a9f37ef // cset w15, hs
WORD $0x2a2b03eb // mvn w11, w11
WORD $0x8a0c016c // and x12, x11, x12
WORD $0xaa0f03eb // mov x11, x15
WORD $0xb5fff4ec // cbnz x12, LBB0_37 $-356(%rip)
LBB0_57:
WORD $0x3500044e // cbnz w14, LBB0_69 $136(%rip)
WORD $0x910081ad // add x13, x13, #32
WORD $0xaa1003ec // mov x12, x16
LBB0_59:
WORD $0xb50005eb // cbnz x11, LBB0_73 $188(%rip)
WORD $0xb40006cc // cbz x12, LBB0_75 $216(%rip)
LBB0_61:
WORD $0xcb0a03eb // neg x11, x10
LBB0_62:
WORD $0xd280000f // mov x15, #0
LBB0_63:
WORD $0x386f69ae // ldrb w14, [x13, x15]
WORD $0x710089df // cmp w14, #34
WORD $0x54000360 // b.eq LBB0_70 $108(%rip)
WORD $0x710171df // cmp w14, #92
WORD $0x54000100 // b.eq LBB0_67 $32(%rip)
WORD $0x710081df // cmp w14, #32
WORD $0x540002a3 // b.lo LBB0_69 $84(%rip)
WORD $0x910005ef // add x15, x15, #1
WORD $0x9280000e // mov x14, #-1
WORD $0xeb0f019f // cmp x12, x15
WORD $0x54fffec1 // b.ne LBB0_63 $-40(%rip)
WORD $0x14000029 // b LBB0_76 $164(%rip)
LBB0_67:
WORD $0xd100058e // sub x14, x12, #1
WORD $0xeb0f01df // cmp x14, x15
WORD $0x540004a0 // b.eq LBB0_75 $148(%rip)
WORD $0x8b0f01ad // add x13, x13, x15
WORD $0x8b0b01ae // add x14, x13, x11
WORD $0xb100053f // cmn x9, #1
WORD $0x9a8901c9 // csel x9, x14, x9, eq
WORD $0x910009ad // add x13, x13, #2
WORD $0xd1000990 // sub x16, x12, #2
WORD $0xcb0f018c // sub x12, x12, x15
WORD $0xd100098c // sub x12, x12, #2
WORD $0x9280000e // mov x14, #-1
WORD $0xeb0f021f // cmp x16, x15
WORD $0x54fffcc1 // b.ne LBB0_62 $-104(%rip)
WORD $0x1400001a // b LBB0_76 $104(%rip)
LBB0_69:
WORD $0x9280002e // mov x14, #-2
WORD $0x14000018 // b LBB0_76 $96(%rip)
LBB0_70:
WORD $0xcb0a01aa // sub x10, x13, x10
WORD $0x8b0f014a // add x10, x10, x15
WORD $0x9100054e // add x14, x10, #1
WORD $0xb6ffe34e // tbz x14, #63, LBB0_23 $-920(%rip)
WORD $0x14000013 // b LBB0_76 $76(%rip)
LBB0_71:
WORD $0xb400022b // cbz x11, LBB0_75 $68(%rip)
WORD $0xaa2a03ec // mvn x12, x10
WORD $0x8b0c01ac // add x12, x13, x12
WORD $0xb100053f // cmn x9, #1
WORD $0x9a890189 // csel x9, x12, x9, eq
WORD $0x910005ad // add x13, x13, #1
WORD $0xd100056b // sub x11, x11, #1
WORD $0xb5fff32b // cbnz x11, LBB0_44 $-412(%rip)
WORD $0x17ffffb4 // b LBB0_52 $-304(%rip)
LBB0_73:
WORD $0xb400010c // cbz x12, LBB0_75 $32(%rip)
WORD $0xaa2a03eb // mvn x11, x10
WORD $0x8b0b01ab // add x11, x13, x11
WORD $0xb100053f // cmn x9, #1
WORD $0x9a890169 // csel x9, x11, x9, eq
WORD $0x910005ad // add x13, x13, #1
WORD $0xd100058c // sub x12, x12, #1
WORD $0xb5fff98c // cbnz x12, LBB0_61 $-208(%rip)
LBB0_75:
WORD $0x9280000e // mov x14, #-1
LBB0_76:
WORD $0xf9400408 // ldr x8, [x0, #8]
WORD $0xf9000028 // str x8, [x1]
WORD $0xf900004e // str x14, [x2]
WORD $0xa941fbfd // ldp fp, lr, [sp, #24]
WORD $0xa940cff4 // ldp x20, x19, [sp, #8]
WORD $0x9100c3ff // add sp, sp, #48
WORD $0xd65f03c0 // ret
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__vstring(SB), NOSPLIT, $0-32
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $112, RSP, R17
CMP R16, R17
BLS _stack_grow
_vstring:
MOVD s+0(FP), R0
MOVD p+8(FP), R1
MOVD v+16(FP), R2
MOVD flags+24(FP), R3
MOVD ·_subr__vstring(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __vstring_entry__() uintptr
var (
_subr__vstring uintptr = __vstring_entry__() + 32
)
const (
_stack__vstring = 48
)
var (
_ = _subr__vstring
)
const (
_ = _stack__vstring
)

View file

@ -0,0 +1,32 @@
/*
* 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 neon
import (
`github.com/bytedance/sonic/internal/native/types`
)
//go:nosplit
func vunsigned(s *string, p *int, v *types.JsonState) {
__vunsigned(s, p, v)
}
//go:nosplit
//go:noescape
//goland:noinspection GoUnusedParameter
func __vunsigned(s *string, p *int, v *types.JsonState)

View file

@ -0,0 +1,150 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"
TEXT ·__vunsigned_entry__(SB), NOSPLIT, $16
NO_LOCAL_POINTERS
WORD $0x100000a0 // adr x0, .+20
MOVD R0, ret(FP)
RET
// .p2align 2, 0x00
_vunsigned:
WORD $0xd10083ff // sub sp, sp, #32
WORD $0xa900fbfd // stp fp, lr, [sp, #8]
WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
WORD $0xd10023fd // sub fp, sp, #8
WORD $0xf9400028 // ldr x8, [x1]
WORD $0xa940240a // ldp x10, x9, [x0]
WORD $0x5280012b // mov w11, #9
WORD $0xa900fc5f // stp xzr, xzr, [x2, #8]
WORD $0xf900004b // str x11, [x2]
WORD $0xf940002b // ldr x11, [x1]
WORD $0xf9000c4b // str x11, [x2, #24]
WORD $0xeb09011f // cmp x8, x9
WORD $0x54000162 // b.hs LBB0_3 $44(%rip)
WORD $0x8b08014b // add x11, x10, x8
WORD $0x3940016c // ldrb w12, [x11]
WORD $0x7100b59f // cmp w12, #45
WORD $0x540001a1 // b.ne LBB0_4 $52(%rip)
LBB0_2:
WORD $0xf9000028 // str x8, [x1]
WORD $0x928000a8 // mov x8, #-6
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_3:
WORD $0xf9000029 // str x9, [x1]
WORD $0x92800008 // mov x8, #-1
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_4:
WORD $0x5100e98d // sub w13, w12, #58
WORD $0x31002dbf // cmn w13, #11
WORD $0x540000e8 // b.hi LBB0_6 $28(%rip)
WORD $0xf9000028 // str x8, [x1]
WORD $0x92800028 // mov x8, #-2
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_6:
WORD $0x7100c19f // cmp w12, #48
WORD $0x54000161 // b.ne LBB0_8 $44(%rip)
WORD $0x3940056b // ldrb w11, [x11, #1]
WORD $0x5100b96b // sub w11, w11, #46
WORD $0x7100dd7f // cmp w11, #55
WORD $0x5280002c // mov w12, #1
WORD $0x9acb218b // lsl x11, x12, x11
WORD $0xb20903ec // mov x12, #36028797027352576
WORD $0xf280002c // movk x12, #1
WORD $0x8a0c016b // and x11, x11, x12
WORD $0xfa409964 // ccmp x11, #0, #4, ls
WORD $0x540005a0 // b.eq LBB0_21 $180(%rip)
LBB0_8:
WORD $0xd280000b // mov x11, #0
WORD $0xeb08013f // cmp x9, x8
WORD $0x9a88812c // csel x12, x9, x8, hi
WORD $0x5280014d // mov w13, #10
LBB0_9:
WORD $0xeb08019f // cmp x12, x8
WORD $0x54000440 // b.eq LBB0_20 $136(%rip)
WORD $0x3868694e // ldrb w14, [x10, x8]
WORD $0x5100c1ce // sub w14, w14, #48
WORD $0x710025df // cmp w14, #9
WORD $0x54000288 // b.hi LBB0_15 $80(%rip)
WORD $0x9bcd7d6f // umulh x15, x11, x13
WORD $0xeb0f03ff // cmp xzr, x15
WORD $0x54000141 // b.ne LBB0_14 $40(%rip)
WORD $0x8b0b096b // add x11, x11, x11, lsl #2
WORD $0xd37ff96b // lsl x11, x11, #1
WORD $0x91000508 // add x8, x8, #1
WORD $0xab2e016b // adds x11, x11, w14, uxtb
WORD $0x1a9f37ef // cset w15, hs
WORD $0x934001ee // sbfx x14, x15, #0, #1
WORD $0xca0f01cf // eor x15, x14, x15
WORD $0xb500004f // cbnz x15, LBB0_14 $8(%rip)
WORD $0xb6fffdee // tbz x14, #63, LBB0_9 $-68(%rip)
LBB0_14:
WORD $0xd1000508 // sub x8, x8, #1
WORD $0xf9000028 // str x8, [x1]
WORD $0x92800088 // mov x8, #-5
WORD $0xf9000048 // str x8, [x2]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_15:
WORD $0xeb09011f // cmp x8, x9
WORD $0x54000102 // b.hs LBB0_19 $32(%rip)
WORD $0x38686949 // ldrb w9, [x10, x8]
WORD $0x7100b93f // cmp w9, #46
WORD $0x54fff7c0 // b.eq LBB0_2 $-264(%rip)
WORD $0x7101153f // cmp w9, #69
WORD $0x54fff780 // b.eq LBB0_2 $-272(%rip)
WORD $0x7101953f // cmp w9, #101
WORD $0x54fff740 // b.eq LBB0_2 $-280(%rip)
LBB0_19:
WORD $0xaa0803ec // mov x12, x8
LBB0_20:
WORD $0xf900002c // str x12, [x1]
WORD $0xf900084b // str x11, [x2, #16]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
LBB0_21:
WORD $0x91000508 // add x8, x8, #1
WORD $0xf9000028 // str x8, [x1]
WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
WORD $0x910083ff // add sp, sp, #32
WORD $0xd65f03c0 // ret
// .p2align 2, 0x00
_MASK_USE_NUMBER:
WORD $0x00000002 // .long 2
TEXT ·__vunsigned(SB), NOSPLIT, $0-24
NO_LOCAL_POINTERS
_entry:
MOVD 16(g), R16
SUB $96, RSP, R17
CMP R16, R17
BLS _stack_grow
_vunsigned:
MOVD s+0(FP), R0
MOVD p+8(FP), R1
MOVD v+16(FP), R2
MOVD ·_subr__vunsigned(SB), R11
WORD $0x1000005e // adr x30, .+8
JMP (R11)
RET
_stack_grow:
MOVD R30, R3
CALL runtime·morestack_noctxt<>(SB)
JMP _entry

View file

@ -0,0 +1,25 @@
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT.
package neon
//go:nosplit
//go:noescape
//goland:noinspection ALL
func __vunsigned_entry__() uintptr
var (
_subr__vunsigned uintptr = __vunsigned_entry__() + 0
)
const (
_stack__vunsigned = 32
)
var (
_ = _subr__vunsigned
)
const (
_ = _stack__vunsigned
)

View file

@ -35,7 +35,6 @@ var (
var stubs = []loader.GoC{
{"_f32toa", nil, &__f32toa},
{"_f64toa", nil, &__f64toa},
{"_fsm_exec", nil, &__fsm_exec},
{"_get_by_path", nil, &__get_by_path},
{"_html_escape", nil, &__html_escape},
{"_i64toa", nil, &__i64toa},

View file

@ -1,3 +1,6 @@
// +build amd64
// Code generated by Makefile, DO NOT EDIT.
// Code generated by Makefile, DO NOT EDIT.
@ -71,8 +74,6 @@
__validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int)
__validate_utf8_fast func(s unsafe.Pointer) (ret int)
__fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int)
)
//go:nosplit
@ -185,7 +186,3 @@ func validate_utf8_fast(s *string) (ret int) {
return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s)))
}
//go:nosplit
func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) {
return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags)
}

View file

@ -8,117 +8,111 @@
)
const (
_entry__f32toa = 31344
_entry__f64toa = 128
_entry__format_significand = 36272
_entry__format_integer = 3280
_entry__fsm_exec = 18832
_entry__advance_string = 15024
_entry__advance_string_default = 37808
_entry__do_skip_number = 21376
_entry__get_by_path = 26768
_entry__skip_one_fast = 22896
_entry__unescape = 38752
_entry__unhex16_is = 9584
_entry__html_escape = 9776
_entry__i64toa = 3712
_entry__u64toa = 3984
_entry__f32toa = 31632
_entry__f64toa = 160
_entry__format_significand = 35968
_entry__format_integer = 2960
_entry__get_by_path = 26192
_entry__fsm_exec = 18016
_entry__advance_string = 14352
_entry__advance_string_default = 37360
_entry__do_skip_number = 20608
_entry__skip_one_fast = 22288
_entry__html_escape = 8912
_entry__i64toa = 3392
_entry__u64toa = 3520
_entry__lspace = 16
_entry__quote = 5472
_entry__skip_array = 18800
_entry__skip_number = 22496
_entry__skip_object = 21024
_entry__skip_one = 22672
_entry__unquote = 7248
_entry__validate_one = 22720
_entry__validate_utf8 = 30096
_entry__validate_utf8_fast = 30784
_entry__value = 13072
_entry__vnumber = 16400
_entry__atof_eisel_lemire64 = 11072
_entry__atof_native = 12464
_entry__decimal_to_f64 = 11472
_entry__left_shift = 36752
_entry__right_shift = 37296
_entry__vsigned = 18048
_entry__vstring = 14848
_entry__vunsigned = 18416
_entry__quote = 4832
_entry__skip_array = 17984
_entry__skip_number = 21904
_entry__skip_object = 20256
_entry__skip_one = 22064
_entry__unquote = 6576
_entry__validate_one = 22112
_entry__validate_utf8 = 30400
_entry__validate_utf8_fast = 31072
_entry__value = 12352
_entry__vnumber = 15744
_entry__atof_eisel_lemire64 = 10192
_entry__atof_native = 11744
_entry__decimal_to_f64 = 10560
_entry__right_shift = 36928
_entry__left_shift = 36432
_entry__vsigned = 17296
_entry__vstring = 14176
_entry__vunsigned = 17632
)
const (
_stack__f32toa = 64
_stack__f32toa = 48
_stack__f64toa = 80
_stack__format_significand = 24
_stack__format_integer = 16
_stack__fsm_exec = 160
_stack__advance_string = 72
_stack__advance_string_default = 56
_stack__do_skip_number = 32
_stack__get_by_path = 264
_stack__get_by_path = 272
_stack__fsm_exec = 168
_stack__advance_string = 64
_stack__advance_string_default = 64
_stack__do_skip_number = 48
_stack__skip_one_fast = 136
_stack__unescape = 64
_stack__unhex16_is = 8
_stack__html_escape = 64
_stack__html_escape = 72
_stack__i64toa = 16
_stack__u64toa = 8
_stack__lspace = 8
_stack__quote = 80
_stack__skip_array = 168
_stack__skip_number = 88
_stack__skip_object = 168
_stack__skip_one = 168
_stack__unquote = 112
_stack__validate_one = 168
_stack__quote = 64
_stack__skip_array = 176
_stack__skip_number = 104
_stack__skip_object = 176
_stack__skip_one = 176
_stack__unquote = 88
_stack__validate_one = 176
_stack__validate_utf8 = 48
_stack__validate_utf8_fast = 24
_stack__value = 352
_stack__vnumber = 264
_stack__atof_eisel_lemire64 = 40
_stack__atof_native = 144
_stack__decimal_to_f64 = 88
_stack__left_shift = 32
_stack__right_shift = 16
_stack__value = 328
_stack__vnumber = 240
_stack__atof_eisel_lemire64 = 32
_stack__atof_native = 136
_stack__decimal_to_f64 = 80
_stack__right_shift = 8
_stack__left_shift = 24
_stack__vsigned = 16
_stack__vstring = 128
_stack__vunsigned = 24
_stack__vstring = 120
_stack__vunsigned = 8
)
const (
_size__f32toa = 3696
_size__f64toa = 3152
_size__format_significand = 480
_size__f32toa = 3328
_size__f64toa = 2800
_size__format_significand = 464
_size__format_integer = 432
_size__fsm_exec = 1656
_size__advance_string = 1328
_size__advance_string_default = 944
_size__do_skip_number = 908
_size__get_by_path = 3328
_size__skip_one_fast = 3348
_size__unescape = 704
_size__unhex16_is = 128
_size__html_escape = 1296
_size__i64toa = 272
_size__u64toa = 1440
_size__lspace = 96
_size__quote = 1760
_size__get_by_path = 4208
_size__fsm_exec = 1692
_size__advance_string = 1344
_size__advance_string_default = 960
_size__do_skip_number = 956
_size__skip_one_fast = 3404
_size__html_escape = 1280
_size__i64toa = 48
_size__u64toa = 1264
_size__lspace = 128
_size__quote = 1728
_size__skip_array = 32
_size__skip_number = 160
_size__skip_object = 32
_size__skip_one = 32
_size__unquote = 2336
_size__skip_one = 48
_size__unquote = 2272
_size__validate_one = 48
_size__validate_utf8 = 688
_size__validate_utf8 = 672
_size__validate_utf8_fast = 544
_size__value = 1268
_size__vnumber = 1648
_size__atof_eisel_lemire64 = 400
_size__value = 1308
_size__vnumber = 1552
_size__atof_eisel_lemire64 = 368
_size__atof_native = 608
_size__decimal_to_f64 = 992
_size__left_shift = 544
_size__right_shift = 480
_size__vsigned = 368
_size__decimal_to_f64 = 1184
_size__right_shift = 400
_size__left_shift = 496
_size__vsigned = 336
_size__vstring = 128
_size__vunsigned = 368
_size__vunsigned = 336
)
var (
@ -129,16 +123,14 @@
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{3638, 64},
{3642, 48},
{3643, 40},
{3645, 32},
{3647, 24},
{3649, 16},
{3651, 8},
{3652, 0},
{3682, 64},
{3286, 48},
{3287, 40},
{3289, 32},
{3291, 24},
{3293, 16},
{3295, 8},
{3296, 0},
{3318, 48},
}
_pcsp__f64toa = [][2]uint32{
{1, 0},
@ -148,24 +140,24 @@
{10, 32},
{12, 40},
{13, 48},
{3033, 56},
{3037, 48},
{3038, 40},
{3040, 32},
{3042, 24},
{3044, 16},
{3046, 8},
{3047, 0},
{3138, 56},
{2740, 56},
{2744, 48},
{2745, 40},
{2747, 32},
{2749, 24},
{2751, 16},
{2753, 8},
{2754, 0},
{2792, 56},
}
_pcsp__format_significand = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{468, 24},
{469, 16},
{471, 8},
{473, 0},
{452, 24},
{453, 16},
{455, 8},
{457, 0},
}
_pcsp__format_integer = [][2]uint32{
{1, 0},
@ -177,6 +169,24 @@
{424, 8},
{426, 0},
}
_pcsp__get_by_path = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{4012, 104},
{4016, 48},
{4017, 40},
{4019, 32},
{4021, 24},
{4023, 16},
{4025, 8},
{4026, 0},
{4194, 104},
}
_pcsp__fsm_exec = [][2]uint32{
{1, 0},
{4, 8},
@ -185,15 +195,15 @@
{10, 32},
{12, 40},
{13, 48},
{1317, 88},
{1321, 48},
{1322, 40},
{1324, 32},
{1326, 24},
{1328, 16},
{1330, 8},
{1331, 0},
{1656, 88},
{1342, 104},
{1346, 48},
{1347, 40},
{1349, 32},
{1351, 24},
{1353, 16},
{1355, 8},
{1356, 0},
{1692, 104},
}
_pcsp__advance_string = [][2]uint32{
{14, 0},
@ -203,15 +213,15 @@
{24, 32},
{26, 40},
{27, 48},
{587, 72},
{591, 48},
{592, 40},
{594, 32},
{596, 24},
{598, 16},
{600, 8},
{601, 0},
{1325, 72},
{614, 56},
{618, 48},
{619, 40},
{621, 32},
{623, 24},
{625, 16},
{627, 8},
{628, 0},
{1339, 56},
}
_pcsp__advance_string_default = [][2]uint32{
{1, 0},
@ -221,45 +231,31 @@
{10, 32},
{12, 40},
{13, 48},
{402, 56},
{406, 48},
{407, 40},
{409, 32},
{411, 24},
{413, 16},
{415, 8},
{416, 0},
{936, 56},
{576, 64},
{580, 48},
{581, 40},
{583, 32},
{585, 24},
{587, 16},
{589, 8},
{590, 0},
{955, 64},
}
_pcsp__do_skip_number = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{771, 32},
{772, 24},
{774, 16},
{776, 8},
{777, 0},
{908, 32},
}
_pcsp__get_by_path = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{3278, 104},
{3282, 48},
{3283, 40},
{3285, 32},
{3287, 24},
{3289, 16},
{3291, 8},
{3292, 0},
{3317, 104},
{881, 48},
{882, 40},
{884, 32},
{886, 24},
{888, 16},
{890, 8},
{891, 0},
{956, 48},
}
_pcsp__skip_one_fast = [][2]uint32{
{1, 0},
@ -269,44 +265,15 @@
{10, 32},
{12, 40},
{13, 48},
{600, 136},
{604, 48},
{605, 40},
{607, 32},
{609, 24},
{611, 16},
{613, 8},
{614, 0},
{3348, 136},
}
_pcsp__unescape = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{12, 40},
{13, 48},
{246, 56},
{250, 48},
{251, 40},
{253, 32},
{255, 24},
{257, 16},
{259, 8},
{260, 0},
{695, 56},
}
_pcsp__unhex16_is = [][2]uint32{
{1, 0},
{35, 8},
{36, 0},
{62, 8},
{63, 0},
{97, 8},
{98, 0},
{121, 8},
{123, 0},
{658, 136},
{662, 48},
{663, 40},
{665, 32},
{667, 24},
{669, 16},
{671, 8},
{672, 0},
{3404, 136},
}
_pcsp__html_escape = [][2]uint32{
{1, 0},
@ -316,47 +283,39 @@
{10, 32},
{12, 40},
{13, 48},
{1281, 64},
{1285, 48},
{1286, 40},
{1288, 32},
{1290, 24},
{1292, 16},
{1294, 8},
{1296, 0},
{1256, 72},
{1260, 48},
{1261, 40},
{1263, 32},
{1265, 24},
{1267, 16},
{1269, 8},
{1271, 0},
}
_pcsp__i64toa = [][2]uint32{
{1, 0},
{171, 8},
{172, 0},
{207, 8},
{208, 0},
{222, 8},
{223, 0},
{247, 8},
{248, 0},
{253, 8},
{259, 0},
{14, 0},
{34, 8},
{36, 0},
}
_pcsp__u64toa = [][2]uint32{
{13, 0},
{162, 8},
{163, 0},
{175, 8},
{240, 0},
{498, 8},
{499, 0},
{519, 8},
{608, 0},
{882, 8},
{976, 0},
{1434, 8},
{1436, 0},
{1, 0},
{161, 8},
{162, 0},
{457, 8},
{458, 0},
{772, 8},
{773, 0},
{1249, 8},
{1251, 0},
}
_pcsp__lspace = [][2]uint32{
{1, 0},
{85, 8},
{87, 0},
{89, 8},
{90, 0},
{103, 8},
{104, 0},
{111, 8},
{113, 0},
}
_pcsp__quote = [][2]uint32{
{1, 0},
@ -366,15 +325,15 @@
{10, 32},
{12, 40},
{13, 48},
{1701, 80},
{1705, 48},
{1706, 40},
{1708, 32},
{1710, 24},
{1712, 16},
{1714, 8},
{1715, 0},
{1750, 80},
{1681, 64},
{1685, 48},
{1686, 40},
{1688, 32},
{1690, 24},
{1692, 16},
{1694, 8},
{1695, 0},
{1722, 64},
}
_pcsp__skip_array = [][2]uint32{
{1, 0},
@ -406,8 +365,8 @@
}
_pcsp__skip_one = [][2]uint32{
{1, 0},
{26, 8},
{32, 0},
{30, 8},
{36, 0},
}
_pcsp__unquote = [][2]uint32{
{1, 0},
@ -417,20 +376,20 @@
{10, 32},
{12, 40},
{13, 48},
{1614, 104},
{1618, 48},
{1619, 40},
{1621, 32},
{1623, 24},
{1625, 16},
{1627, 8},
{1628, 0},
{2329, 104},
{1684, 88},
{1688, 48},
{1689, 40},
{1691, 32},
{1693, 24},
{1695, 16},
{1697, 8},
{1698, 0},
{2270, 88},
}
_pcsp__validate_one = [][2]uint32{
{1, 0},
{31, 8},
{37, 0},
{35, 8},
{41, 0},
}
_pcsp__validate_utf8 = [][2]uint32{
{1, 0},
@ -439,14 +398,14 @@
{8, 24},
{10, 32},
{11, 40},
{639, 48},
{643, 40},
{644, 32},
{646, 24},
{648, 16},
{650, 8},
{651, 0},
{682, 48},
{623, 48},
{627, 40},
{628, 32},
{630, 24},
{632, 16},
{634, 8},
{635, 0},
{666, 48},
}
_pcsp__validate_utf8_fast = [][2]uint32{
{1, 0},
@ -469,15 +428,15 @@
{10, 32},
{12, 40},
{13, 48},
{439, 88},
{443, 48},
{444, 40},
{446, 32},
{448, 24},
{450, 16},
{452, 8},
{453, 0},
{1268, 88},
{495, 88},
{499, 48},
{500, 40},
{502, 32},
{504, 24},
{506, 16},
{508, 8},
{509, 0},
{1308, 88},
}
_pcsp__vnumber = [][2]uint32{
{1, 0},
@ -487,36 +446,34 @@
{10, 32},
{12, 40},
{13, 48},
{150, 120},
{154, 48},
{155, 40},
{157, 32},
{159, 24},
{161, 16},
{163, 8},
{164, 0},
{1642, 120},
{803, 104},
{807, 48},
{808, 40},
{810, 32},
{812, 24},
{814, 16},
{816, 8},
{817, 0},
{1551, 104},
}
_pcsp__atof_eisel_lemire64 = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{10, 32},
{315, 40},
{316, 32},
{318, 24},
{320, 16},
{322, 8},
{323, 0},
{387, 40},
{292, 32},
{293, 24},
{295, 16},
{297, 8},
{298, 0},
{362, 32},
}
_pcsp__atof_native = [][2]uint32{
{1, 0},
{4, 8},
{596, 56},
{600, 8},
{602, 0},
{587, 56},
{591, 8},
{593, 0},
}
_pcsp__decimal_to_f64 = [][2]uint32{
{1, 0},
@ -526,62 +483,60 @@
{10, 32},
{12, 40},
{13, 48},
{951, 56},
{955, 48},
{956, 40},
{958, 32},
{960, 24},
{962, 16},
{964, 8},
{965, 0},
{977, 56},
{1144, 56},
{1148, 48},
{1149, 40},
{1151, 32},
{1153, 24},
{1155, 16},
{1157, 8},
{1158, 0},
{1169, 56},
}
_pcsp__right_shift = [][2]uint32{
{1, 0},
{318, 8},
{319, 0},
{387, 8},
{388, 0},
{396, 8},
{398, 0},
}
_pcsp__left_shift = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{8, 24},
{418, 32},
{419, 24},
{421, 16},
{423, 8},
{424, 0},
{539, 32},
}
_pcsp__right_shift = [][2]uint32{
{1, 0},
{4, 8},
{452, 16},
{453, 8},
{454, 0},
{462, 16},
{463, 8},
{464, 0},
{472, 16},
{363, 24},
{364, 16},
{366, 8},
{367, 0},
{470, 24},
{471, 16},
{473, 8},
{475, 0},
{474, 0},
{486, 24},
}
_pcsp__vsigned = [][2]uint32{
{1, 0},
{4, 8},
{111, 16},
{112, 8},
{113, 0},
{124, 16},
{125, 8},
{126, 0},
{278, 16},
{279, 8},
{280, 0},
{284, 16},
{285, 8},
{286, 0},
{340, 16},
{341, 8},
{342, 0},
{353, 16},
{354, 8},
{356, 0},
{119, 16},
{120, 8},
{121, 0},
{132, 16},
{133, 8},
{134, 0},
{276, 16},
{277, 8},
{278, 0},
{282, 16},
{283, 8},
{284, 0},
{322, 16},
{323, 8},
{324, 0},
{332, 16},
{333, 8},
{335, 0},
}
_pcsp__vstring = [][2]uint32{
{1, 0},
@ -600,32 +555,18 @@
}
_pcsp__vunsigned = [][2]uint32{
{1, 0},
{4, 8},
{6, 16},
{72, 24},
{73, 16},
{75, 8},
{76, 0},
{87, 24},
{88, 16},
{78, 8},
{79, 0},
{90, 8},
{91, 0},
{114, 24},
{115, 16},
{117, 8},
{118, 0},
{281, 24},
{282, 16},
{284, 8},
{285, 0},
{336, 24},
{337, 16},
{339, 8},
{340, 0},
{348, 24},
{349, 16},
{351, 8},
{353, 0},
{114, 8},
{115, 0},
{273, 8},
{274, 0},
{312, 8},
{313, 0},
{320, 8},
{322, 0},
}
)
@ -635,14 +576,12 @@
{"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa},
{"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand},
{"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer},
{"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path},
{"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec},
{"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string},
{"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default},
{"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number},
{"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path},
{"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast},
{"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape},
{"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is},
{"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape},
{"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa},
{"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa},
@ -661,8 +600,8 @@
{"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64},
{"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native},
{"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64},
{"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift},
{"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift},
{"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift},
{"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned},
{"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring},
{"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned},

File diff suppressed because it is too large Load diff

View file

@ -159,4 +159,4 @@ func NewDbuf() *byte {
func FreeDbuf(p *byte) {
digitPool.Put(p)
}
}

View file

@ -4,8 +4,6 @@ linters:
fast: false
enable:
- bodyclose
- deadcode
- depguard
- dogsled
- dupl
- errcheck
@ -29,20 +27,12 @@ linters:
- nolintlint
- rowserrcheck
- staticcheck
- structcheck
- stylecheck
- typecheck
- unconvert
- unparam
- unused
- varcheck
- whitespace
- gofumpt
run:
timeout: 3m
linters-settings:
dupl:
# tokens count to trigger issue, 150 by default
threshold: 200

57
vendor/github.com/gin-contrib/gzip/.goreleaser.yaml generated vendored Normal file
View file

@ -0,0 +1,57 @@
project_name: queue
builds:
-
# If true, skip the build.
# Useful for library projects.
# Default is false
skip: true
changelog:
# Set it to true if you wish to skip the changelog generation.
# This may result in an empty release notes on GitHub/GitLab/Gitea.
skip: false
# Changelog generation implementation to use.
#
# Valid options are:
# - `git`: uses `git log`;
# - `github`: uses the compare GitHub API, appending the author login to the changelog.
# - `gitlab`: uses the compare GitLab API, appending the author name and email to the changelog.
# - `github-native`: uses the GitHub release notes generation API, disables the groups feature.
#
# Defaults to `git`.
use: git
# Sorts the changelog by the commit's messages.
# Could either be asc, desc or empty
# Default is empty
sort: asc
# Group commits messages by given regex and title.
# Order value defines the order of the groups.
# Proving no regex means all commits will be grouped under the default group.
# Groups are disabled when using github-native, as it already groups things by itself.
#
# Default is no groups.
groups:
- title: Features
regexp: "^.*feat[(\\w)]*:+.*$"
order: 0
- title: 'Bug fixes'
regexp: "^.*fix[(\\w)]*:+.*$"
order: 1
- title: 'Enhancements'
regexp: "^.*chore[(\\w)]*:+.*$"
order: 2
- title: Others
order: 999
filters:
# Commit messages matching the regexp listed here will be removed from
# the changelog
# Default is empty
exclude:
- '^docs'
- 'CICD'
- typo

View file

@ -165,25 +165,22 @@ Checklist:
### New release
1. Decide on the next version number. Use semver.
2. Generate release notes using [`gh`][gh]. Example:
1. Decide on the next version number. Use semver. Review commits since last
version to assess.
2. Tag release. For example:
```
$ gh api -X POST \
-F tag_name='v2.0.0-beta.5' \
-F target_commitish='v2' \
-F previous_tag_name='v2.0.0-beta.4' \
--jq '.body' \
repos/pelletier/go-toml/releases/generate-notes
git checkout v2
git pull
git tag v2.2.0
git push --tags
```
3. Look for "Other changes". That would indicate a pull request not labeled
properly. Tweak labels and pull request titles until changelog looks good for
users.
4. [Draft new release][new-release].
5. Fill tag and target with the same value used to generate the changelog.
6. Set title to the new tag value.
7. Paste the generated changelog.
8. Check "create discussion", in the "Releases" category.
9. Check pre-release if new version is an alpha or beta.
3. CI automatically builds a draft Github release. Review it and edit as
necessary. Look for "Other changes". That would indicate a pull request not
labeled properly. Tweak labels and pull request titles until changelog looks
good for users.
4. Check "create discussion" box, in the "Releases" category.
5. If new version is an alpha or beta only, check pre-release box.
[issues-tracker]: https://github.com/pelletier/go-toml/issues
[bug-report]: https://github.com/pelletier/go-toml/issues/new?template=bug_report.md

View file

@ -98,9 +98,9 @@ Given the following struct, let's see how to read it and write it as TOML:
```go
type MyConfig struct {
Version int
Name string
Tags []string
Version int
Name string
Tags []string
}
```
@ -119,7 +119,7 @@ tags = ["go", "toml"]
var cfg MyConfig
err := toml.Unmarshal([]byte(doc), &cfg)
if err != nil {
panic(err)
panic(err)
}
fmt.Println("version:", cfg.Version)
fmt.Println("name:", cfg.Name)
@ -140,14 +140,14 @@ as a TOML document:
```go
cfg := MyConfig{
Version: 2,
Name: "go-toml",
Tags: []string{"go", "toml"},
Version: 2,
Name: "go-toml",
Tags: []string{"go", "toml"},
}
b, err := toml.Marshal(cfg)
if err != nil {
panic(err)
panic(err)
}
fmt.Println(string(b))
@ -175,17 +175,17 @@ the AST level. See https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable.
Execution time speedup compared to other Go TOML libraries:
<table>
<thead>
<tr><th>Benchmark</th><th>go-toml v1</th><th>BurntSushi/toml</th></tr>
</thead>
<tbody>
<tr><td>Marshal/HugoFrontMatter-2</td><td>1.9x</td><td>2.2x</td></tr>
<tr><td>Marshal/ReferenceFile/map-2</td><td>1.7x</td><td>2.1x</td></tr>
<tr><td>Marshal/ReferenceFile/struct-2</td><td>2.2x</td><td>3.0x</td></tr>
<tr><td>Unmarshal/HugoFrontMatter-2</td><td>2.9x</td><td>2.7x</td></tr>
<tr><td>Unmarshal/ReferenceFile/map-2</td><td>2.6x</td><td>2.7x</td></tr>
<tr><td>Unmarshal/ReferenceFile/struct-2</td><td>4.6x</td><td>5.1x</td></tr>
</tbody>
<thead>
<tr><th>Benchmark</th><th>go-toml v1</th><th>BurntSushi/toml</th></tr>
</thead>
<tbody>
<tr><td>Marshal/HugoFrontMatter-2</td><td>1.9x</td><td>2.2x</td></tr>
<tr><td>Marshal/ReferenceFile/map-2</td><td>1.7x</td><td>2.1x</td></tr>
<tr><td>Marshal/ReferenceFile/struct-2</td><td>2.2x</td><td>3.0x</td></tr>
<tr><td>Unmarshal/HugoFrontMatter-2</td><td>2.9x</td><td>2.7x</td></tr>
<tr><td>Unmarshal/ReferenceFile/map-2</td><td>2.6x</td><td>2.7x</td></tr>
<tr><td>Unmarshal/ReferenceFile/struct-2</td><td>4.6x</td><td>5.1x</td></tr>
</tbody>
</table>
<details><summary>See more</summary>
<p>The table above has the results of the most common use-cases. The table below
@ -193,22 +193,22 @@ contains the results of all benchmarks, including unrealistic ones. It is
provided for completeness.</p>
<table>
<thead>
<tr><th>Benchmark</th><th>go-toml v1</th><th>BurntSushi/toml</th></tr>
</thead>
<tbody>
<tr><td>Marshal/SimpleDocument/map-2</td><td>1.8x</td><td>2.7x</td></tr>
<tr><td>Marshal/SimpleDocument/struct-2</td><td>2.7x</td><td>3.8x</td></tr>
<tr><td>Unmarshal/SimpleDocument/map-2</td><td>3.8x</td><td>3.0x</td></tr>
<tr><td>Unmarshal/SimpleDocument/struct-2</td><td>5.6x</td><td>4.1x</td></tr>
<tr><td>UnmarshalDataset/example-2</td><td>3.0x</td><td>3.2x</td></tr>
<tr><td>UnmarshalDataset/code-2</td><td>2.3x</td><td>2.9x</td></tr>
<tr><td>UnmarshalDataset/twitter-2</td><td>2.6x</td><td>2.7x</td></tr>
<tr><td>UnmarshalDataset/citm_catalog-2</td><td>2.2x</td><td>2.3x</td></tr>
<tr><td>UnmarshalDataset/canada-2</td><td>1.8x</td><td>1.5x</td></tr>
<tr><td>UnmarshalDataset/config-2</td><td>4.1x</td><td>2.9x</td></tr>
<tr><td>geomean</td><td>2.7x</td><td>2.8x</td></tr>
</tbody>
<thead>
<tr><th>Benchmark</th><th>go-toml v1</th><th>BurntSushi/toml</th></tr>
</thead>
<tbody>
<tr><td>Marshal/SimpleDocument/map-2</td><td>1.8x</td><td>2.7x</td></tr>
<tr><td>Marshal/SimpleDocument/struct-2</td><td>2.7x</td><td>3.8x</td></tr>
<tr><td>Unmarshal/SimpleDocument/map-2</td><td>3.8x</td><td>3.0x</td></tr>
<tr><td>Unmarshal/SimpleDocument/struct-2</td><td>5.6x</td><td>4.1x</td></tr>
<tr><td>UnmarshalDataset/example-2</td><td>3.0x</td><td>3.2x</td></tr>
<tr><td>UnmarshalDataset/code-2</td><td>2.3x</td><td>2.9x</td></tr>
<tr><td>UnmarshalDataset/twitter-2</td><td>2.6x</td><td>2.7x</td></tr>
<tr><td>UnmarshalDataset/citm_catalog-2</td><td>2.2x</td><td>2.3x</td></tr>
<tr><td>UnmarshalDataset/canada-2</td><td>1.8x</td><td>1.5x</td></tr>
<tr><td>UnmarshalDataset/config-2</td><td>4.1x</td><td>2.9x</td></tr>
<tr><td>geomean</td><td>2.7x</td><td>2.8x</td></tr>
</tbody>
</table>
<p>This table can be generated with <code>./ci.sh benchmark -a -html</code>.</p>
</details>
@ -233,24 +233,24 @@ Go-toml provides three handy command line tools:
* `tomljson`: Reads a TOML file and outputs its JSON representation.
```
$ go install github.com/pelletier/go-toml/v2/cmd/tomljson@latest
$ tomljson --help
```
```
$ go install github.com/pelletier/go-toml/v2/cmd/tomljson@latest
$ tomljson --help
```
* `jsontoml`: Reads a JSON file and outputs a TOML representation.
```
$ go install github.com/pelletier/go-toml/v2/cmd/jsontoml@latest
$ jsontoml --help
```
```
$ go install github.com/pelletier/go-toml/v2/cmd/jsontoml@latest
$ jsontoml --help
```
* `tomll`: Lints and reformats a TOML file.
```
$ go install github.com/pelletier/go-toml/v2/cmd/tomll@latest
$ tomll --help
```
```
$ go install github.com/pelletier/go-toml/v2/cmd/tomll@latest
$ tomll --help
```
### Docker image
@ -261,7 +261,7 @@ Those tools are also available as a [Docker image][docker]. For example, to use
docker run -i ghcr.io/pelletier/go-toml:v2 tomljson < example.toml
```
Multiple versions are availble on [ghcr.io][docker].
Multiple versions are available on [ghcr.io][docker].
[docker]: https://github.com/pelletier/go-toml/pkgs/container/go-toml
@ -293,16 +293,16 @@ element in the interface to decode the object. For example:
```go
type inner struct {
B interface{}
B interface{}
}
type doc struct {
A interface{}
A interface{}
}
d := doc{
A: inner{
B: "Before",
},
A: inner{
B: "Before",
},
}
data := `
@ -341,7 +341,7 @@ contained in the doc is superior to the capacity of the array. For example:
```go
type doc struct {
A [2]string
A [2]string
}
d := doc{}
err := toml.Unmarshal([]byte(`A = ["one", "two", "many"]`), &d)
@ -565,10 +565,11 @@ complete solutions exist out there.
## Versioning
Go-toml follows [Semantic Versioning](https://semver.org). The supported version
of [TOML](https://github.com/toml-lang/toml) is indicated at the beginning of
this document. The last two major versions of Go are supported
(see [Go Release Policy](https://golang.org/doc/devel/release.html#policy)).
Expect for parts explicitely marked otherwise, go-toml follows [Semantic
Versioning](https://semver.org). The supported version of
[TOML](https://github.com/toml-lang/toml) is indicated at the beginning of this
document. The last two major versions of Go are supported (see [Go Release
Policy](https://golang.org/doc/devel/release.html#policy)).
## License

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