mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-11 21:49:13 +00:00
SQLite 3.51.1.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Embeddable Wasm build of SQLite
|
# Embeddable Wasm build of SQLite
|
||||||
|
|
||||||
This folder includes an embeddable Wasm build of SQLite 3.50.4 for use with
|
This folder includes an embeddable Wasm build of SQLite 3.51.1 for use with
|
||||||
[`github.com/ncruces/go-sqlite3`](https://pkg.go.dev/github.com/ncruces/go-sqlite3).
|
[`github.com/ncruces/go-sqlite3`](https://pkg.go.dev/github.com/ncruces/go-sqlite3).
|
||||||
|
|
||||||
The following optional features are compiled in:
|
The following optional features are compiled in:
|
||||||
|
|||||||
Binary file not shown.
@@ -15,9 +15,9 @@ cp "$ROOT"/sqlite3/*.[ch] build/
|
|||||||
cp "$ROOT"/sqlite3/*.patch build/
|
cp "$ROOT"/sqlite3/*.patch build/
|
||||||
cd sqlite/
|
cd sqlite/
|
||||||
|
|
||||||
# https://sqlite.org/src/info/352b363a5d727047
|
# https://sqlite.org/src/info/f273f6b8245c5dca
|
||||||
curl -#L https://github.com/sqlite/sqlite/archive/dbd613c.tar.gz | tar xz --strip-components=1
|
curl -#L https://github.com/sqlite/sqlite/archive/7c126d7.tar.gz | tar xz --strip-components=1
|
||||||
# curl -#L https://sqlite.org/src/tarball/sqlite.tar.gz?r=352b363a5d | tar xz --strip-components=1
|
# curl -#L https://sqlite.org/src/tarball/sqlite.tar.gz?r=f273f6b824 | tar xz --strip-components=1
|
||||||
|
|
||||||
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
|
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
|
||||||
MSYS_NO_PATHCONV=1 nmake /f makefile.msc sqlite3.c "OPTS=-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_ENABLE_ORDERED_SET_AGGREGATES"
|
MSYS_NO_PATHCONV=1 nmake /f makefile.msc sqlite3.c "OPTS=-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_ENABLE_ORDERED_SET_AGGREGATES"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module github.com/ncruces/go-sqlite3/embed/bcw2
|
|||||||
|
|
||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
require github.com/ncruces/go-sqlite3 v0.30.1
|
require github.com/ncruces/go-sqlite3 v0.30.2
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/ncruces/julianday v1.0.0 // indirect
|
github.com/ncruces/julianday v1.0.0 // indirect
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
github.com/ncruces/go-sqlite3 v0.30.1 h1:pHC3YsyRdJv4pCMB4MO1Q2BXw/CAa+Hoj7GSaKtVk+g=
|
github.com/ncruces/go-sqlite3 v0.30.2 h1:1GVbHAkKAOwjJd3JYl8ldrYROudfZUOah7oXPD7VZbQ=
|
||||||
github.com/ncruces/go-sqlite3 v0.30.1/go.mod h1:UVsWrQaq1qkcal5/vT5lOJnZCVlR5rsThKdwidjFsKc=
|
github.com/ncruces/go-sqlite3 v0.30.2/go.mod h1:AxKu9sRxkludimFocbktlY6LiYSkxiI5gTA8r+os/Nw=
|
||||||
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
||||||
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
||||||
github.com/ncruces/sort v0.1.6 h1:TrsJfGRH1AoWoaeB4/+gCohot9+cA6u/INaH5agIhNk=
|
github.com/ncruces/sort v0.1.6 h1:TrsJfGRH1AoWoaeB4/+gCohot9+cA6u/INaH5agIhNk=
|
||||||
@@ -8,5 +8,5 @@ github.com/tetratelabs/wazero v1.10.1 h1:2DugeJf6VVk58KTPszlNfeeN8AhhpwcZqkJj2ww
|
|||||||
github.com/tetratelabs/wazero v1.10.1/go.mod h1:DRm5twOQ5Gr1AoEdSi0CLjDQF1J9ZAuyqFIjl1KKfQU=
|
github.com/tetratelabs/wazero v1.10.1/go.mod h1:DRm5twOQ5Gr1AoEdSi0CLjDQF1J9ZAuyqFIjl1KKfQU=
|
||||||
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
||||||
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||||
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
|
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
|
||||||
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
|
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ trap 'rm -f sqlite3.tmp' EXIT
|
|||||||
-Wl,--import-undefined \
|
-Wl,--import-undefined \
|
||||||
-Wl,--initial-memory=327680 \
|
-Wl,--initial-memory=327680 \
|
||||||
-D_HAVE_SQLITE_CONFIG_H \
|
-D_HAVE_SQLITE_CONFIG_H \
|
||||||
|
-DSQLITE_EXPERIMENTAL_PRAGMA_20251114 \
|
||||||
-DSQLITE_CUSTOM_INCLUDE=sqlite_opt.h \
|
-DSQLITE_CUSTOM_INCLUDE=sqlite_opt.h \
|
||||||
$(awk '{print "-Wl,--export="$0}' exports.txt)
|
$(awk '{print "-Wl,--export="$0}' exports.txt)
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func Test_init(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if version != "3.51.0" {
|
if version != "3.51.1" {
|
||||||
t.Error(version)
|
t.Error(version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -3,7 +3,7 @@ module github.com/ncruces/go-sqlite3/gormlite
|
|||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/ncruces/go-sqlite3 v0.30.1
|
github.com/ncruces/go-sqlite3 v0.30.2
|
||||||
gorm.io/gorm v1.31.1
|
gorm.io/gorm v1.31.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD
|
|||||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||||
github.com/ncruces/go-sqlite3 v0.30.1 h1:pHC3YsyRdJv4pCMB4MO1Q2BXw/CAa+Hoj7GSaKtVk+g=
|
github.com/ncruces/go-sqlite3 v0.30.2 h1:1GVbHAkKAOwjJd3JYl8ldrYROudfZUOah7oXPD7VZbQ=
|
||||||
github.com/ncruces/go-sqlite3 v0.30.1/go.mod h1:UVsWrQaq1qkcal5/vT5lOJnZCVlR5rsThKdwidjFsKc=
|
github.com/ncruces/go-sqlite3 v0.30.2/go.mod h1:AxKu9sRxkludimFocbktlY6LiYSkxiI5gTA8r+os/Nw=
|
||||||
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
||||||
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
||||||
github.com/tetratelabs/wazero v1.10.1 h1:2DugeJf6VVk58KTPszlNfeeN8AhhpwcZqkJj2wwFuH8=
|
github.com/tetratelabs/wazero v1.10.1 h1:2DugeJf6VVk58KTPszlNfeeN8AhhpwcZqkJj2wwFuH8=
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ require (
|
|||||||
github.com/prometheus/client_model v0.6.2 // indirect
|
github.com/prometheus/client_model v0.6.2 // indirect
|
||||||
github.com/prometheus/common v0.67.4 // indirect
|
github.com/prometheus/common v0.67.4 // indirect
|
||||||
github.com/prometheus/procfs v0.19.2 // indirect
|
github.com/prometheus/procfs v0.19.2 // indirect
|
||||||
github.com/psanford/sqlite3vfs v0.0.0-20240315230605-24e1d98cf361 // indirect
|
github.com/psanford/sqlite3vfs v0.0.0-20251127171934-4e34e03a991a // indirect
|
||||||
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
||||||
golang.org/x/crypto v0.45.0 // indirect
|
golang.org/x/crypto v0.45.0 // indirect
|
||||||
google.golang.org/protobuf v1.36.10 // indirect
|
google.golang.org/protobuf v1.36.10 // indirect
|
||||||
|
|||||||
@@ -137,8 +137,8 @@ github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+L
|
|||||||
github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
|
github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
|
||||||
github.com/prometheus/procfs v0.19.2 h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws=
|
github.com/prometheus/procfs v0.19.2 h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws=
|
||||||
github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05ZpYlu+b4J7mw=
|
github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05ZpYlu+b4J7mw=
|
||||||
github.com/psanford/sqlite3vfs v0.0.0-20240315230605-24e1d98cf361 h1:vAKifIJuYY306ZJSrwDgKonWcJGELijdaenABqbV03E=
|
github.com/psanford/sqlite3vfs v0.0.0-20251127171934-4e34e03a991a h1:r4YWl0uVObCbBFvj1VsIlyHzgZwZOHvY1KdRaQjzzUc=
|
||||||
github.com/psanford/sqlite3vfs v0.0.0-20240315230605-24e1d98cf361/go.mod h1:iW4cSew5PAb1sMZiTEkVJAIBNrepaB6jTYjeP47WtI0=
|
github.com/psanford/sqlite3vfs v0.0.0-20251127171934-4e34e03a991a/go.mod h1:iW4cSew5PAb1sMZiTEkVJAIBNrepaB6jTYjeP47WtI0=
|
||||||
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||||
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
||||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module modernc.org/sqlite
|
|||||||
|
|
||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
require github.com/ncruces/go-sqlite3 v0.30.1
|
require github.com/ncruces/go-sqlite3 v0.30.2
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/ncruces/julianday v1.0.0 // indirect
|
github.com/ncruces/julianday v1.0.0 // indirect
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
github.com/ncruces/go-sqlite3 v0.30.1 h1:pHC3YsyRdJv4pCMB4MO1Q2BXw/CAa+Hoj7GSaKtVk+g=
|
github.com/ncruces/go-sqlite3 v0.30.2 h1:1GVbHAkKAOwjJd3JYl8ldrYROudfZUOah7oXPD7VZbQ=
|
||||||
github.com/ncruces/go-sqlite3 v0.30.1/go.mod h1:UVsWrQaq1qkcal5/vT5lOJnZCVlR5rsThKdwidjFsKc=
|
github.com/ncruces/go-sqlite3 v0.30.2/go.mod h1:AxKu9sRxkludimFocbktlY6LiYSkxiI5gTA8r+os/Nw=
|
||||||
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
||||||
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
||||||
github.com/tetratelabs/wazero v1.10.1 h1:2DugeJf6VVk58KTPszlNfeeN8AhhpwcZqkJj2wwFuH8=
|
github.com/tetratelabs/wazero v1.10.1 h1:2DugeJf6VVk58KTPszlNfeeN8AhhpwcZqkJj2wwFuH8=
|
||||||
github.com/tetratelabs/wazero v1.10.1/go.mod h1:DRm5twOQ5Gr1AoEdSi0CLjDQF1J9ZAuyqFIjl1KKfQU=
|
github.com/tetratelabs/wazero v1.10.1/go.mod h1:DRm5twOQ5Gr1AoEdSi0CLjDQF1J9ZAuyqFIjl1KKfQU=
|
||||||
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
||||||
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||||
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
|
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
|
||||||
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
|
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ set -euo pipefail
|
|||||||
|
|
||||||
cd -P -- "$(dirname -- "$0")"
|
cd -P -- "$(dirname -- "$0")"
|
||||||
|
|
||||||
curl -#OL "https://sqlite.org/2025/sqlite-autoconf-3510000.tar.gz"
|
curl -#OL "https://sqlite.org/2025/sqlite-autoconf-3510100.tar.gz"
|
||||||
|
|
||||||
# Verify download.
|
# Verify download.
|
||||||
if hash=$(openssl dgst -sha3-256 sqlite-autoconf-*.tar.gz); then
|
if hash=$(openssl dgst -sha3-256 sqlite-autoconf-*.tar.gz); then
|
||||||
if ! [[ $hash =~ fa52f9cc74dbca004aa650ae698036a3350611f672649e165078f4eae21d6a2e ]]; then
|
if ! [[ $hash =~ 9b2b1e73f577def1d5b75c5541555a7f42e6e073ad19f7a9118478389c9bbd9b ]]; then
|
||||||
echo $hash
|
echo $hash
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -23,7 +23,7 @@ mv sqlite-*/sqlite3.h .
|
|||||||
mv sqlite-*/sqlite3ext.h .
|
mv sqlite-*/sqlite3ext.h .
|
||||||
rm -r sqlite-*
|
rm -r sqlite-*
|
||||||
|
|
||||||
GITHUB_TAG="https://github.com/sqlite/sqlite/raw/version-3.51.0"
|
GITHUB_TAG="https://github.com/sqlite/sqlite/raw/version-3.51.1"
|
||||||
|
|
||||||
mkdir -p ext/
|
mkdir -p ext/
|
||||||
cd ext/
|
cd ext/
|
||||||
|
|||||||
Binary file not shown.
@@ -4,7 +4,8 @@
|
|||||||
(type $2 (func (param i32 i32 i32 i32)))
|
(type $2 (func (param i32 i32 i32 i32)))
|
||||||
(type $3 (func (param i32) (result i32)))
|
(type $3 (func (param i32) (result i32)))
|
||||||
(memory $0 256)
|
(memory $0 256)
|
||||||
(data $0 (i32.const 4096) "\01")
|
(data $.data (i32.const 4097) "\10\00\00\01\00\00\00\00\00\00\00\0c\10\00\00\0c\10\00\00\0c\10")
|
||||||
|
(data $.data.1 (i32.const 4157) "\10\00\00\00\10")
|
||||||
(table $0 1 1 funcref)
|
(table $0 1 1 funcref)
|
||||||
(export "memory" (memory $0))
|
(export "memory" (memory $0))
|
||||||
(export "qsort" (func $qsort))
|
(export "qsort" (func $qsort))
|
||||||
@@ -1493,33 +1494,243 @@
|
|||||||
(local $2 i32)
|
(local $2 i32)
|
||||||
(local $3 i32)
|
(local $3 i32)
|
||||||
(local $4 i32)
|
(local $4 i32)
|
||||||
(local $5 i32)
|
(local $5 v128)
|
||||||
(local $6 v128)
|
(local $6 v128)
|
||||||
(local $7 v128)
|
(local $7 v128)
|
||||||
(local $8 v128)
|
(local $8 v128)
|
||||||
(local $9 v128)
|
(block $block2
|
||||||
(block $block
|
(block $block
|
||||||
(if
|
(br_if $block
|
||||||
(local.tee $3
|
(i32.eqz
|
||||||
(i32.load8_u
|
(local.tee $3
|
||||||
(local.get $1)
|
(i32.load8_u
|
||||||
|
(local.get $1)
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(then
|
(br_if $block
|
||||||
(br_if $block
|
(i32.eqz
|
||||||
(i32.load8_u offset=1
|
(i32.load8_u offset=1
|
||||||
(local.get $1)
|
(local.get $1)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
(loop $label
|
||||||
|
(v128.store
|
||||||
|
(i32.const 4080)
|
||||||
|
(local.get $6)
|
||||||
|
)
|
||||||
|
(i32.store8
|
||||||
|
(i32.or
|
||||||
|
(local.tee $3
|
||||||
|
(i32.and
|
||||||
|
(local.tee $2
|
||||||
|
(i32.load8_u
|
||||||
|
(local.get $1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.const 15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.const 4080)
|
||||||
|
)
|
||||||
|
(i32.or
|
||||||
|
(i32.load8_u
|
||||||
|
(i32.or
|
||||||
|
(local.get $3)
|
||||||
|
(i32.const 4080)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.shl
|
||||||
|
(i32.const 1)
|
||||||
|
(i32.sub
|
||||||
|
(local.tee $4
|
||||||
|
(i32.shr_u
|
||||||
|
(local.get $2)
|
||||||
|
(i32.const 4)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.const 8)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(v128.store
|
||||||
|
(i32.const 4064)
|
||||||
|
(local.get $5)
|
||||||
|
)
|
||||||
|
(i32.store8
|
||||||
|
(local.tee $3
|
||||||
|
(i32.or
|
||||||
|
(local.get $3)
|
||||||
|
(i32.const 4064)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.or
|
||||||
|
(i32.load8_u
|
||||||
|
(local.get $3)
|
||||||
|
)
|
||||||
|
(i32.shl
|
||||||
|
(i32.const 1)
|
||||||
|
(local.get $4)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(local.set $1
|
||||||
|
(i32.add
|
||||||
|
(local.get $1)
|
||||||
|
(i32.const 1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(local.set $6
|
||||||
|
(v128.load
|
||||||
|
(i32.const 4080)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(local.set $5
|
||||||
|
(v128.load
|
||||||
|
(i32.const 4064)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(br_if $label
|
||||||
|
(local.get $2)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(block $block1
|
||||||
|
(if
|
||||||
|
(v128.any_true
|
||||||
|
(local.tee $7
|
||||||
|
(v128.and
|
||||||
|
(v128.or
|
||||||
|
(i8x16.swizzle
|
||||||
|
(local.get $6)
|
||||||
|
(v128.xor
|
||||||
|
(local.tee $8
|
||||||
|
(v128.and
|
||||||
|
(local.tee $7
|
||||||
|
(v128.load
|
||||||
|
(local.tee $2
|
||||||
|
(i32.and
|
||||||
|
(local.get $0)
|
||||||
|
(i32.const -16)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(v128.const i32x4 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i8x16.swizzle
|
||||||
|
(local.get $5)
|
||||||
|
(local.get $8)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i8x16.swizzle
|
||||||
|
(v128.const i32x4 0x08040201 0x80402010 0x08040201 0x80402010)
|
||||||
|
(i8x16.shr_u
|
||||||
|
(local.get $7)
|
||||||
|
(i32.const 4)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(then
|
||||||
|
(br_if $block1
|
||||||
|
(local.tee $1
|
||||||
|
(i32.and
|
||||||
|
(i32.xor
|
||||||
|
(i8x16.bitmask
|
||||||
|
(i8x16.eq
|
||||||
|
(local.get $7)
|
||||||
|
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.const 65535)
|
||||||
|
)
|
||||||
|
(i32.shl
|
||||||
|
(i32.const -1)
|
||||||
|
(i32.and
|
||||||
|
(local.get $0)
|
||||||
|
(i32.const 15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(loop $label1
|
||||||
|
(br_if $label1
|
||||||
|
(i32.eqz
|
||||||
|
(v128.any_true
|
||||||
|
(local.tee $7
|
||||||
|
(v128.and
|
||||||
|
(v128.or
|
||||||
|
(i8x16.swizzle
|
||||||
|
(local.get $6)
|
||||||
|
(v128.xor
|
||||||
|
(local.tee $8
|
||||||
|
(v128.and
|
||||||
|
(local.tee $7
|
||||||
|
(v128.load
|
||||||
|
(local.tee $2
|
||||||
|
(i32.add
|
||||||
|
(local.get $2)
|
||||||
|
(i32.const 16)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(v128.const i32x4 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i8x16.swizzle
|
||||||
|
(local.get $5)
|
||||||
|
(local.get $8)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i8x16.swizzle
|
||||||
|
(v128.const i32x4 0x08040201 0x80402010 0x08040201 0x80402010)
|
||||||
|
(i8x16.shr_u
|
||||||
|
(local.get $7)
|
||||||
|
(i32.const 4)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(local.set $1
|
||||||
|
(i32.xor
|
||||||
|
(i8x16.bitmask
|
||||||
|
(i8x16.eq
|
||||||
|
(local.get $7)
|
||||||
|
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(i32.const 65535)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(br $block2)
|
||||||
)
|
)
|
||||||
(block $block1
|
(block $block3
|
||||||
(if
|
(if
|
||||||
(v128.any_true
|
(v128.any_true
|
||||||
(local.tee $6
|
(local.tee $5
|
||||||
(v128.or
|
(v128.or
|
||||||
(i8x16.eq
|
(i8x16.eq
|
||||||
(local.tee $7
|
(local.tee $6
|
||||||
(v128.load
|
(v128.load
|
||||||
(local.tee $2
|
(local.tee $2
|
||||||
(i32.and
|
(i32.and
|
||||||
@@ -1532,8 +1743,8 @@
|
|||||||
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
||||||
)
|
)
|
||||||
(i8x16.eq
|
(i8x16.eq
|
||||||
(local.get $7)
|
(local.get $6)
|
||||||
(local.tee $7
|
(local.tee $6
|
||||||
(i8x16.splat
|
(i8x16.splat
|
||||||
(local.get $3)
|
(local.get $3)
|
||||||
)
|
)
|
||||||
@@ -1543,11 +1754,11 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
(then
|
(then
|
||||||
(br_if $block1
|
(br_if $block3
|
||||||
(local.tee $1
|
(local.tee $1
|
||||||
(i32.and
|
(i32.and
|
||||||
(i8x16.bitmask
|
(i8x16.bitmask
|
||||||
(local.get $6)
|
(local.get $5)
|
||||||
)
|
)
|
||||||
(i32.shl
|
(i32.shl
|
||||||
(i32.const -1)
|
(i32.const -1)
|
||||||
@@ -1561,14 +1772,14 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(loop $label
|
(loop $label2
|
||||||
(br_if $label
|
(br_if $label2
|
||||||
(i32.eqz
|
(i32.eqz
|
||||||
(v128.any_true
|
(v128.any_true
|
||||||
(local.tee $6
|
(local.tee $5
|
||||||
(v128.or
|
(v128.or
|
||||||
(i8x16.eq
|
(i8x16.eq
|
||||||
(local.tee $6
|
(local.tee $5
|
||||||
(v128.load
|
(v128.load
|
||||||
(local.tee $2
|
(local.tee $2
|
||||||
(i32.add
|
(i32.add
|
||||||
@@ -1581,8 +1792,8 @@
|
|||||||
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
||||||
)
|
)
|
||||||
(i8x16.eq
|
(i8x16.eq
|
||||||
|
(local.get $5)
|
||||||
(local.get $6)
|
(local.get $6)
|
||||||
(local.get $7)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -1592,230 +1803,10 @@
|
|||||||
)
|
)
|
||||||
(local.set $1
|
(local.set $1
|
||||||
(i8x16.bitmask
|
(i8x16.bitmask
|
||||||
(local.get $6)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(return
|
|
||||||
(i32.add
|
|
||||||
(i32.ctz
|
|
||||||
(local.get $1)
|
|
||||||
)
|
|
||||||
(i32.sub
|
|
||||||
(local.get $2)
|
|
||||||
(local.get $0)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(local.set $4
|
|
||||||
(i32.and
|
|
||||||
(local.get $0)
|
|
||||||
(i32.const 15)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(loop $label1
|
|
||||||
(v128.store
|
|
||||||
(i32.const 4080)
|
|
||||||
(local.get $7)
|
|
||||||
)
|
|
||||||
(i32.store8
|
|
||||||
(i32.or
|
|
||||||
(local.tee $3
|
|
||||||
(i32.and
|
|
||||||
(local.tee $2
|
|
||||||
(i32.load8_u
|
|
||||||
(local.get $1)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.const 15)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.const 4080)
|
|
||||||
)
|
|
||||||
(i32.or
|
|
||||||
(i32.load8_u
|
|
||||||
(i32.or
|
|
||||||
(local.get $3)
|
|
||||||
(i32.const 4080)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.shl
|
|
||||||
(i32.const 1)
|
|
||||||
(i32.sub
|
|
||||||
(local.tee $5
|
|
||||||
(i32.shr_u
|
|
||||||
(local.get $2)
|
|
||||||
(i32.const 4)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.const 8)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(v128.store
|
|
||||||
(i32.const 4064)
|
|
||||||
(local.get $6)
|
|
||||||
)
|
|
||||||
(i32.store8
|
|
||||||
(local.tee $3
|
|
||||||
(i32.or
|
|
||||||
(local.get $3)
|
|
||||||
(i32.const 4064)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.or
|
|
||||||
(i32.load8_u
|
|
||||||
(local.get $3)
|
|
||||||
)
|
|
||||||
(i32.shl
|
|
||||||
(i32.const 1)
|
|
||||||
(local.get $5)
|
(local.get $5)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(local.set $1
|
|
||||||
(i32.add
|
|
||||||
(local.get $1)
|
|
||||||
(i32.const 1)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(local.set $7
|
|
||||||
(v128.load
|
|
||||||
(i32.const 4080)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(local.set $6
|
|
||||||
(v128.load
|
|
||||||
(i32.const 4064)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(br_if $label1
|
|
||||||
(local.get $2)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(block $block2
|
|
||||||
(if
|
|
||||||
(v128.any_true
|
|
||||||
(local.tee $8
|
|
||||||
(v128.and
|
|
||||||
(v128.or
|
|
||||||
(i8x16.swizzle
|
|
||||||
(local.get $7)
|
|
||||||
(v128.xor
|
|
||||||
(local.tee $9
|
|
||||||
(v128.and
|
|
||||||
(local.tee $8
|
|
||||||
(v128.load
|
|
||||||
(local.tee $2
|
|
||||||
(i32.and
|
|
||||||
(local.get $0)
|
|
||||||
(i32.const -16)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(v128.const i32x4 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i8x16.swizzle
|
|
||||||
(local.get $6)
|
|
||||||
(local.get $9)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i8x16.swizzle
|
|
||||||
(v128.const i32x4 0x08040201 0x80402010 0x08040201 0x80402010)
|
|
||||||
(i8x16.shr_u
|
|
||||||
(local.get $8)
|
|
||||||
(i32.const 4)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(then
|
|
||||||
(br_if $block2
|
|
||||||
(local.tee $1
|
|
||||||
(i32.and
|
|
||||||
(i32.xor
|
|
||||||
(i8x16.bitmask
|
|
||||||
(i8x16.eq
|
|
||||||
(local.get $8)
|
|
||||||
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.const 65535)
|
|
||||||
)
|
|
||||||
(i32.shl
|
|
||||||
(i32.const -1)
|
|
||||||
(local.get $4)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(loop $label2
|
|
||||||
(br_if $label2
|
|
||||||
(i32.eqz
|
|
||||||
(v128.any_true
|
|
||||||
(local.tee $8
|
|
||||||
(v128.and
|
|
||||||
(v128.or
|
|
||||||
(i8x16.swizzle
|
|
||||||
(local.get $7)
|
|
||||||
(v128.xor
|
|
||||||
(local.tee $9
|
|
||||||
(v128.and
|
|
||||||
(local.tee $8
|
|
||||||
(v128.load
|
|
||||||
(local.tee $2
|
|
||||||
(i32.add
|
|
||||||
(local.get $2)
|
|
||||||
(i32.const 16)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(v128.const i32x4 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f 0x8f8f8f8f)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i8x16.swizzle
|
|
||||||
(local.get $6)
|
|
||||||
(local.get $9)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i8x16.swizzle
|
|
||||||
(v128.const i32x4 0x08040201 0x80402010 0x08040201 0x80402010)
|
|
||||||
(i8x16.shr_u
|
|
||||||
(local.get $8)
|
|
||||||
(i32.const 4)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(local.set $1
|
|
||||||
(i32.xor
|
|
||||||
(i8x16.bitmask
|
|
||||||
(i8x16.eq
|
|
||||||
(local.get $8)
|
|
||||||
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(i32.const 65535)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
(i32.add
|
(i32.add
|
||||||
(i32.ctz
|
(i32.ctz
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user